Formulaire: données - PHP - Programmation
Marsh Posté le 09-04-2007 à 15:08:49
A toi de débugger tout seul un peu
Déja n'hésite pas a afficher toutes les variables du script avec des echo puis un exit; juste après pour vérifier leur contenu
Ensuite mets mysql_query($sql) or die('Erreur MySQL :'.mysql_error());
Faut apprendre a débugger tout seul ![[:fading] [:fading]](https://forum-images.hardware.fr/images/perso/fading.gif)
Par contre ton script d'upload est a revoir, de ce que j'en ai vu on peut faire passer un fichier PHP tranquille 
Autre chose : tu la sors d'ou ta variable $photo ? parce que si j'ai bien compris, tu la récupères de l'input du même nom de type file
Or dans ce cas ca résout une question que je me suis posée : Pourquoi n'utilise t-il pas le tableau $_FILES['photo'] ?
Parce que ca m'étonnerait bien que $photo aie une valeur, c'est $_FILES['photo'] qu'il faut utiliser et c'est ce tableau qui contient :
$_FILES['photo']['name'] : Nom
$_FILES['photo']['tmp_name'] : Chemin temporaire du fichier
Et j'en passe. Y'a beaucoup a revoir dans ton script
Marsh Posté le 09-04-2007 à 17:16:35
et ton code html avec des tableaux spa beau 
Marsh Posté le 09-04-2007 à 17:43:42
ReplyMarsh Posté le 09-04-2007 à 20:44:23
J'ai essayé ce code et le résultat me donne ceci: 
 
Nom : attak.jpg 
Dest.: image_annonce/attak.jpg 
Chemin : 
Type : 
Size : 0 
Le fichier est introuvable 
 
 
$ph_name=$_FILES[photo][name]; 
$ph_chemin=$_FILES[photo][tmp_name]; 
$ph_type=$_FILES[photo][type]; 
$ph_size=$_FILES[photo][size]; 
$repertoire="image_annonce/"; 
$destination=$repertoire.$ph_name; 
 
echo "Nom : ".$ph_name."<br>"; 
echo "Dest.: ".$destination."<br>"; 
echo "Chemin : ".$ph_chemin."<br>"; 
echo "Type : ".$ph_type."<br>"; 
echo "Size : ".$ph_size."<br>";
Marsh Posté le 09-04-2007 à 20:50:56
J'ai essayé cette cette ligne: <pre><?  print_r($_FILES); ?></pre> 
et j'obtiens ce résultat: 
 
Array 
( 
    [photo] => Array 
        ( 
            [name] => attak.jpg 
            [type] =>  
            [tmp_name] =>  
            [error] => 2 
            [size] => 0 
        ) 
 
)
Marsh Posté le 09-04-2007 à 21:04:42
[error] => 2 
<=> 
UPLOAD_ERR_FORM_SIZE 
<=> 
Le fichier téléchargé excède la taille de MAX_FILE_SIZE, qui a été spécifiée dans le formulaire HTML. 
 
Cette page pourrais t'être grandement utile ! 
http://fr.php.net/manual/fr/features.file-upload.php
Marsh Posté le 10-04-2007 à 01:22:29
D'ailleurs a l'avenir dans tes formulaires d'upload il faudra vérifier si la valeur error est supérieur a 0. Si c'est le cas, pas la peine de continuer, pour une raison X ou Y l'envoi a échoué.
Ca donnerait ca:
if($_FILES['photo']['error'] > 0) $erreur='Il y\'a eu une erreur pendant le transfert';
puis après toutes les vérifications possibles et inimaginables dans le cas d'upload de fichier :
if(isset($erreur)) echo $erreur;
S'il n'y a eu aucun problème de vérification (parce que error > 0 c'est pas la seule) alors on continue le script :
else {
// SUITE DE TON SCRIPT
}
Mon avis c'est surtout qu'il te faut un tuto complet pour ce genre d'opérations que voici :
http://www.siteduzero.com/tuto-3-1 [...] laire.html
Marsh Posté le 10-04-2007 à 03:12:16
Merci beaucoup! 
 
En revenant, je me suis dit que j'allais effectivement traité les erreurs; ce que je n'avais pas vu dans les trouvailles que j'avais faite.
Marsh Posté le 09-04-2007 à 15:03:10
Bonjour,
J'ai un formulaire pour mettre en ligne des petites annonces mais lorsque je valide, les données n'y sont pas. La table est toujours vide. Je ne vois pas pourquoi.
Formulaire:
Validation: