Verzendformulier gegevens + foto
Na veel zoekwerk de laatste dagen geef ik het op.
Ik heb een online formulier gevonden welke ik aangepast heb naar mijn noden (klein bedrijfje begonnen en om de kosten te drukken wil ik zelf de site in elkaar steken)...
Probleem is dat hij mij steeds volgende foutmelding geeft:
Quote:
Notice: Undefined index: picture in /var/www/html/v2/admin/productsubmit.php on line 8
Notice: Undefined index: picture in /var/www/html/v2/admin/productsubmit.php on line 9
Notice: Undefined index: picture in /var/www/html/v2/admin/productsubmit.php on line 16
Notice: Undefined index: picture in /var/www/html/v2/admin/productsubmit.php on line 33
Sorry, there was a problem uploading your file.
Notice: Undefined index: picture in /var/www/html/v2/admin/productsubmit.php on line 9
Notice: Undefined index: picture in /var/www/html/v2/admin/productsubmit.php on line 16
Notice: Undefined index: picture in /var/www/html/v2/admin/productsubmit.php on line 33
Sorry, there was a problem uploading your file.
dit is afkomstig van volgende documenten:
products.php
Quote:
<form id="products" name="products" method="post" action="productsubmit.php" enctype="multipart/form-data>
<p>
<label for="category">Category:</label>
<select name="category" id="category">
<option>GSM</option>
<option>PC</option>
<option>GPS</option>
</select>
</p>
<p>
<label for="model">Merk:</label>
<select name="model" id="model">
<option value="Nokia">Nokia</option>
<option value="Lenovo">Lenovo</option>
<option value="Packard Bell">Packard Bell</option>
</select>
</p>
<p>
<label for="type">Type:</label>
<input type="text" name="type" id="type" />
</p>
<p>
<label for="prijs">Prijs zonder euroteken!!!:</label>
<input type="text" name="prijs" id="prijs" />
</p>
<p>
<label for="picture">Photo:</label>
<input name="picture" type="file" id="picture">
</p>
<p>
<label for="name">unique photo name</label>
<input type="text" name="name" id="name" />
</p>
<p>
<label for="stock">In Stock:</label>
<select name="stock" id="stock">
<option value="YES">Yes</option>
<option value="NO">NO</option>
</select>
</p>
<p>
<label for="title1">Titel tekst 1:</label>
<input type="text" name="title1" id="title1" />
</p>
<p>
<label for="info1">Tekst voor eerste titel:</label>
<br />
<textarea name="info1" id="info1" cols="45" rows="5"></textarea>
</p>
<p>
<label for="title2">Titel tekst 2:</label>
<input type="text" name="title2" id="title2" />
</p>
<p>
<label for="info2">Tekst voor 2e titel:</label>
<br />
<textarea name="info2" id="info2" cols="45" rows="5"></textarea>
</p>
<p>
<input type="submit" name="upload" id="button" value="Toevoegen" />
</p>
</form>
<p>
<label for="category">Category:</label>
<select name="category" id="category">
<option>GSM</option>
<option>PC</option>
<option>GPS</option>
</select>
</p>
<p>
<label for="model">Merk:</label>
<select name="model" id="model">
<option value="Nokia">Nokia</option>
<option value="Lenovo">Lenovo</option>
<option value="Packard Bell">Packard Bell</option>
</select>
</p>
<p>
<label for="type">Type:</label>
<input type="text" name="type" id="type" />
</p>
<p>
<label for="prijs">Prijs zonder euroteken!!!:</label>
<input type="text" name="prijs" id="prijs" />
</p>
<p>
<label for="picture">Photo:</label>
<input name="picture" type="file" id="picture">
</p>
<p>
<label for="name">unique photo name</label>
<input type="text" name="name" id="name" />
</p>
<p>
<label for="stock">In Stock:</label>
<select name="stock" id="stock">
<option value="YES">Yes</option>
<option value="NO">NO</option>
</select>
</p>
<p>
<label for="title1">Titel tekst 1:</label>
<input type="text" name="title1" id="title1" />
</p>
<p>
<label for="info1">Tekst voor eerste titel:</label>
<br />
<textarea name="info1" id="info1" cols="45" rows="5"></textarea>
</p>
<p>
<label for="title2">Titel tekst 2:</label>
<input type="text" name="title2" id="title2" />
</p>
<p>
<label for="info2">Tekst voor 2e titel:</label>
<br />
<textarea name="info2" id="info2" cols="45" rows="5"></textarea>
</p>
<p>
<input type="submit" name="upload" id="button" value="Toevoegen" />
</p>
</form>
Deze verstuurd op zijn beurt alles door naar productsubmit.php:
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
//Error Reporting
error_reporting(E_ALL);
ini_set('display_errors', '1');
//This is the directory where images will be saved
$target = "../products/images/";
$target = $target . basename( $_FILES['picture']['name']);
$url = basename( $_FILES['picture']['name']);
//This gets all the other information from the form
$category=$_POST['category'];
$model=$_POST['model'];
$type=$_POST['type'];
$prijs=$_POST['prijs'];
$picture=($_FILES['picture']['name']);
$stock=$_POST['stock'];
$title1=$_POST['title1'];
$info1=$_POST['info1'];
$title2=$_POST['title2'];
$info2=$_POST['info2'];
$name=$_POST['name'];
// Connects to your Database
mysql_connect("mysqlhost","login","pasword") or die(mysql_error()) ;
mysql_select_db("database") or die(mysql_error()) ;
//Writes the information to the database
mysql_query("INSERT INTO products (category,model,type,price,picture,stock,title,info,title2,info2)
VALUES ('$category', '$model', '$type', '$prijs', '$url', '$stock', '$title1', '$info1', '$title2', '$info2')") ;
//Writes the photo to the server
if(move_uploaded_file($_FILES['picture']['tmp_name'], $target))
{
//Tells you if its all ok
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}
else {
//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>
//Error Reporting
error_reporting(E_ALL);
ini_set('display_errors', '1');
//This is the directory where images will be saved
$target = "../products/images/";
$target = $target . basename( $_FILES['picture']['name']);
$url = basename( $_FILES['picture']['name']);
//This gets all the other information from the form
$category=$_POST['category'];
$model=$_POST['model'];
$type=$_POST['type'];
$prijs=$_POST['prijs'];
$picture=($_FILES['picture']['name']);
$stock=$_POST['stock'];
$title1=$_POST['title1'];
$info1=$_POST['info1'];
$title2=$_POST['title2'];
$info2=$_POST['info2'];
$name=$_POST['name'];
// Connects to your Database
mysql_connect("mysqlhost","login","pasword") or die(mysql_error()) ;
mysql_select_db("database") or die(mysql_error()) ;
//Writes the information to the database
mysql_query("INSERT INTO products (category,model,type,price,picture,stock,title,info,title2,info2)
VALUES ('$category', '$model', '$type', '$prijs', '$url', '$stock', '$title1', '$info1', '$title2', '$info2')") ;
//Writes the photo to the server
if(move_uploaded_file($_FILES['picture']['tmp_name'], $target))
{
//Tells you if its all ok
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}
else {
//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>
Hij geeft me een gout op de "picture" die niet gedefinieerd is maar die staat toch gedefinieerd in mijn form waaruit hij die moet halen? of vergis ik me?
Hij plaatst alles in de database maar de foto uploaden wil ie niet doen, alsook de naam/url van de foto zet hij niet in mijn database :(
Indien je me kan helpen zou ik jullie dankbaar zijn !
grt
Benoit
neem eens een kijkje naar de isset() functie, ook is je script sql injection gevoelig
van die isset begrijp ik eerlijk gezegd weinig maar ik zoek het even op.
Toevoeging op 21/12/2010 09:30:21:
Ik vermoed dat het zoiets zal moeten zijn?
of doe ik het volledig verkeerd en dient alles in 1 file te staan?
de error is nog steeds dezelfde. Picture blijkt nog steeds niet gedefinieerd :(
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
//Error Reporting
error_reporting(E_ALL);
ini_set('display_errors', '1');
//Check if form submitted
if(isset($_POST['submit']))
{
//reads the name of the file the user submitted for uploading
$picture=$_FILES['picture']['name'];
}
//This is the directory where images will be saved
$target = "../products/images/";
$target = $target . basename( $_FILES['picture']['name']);
$url = basename( $_FILES['picture']['name']);
//This gets all the other information from the form
$category=$_POST['category'];
$model=$_POST['model'];
$type=$_POST['type'];
$prijs=$_POST['prijs'];
$picture=($_FILES['picture']['name']);
$stock=$_POST['stock'];
$title1=$_POST['title1'];
$info1=$_POST['info1'];
$title2=$_POST['title2'];
$info2=$_POST['info2'];
$name=$_POST['name'];
// Connects to your Database
mysql_connect("mysqlhost","login","paswoord") or die(mysql_error()) ;
mysql_select_db("database") or die(mysql_error()) ;
//Writes the information to the database
mysql_query("INSERT INTO products (category,model,type,price,picture,stock,title,info,title2,info2)
VALUES ('$category', '$model', '$type', '$prijs', '$url', '$stock', '$title1', '$info1', '$title2', '$info2')") ;
//Writes the photo to the server
if(move_uploaded_file($_FILES['picture']['tmp_name'], $target))
{
//Tells you if its all ok
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}
else {
//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>
//Error Reporting
error_reporting(E_ALL);
ini_set('display_errors', '1');
//Check if form submitted
if(isset($_POST['submit']))
{
//reads the name of the file the user submitted for uploading
$picture=$_FILES['picture']['name'];
}
//This is the directory where images will be saved
$target = "../products/images/";
$target = $target . basename( $_FILES['picture']['name']);
$url = basename( $_FILES['picture']['name']);
//This gets all the other information from the form
$category=$_POST['category'];
$model=$_POST['model'];
$type=$_POST['type'];
$prijs=$_POST['prijs'];
$picture=($_FILES['picture']['name']);
$stock=$_POST['stock'];
$title1=$_POST['title1'];
$info1=$_POST['info1'];
$title2=$_POST['title2'];
$info2=$_POST['info2'];
$name=$_POST['name'];
// Connects to your Database
mysql_connect("mysqlhost","login","paswoord") or die(mysql_error()) ;
mysql_select_db("database") or die(mysql_error()) ;
//Writes the information to the database
mysql_query("INSERT INTO products (category,model,type,price,picture,stock,title,info,title2,info2)
VALUES ('$category', '$model', '$type', '$prijs', '$url', '$stock', '$title1', '$info1', '$title2', '$info2')") ;
//Writes the photo to the server
if(move_uploaded_file($_FILES['picture']['tmp_name'], $target))
{
//Tells you if its all ok
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}
else {
//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>
Gewijzigd op 21/12/2010 09:57:10 door Be Vldg
Testen of je form gesubmit is?
if ($_SERVER['REQUEST_METHOD'] == 'POST')
Edit: de melding "er ging iets mis" is je niet zo behulpzaam. Probeer op de plekken waar iets fout kan gaan ook een tekst in een variabele (bijvoorbeeld $error :) ) bij te houden, zodat je die erbij kunt afdrukken -- terwijl je aan het ontwikkelen bent. Gaat je systeem in productie, dan schrijf je dat soort informatie naar een logbestand buiten documentroot.
Gewijzigd op 21/12/2010 10:36:37 door Bas Cost Budde
ik heb die 2 lijnen welke je zei net gestoken boven in de formsubmit.php.
Quote:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
print_r($_FILES);
if ($_SERVER['REQUEST_METHOD'] == 'POST');
//Error Reporting
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
print_r($_FILES);
if ($_SERVER['REQUEST_METHOD'] == 'POST');
//Error Reporting
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
Ik krijg niet veel meer dan:
Array ( )
Notice: Undefined index: picture in /var/www/html/v2/admin/productsubmit.php on line 14
Notice: Undefined index: picture in /var/www/html/v2/admin/productsubmit.php on line 15
Notice: Undefined index: picture in /var/www/html/v2/admin/productsubmit.php on line 22
Notice: Undefined index: picture in /var/www/html/v2/admin/productsubmit.php on line 39
Sorry, there was a problem uploading your file.
Ik ken er echt héél weinig van maar wil het wel snappen dus alle hulp is welkom.
Ik heb dit script op zoveel sites gezien, bij mij is het gewon wat uitgebreider maar ik weet dus niet of dit in 1 of 2 documenten dient te staan en indien het in 1 moet hoe het er dan moet uitzien want ik krijg dezelfde fout dat die "picture" niet gedefined is.
Gewijzigd op 21/12/2010 10:50:37 door Be Vldg
Dat is een if statement waarna een accolade { komt, en geen ; .
Lees ook eens dit:
http://www.w3schools.com/php/php_if_else.asp
Gewijzigd op 21/12/2010 10:52:51 door - Ariën -
print_r($_FILES);
}
ik krijg nog steeds hetzelfde op mijn scherm.
of ik doe echt iets verkeerd maar ik zie niet wat :-/
5 dagen zoek ik er reeds op.
He Benoit, de $_FILES is leeg. Je krijgt dus geen bestand binnen. Vouw een
om je behandeling van het plaatje heen, dan krijg je niet meer die foutmeldingen.
Waarom je geen plaatje binnenkrijgt is dan weer een andere kwestie.
In wat je boven laat zien, ontbreekt een quote na enctype="multipart/form-data> , controleer dat ook even.
Is het gewoon niet zinvoller om een cursus PHP te doen, gezien je nog niet bekend lijkt te zijn met de syntax van de 'codes' ?
Dit verandert al héééél wat aan de zaak :) (ERG dat ik dat zelf niet gezien had)
Code (php)
1
2
3
2
3
Array ( [picture] => Array ( [name] => beno.jpg [type] => image/jpeg [tmp_name] => /tmp/phpyxpWt7 [error] => 0 [size] => 21718 ) )
Notice: Undefined index: uploadedfile in /var/www/html/v2/admin/productsubmit.php on line 44
The file has been uploaded, and your information has been added to the directory
Notice: Undefined index: uploadedfile in /var/www/html/v2/admin/productsubmit.php on line 44
The file has been uploaded, and your information has been added to the directory
Het bestand wordt in de map gestoken = ok
Het bestand wordt genoemd in de database = ok
Dus ik vermoed dat ik nu e error kan weglaten :)
een domme " vergeten kan grote gevolgen hebben dus.
Aar, ik ben van plan een cursus te volgen, maar ik heb er gewoon geen tijd voor dus nu doe ik het puur op trial & error (niet de beste manier geef ik toe).
Maar dagelijks breidt mijn kennis uit en snap ik er wel meer van van die PHP.
De site zelf die ik aan het maken ben heeft heel wat php die wel werkt (data uit database halen en tonen aan de hand van een get in de url die een id toont en dergelijke). Voor er nog niet zo heel lang mee bezig te zijn komt het wel goed denk ik (maar ik geef toe dat ik misschien veel hooi op mijn vork neem :))
Gewijzigd op 21/12/2010 11:15:10 door Be Vldg
Quote:
Aar, ik ben van plan een cursus te volgen, maar ik heb er gewoon geen tijd voor dus nu doe ik het puur op trial & error (niet de beste manier geef ik toe).
True, maar het kan zeker geen kwaad om ook regelmatig eens te kijken naar php.net of w3schools als je er niet uit komt of als je twijfelt aan de notatie van een functie :-)
Hartelijk dank nogmaals voor de hulp en het arendsoog!
Dat is toch het eerste wat je doet.
Voorbeeld: iets met een string search of in_array of zo.
Als je niet meer weet of eerst de $needle of eerst de $haystack komt, ga je toch direct naar php.net.
Ik snap jullie redenering wel, had er ook op gekeken maar ik vind het niet altijd even duidelijk. Een andere manier van denken zeker :)
De parameters krijgen wat uitleg.
Je krijgt een beschrijving van de return.
Bijna altijd krijg je bij de commentaren uitgewerkte voorbeelden.
Meestal staan er zelfs voorbeelden in die voor 80% overeenkomen met je exacte vraag.
Dat is toch echt wel de eerste plaats waar je moet zoeken.
$model=(mysql_real_escape_string($_POST['model']));
@ Kris inderdaad maar je ziet niet steeds in welke context het effectief gebruikt kan worden of in welke context ik die ozu kunnen gebruiken bvb.
al doende leert men niet?