Verzendformulier gegevens + foto

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Be Vldg

Be Vldg

21/12/2010 09:18:02
Quote Anchor link
Hoi,

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.


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>


Deze verstuurd op zijn beurt alles door naar productsubmit.php:

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.";
}

?>


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
 
PHP hulp

PHP hulp

23/12/2024 08:00:39
 
Vincent Huisman

Vincent Huisman

21/12/2010 09:20:49
Quote Anchor link
neem eens een kijkje naar de isset() functie, ook is je script sql injection gevoelig
 
Be Vldg

Be Vldg

21/12/2010 09:26:56
Quote Anchor link
wel ik heb de "admin-folder" pages beveiligd met .htaccess dus het is enkel voor mezelf om makkelijk en snel producten toe te voegen.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.";
}

?>
Gewijzigd op 21/12/2010 09:57:10 door Be Vldg
 
Bas Cost Budde

Bas Cost Budde

21/12/2010 10:34:48
Quote Anchor link
Doe eens print_r($_FILES) bovenaan; dan kun je zien wat er binnenkomt.

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
 
Be Vldg

Be Vldg

21/12/2010 10:47:38
Quote Anchor link
Bas dank je voor je antwoord maar helaas ben ik de wanhoop nabij.
ik heb die 2 lijnen welke je zei net gestoken boven in de formsubmit.php.

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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');
?>


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
 
- Ariën  -
Beheerder

- Ariën -

21/12/2010 10:51:11
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
  if ($_SERVER['REQUEST_METHOD'] == 'POST');

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 -
 
Be Vldg

Be Vldg

21/12/2010 10:58:01
Quote Anchor link
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
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.
 
Bas Cost Budde

Bas Cost Budde

21/12/2010 10:59:09
Quote Anchor link
Hm, dat had ik wel wat netter kunnen voordoen dan. Naja.

He Benoit, de $_FILES is leeg. Je krijgt dus geen bestand binnen. Vouw een
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if (isset($_FILES['picture'])) {

}
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.
 
- Ariën  -
Beheerder

- Ariën -

21/12/2010 11:00:06
Quote Anchor link
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' ?
 
Be Vldg

Be Vldg

21/12/2010 11:10:14
Quote Anchor link
Bas hartelijk dank voor die quote op te merken...

Dit verandert al héééél wat aan de zaak :) (ERG dat ik dat zelf niet gezien had)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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


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
 
- Ariën  -
Beheerder

- Ariën -

21/12/2010 11:17:33
Quote Anchor link
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 :-)
 
Be Vldg

Be Vldg

21/12/2010 11:35:27
Quote Anchor link
Zal ik zeker in mijn achterhoofd houden en toepassen.

Hartelijk dank nogmaals voor de hulp en het arendsoog!
 
Kris Peeters

Kris Peeters

21/12/2010 12:53:31
Quote Anchor link
Tuurlijk.
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.
 
Be Vldg

Be Vldg

21/12/2010 12:58:47
Quote Anchor link
Ik snap jullie redenering wel, had er ook op gekeken maar ik vind het niet altijd even duidelijk. Een andere manier van denken zeker :)
 
Kris Peeters

Kris Peeters

21/12/2010 13:02:30
Quote Anchor link
Op php.net vind je de juiste volgorde van de parameters.
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.
 
Be Vldg

Be Vldg

21/12/2010 16:00:21
Quote Anchor link
Voor de sql injectie heb ik de volgende string toegepast op de toe te voegen zaken

$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?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.