Page 1 sur 2

probleme en php

Posté : 12 nov. 2007, 20:00
par Uri
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"])) ""

Posté : 12 nov. 2007, 20:15
par h0_noMan
Essayes avec cette condition :
if(isset($_FILES['fichier']['tmp_name']))
{
echo "IF passé";

bonjour

Posté : 12 nov. 2007, 20:20
par Uri
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é

Posté : 12 nov. 2007, 20:42
par h0_noMan
Avant ton if fait un var_dump($_FILES).

Posté : 12 nov. 2007, 20:45
par zeus
"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 ;)

bonjour

Posté : 12 nov. 2007, 20:52
par Uri
dsl si j'ai posté au mauvais emplacement ,
ça n'a pas marché la fonction var_dump() , no way

Posté : 12 nov. 2007, 21:09
par h0_noMan
J'ai trouvé.
Ajoute un L a multipart.
<form method="post" action="ajouter_client.php" enctype="multipart/form-data"> 

bonjour

Posté : 12 nov. 2007, 21:13
par Uri
merci pour l'aide ,
je l'ai ajouté mais le probleme est tjrs là

bj

Posté : 12 nov. 2007, 21:24
par Uri
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

Posté : 12 nov. 2007, 21:28
par h0_noMan
C'est bizarre car en mettant un L ton code fonctionne chez moi.

bj

Posté : 12 nov. 2007, 21:31
par Uri
ç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
-----------------------------------------------

Posté : 12 nov. 2007, 21:37
par h0_noMan
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 ?

Posté : 12 nov. 2007, 21:45
par Truc
Modération :
Uri, le multipostage est interdit sur le forum.

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

bj

Posté : 12 nov. 2007, 21:49
par Uri
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

Posté : 12 nov. 2007, 22:27
par h0_noMan
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.