Pb php userfile

Résolu/Fermé
letyz12 - 25 déc. 2008 à 18:29
 letyz12 - 25 déc. 2008 à 21:07
Bonjour,

Je dispose d'une table restaurant comportant tout un nombre de champs : nom, adresse, tel, fax, site_web, commentaires,..,nom_image (ce dernier champ contient le nom d'une image par exemple "logo.jpg").

Sur une page php, j'ai crée un formulaire dans le but de créer un nouveau restaurant :

<form action="ajout_insert_resto.php" method="post">

Nom : <input name="nom" type="text" size="50" maxlength="100"><br>
Adresse : <input name="adr" type="text" size="50" maxlength="100"><br>
Téléphone : <input name="tel" type="text" size="20" maxlength="20"><br>
Fax : <input name="fax" type="text" size="20" maxlength="20"><br>
Site web : <input name="site" type="text" size="20" maxlength="20"><br>
Type cuisine : <select name="cuisine">
<option>Asiatique</option>
<option>Bistrot - Brasserie</option>
<option>Français</option>
<option>Italien</option>
<option>Méditerranéen (Poissons, Fruits de mer)</option>
<option>Mexicain</option>
<option>Moyen-Orient</option>
<option>Pizzéria</option>
<option>Régional (Aveyronnais, Auvergnat, Sud-Ouest)</option>
<option>Sud-Américain</option>
</select>
<br>
Fourchette prix : <select name="prix">
<option>7-15 EUR</option>
<option>15-30 EUR</option>
<option>30-60 EUR</option>
<option>60-90 EUR</option>
<option>90 EUR et +</option>
</select>
<br>
Fichier image : <input type="file" name="userfile"><br>
Commentaires : <input name="com" type="textarea" cols="60" rows="5" maxlength="300" ><br>
<input type="submit" value="ENVOYER">
</form>

Puis dans la page suivante, je réucpère donc les infroamtions :
$nom = $_POST['nom'];
$adr = $_POST['adr'];
$tel = $_POST['tel'];
$fax = $_POST['fax'];
$site = $_POST['site'];
$cuisine = $_POST['cuisine'];
$prix = $_POST['prix'];
$nomfichier = basename($_FILES['userfile']['name']); $com = $_POST['com'];

Mais il plante à la ligne pr récupérer le nom de l'image choisie.
Voici l'erreur : Notice: Undefined index: userfile in c:\program files\easyphp1-7\www\adh\ajout_insert_resto.php on line 17

Avez-vous une idée? Le bouton "parcourir" marche pourtant bien, quand je clique sur une photo, son chemin s'affiche bien dans la zone de texte.
Peut-etre est-ce la fonction "basename" (elle est tirée d'un cours, et je l'ai pourtant suivi de très près).


Meri beaucoup.
A voir également:

1 réponse

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
25 déc. 2008 à 20:35
Pour l'envoi de fichiers tu dois un peu changer la déclaration de ta balise formulaire :
<form enctype="multipart/form-data" action="ajout_insert_resto.php" method="post">


Ensuite rajoute un input hidden pour la taille maximale du fichier juste avant ton input file :

<input type="hidden" name="MAX_FILE_SIZE" value="20000000" />
<input type="file" name="userfile" />

Ps : ici moi j'ai mit comme MAX_FILE_SIZE : 20 Mb. Attention quand même que dans ton php.ini il y a aussi une variable qui définit la taille maximale que tu peux envoyer donc il faut aussi l'augmenter là bas si tu souhaite généralement envoyer des trucs plus gros que 4 ou 8 Mb.
Ps2 : le MAX_FILE_SIZE est traité tout seul, pas besoin de faire des tests dessus dans tes scripts php.

Bonne chance
0
merci bien, it's allright !
0