par
graffx » 12 sept. 2009, 19:02
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;
}
?>
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????
[php] <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]
[php] <?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;
}
?>[/php]