[php] probleme insertion photo

Fermé
G4uthier Messages postés 131 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 - 12 mars 2008 à 21:52
G4uthier Messages postés 131 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 - 16 mars 2008 à 12:17
Bonjour,
J' ai un probleme depuis que j'ai rajouté mon bbcode et mes "stripslashes" mon code fonctionne plus :(
ma requete $req_id ne fonctionne pas :'(
i need help :)
merci





<?php
include("configuration_sql.php");
$news="";
$titre="";
$contenu="";
//ajout de la news
echo "<script type='text/javascript' language='JavaScript'>
function verification(){
if(document.ajout.titre.value == '') {
alert('Veuillez entrer un titre pour votre news !');
document.ajout.titre.focus();
return false;
}
if(document.ajout.contenu.value == '') {
alert('Veuillez remplir le contenu de votre news!');
document.ajout.contenu.focus();
return false;
}
}
</script>";




if(isset($_POST['ajout'])){
unset($erreur);
$titre=stripslashes($_POST['titre']);// On enlève les slash qui se seraient ajoutés automatiquement
$date=time();
$titre=stripslashes($_POST['titre']);
$contenu = stripslashes($_POST['contenu']);
$contenu = htmlspecialchars($contenu); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
$contenu = nl2br($contenu); // On crée des <br /> pour conserver les retours à la ligne
$contenu = preg_replace('#\[b\](.+)\/b\#isU', '<strong>$1</strong>', $contenu);
$contenu= preg_replace('#\[i\](.+)\/i\#isU', '<em>$1</em>', $contenu);
$contenu = preg_replace('#\[color=(red|green|blue|yellow|purple|olive)\](.+)\/color\#isU', '<span style="color:$1">$2</span>', $contenu);
$contenu = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $contenu);


$requete = mysql_query("insert into news(titre,contenu,date_msg) values('".mysql_real_escape_string($titre). "','". mysql_real_escape_string($contenu) . "','" . mysql_real_escape_string($date) . "')");
$news="Votre news a été postée"; // On insere les valeurs

if(isset($_POST['photo_ok'])){// on vérifie si on veut insérer une photo
if(isset($_FILES['photo']) ){//nécessaire à l'insertion de photo
//contient les informations relatives au téléchargement du fichier
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 2097152;
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 2Mo !';
}
// copie du fichier
if(!isset($erreur)){
$extension_upload = strtolower( substr( strrchr($_FILES['photo']['name'], '.') ,1) );
echo "test";
$req_id =mysql_query("select id from news where titre='$titre' and contenu= '$contenu' ");
echo $req_id;
if($req_id){
$id_news=mysql_fetch_array($req_id);
$nom_photo=$id_news[0].".".$extension_upload;//on définit un nouveau nom pour la photo à uploader
$chemin = "./Images/news/".$nom_photo; //on définit le chemin où déplacer la photo
$resultat = move_uploaded_file($_FILES['photo']['tmp_name'],$chemin); //on déplace la photo
$insertion_nomphoto=mysql_query("UPDATE news SET nom_photo='{mysql_real_escape_string($nom_photo)}' where id='{mysql_real_escape_string($id_news[0])}'"); //on insère le nouveau nom de photo dans la base de données
if (($resultat)&&($insertion_nomphoto)){
echo "Transfert photo réussi.<br/><br/>";
}else echo "Impossible de transférer les données.<br/><br/>";
}
}

}
}
}
// ce formulaire sert à l'ajout

echo"<form method='post' action='{$_SERVER['PHP_SELF']}' name='ajout' onSubmit='return verification()' enctype='multipart/form-data'>
<h2>Ajout d'une news</h2>
<em>entrez le titre de votre news: </em><input type='text' name='titre' size='50' value=$titre><br><br>
<em>entrez le contenu de votre news: </em><p><textarea name='contenu' cols='80' rows='16'>$contenu</textarea></p>
<input type='checkbox' name='photo_ok'><em>Photo(optionnel):</em><input type='file' name='photo'/><br>
<input type='submit' class='button' name='ajout' value='Ajouter la news'>
</form>";


if($erreur!="") {echo "<font color='red' size='4px'>".$erreur."</font><br>"; } // on vérifie si il existe des erreurs
elseif($news!="") {echo "<font color='red' size='4px'>".$news."</font><br>"; }// on verifie si la news a bien été ajoutée et on affiche le message
echo"<a href=liste_news.php>Retour à la liste des news</a><br>";
echo"<a href=zone_admin.php>Retour au menu administration</a>";

?>
A voir également:

2 réponses

G4uthier Messages postés 131 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 7
15 mars 2008 à 13:06
up :p
0
Bonjour

echo $req_id; juste après $req_id=mysql_query(..) est un non-sens. mysql_query rend une ressource, pas un texte affichable.

As-tu fait un echo htmlspecialchars($titre) ; et htmlspecialchars($contenu) ; pour voir quelles valeurs tu passes réellement à ta requête ?
0
G4uthier Messages postés 131 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 23 juillet 2009 7
16 mars 2008 à 12:17
Non j'ai trouvé mon probleme: c'est le stripslashes qui me planté mon insertion de photo.
Mais je ne comprends pas pourquoi.
0