probleme en php

Uri
Petit nouveau ! | 8 Messages

12 nov. 2007, 20:00

bonjour tt le monde ,
j'ai un probleme que je n'arrive pas à resoudre , je vois vraiment pas d'ou ça foire , voilà :
j'ai crée un formulaire qui contient le nom , adresse ... ,image ,bref les données du client ,
que j'ai nommé formulaire.html ==>
---------------------------------- formulaire.html-------------------------------------------

Code : Tout sélectionner

<html> <body> <form method="post" action="ajouter_client.php" enctype="mutipart/form-data"> <table width="314" border="0" align="left" cellpadding="5" cellspacing="0"> <input type="hidden" name="MAX_FILE_SIZE" value="512000"> <tr> <td width="116">Nom client : </td> <td width="198" colspan="3"><label> <input name="Nom_Client" type="text" id="Nom_Client" /> </label></td> </tr> <tr> <td>Adresse client : </td> <td colspan="3"><input name="Adresse_Client" type="text" id="Adresse_Client" /></td> </tr> <tr> <td>Email : </td> <td colspan="3"><input name="Email_Client" type="text" id="Email_Client" /></td> </tr> <fieldset> <tr> <td>Photo : </td> <td colspan="3"> <input type="file" name="fichier" /></td> </tr> <tr> <td>Numero de telephone : </td> <td colspan="3"><input name="Tel_Client" type="text" id="Tel_Client" /></td> </tr> <tr> <td>&nbsp;</td> <td colspan="3"><label> <input type="submit" name="Submit" value="ajouter" /> <input type="reset" name="Submit2" value="initialiser" /> </label></td> </tr> </fieldset> </table> </form> </body> </html>
----------------------------------------------------------------------------------------------------
et voilà le : ajouter_client.php
------------------------------------------- ajouter_client.php -----------------------------------
<?php 
include("connexion.php"); 
$Nom     = 	$_POST["Nom_Client"] ;
$Adresse = 	$_POST["Adresse_Client"] ;
$Email    = 	$_POST["Email_Client"];
$Tel       = 	$_POST["Tel_Client"];
//******************************************
$poids_max = 512000; 
$repertoire = '..\\photos\\'; 
if (isset( $_FILES["fichier"])) 
{

$sql1='select * from table_client';
$req = mysql_query($sql1) ; 
$data = mysql_fetch_array($req);
if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; } 
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; } 
if ($_FILES['fichier']['type'] == 'image/jpg') { $extention = '.jpg'; } 
if ($_FILES['fichier']['type'] == 'image/JPG') { $extention = '.JPG'; } 
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; } 
$nom_fichier = $_data["ID_Client"].$extention;

if (move_uploaded_file($_FILES["fichier"]["tmp_name"], $repertoire.$nom_fichier)) 
    { 
	$url =$repertoire.$nom_fichier; 
	echo " Votre image à été uploadée sur le serveur avec succes!<br>Voici le lien: <input type='text' value=' . $url . ' size='60'>"; 
    } 

}

//*************************************************

if ($_POST["Nom_Client"] !="" ) 
{ 
$sql = "INSERT  INTO table_client (Nom_Client, Adresse_Client, Email_Client ,Photo_Client ,Tel_Client)  
			VALUES ('$Nom','$Adresse','$Email','$url','$Tel' ) " ;

mysql_query($sql) or die(mysql_error()); 
} 

?> 
------------------------------------------------------------------------------------------------

le probleme c'est qu'il ne teste pas sur le (isset( $_FILES["fichier"])) donc , il n'entre pas pour executer les instructions de cette condition , et comme resultat ds ma base mysql , je trouve le nom , l'adresse , email , telephone mais pas l'image ....
svp je voudrais savoir pourquoi il ignore la condition "" if (isset( $_FILES["fichier"])) ""

Eléphant du PHP | 445 Messages

12 nov. 2007, 20:15

Essayes avec cette condition :
if(isset($_FILES['fichier']['tmp_name']))
{
echo "IF passé";

Uri
Petit nouveau ! | 8 Messages

12 nov. 2007, 20:20

bonjour ,
merci pour ton aide ,
ça n'a pas marché , normalement en ajoutant ton code , il devrait afficher " IF passé" , c ça ?? si oui , il n'a rien affiché

Eléphant du PHP | 445 Messages

12 nov. 2007, 20:42

Avant ton if fait un var_dump($_FILES).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 nov. 2007, 20:45

"probleme en php"
Tu es venu sur un forum d'entraide au développement en PHP, on se doute bien que c'est parce que tu as un problème, en comme tu as posté dans un forum intitulé "Débuter en PHP", on se doute que c'est pour du PHP.

A l'avenir, merci de choisir un titre qui reflète le problème plus précisément ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Uri
Petit nouveau ! | 8 Messages

12 nov. 2007, 20:52

dsl si j'ai posté au mauvais emplacement ,
ça n'a pas marché la fonction var_dump() , no way

Eléphant du PHP | 445 Messages

12 nov. 2007, 21:09

J'ai trouvé.
Ajoute un L a multipart.
<form method="post" action="ajouter_client.php" enctype="multipart/form-data"> 

Uri
Petit nouveau ! | 8 Messages

12 nov. 2007, 21:13

merci pour l'aide ,
je l'ai ajouté mais le probleme est tjrs là

Uri
Petit nouveau ! | 8 Messages

12 nov. 2007, 21:24

h0_noMan , voilà t'avais raison merci pour ton aide , j'avais oublié d'actualiser la page formulaire.html . il m'a signalé d'autres erreurs , comme :
Notice: Undefined variable: extention in c:\program files\easyphp1-8\www\ajouter_client.php on line 21 . mais je trouverai la solution

merci encore pour ton aide

Eléphant du PHP | 445 Messages

12 nov. 2007, 21:28

C'est bizarre car en mettant un L ton code fonctionne chez moi.

Uri
Petit nouveau ! | 8 Messages

12 nov. 2007, 21:31

ça fonctionne ??? tu es sur ??? voilà les warnings et les erreurs qui m'affiche :
---------------------------------------------
IF passé
Notice: Undefined variable: extention in c:\program files\easyphp1-8\www\ajouter_client.php on line 21

Warning: move_uploaded_file(../photos/1194892037): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\ajouter_client.php on line 23

Warning: move_uploaded_file(): Unable to move 'C:/Program Files/EasyPHP1-8\tmp\php18.tmp' to '../photos/1194892037' in c:\program files\easyphp1-8\www\ajouter_client.php on line 23

Notice: Undefined variable: url in c:\program files\easyphp1-8\www\ajouter_client.php on line 36
-----------------------------------------------

Eléphant du PHP | 445 Messages

12 nov. 2007, 21:37

Ca ce sont d'autres erreurs.
if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; } 
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; } 
if ($_FILES['fichier']['type'] == 'image/jpg') { $extention = '.jpg'; } 
if ($_FILES['fichier']['type'] == 'image/JPG') { $extention = '.JPG'; } 
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; } 
$nom_fichier = $_data["ID_Client"].$extention; 
Et que se passe t'il si le type ne fait pas partie de ceux la ?
Pourquoi tu ne verifies pas si une erreur s'est produite ($_FILES['fichier']['error']) ?
Ou se situe le dossier photo par rapport a ton script ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

12 nov. 2007, 21:45

Modération :
Uri, le multipostage est interdit sur le forum.

Merci de prendre le temps de lire les règlements.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Uri
Petit nouveau ! | 8 Messages

12 nov. 2007, 21:49

en ce qui concerne l'extention , tu me suggeres quoi comme solution , parceque j'ai trouvé comme url ds ma base , " photo/1 " mais il ne prends pas en consideration l'extention .
j'ai fait une faute ke j'ai corrigé en ce qui concerne le chemin du dossier photo et ça a marché :
$repertoire = 'photos/';
PS : c'est moi qui a enlevé le teste sur les autres extentions questions de detecter la faute , je vais le remettre aprés , ça pose pas de probleme ; merci

Eléphant du PHP | 445 Messages

12 nov. 2007, 22:27

Tu test si le type du fichier recu fait partie de ta liste avec in_array() par exemple.

image/png
image/jpeg
image/jpg
image/gif

Et si il n'en fait pas partie alors tu ne deplace pas le fichier et tu indique à l'utilisateur de n'uploader que des images.