Page 1 sur 1

souci d' upload

Posté : 12 sept. 2009, 19:02
par graffx
salut a tous, je prefere vous dire que je suis perdu sur un formulaire d' envoi d' annonce avec 1 seule photo, car j' ai utilisé les bases d' un script du sdz sur mon site pour changer l' avatar du membre, ca fonctionne bien.


Sur le meme site j' aimerai mettre un module annonces, et j' en suis au debut, au formulaire d' envoie.

Le code est pas beau car j' ai essayé d' épurer pour voir d' ou pouvait venir le souci, y voyez vous une erreur qui empecherait l' upload????
                <form method="post" action="annonces_t.php" ENCTYPE="multipart/form-data">
Type d' annonce : 
offre : 
                                  <INPUT type=radio name="type" value="offre">
                                  demande : 
                                  <INPUT type=radio name="type" value="demande">

                                <input name="prix" type="text" class="Style1" id="prix" size="20"/>

                                  <input name="titre" type="text" class="Style1" size="70"/>

                                <div align="center">Texte de votre annonce  : </div>

                                  <textarea name="texte" cols="80" rows="20" class="Style1"></textarea>

							  <input type="hidden" name="MAX_FILE_SIZE" value="500000">
                                  <span class="Style1">Joignez une photo si vous le souhaitez :                                  </span>
                                  <input type="file" name="photo1" id="photo1" />


                                  <input name="submit" type="submit" value="Envoyer mon annonce" />

                      </form>


				  									    <?php


$cat = mysql_real_escape_string(htmlspecialchars($_POST['cat']));
$type = mysql_real_escape_string(htmlspecialchars($_POST['type']));
$prix = mysql_real_escape_string(htmlspecialchars($_POST['prix']));
$titre = mysql_real_escape_string(htmlspecialchars($_POST['titre']));
$texte = mysql_real_escape_string(htmlspecialchars($_POST['texte']));
$auteur = mysql_real_escape_string(htmlspecialchars($_SESSION['pseudo']));
$date = time();
$photo1 = mysql_real_escape_string(htmlspecialchars($_POST['photo1']));





mysql_query("INSERT INTO annonces VALUES('', '$cat', '$type', '$prix', '$auteur', '$date', '$titre', '$texte', '$photo1', '$photo2', '$photo3', '$photo4')");






echo 'L\'équipe se charge de la mettre en ligne dans moins de vingt-quatre heures';


$dossier = './photos_annonces/';
$fichier = basename($_FILES['photo1']['name']);
$taille_maxi = 500000;
$taille = filesize($_FILES['photo1']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['photo1']['name'], '.'); 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...<br><br> Taille de la photo maxi : 500 Ko';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['photo1']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {



$photo1 = mysql_real_escape_string(htmlspecialchars($_POST['photo1']));

if($photo1== $photo1)








echo 'ok';
echo '';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}
?>

Re: souci d' upload

Posté : 13 sept. 2009, 09:29
par graffx
petit up :s

Re: souci d' upload

Posté : 13 sept. 2009, 10:16
par FuZZyLine
Salut,

Up déconseillé, tu vas te faire taper sur les doigts lol (joke))

Y t'il des erreurs? Et si oui : Quelles sont les erreurs?

Voici le dernier des topics parlant d'upload (il me semble) ca te permetra, peut-être,
de résoudre ton problème.

php-debutant/probleme-avec-upload-via-p ... lit=upload

@+ ;)

PS: Déja je te conseille, quand tu recois le formulaire, de faire un:
<?
   if (isset($_POST[MAX_FILE_SIZE]))
   {
      print_r($_POST);
      print_r($_FILES);
      die();
   }
   .
   .
   .
?>

Re: souci d' upload

Posté : 14 sept. 2009, 17:29
par dunbar
Salut,
A la grosse louche .
la variable $_POST[cat'] n'existe pas.
Et pour ta requete du devrais lui demander d'afficher les erreurs éventuelle.
$_POSt[photo1']'existe pas c'est $_FILES[photo1']
:)

Re: souci d' upload

Posté : 17 sept. 2009, 16:26
par graffx
alors en effet, c' est bien FILES et pas POST.

Je l' avais deja testé mais rien, pas un message d' erreur. Voila, je me retrouve avec ceci:
Warning: move_uploaded_file(/photos_annonces/moi3.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/villedeb/www/annonces/annonces_t.php on line 81

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpqXRK8w' to '/photos_annonces/moi3.jpg' in /home/villedeb/www/annonces/annonces_t.php on line 81
Echec de l'upload !Array ( [cat] => Utilitaires [type] => offre [prix] => 4542 [titre] => hj,hjkh [texte] => jkhjk hk [MAX_FILE_SIZE] => 500000 [submit] => Envoyer mon annonce ) Array ( [photo1] => Array ( [name] => moi3.jpg [type] => image/jpeg [tmp_name] => /tmp/phpqXRK8w [error] => 0 [size] => 2338 ) )

ligne 81:

if(move_uploaded_file($_FILES['photo1']['tmp_name'], $dossier . $fichier))

et voici ce que representent $fichiers et $dossiers:

$dossier = '/photos_annonces/';
$fichier = basename($_FILES['photo1']['name']);

Re: souci d' upload

Posté : 17 sept. 2009, 16:32
par graffx
arf j' ai trouvé, fallai tmettre le chemin relatif :)

Des fois j'vosu jure , en tout merci, ca m' a bien aidé :)

Re: souci d' upload

Posté : 17 sept. 2009, 17:37
par Ryle
Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton Image en haut à droite de la réponse qui te semble la plus pertinente.