[PHP] probleme d'affichage de liens (news)
Résolu
jerryp
-
jerryp Messages postés 141 Date d'inscription Statut Membre Dernière intervention -
jerryp Messages postés 141 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai récement créé un site web pour un vendeur de voitures...
afin que ce dernier puisse mettre ses annonces en ligne, j'ai modifié un peu un script de news...
j'ai donc un formulaire sur une page "rediger_news.php" qui contient un champ pour le titre, et un champ pour le contenu... j'ai aussi ajouté un champ "input type="file"" afin de pouvoir ajouter des photos...
Ensuite, j'ai une page "administration.php" qui traite le formulaire et qui affiche l'annonce dans une page "annonces.php"... dans cette page administration, j'ai un script qui uploade les images et qui est sensé afficher un lien vers celles-ci dans l'annonce... Et c'est là que ça coince...
L'image est correctement uploadée, mais le lien qui s'affiche dans l'annonce est invalide et donne sur une page "forbidden"...
voici ma page "administration.php" :
Je sais que cette page est très mal organisée et difficile à lire... mais je n'ai pas vraiment le temps de m'en occuper maintenant... désolé...
et ma page "annonces.php" :
J'ai bien évidemment créé dans la base de données un champ id, un champ titre, un champ contenu et les différents champ image, image2, 3, 4, 5...
Le lien est incorrect, mais le chemin de l'image n'est même pas stocké dans la base de données...
J'ai déjà demandé dans plusieurs forums, mais je n'ai pas eu de réponse correcte... vous êtes mon dernier espoir...
Je vous remercie chaleureusement,
jerryp
j'ai récement créé un site web pour un vendeur de voitures...
afin que ce dernier puisse mettre ses annonces en ligne, j'ai modifié un peu un script de news...
j'ai donc un formulaire sur une page "rediger_news.php" qui contient un champ pour le titre, et un champ pour le contenu... j'ai aussi ajouté un champ "input type="file"" afin de pouvoir ajouter des photos...
Ensuite, j'ai une page "administration.php" qui traite le formulaire et qui affiche l'annonce dans une page "annonces.php"... dans cette page administration, j'ai un script qui uploade les images et qui est sensé afficher un lien vers celles-ci dans l'annonce... Et c'est là que ça coince...
L'image est correctement uploadée, mais le lien qui s'affiche dans l'annonce est invalide et donne sur une page "forbidden"...
voici ma page "administration.php" :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Balcicars Bütgenbach</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { background-image: url("../images/fond-francais-allemand.jpg"); } h2, th, td, h3 { text-align:center; } table { border-collapse:collapse; border:2px solid black; margin:auto; } th, td { border:1px solid black; } </style> </head> <body> <h2><a href="rediger_news.php">Ajouter une annonce</a></h2> <h3><a href="../annonces.php">Retour à la liste d'annonces</a></h3> <?php mysql_connect("localhost", "*****", "*****"); mysql_select_db("balcicars_be"); //----------------------------------------------------- // Vérification 1 : est-ce qu'on veut poster une news ? //----------------------------------------------------- if (isset($_POST['titre']) AND isset($_POST['contenu'])) { $titre = addslashes($_POST['titre']); $contenu = addslashes($_POST['contenu']); // On vérifie si c'est une modification de news ou pas if ($_POST['id_news'] == 0) { // Ce n'est pas une modification, on crée une nouvelle entrée dans la table mysql_query('INSERT INTO news(titre, contenu) VALUES(\''. $titre. '\', \''. $contenu.'\')')or die(mysql_error()); } else { // On protège la variable "id_news" pour éviter une faille SQL $_POST['id_news'] = addslashes($_POST['id_news']); // C'est une modification, on met juste à jour le titre et le contenu mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'")or die(mysql_error()); } } //-------------------------------------------------------- // Vérification 2 : est-ce qu'on veut supprimer une news ? //-------------------------------------------------------- if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news { // Alors on supprime la news correspondante // On protège la variable "id_news" pour éviter une faille SQL $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']); mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\''); } ?> <table><tr> <th>Modifier</th> <th>Supprimer</th> <th>Titre</th> </tr> <?php $retour = mysql_query('SELECT * FROM news ORDER BY id DESC')or die(mysql_error()); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <tr> <td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td> <td><?php echo '<a href="administration.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td> <td><?php echo stripslashes($donnees['titre']); ?></td> </tr> <?php } // Fin de la boucle qui liste les news ?> </table> <?php $i = 0; $poid_max_avatar = 10000000; $largeur_max_avatar = 100000000000000000; $longeur_max_avatar = 100000000000000000; //On définit les variables : $maxsize = $poid_max_avatar; //Poid de l'image $maxwidth = $largeur_max_avatar; //Largeur de l'image $maxheight = $longeur_max_avatar; //Longueur de l'image $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides if ($_FILES['photo1']['error'] > 0) { $i++; } if ($_FILES['photo1']['size'] > $maxsize) { $i++; } $image_sizes = getimagesize($_FILES['photo1']['tmp_name']); if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) { $i++; } $extension_upload = strtolower(substr( strrchr($_FILES['photo1']['name'], '.') ,1)); if (!in_array($extension_upload,$extensions_valides) ) { $i++; } if ($i == 0) { //On déplace l'avatar $avatar = time(); $nomavatar = str_replace(' ','',$avatar).".".$extension_upload; $avatar = "../upload-admin/".str_replace(' ','',$avatar).".".$extension_upload; move_uploaded_file($_FILES['photo1']['tmp_name'],$avatar); $sql = 'UPDATE news SET image="' . $nomavatar .'" WHERE ID=' . $donnees['id'] . ')'; mysql_query($sql) } ; ?> <?php $j = 0; $poid_max_avatar_2 = 10000000; $largeur_max_avatar_2 = 100000000000000000; $longeur_max_avatar_2 = 100000000000000000; //On définit les variables : $maxsize_2 = $poid_max_avatar_2; //Poid de l'image $maxwidth_2 = $largeur_max_avatar_2; //Largeur de l'image $maxheight_2 = $longeur_max_avatar_2; //Longueur de l'image $extensions_valides_2 = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides if ($_FILES['photo2']['error'] > 0) { $j++; } if ($_FILES['photo2']['size'] > $maxsize_2) { $j++; } $image_sizes_2 = getimagesize($_FILES['photo2']['tmp_name']); if ($image_sizes_2[0] > $maxwidth_2 OR $image_sizes_2[1] > $maxheight_2) { $j++; } $extension_upload_2 = strtolower(substr( strrchr($_FILES['photo2']['name'], '.') ,1)); if (!in_array($extension_upload_2,$extensions_valides_2) ) { $j++; } if ($j == 0) { //On déplace l'avatar $avatar_2 = time(); $nomavatar_2 = str_replace(' ','',$avatar_2).".".$extension_upload_2; $avatar_2 = "../upload-admin/".str_replace(' ','',$avatar_2).".".$extension_upload_2; move_uploaded_file($_FILES['photo2']['tmp_name'],$avatar_2); $sql2 = 'UPDATE news SET image2="' . $nomavatar_2 .'" WHERE ID=' . $donnees['id'] . ')'; mysql_query($sql2); } ?> <?php $k = 0; $poid_max_avatar_3 = 10000000; $largeur_max_avatar_3 = 100000000000000000; $longeur_max_avatar_3 = 100000000000000000; //On définit les variables : $maxsize_3 = $poid_max_avatar_3; //Poid de l'image $maxwidth_3 = $largeur_max_avatar_3; //Largeur de l'image $maxheight_3 = $longeur_max_avatar_3; //Longueur de l'image $extensions_valides_3 = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides if ($_FILES['photo3']['error'] > 0) { $k++; } if ($_FILES['photo3']['size'] > $maxsize_3) { $k++; } $image_sizes_3 = getimagesize($_FILES['photo3']['tmp_name']); if ($image_sizes_3[0] > $maxwidth_3 OR $image_sizes_3[1] > $maxheight_3) { $k++; } $extension_upload_3 = strtolower(substr( strrchr($_FILES['photo3']['name'], '.') ,1)); if (!in_array($extension_upload_3,$extensions_valides_3) ) { $k++; } if ($k == 0) { //On déplace l'avatar $avatar_3 = time(); $nomavatar_3 = str_replace(' ','',$avatar_3).".".$extension_upload_3; $avatar_3 = "../upload-admin/".str_replace(' ','',$avatar_3).".".$extension_upload_3; move_uploaded_file($_FILES['photo3']['tmp_name'],$avatar_3); $sql3 = 'UPDATE news SET image3="' . $nomavatar_3 .'" WHERE ID=' . $donnees['id'] . ')'; mysql_query($sql3); } ?> <?php $l = 0; $poid_max_avatar_4 = 10000000; $largeur_max_avatar_4 = 100000000000000000; $longeur_max_avatar_4 = 100000000000000000; //On définit les variables : $maxsize_4 = $poid_max_avatar_4; //Poid de l'image $maxwidth_4 = $largeur_max_avatar_4; //Largeur de l'image $maxheight_4 = $longeur_max_avatar_4; //Longueur de l'image $extensions_valides_4 = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides if ($_FILES['photo4']['error'] > 0) { $l++; } if ($_FILES['photo4']['size'] > $maxsize_4) { $l++; } $image_sizes_4 = getimagesize($_FILES['photol']['tmp_name']); if ($image_sizes_4[0] > $maxwidth_4 OR $image_sizes_4[1] > $maxheight_4) { $l++; } $extension_upload_4 = strtolower(substr( strrchr($_FILES['photo4']['name'], '.') ,1)); if (!in_array($extension_upload_4,$extensions_valides_4) ) { $l++; } if ($l == 0) { //On déplace l'avatar $avatar_4 = time(); $nomavatar_4 = str_replace(' ','',$avatar_4).".".$extension_upload_4; $avatar_4 = "../upload-admin/".str_replace(' ','',$avatar_4).".".$extension_upload_4; move_uploaded_file($_FILES['photo4']['tmp_name'],$avatar_4); $sql4 = 'UPDATE news SET image4="' . $nomavatar_4 .'" WHERE ID=' . $donnees['id'] . ')'; mysql_query($sql4); } ?> <?php $m = 0; $poid_max_avatar_5 = 10000000; $largeur_max_avatar_5 = 100000000000000000; $longeur_max_avatar_5 = 100000000000000000; //On définit les variables : $maxsize_5 = $poid_max_avatar_5; //Poid de l'image $maxwidth_5 = $largeur_max_avatar_5; //Largeur de l'image $maxheight_5 = $longeur_max_avatar_5; //Longueur de l'image $extensions_valides_5 = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides if ($_FILES['photo5']['error'] > 0) { $m++; } if ($_FILES['photo5']['size'] > $maxsize_5) { $m++; } $image_sizes_5 = getimagesize($_FILES['photo5']['tmp_name']); if ($image_sizes_5[0] > $maxwidth_5 OR $image_sizes_5[1] > $maxheight_5) { $m++; } $extension_upload_5 = strtolower(substr( strrchr($_FILES['photo5']['name'], '.') ,1)); if (!in_array($extension_upload_5,$extensions_valides_5) ) { $m++; } if ($m == 0) { //On déplace l'avatar $avatar_5 = time(); $nomavatar_5 = str_replace(' ','',$avatar_5).".".$extension_upload_5; $avatar_5 = "../upload-admin/".str_replace(' ','',$avatar_5).".".$extension_upload_5; move_uploaded_file($_FILES['photo5']['tmp_name'],$avatar_5); $sql5 = 'UPDATE news SET image5="' . $nomavatar_5 .'" WHERE ID=' . $donnees['id'] . ')'; mysql_query($sql5); } mysql_close(); ?> </body> </html>
Je sais que cette page est très mal organisée et difficile à lire... mais je n'ai pas vraiment le temps de m'en occuper maintenant... désolé...
et ma page "annonces.php" :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Balcicars Annonces Angebote</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> h1 { text-align:center; color: rgb(168, 0, 8); text-decoration: underline; } h3 { text-align: center; background-color: black; color: white; font-size: 0.9em; margin-bottom: 0px; } .news p { background-color:#CCCCCC; margin-top:0px; } .news { width:70%; margin:auto; } body { width: 800px; margin: auto; margin-top: 10px; margin-bottom: 10px; background-image: url("images/fond-francais-allemand.jpg"); } .retour-fr { color: rgb(43, 72, 123); font-weight: bold; } .retour-de { color: rgb(43, 72, 123); font-weight: bold; } a { color: red; font-weight: bold; } </style> </head> <body> <h1>Annonces.</h1> <h1>Angebote.</h1> <?php mysql_connect("localhost", "*****", "*****"); mysql_select_db("balcicars_be"); // On récupère les 5 dernières news $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 1000')or die(mysql_error()); while ($donnees = mysql_fetch_array($retour)) { ?> <div class="news"> <h3> <?php echo $donnees['titre']; ?> </h3> <p> <?php // On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />) $contenu = nl2br(stripslashes($donnees['contenu'])); echo $contenu; ?> <br/><br/> <?php echo '<a href="./upload-admin/'.$donnees['image'].'">Photo 1</a><br/>'; echo '<a href="./upload-admin/'.$donnees['image2'].'">Photo 2</a><br/>'; echo '<a href="./upload-admin/'.$donnees['image3'].'">Photo 3</a><br/>'; echo '<a href="./upload-admin/'.$donnees['image4'].'">Photo 4</a><br/>'; echo '<a href="./upload-admin/'.$donnees['image5'].'">Photo 5</a><br/>'; ?> <br/> </p> </div> <?php } // Fin de la boucle des news ?> <p class="retour-fr">Veuillez cliquer <a href="francais.html">ICI</a> pour retourner à la page d'acceuil en français.</p> <p class="retour-de">Klicken Sie bitte <a href="allemand.html">HIER</a> um zur Deutschen Hauptseite zu gelangen.</p> </body> </html>
J'ai bien évidemment créé dans la base de données un champ id, un champ titre, un champ contenu et les différents champ image, image2, 3, 4, 5...
Le lien est incorrect, mais le chemin de l'image n'est même pas stocké dans la base de données...
J'ai déjà demandé dans plusieurs forums, mais je n'ai pas eu de réponse correcte... vous êtes mon dernier espoir...
Je vous remercie chaleureusement,
jerryp
A voir également:
- [PHP] probleme d'affichage de liens (news)
- Vérificateur de liens - Guide
- Affichage double ecran - Guide
- Easy php - Télécharger - Divers Web & Internet
- Problème affichage fenêtre windows 10 - Guide
- Windows 11 affichage classique - Guide
182 réponses
Bonjour jerryp,
Helas, je ne connais que trop bien le procédé de la mise en concurrence... question emploi !
On commence par vous dire: Oh, quel beau profil, quel beau CV !
Puis, cela finit par: On a trouvé quelqu'un d'autre ! Au revoir ! (comprendre: Adieu !)
Si cela fonctionnait autrement, je ne serais pas en recherche d'emploi... |-(
Cordialement,
el_linwin
Helas, je ne connais que trop bien le procédé de la mise en concurrence... question emploi !
On commence par vous dire: Oh, quel beau profil, quel beau CV !
Puis, cela finit par: On a trouvé quelqu'un d'autre ! Au revoir ! (comprendre: Adieu !)
Si cela fonctionnait autrement, je ne serais pas en recherche d'emploi... |-(
Cordialement,
el_linwin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour jerryp,
A part ça, je planche actuellement sur le problème de suppression de news.
Le reste fonctionne bien (Ajout, modification) ?
Cordialement,
el_linwin
A part ça, je planche actuellement sur le problème de suppression de news.
Le reste fonctionne bien (Ajout, modification) ?
Cordialement,
el_linwin
Bonjour jerryp,
Voici une mouture où la suppression d'une news devrait fonctionner:
Cordialement,
el_linwin
Voici une mouture où la suppression d'une news devrait fonctionner:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Balcicars Bütgenbach</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { background-image: url("../images/fond-francais-allemand.jpg"); } h2, th, td, h3 { text-align:center; } table { border-collapse:collapse; border:2px solid black; margin:auto; } th, td { border:1px solid black; } </style> </head> <body> <h2><a href="rediger_news.php">Ajouter une annonce</a></h2> <h3><a href="../annonces.php">Retour à la liste d'annonces</a></h3> <?php $connexion_mysql=mysql_connect("localhost", "*****", "*****"); if ($connexion_mysql) { echo '<p>Test [Connexion au serveur MySQL] = OK</p>'; } else { echo '<p>Test [Connexion au serveur MySQL] = Erreur</p>'; } $connexion_base=mysql_select_db("balcicars_be"); if ($connexion_mysql) { echo '<p>Test [Connexion à la base de données] = OK</p>'; } else { echo '<p>Test [Connexion à la base de données] = Erreur</p>'; } // Variable d'opération $operation=0; // On vérifie si c'est une modification de news ou pas if ($_POST['id_news']==0) { echo '<p>Test = Création de news</p>'; $operation=1; } else { echo '<p>Test = Modification de news</p>'; $operation=2; } $si_titrecontenu=0; $si_image1=0; $si_image2=0; $si_image3=0; $si_image4=0; $si_image5=0; // On protège la variable "id_news" pour éviter une faille SQL $_POST['id_news']=addslashes($_POST['id_news']); //----------------------------------------------------- // Vérification 1 : est-ce qu'on veut poster une news ? //----------------------------------------------------- if (isset($_POST['titre']) && isset($_POST['contenu'])) { $titre = addslashes($_POST['titre']); $contenu = addslashes($_POST['contenu']); $si_titrecontenu=1; // On vérifie si c'est une modification de news ou pas if ($operation==1) { echo '<p>Test [Création de news] = Ajout titre & contenu</p>'; // Ce n'est pas une modification, on crée une nouvelle entrée dans la table } else { echo '<p>Test [Modification de news] = Modification titre & contenu</p>'; // C'est une modification, on met juste à jour le titre et le contenu } } else { echo '<p>Test = Pas de modification de titre et de contenu</p>'; } //-------------------------------------------------------- // Vérification 2 : est-ce qu'on veut supprimer une news ? //-------------------------------------------------------- if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news { echo '<p>Test [Suppression de news] = Vrai</p>'; // Alors on supprime la news correspondante // On protège la variable "id_news" pour éviter une faille SQL $_GET['supprimer_news']=addslashes($_GET['supprimer_news']); mysql_query("DELETE titre,contenu,image,image2,image3,image4,image5 FROM news WHERE id='".$_GET['supprimer_news']."'"); } else { echo '<p>Test [Suppression de news] = Faux</p>'; } ?> <table><tr> <th>Modifier</th> <th>Supprimer</th> <th>Titre</th> </tr> <?php $retour = mysql_query('SELECT * FROM news ORDER BY id DESC') or die(mysql_error()); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <tr> <td><?php echo '<a href="rediger_news.php?modifier_news=',$donnees['id'],'">'; ?>Modifier</a></td> <td><?php echo '<a href="administration.php?supprimer_news=',$donnees['id'],'">'; ?>Supprimer</a></td> <td><?php echo stripslashes($donnees['titre']); ?></td> </tr> <?php } // Fin de la boucle qui liste les news ?> </table> <?php // Définition des extensions valides (pour tout le bloc) $extensions_valides=array('jpg','jpeg','gif','png','bmp'); // Avatar 1 $i=0; $poid_max_avatar=10000000; $largeur_max_avatar=100000000000000000; $longeur_max_avatar=100000000000000000; //On définit les variables : $maxsize=$poid_max_avatar; //Poid de l'image $maxwidth=$largeur_max_avatar; //Largeur de l'image $maxheight=$longeur_max_avatar; //Longueur de l'image if ($_FILES['photo1']['error']>0) $i++; if ($_FILES['photo1']['size']>$maxsize) $i++; $image_sizes=getimagesize($_FILES['photo1']['tmp_name']); if ($image_sizes[0]>$maxwidth || $image_sizes[1]>$maxheight) $i++; $extension_upload=strtolower(substr(strrchr($_FILES['photo1']['name'],'.'),1)); if (!in_array($extension_upload,$extensions_valides)) $i++; if ($i==0) { //On déplace l'avatar $avatar='1'.time(); $nomavatar=str_replace(' ','',$avatar).".".$extension_upload; $avatar="../upload-admin/".str_replace(' ','',$avatar).".".$extension_upload; move_uploaded_file($_FILES['photo1']['tmp_name'],"$avatar"); $si_image1=1; } // Avatar 2 $j=0; $poid_max_avatar_2=10000000; $largeur_max_avatar_2=100000000000000000; $longeur_max_avatar_2=100000000000000000; //On définit les variables : $maxsize_2=$poid_max_avatar_2; //Poid de l'image $maxwidth_2=$largeur_max_avatar_2; //Largeur de l'image $maxheight_2=$longeur_max_avatar_2; //Longueur de l'image if ($_FILES['photo2']['error']>0) $j++; if ($_FILES['photo2']['size']>$maxsize_2) $j++; $image_sizes_2=getimagesize($_FILES['photo2']['tmp_name']); if ($image_sizes_2[0]>$maxwidth_2 || $image_sizes_2[1]>$maxheight_2) $j++; $extension_upload_2 = strtolower(substr(strrchr($_FILES['photo2']['name'],'.'),1)); if (!in_array($extension_upload_2,$extensions_valides)) $j++; if ($j==0) { //On déplace l'avatar $avatar_2='2'.time(); $nomavatar_2=str_replace(' ','',$avatar_2).".".$extension_upload_2; $avatar_2="../upload-admin/".str_replace(' ','',$avatar_2).".".$extension_upload_2; move_uploaded_file($_FILES['photo2']['tmp_name'],"$avatar_2"); $si_image2=1; } // Avatar 3 $k=0; $poid_max_avatar_3=10000000; $largeur_max_avatar_3=100000000000000000; $longeur_max_avatar_3=100000000000000000; //On définit les variables : $maxsize_3=$poid_max_avatar_3; //Poid de l'image $maxwidth_3=$largeur_max_avatar_3; //Largeur de l'image $maxheight_3=$longeur_max_avatar_3; //Longueur de l'image if ($_FILES['photo3']['error']>0) $k++; if ($_FILES['photo3']['size']>$maxsize_3) $k++; $image_sizes_3 = getimagesize($_FILES['photo3']['tmp_name']); if ($image_sizes_3[0]>$maxwidth_3 || $image_sizes_3[1]>$maxheight_3) $k++; $extension_upload_3=strtolower(substr(strrchr($_FILES['photo3']['name'],'.'),1)); if (!in_array($extension_upload_3,$extensions_valides)) $k++; if ($k==0) { //On déplace l'avatar $avatar_3='3'.time(); $nomavatar_3=str_replace(' ','',$avatar_3).".".$extension_upload_3; $avatar_3="../upload-admin/".str_replace(' ','',$avatar_3).".".$extension_upload_3; move_uploaded_file($_FILES['photo3']['tmp_name'],"$avatar_3"); $si_image3=1; } // Avatar 4 $l=0; $poid_max_avatar_4=10000000; $largeur_max_avatar_4=100000000000000000; $longeur_max_avatar_4=100000000000000000; //On définit les variables : $maxsize_4=$poid_max_avatar_4; //Poid de l'image $maxwidth_4=$largeur_max_avatar_4; //Largeur de l'image $maxheight_4=$longeur_max_avatar_4; //Longueur de l'image if ($_FILES['photo4']['error']>0) $l++; if ($_FILES['photo4']['size']>$maxsize_4) $l++; $image_sizes_4=getimagesize($_FILES['photo4']['tmp_name']); if ($image_sizes_4[0]>$maxwidth_4 || $image_sizes_4[1]>$maxheight_4) $l++; $extension_upload_4=strtolower(substr(strrchr($_FILES['photo4']['name'],'.'),1)); if (!in_array($extension_upload_4,$extensions_valides)) $l++; if ($l==0) { //On déplace l'avatar $avatar_4='4'.time(); $nomavatar_4=str_replace(' ','',$avatar_4).".".$extension_upload_4; $avatar_4="../upload-admin/".str_replace(' ','',$avatar_4).".".$extension_upload_4; move_uploaded_file($_FILES['photo4']['tmp_name'],"$avatar_4"); $si_image4=1; } // Avatar 5 $m = 0; $poid_max_avatar_5=10000000; $largeur_max_avatar_5=100000000000000000; $longeur_max_avatar_5=100000000000000000; //On définit les variables : $maxsize_5=$poid_max_avatar_5; //Poid de l'image $maxwidth_5=$largeur_max_avatar_5; //Largeur de l'image $maxheight_5=$longeur_max_avatar_5; //Longueur de l'image if ($_FILES['photo5']['error']>0) $m++; if ($_FILES['photo5']['size']>$maxsize_5) $m++; $image_sizes_5=getimagesize($_FILES['photo5']['tmp_name']); if ($image_sizes_5[0]>$maxwidth_5 || $image_sizes_5[1]>$maxheight_5) $m++; $extension_upload_5=strtolower(substr(strrchr($_FILES['photo5']['name'],'.'),1)); if (!in_array($extension_upload_5,$extensions_valides)) $m++; if ($m == 0) { //On déplace l'avatar $avatar_5='5'.time(); $nomavatar_5=str_replace(' ','',$avatar_5).".".$extension_upload_5; $avatar_5="../upload-admin/".str_replace(' ','',$avatar_5).".".$extension_upload_5; move_uploaded_file($_FILES['photo5']['tmp_name'],"$avatar_5"); $si_image5=1; } // Opérations de mise à jour de la BDD en une seule fois ! if ($operation==1) { // Création de news $sql="INSERT INTO news("; if ($si_titrecontenu==1) $sql.="titre,contenu"; if ($si_image1==1) $sql.=",image"; if ($si_image2==1) $sql.=",image2"; if ($si_image3==1) $sql.=",image3"; if ($si_image4==1) $sql.=",image4"; if ($si_image5==1) $sql.=",image5"; $sql.=") VALUES("; if ($si_titrecontenu==1) $sql.="'$titre','$contenu'"; if ($si_image1==1) $sql.=",'$nomavatar'"; if ($si_image2==1) $sql.=",'$nomavatar_2'"; if ($si_image3==1) $sql.=",'$nomavatar_3'"; if ($si_image4==1) $sql.=",'$nomavatar_4'"; if ($si_image5==1) $sql.=",'$nomavatar_5'"; $sql.=")"; mysql_query($sql) or die(mysql_error()); } if ($operation==2) { // Edition de news $sql="UDPATE news SET "; if ($si_titrecontenu==1) $sql.="titre='$titre',contenu='$contenu'"; if ($si_image1==1) $sql.=",image='$nomavatar'"; if ($si_image2==1) $sql.=",image2='$nomavatar_2'"; if ($si_image3==1) $sql.=",image3='$nomavatar_3'"; if ($si_image4==1) $sql.=",image4='$nomavatar_4'"; if ($si_image5==1) $sql.=",image5='$nomavatar_5'"; $sql.=" WHERE id='".$POST['id_news']."'"; mysql_query($sql) or die(mysql_error()); } // Fin de la session MySQL mysql_close(); // Fin du bloc PHP ?> </body> </html>
Cordialement,
el_linwin
Remoi
Ici
$sql="INSERT INTO news(";
if ($si_titrecontenu==1) $sql.="titre,contenu";
if ($si_image1==1) $sql.=",image";
Au risque de dire une connerie si $si_titrecontenu est différent de 1 mais que $si_image1 vaut 1 ça risque pas de générer un truc du genre : INSERT INTO news(,image ... ?
Notez la perfide virgule après la parenthèse T'Oh !
Ici
$sql="INSERT INTO news(";
if ($si_titrecontenu==1) $sql.="titre,contenu";
if ($si_image1==1) $sql.=",image";
Au risque de dire une connerie si $si_titrecontenu est différent de 1 mais que $si_image1 vaut 1 ça risque pas de générer un truc du genre : INSERT INTO news(,image ... ?
Notez la perfide virgule après la parenthèse T'Oh !
Bonjour à jerryp et PhP,
Voici le correctif d'administration.php:
Cordialement,
el_linwin
Voici le correctif d'administration.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Balcicars Bütgenbach</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { background-image: url("../images/fond-francais-allemand.jpg"); } h2, th, td, h3 { text-align:center; } table { border-collapse:collapse; border:2px solid black; margin:auto; } th, td { border:1px solid black; } </style> </head> <body> <h2><a href="rediger_news.php">Ajouter une annonce</a></h2> <h3><a href="../annonces.php">Retour à la liste d'annonces</a></h3> <?php $connexion_mysql=mysql_connect("localhost", "*****", "*****"); if ($connexion_mysql) { echo '<p>Test [Connexion au serveur MySQL] = OK</p>'; } else { echo '<p>Test [Connexion au serveur MySQL] = Erreur</p>'; } $connexion_base=mysql_select_db("balcicars_be"); if ($connexion_mysql) { echo '<p>Test [Connexion à la base de données] = OK</p>'; } else { echo '<p>Test [Connexion à la base de données] = Erreur</p>'; } // Variable d'opération $operation=0; // On vérifie si c'est une modification de news ou pas if ($_POST['id_news']==0) { echo '<p>Test = Création de news</p>'; $operation=1; } else { echo '<p>Test = Modification de news</p>'; $operation=2; } $si_titrecontenu=0; $si_image1=0; $si_image2=0; $si_image3=0; $si_image4=0; $si_image5=0; // On protège la variable "id_news" pour éviter une faille SQL $_POST['id_news']=addslashes($_POST['id_news']); //----------------------------------------------------- // Vérification 1 : est-ce qu'on veut poster une news ? //----------------------------------------------------- if (isset($_POST['titre']) && isset($_POST['contenu'])) { $titre = addslashes($_POST['titre']); $contenu = addslashes($_POST['contenu']); $si_titrecontenu=1; // On vérifie si c'est une modification de news ou pas if ($operation==1) { echo '<p>Test [Création de news] = Ajout titre & contenu</p>'; // Ce n'est pas une modification, on crée une nouvelle entrée dans la table } else { echo '<p>Test [Modification de news] = Modification titre & contenu</p>'; // C'est une modification, on met juste à jour le titre et le contenu } } else { echo '<p>Test = Pas de modification de titre et de contenu</p>'; } //-------------------------------------------------------- // Vérification 2 : est-ce qu'on veut supprimer une news ? //-------------------------------------------------------- if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news { echo '<p>Test [Suppression de news] = Vrai</p>'; // Alors on supprime la news correspondante // On protège la variable "id_news" pour éviter une faille SQL $_GET['supprimer_news']=addslashes($_GET['supprimer_news']); mysql_query("DELETE titre,contenu,image,image2,image3,image4,image5 FROM news WHERE id='".$_GET['supprimer_news']."'"); } else { echo '<p>Test [Suppression de news] = Faux</p>'; } ?> <table><tr> <th>Modifier</th> <th>Supprimer</th> <th>Titre</th> </tr> <?php $retour = mysql_query('SELECT * FROM news ORDER BY id DESC') or die(mysql_error()); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <tr> <td><?php echo '<a href="rediger_news.php?modifier_news=',$donnees['id'],'">'; ?>Modifier</a></td> <td><?php echo '<a href="administration.php?supprimer_news=',$donnees['id'],'">'; ?>Supprimer</a></td> <td><?php echo stripslashes($donnees['titre']); ?></td> </tr> <?php } // Fin de la boucle qui liste les news ?> </table> <?php // Définition des extensions valides (pour tout le bloc) $extensions_valides=array('jpg','jpeg','gif','png','bmp'); // Avatar 1 $i=0; $poid_max_avatar=10000000; $largeur_max_avatar=100000000000000000; $longeur_max_avatar=100000000000000000; //On définit les variables : $maxsize=$poid_max_avatar; //Poid de l'image $maxwidth=$largeur_max_avatar; //Largeur de l'image $maxheight=$longeur_max_avatar; //Longueur de l'image if ($_FILES['photo1']['error']>0) $i++; if ($_FILES['photo1']['size']>$maxsize) $i++; $image_sizes=getimagesize($_FILES['photo1']['tmp_name']); if ($image_sizes[0]>$maxwidth || $image_sizes[1]>$maxheight) $i++; $extension_upload=strtolower(substr(strrchr($_FILES['photo1']['name'],'.'),1)); if (!in_array($extension_upload,$extensions_valides)) $i++; if ($i==0) { //On déplace l'avatar $avatar='1'.time(); $nomavatar=str_replace(' ','',$avatar).".".$extension_upload; $avatar="../upload-admin/".str_replace(' ','',$avatar).".".$extension_upload; move_uploaded_file($_FILES['photo1']['tmp_name'],"$avatar"); $si_image1=1; } // Avatar 2 $j=0; $poid_max_avatar_2=10000000; $largeur_max_avatar_2=100000000000000000; $longeur_max_avatar_2=100000000000000000; //On définit les variables : $maxsize_2=$poid_max_avatar_2; //Poid de l'image $maxwidth_2=$largeur_max_avatar_2; //Largeur de l'image $maxheight_2=$longeur_max_avatar_2; //Longueur de l'image if ($_FILES['photo2']['error']>0) $j++; if ($_FILES['photo2']['size']>$maxsize_2) $j++; $image_sizes_2=getimagesize($_FILES['photo2']['tmp_name']); if ($image_sizes_2[0]>$maxwidth_2 || $image_sizes_2[1]>$maxheight_2) $j++; $extension_upload_2 = strtolower(substr(strrchr($_FILES['photo2']['name'],'.'),1)); if (!in_array($extension_upload_2,$extensions_valides)) $j++; if ($j==0) { //On déplace l'avatar $avatar_2='2'.time(); $nomavatar_2=str_replace(' ','',$avatar_2).".".$extension_upload_2; $avatar_2="../upload-admin/".str_replace(' ','',$avatar_2).".".$extension_upload_2; move_uploaded_file($_FILES['photo2']['tmp_name'],"$avatar_2"); $si_image2=1; } // Avatar 3 $k=0; $poid_max_avatar_3=10000000; $largeur_max_avatar_3=100000000000000000; $longeur_max_avatar_3=100000000000000000; //On définit les variables : $maxsize_3=$poid_max_avatar_3; //Poid de l'image $maxwidth_3=$largeur_max_avatar_3; //Largeur de l'image $maxheight_3=$longeur_max_avatar_3; //Longueur de l'image if ($_FILES['photo3']['error']>0) $k++; if ($_FILES['photo3']['size']>$maxsize_3) $k++; $image_sizes_3 = getimagesize($_FILES['photo3']['tmp_name']); if ($image_sizes_3[0]>$maxwidth_3 || $image_sizes_3[1]>$maxheight_3) $k++; $extension_upload_3=strtolower(substr(strrchr($_FILES['photo3']['name'],'.'),1)); if (!in_array($extension_upload_3,$extensions_valides)) $k++; if ($k==0) { //On déplace l'avatar $avatar_3='3'.time(); $nomavatar_3=str_replace(' ','',$avatar_3).".".$extension_upload_3; $avatar_3="../upload-admin/".str_replace(' ','',$avatar_3).".".$extension_upload_3; move_uploaded_file($_FILES['photo3']['tmp_name'],"$avatar_3"); $si_image3=1; } // Avatar 4 $l=0; $poid_max_avatar_4=10000000; $largeur_max_avatar_4=100000000000000000; $longeur_max_avatar_4=100000000000000000; //On définit les variables : $maxsize_4=$poid_max_avatar_4; //Poid de l'image $maxwidth_4=$largeur_max_avatar_4; //Largeur de l'image $maxheight_4=$longeur_max_avatar_4; //Longueur de l'image if ($_FILES['photo4']['error']>0) $l++; if ($_FILES['photo4']['size']>$maxsize_4) $l++; $image_sizes_4=getimagesize($_FILES['photo4']['tmp_name']); if ($image_sizes_4[0]>$maxwidth_4 || $image_sizes_4[1]>$maxheight_4) $l++; $extension_upload_4=strtolower(substr(strrchr($_FILES['photo4']['name'],'.'),1)); if (!in_array($extension_upload_4,$extensions_valides)) $l++; if ($l==0) { //On déplace l'avatar $avatar_4='4'.time(); $nomavatar_4=str_replace(' ','',$avatar_4).".".$extension_upload_4; $avatar_4="../upload-admin/".str_replace(' ','',$avatar_4).".".$extension_upload_4; move_uploaded_file($_FILES['photo4']['tmp_name'],"$avatar_4"); $si_image4=1; } // Avatar 5 $m = 0; $poid_max_avatar_5=10000000; $largeur_max_avatar_5=100000000000000000; $longeur_max_avatar_5=100000000000000000; //On définit les variables : $maxsize_5=$poid_max_avatar_5; //Poid de l'image $maxwidth_5=$largeur_max_avatar_5; //Largeur de l'image $maxheight_5=$longeur_max_avatar_5; //Longueur de l'image if ($_FILES['photo5']['error']>0) $m++; if ($_FILES['photo5']['size']>$maxsize_5) $m++; $image_sizes_5=getimagesize($_FILES['photo5']['tmp_name']); if ($image_sizes_5[0]>$maxwidth_5 || $image_sizes_5[1]>$maxheight_5) $m++; $extension_upload_5=strtolower(substr(strrchr($_FILES['photo5']['name'],'.'),1)); if (!in_array($extension_upload_5,$extensions_valides)) $m++; if ($m == 0) { //On déplace l'avatar $avatar_5='5'.time(); $nomavatar_5=str_replace(' ','',$avatar_5).".".$extension_upload_5; $avatar_5="../upload-admin/".str_replace(' ','',$avatar_5).".".$extension_upload_5; move_uploaded_file($_FILES['photo5']['tmp_name'],"$avatar_5"); $si_image5=1; } // Opérations de mise à jour de la BDD en une seule fois ! if ($operation==1) { // Création de news $sql=""; if ($si_titrecontenu==1) $sql.="titre,contenu"; if ($si_image1==1) {if ($sql!="") $sql.=",";$sql.="image";} if ($si_image2==1) {if ($sql!="") $sql.=",";$sql.="image2";} if ($si_image3==1) {if ($sql!="") $sql.=",";$sql.="image3";} if ($si_image4==1) {if ($sql!="") $sql.=",";$sql.="image4";} if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5";} $sql2=""; if ($si_titrecontenu==1) $sql2.="'$titre','$contenu'"; if ($si_image1==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar'";} if ($si_image2==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_2'";} if ($si_image3==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_3'";} if ($si_image4==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_4'";} if ($si_image5==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_5'";} mysql_query("INSERT INTO news($sql) VALUES($sql2)") or die(mysql_error()); } if ($operation==2) { // Edition de news $sql=""; if ($si_titrecontenu==1) $sql.="titre='$titre',contenu='$contenu'";} if ($si_image1==1) {if ($sql!="") $sql.=",";$sql.="image='$nomavatar'";} if ($si_image2==1) {if ($sql!="") $sql.=",";$sql.="image2='$nomavatar_2'";} if ($si_image3==1) {if ($sql!="") $sql.=",";$sql.="image3='$nomavatar_3'";} if ($si_image4==1) {if ($sql!="") $sql.=",";$sql.="image4='$nomavatar_4'";} if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5='$nomavatar_5'";} $sql.=" WHERE id='".$POST['id_news']."'"; mysql_query("UDPATE news SET $sql") or die(mysql_error()); } // Fin de la session MySQL mysql_close(); // Fin du bloc PHP ?> </body> </html>
Cordialement,
el_linwin
bonjour,
j'ai réessayé le code... la modification fonctionne tant que je ne modifie que le contenu... Et encore, pas correctement, car j'ai lors d'une modification, une nouvelle news, vide, qui se crée... Pareil lors de la création d'une news... j'ai une première news qui s'affiche avec tout le contenu, les images, et tout et tout, mais j'ai aussi une deuxième news, vide qui s'affiché également... Et lors de la modification, si j'ajoute des images, elles ne s'ajoutent pas dans ma news...
cordialement,
jerryp
EDIT : réactualisation un peu tardive, je n'ai essayé que la version non-corrigée du code...
j'ai réessayé le code... la modification fonctionne tant que je ne modifie que le contenu... Et encore, pas correctement, car j'ai lors d'une modification, une nouvelle news, vide, qui se crée... Pareil lors de la création d'une news... j'ai une première news qui s'affiche avec tout le contenu, les images, et tout et tout, mais j'ai aussi une deuxième news, vide qui s'affiché également... Et lors de la modification, si j'ajoute des images, elles ne s'ajoutent pas dans ma news...
cordialement,
jerryp
EDIT : réactualisation un peu tardive, je n'ai essayé que la version non-corrigée du code...
bonjour,
avec la version corrigée, j'ai une parse error ligne 299 :
cordialement,
jerryp
avec la version corrigée, j'ai une parse error ligne 299 :
Parse error: syntax error, unexpected '}' in /customers/balcicars.be/balcicars.be/httpd.www/admin/administration.php on line 299
cordialement,
jerryp
Bonjour jerryp,
Cela peut être du à un problème de concept.
Dans le script administration.php, ajouter une image à une news existant est qualifié de "création", non de "modification".
Car, dans le cadre d'une modification, l'appel MySQL est UPDATE, qui attend d'avoir déjà un contenu déjà présent dans la BDD pour agir. Alors, que dans le cadre d'une création, l'appel MySQL est INSERT, qui ajoute effectivement un contenu lorsqu'il n'y en a pas.
Peut-être faudrait-il faire la distinction dans les scripts entre:
- création d'une nouvelle news
- ajout dans une news existante
- modification d'un ou de plusieurs élément(s) déjà présent(s)
Alors que le système est actuellement basé sur:
- création d'une nouvelle news avec titre, contenu, avatars
- modification d'une news existante préalablement complétée (titre, contenu, avatars)
Cordialement,
el_linwin
Cela peut être du à un problème de concept.
Dans le script administration.php, ajouter une image à une news existant est qualifié de "création", non de "modification".
Car, dans le cadre d'une modification, l'appel MySQL est UPDATE, qui attend d'avoir déjà un contenu déjà présent dans la BDD pour agir. Alors, que dans le cadre d'une création, l'appel MySQL est INSERT, qui ajoute effectivement un contenu lorsqu'il n'y en a pas.
Peut-être faudrait-il faire la distinction dans les scripts entre:
- création d'une nouvelle news
- ajout dans une news existante
- modification d'un ou de plusieurs élément(s) déjà présent(s)
Alors que le système est actuellement basé sur:
- création d'une nouvelle news avec titre, contenu, avatars
- modification d'une news existante préalablement complétée (titre, contenu, avatars)
Cordialement,
el_linwin
bonjour,
je vois... mais ça implique énormément de modifications... Je suppose qu'il faut alors créer un nouveau script pour chaque action que l'on veut faire (ajout de news, suppression de news, ajout d'image)...
Et comme le disait PhP, on saurait le faire en POO ? mais là, je n'y connais absolument rien...
cordialement,
jerryp
je vois... mais ça implique énormément de modifications... Je suppose qu'il faut alors créer un nouveau script pour chaque action que l'on veut faire (ajout de news, suppression de news, ajout d'image)...
Et comme le disait PhP, on saurait le faire en POO ? mais là, je n'y connais absolument rien...
cordialement,
jerryp
Bonjour jerryp,
La modification ne serait pas très lourde dans l'absolu. Bien sûr, il va falloir coder.
Est-ce faisable en PHP Objet ? Sûrement, mais ce n'est pas ma tasse de thé, je suis limite "intégriste procédural". =D
Si vous souhaitez porter le tout en PHP Objet, PhP sera certainement plus qualifié que moi.
Ceci dit, cela vient vraisemblablement du script d'envoi des requêtes d'ajout ou de modification, qui considère comme modification ce qui reste avant tout un ajout (même si la news est déjà créée)...
Cordialement,
el_linwin
La modification ne serait pas très lourde dans l'absolu. Bien sûr, il va falloir coder.
Est-ce faisable en PHP Objet ? Sûrement, mais ce n'est pas ma tasse de thé, je suis limite "intégriste procédural". =D
Si vous souhaitez porter le tout en PHP Objet, PhP sera certainement plus qualifié que moi.
Ceci dit, cela vient vraisemblablement du script d'envoi des requêtes d'ajout ou de modification, qui considère comme modification ce qui reste avant tout un ajout (même si la news est déjà créée)...
Cordialement,
el_linwin
bonjour,
ah, ben si les modifications ne sont pas si lourdes que ça, autant rester en PHP "traditionnel" (comme le PhP :-D)...
je dois m'absenter durant quelques heures, mais je serais de retour ce soir pour continuer... donc ne vous étonnez pas si c'est "silence radio" :-D pendant quelques temps...
cordialement,
jerryp
ah, ben si les modifications ne sont pas si lourdes que ça, autant rester en PHP "traditionnel" (comme le PhP :-D)...
je dois m'absenter durant quelques heures, mais je serais de retour ce soir pour continuer... donc ne vous étonnez pas si c'est "silence radio" :-D pendant quelques temps...
cordialement,
jerryp
Le gros problème avec le couple PHP/MySQL c'est qu'on est souvent tenter de tout "fourrer" dans la même page : modification , création, suppression, visualisation etc avec une ou plusieurs variables indiquant quelle traitement effectuée et une série de if pour faire le tri.
Pourquoi ne pas séparer la logique du programme en plusieurs includes : un pour la création, un pour la modification etc
Ca reste "procédural" (el_linwin sera content ;-) ça ajoute à la clarté du code et ça ne remet pas en cause ce qui a déjà été écrit : on déporte juste le code ailleurs
Voici comment on peut découper ce qui se passe lorsqu'on appelle la page
1) Détermination du traitement à faire : Creation/Modification/Suppression/Visualisation etc
2) Actions à effectuer avant le traitement (facultatif)
3) Lancement du traitement : Creation/Modification/Suppression/Visualisation
4) Actions à effectuer après le traitement (facultatif) : souvent génération du code HTML à afficher en réponse au traitement
Je ne dis pas que c'est la panacée mais ça peut s'appliquer dans pas mal de cas
Pourquoi ne pas séparer la logique du programme en plusieurs includes : un pour la création, un pour la modification etc
Ca reste "procédural" (el_linwin sera content ;-) ça ajoute à la clarté du code et ça ne remet pas en cause ce qui a déjà été écrit : on déporte juste le code ailleurs
Voici comment on peut découper ce qui se passe lorsqu'on appelle la page
1) Détermination du traitement à faire : Creation/Modification/Suppression/Visualisation etc
2) Actions à effectuer avant le traitement (facultatif)
3) Lancement du traitement : Creation/Modification/Suppression/Visualisation
4) Actions à effectuer après le traitement (facultatif) : souvent génération du code HTML à afficher en réponse au traitement
Je ne dis pas que c'est la panacée mais ça peut s'appliquer dans pas mal de cas
Bonjour PhP,
Merci de comprendre mon goût pour le procédural ! =D
Séparer le code en plusieurs fichiers est faisable. Je suis d'accord.
Reste à voir, avant tout, comment corriger de façon adéquate le script PHP qui génère les requêtes d'ajout/modification/suppression.
Car je crois que le problème restant part de là...
Cordialement,
el_linwin
Merci de comprendre mon goût pour le procédural ! =D
Séparer le code en plusieurs fichiers est faisable. Je suis d'accord.
Reste à voir, avant tout, comment corriger de façon adéquate le script PHP qui génère les requêtes d'ajout/modification/suppression.
Car je crois que le problème restant part de là...
Cordialement,
el_linwin
Personnellement ayant aussi subit les affres du SQL j'ai fini par écrire un classe SQL qui règle tous les problèmes de UPDATE et INSERT avec MySQL (protection des données contre les attaques par injection SQL bien sûr, génération automatique des requêtes SQL, gestion des erreurs, de la connexion à la base tant qu'on y est) mais il est aussi possible de le faire avec ... des fonctions !
Donc faut commencer par ecrire une librairie
test.php :
mysql.lib.php :
C'est loin d'être complet mais je suis parti de là pour écrire ma classe.
Donc faut commencer par ecrire une librairie
test.php :
<?php include("mysql.lib.php"); $champs = array(); $id=12345; $date="01/01/2008"; $champs["id"]=$id; $champs["date"]=$date; $champs["nom"]="php"; $champs["valeur"]=99.99; echo sql_insert("table1", $champs); echo "<br />"; $whereClause="id='12345'"; echo sql_update("table1", $champs,"'",$whereClause); ?>
mysql.lib.php :
<?php // Ajoute les slashes si nécessaire à toutes les valeurs du tableau fields et retourne un nouveau tableau function array_addslashes($fields) { foreach($fields AS $key => $value) { $ret[$key] = addslashes($value); } return $ret; } // Génère une requête SQL insert function sql_insert($table, $fields, $delimiter="'") { // INSERT INTO [$table] // ([$key], ... ,[$key]) // VALUES ([$delimiter][$value][$delimiter],... ,[$delimiter][$value][$delimiter]) $glue = $delimiter.", ".$delimiter; $fields = array_addslashes($fields); $sql = "INSERT INTO ".$table; $sql .= " (".implode(", ", array_keys($fields)).")"; $sql .= " VALUES (".$delimiter.implode($glue,array_values($fields))."')"; return $sql; } // Génère une requête SQL update function sql_update($table, $fields, $delimiter="'", $where="") { $fields = array_addslashes($fields); // UPDATE [$table] SET [$key]=[$delimiter][$value][$delimiter], [$key]=[$delimiter][$value][$delimiter] etc $sql = "UPDATE ".$table." SET "; foreach($fields AS $key => $value) { $ret[] = $key."=".$delimiter.addslashes($value).$delimiter; } $sql .= implode(",", $ret); if ($where) { $sql .= " WHERE ".$where; } return $sql; } ?>
C'est loin d'être complet mais je suis parti de là pour écrire ma classe.
Bonjour à tous,
Voici la nouvelle mouture. Si mes estimations sont exactes, peu importe les mises à jour demandées, cela passera. Car j'ai constaté que la requête UPDATE était orthographiée avec WHERE id='indice'. Or, si id est un nombre, ce que je soupçonne, on devrait avoir une requête avec WHERE id=indice. C'est la modification que j'ai effectuée.
Cordialement,
el_linwin
Voici la nouvelle mouture. Si mes estimations sont exactes, peu importe les mises à jour demandées, cela passera. Car j'ai constaté que la requête UPDATE était orthographiée avec WHERE id='indice'. Or, si id est un nombre, ce que je soupçonne, on devrait avoir une requête avec WHERE id=indice. C'est la modification que j'ai effectuée.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Balcicars Bütgenbach</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { background-image: url("../images/fond-francais-allemand.jpg"); } h2, th, td, h3 { text-align:center; } table { border-collapse:collapse; border:2px solid black; margin:auto; } th, td { border:1px solid black; } </style> </head> <body> <h2><a href="rediger_news.php">Ajouter une annonce</a></h2> <h3><a href="../annonces.php">Retour à la liste d'annonces</a></h3> <?php $connexion_mysql=mysql_connect("localhost", "*****", "*****"); if ($connexion_mysql) { echo '<p>Test [Connexion au serveur MySQL] = OK</p>'; } else { echo '<p>Test [Connexion au serveur MySQL] = Erreur</p>'; } $connexion_base=mysql_select_db("balcicars_be"); if ($connexion_mysql) { echo '<p>Test [Connexion à la base de données] = OK</p>'; } else { echo '<p>Test [Connexion à la base de données] = Erreur</p>'; } // Variable d'opération $operation=0; // On vérifie si c'est une modification de news ou pas if ($_POST['id_news']==0) { echo '<p>Test = Création de news</p>'; $operation=1; } else { echo '<p>Test = Modification de news</p>'; $operation=2; } $si_titrecontenu=0; $si_image1=0; $si_image2=0; $si_image3=0; $si_image4=0; $si_image5=0; // On protège la variable "id_news" pour éviter une faille SQL $_POST['id_news']=addslashes($_POST['id_news']); //----------------------------------------------------- // Vérification 1 : est-ce qu'on veut poster une news ? //----------------------------------------------------- if (isset($_POST['titre']) && isset($_POST['contenu'])) { $titre = addslashes($_POST['titre']); $contenu = addslashes($_POST['contenu']); $si_titrecontenu=1; // On vérifie si c'est une modification de news ou pas if ($operation==1) { echo '<p>Test [Création de news] = Ajout titre & contenu</p>'; // Ce n'est pas une modification, on crée une nouvelle entrée dans la table } else { echo '<p>Test [Modification de news] = Modification titre & contenu</p>'; // C'est une modification, on met juste à jour le titre et le contenu } } else { echo '<p>Test = Pas de modification de titre et de contenu</p>'; } //-------------------------------------------------------- // Vérification 2 : est-ce qu'on veut supprimer une news ? //-------------------------------------------------------- if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news { echo '<p>Test [Suppression de news] = Vrai</p>'; // Alors on supprime la news correspondante // On protège la variable "id_news" pour éviter une faille SQL $_GET['supprimer_news']=addslashes($_GET['supprimer_news']); mysql_query("DELETE titre,contenu,image,image2,image3,image4,image5 FROM news WHERE id=".$_GET['supprimer_news']); } else { echo '<p>Test [Suppression de news] = Faux</p>'; } ?> <table><tr> <th>Modifier</th> <th>Supprimer</th> <th>Titre</th> </tr> <?php $retour = mysql_query('SELECT * FROM news ORDER BY id DESC') or die(mysql_error()); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <tr> <td><?php echo '<a href="rediger_news.php?modifier_news=',$donnees['id'],'">'; ?>Modifier</a></td> <td><?php echo '<a href="administration.php?supprimer_news=',$donnees['id'],'">'; ?>Supprimer</a></td> <td><?php echo stripslashes($donnees['titre']); ?></td> </tr> <?php } // Fin de la boucle qui liste les news ?> </table> <?php // Définition des extensions valides (pour tout le bloc) $extensions_valides=array('jpg','jpeg','gif','png','bmp'); // Avatar 1 $i=0; $poid_max_avatar=10000000; $largeur_max_avatar=100000000000000000; $longeur_max_avatar=100000000000000000; //On définit les variables : $maxsize=$poid_max_avatar; //Poid de l'image $maxwidth=$largeur_max_avatar; //Largeur de l'image $maxheight=$longeur_max_avatar; //Longueur de l'image if ($_FILES['photo1']['error']>0) $i++; if ($_FILES['photo1']['size']>$maxsize) $i++; $image_sizes=getimagesize($_FILES['photo1']['tmp_name']); if ($image_sizes[0]>$maxwidth || $image_sizes[1]>$maxheight) $i++; $extension_upload=strtolower(substr(strrchr($_FILES['photo1']['name'],'.'),1)); if (!in_array($extension_upload,$extensions_valides)) $i++; if ($i==0) { //On déplace l'avatar $avatar='1'.time(); $nomavatar=str_replace(' ','',$avatar).".".$extension_upload; $avatar="../upload-admin/".str_replace(' ','',$avatar).".".$extension_upload; move_uploaded_file($_FILES['photo1']['tmp_name'],"$avatar"); $si_image1=1; } // Avatar 2 $j=0; $poid_max_avatar_2=10000000; $largeur_max_avatar_2=100000000000000000; $longeur_max_avatar_2=100000000000000000; //On définit les variables : $maxsize_2=$poid_max_avatar_2; //Poid de l'image $maxwidth_2=$largeur_max_avatar_2; //Largeur de l'image $maxheight_2=$longeur_max_avatar_2; //Longueur de l'image if ($_FILES['photo2']['error']>0) $j++; if ($_FILES['photo2']['size']>$maxsize_2) $j++; $image_sizes_2=getimagesize($_FILES['photo2']['tmp_name']); if ($image_sizes_2[0]>$maxwidth_2 || $image_sizes_2[1]>$maxheight_2) $j++; $extension_upload_2 = strtolower(substr(strrchr($_FILES['photo2']['name'],'.'),1)); if (!in_array($extension_upload_2,$extensions_valides)) $j++; if ($j==0) { //On déplace l'avatar $avatar_2='2'.time(); $nomavatar_2=str_replace(' ','',$avatar_2).".".$extension_upload_2; $avatar_2="../upload-admin/".str_replace(' ','',$avatar_2).".".$extension_upload_2; move_uploaded_file($_FILES['photo2']['tmp_name'],"$avatar_2"); $si_image2=1; } // Avatar 3 $k=0; $poid_max_avatar_3=10000000; $largeur_max_avatar_3=100000000000000000; $longeur_max_avatar_3=100000000000000000; //On définit les variables : $maxsize_3=$poid_max_avatar_3; //Poid de l'image $maxwidth_3=$largeur_max_avatar_3; //Largeur de l'image $maxheight_3=$longeur_max_avatar_3; //Longueur de l'image if ($_FILES['photo3']['error']>0) $k++; if ($_FILES['photo3']['size']>$maxsize_3) $k++; $image_sizes_3 = getimagesize($_FILES['photo3']['tmp_name']); if ($image_sizes_3[0]>$maxwidth_3 || $image_sizes_3[1]>$maxheight_3) $k++; $extension_upload_3=strtolower(substr(strrchr($_FILES['photo3']['name'],'.'),1)); if (!in_array($extension_upload_3,$extensions_valides)) $k++; if ($k==0) { //On déplace l'avatar $avatar_3='3'.time(); $nomavatar_3=str_replace(' ','',$avatar_3).".".$extension_upload_3; $avatar_3="../upload-admin/".str_replace(' ','',$avatar_3).".".$extension_upload_3; move_uploaded_file($_FILES['photo3']['tmp_name'],"$avatar_3"); $si_image3=1; } // Avatar 4 $l=0; $poid_max_avatar_4=10000000; $largeur_max_avatar_4=100000000000000000; $longeur_max_avatar_4=100000000000000000; //On définit les variables : $maxsize_4=$poid_max_avatar_4; //Poid de l'image $maxwidth_4=$largeur_max_avatar_4; //Largeur de l'image $maxheight_4=$longeur_max_avatar_4; //Longueur de l'image if ($_FILES['photo4']['error']>0) $l++; if ($_FILES['photo4']['size']>$maxsize_4) $l++; $image_sizes_4=getimagesize($_FILES['photo4']['tmp_name']); if ($image_sizes_4[0]>$maxwidth_4 || $image_sizes_4[1]>$maxheight_4) $l++; $extension_upload_4=strtolower(substr(strrchr($_FILES['photo4']['name'],'.'),1)); if (!in_array($extension_upload_4,$extensions_valides)) $l++; if ($l==0) { //On déplace l'avatar $avatar_4='4'.time(); $nomavatar_4=str_replace(' ','',$avatar_4).".".$extension_upload_4; $avatar_4="../upload-admin/".str_replace(' ','',$avatar_4).".".$extension_upload_4; move_uploaded_file($_FILES['photo4']['tmp_name'],"$avatar_4"); $si_image4=1; } // Avatar 5 $m = 0; $poid_max_avatar_5=10000000; $largeur_max_avatar_5=100000000000000000; $longeur_max_avatar_5=100000000000000000; //On définit les variables : $maxsize_5=$poid_max_avatar_5; //Poid de l'image $maxwidth_5=$largeur_max_avatar_5; //Largeur de l'image $maxheight_5=$longeur_max_avatar_5; //Longueur de l'image if ($_FILES['photo5']['error']>0) $m++; if ($_FILES['photo5']['size']>$maxsize_5) $m++; $image_sizes_5=getimagesize($_FILES['photo5']['tmp_name']); if ($image_sizes_5[0]>$maxwidth_5 || $image_sizes_5[1]>$maxheight_5) $m++; $extension_upload_5=strtolower(substr(strrchr($_FILES['photo5']['name'],'.'),1)); if (!in_array($extension_upload_5,$extensions_valides)) $m++; if ($m == 0) { //On déplace l'avatar $avatar_5='5'.time(); $nomavatar_5=str_replace(' ','',$avatar_5).".".$extension_upload_5; $avatar_5="../upload-admin/".str_replace(' ','',$avatar_5).".".$extension_upload_5; move_uploaded_file($_FILES['photo5']['tmp_name'],"$avatar_5"); $si_image5=1; } // Opérations de mise à jour de la BDD en une seule fois ! if ($operation==1) { // Création de news $sql=""; if ($si_titrecontenu==1) $sql.="titre,contenu"; if ($si_image1==1) {if ($sql!="") $sql.=",";$sql.="image";} if ($si_image2==1) {if ($sql!="") $sql.=",";$sql.="image2";} if ($si_image3==1) {if ($sql!="") $sql.=",";$sql.="image3";} if ($si_image4==1) {if ($sql!="") $sql.=",";$sql.="image4";} if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5";} $sql2=""; if ($si_titrecontenu==1) $sql2.="'$titre','$contenu'"; if ($si_image1==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar'";} if ($si_image2==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_2'";} if ($si_image3==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_3'";} if ($si_image4==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_4'";} if ($si_image5==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_5'";} mysql_query("INSERT INTO news($sql) VALUES($sql2)") or die(mysql_error()); } if ($operation==2) { // Edition de news $sql=""; if ($si_titrecontenu==1) {$sql.="titre='$titre',contenu='$contenu'";} if ($si_image1==1) {if ($sql!="") $sql.=",";$sql.="image='$nomavatar'";} if ($si_image2==1) {if ($sql!="") $sql.=",";$sql.="image2='$nomavatar_2'";} if ($si_image3==1) {if ($sql!="") $sql.=",";$sql.="image3='$nomavatar_3'";} if ($si_image4==1) {if ($sql!="") $sql.=",";$sql.="image4='$nomavatar_4'";} if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5='$nomavatar_5'";} $sql.=" WHERE id=".$POST['id_news']; mysql_query("UDPATE news SET $sql") or die(mysql_error()); } // Fin de la session MySQL mysql_close(); // Fin du bloc PHP ?> </body> </html>
Cordialement,
el_linwin
Remplace
par
en SQL le DELETE n'attend aucun nom du champ : comme cette instruction supprime
des enregistements complets (et pas des champs isolés) spécifier le nom des champs n'a pas de sens
je crois même que ça plante ...
mysql_query("DELETE titre,contenu,image,image2,image3,image4,image5 FROM news WHERE id=".$_GET['supprimer_news']);
par
mysql_query("DELETE FROM news WHERE id=".$_GET['supprimer_news']);
en SQL le DELETE n'attend aucun nom du champ : comme cette instruction supprime
des enregistements complets (et pas des champs isolés) spécifier le nom des champs n'a pas de sens
je crois même que ça plante ...
Bonjour PhP,
J'avais écrit ça ainsi car je n'avais pas vu le problème de type avec "WHERE id=".
A présent, ça n'a effectivement plus lieu d'être.
Voici donc la version avec le DELETE FROM réécrit:
Cordialement,
el_linwin
J'avais écrit ça ainsi car je n'avais pas vu le problème de type avec "WHERE id=".
A présent, ça n'a effectivement plus lieu d'être.
Voici donc la version avec le DELETE FROM réécrit:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Balcicars Bütgenbach</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { background-image: url("../images/fond-francais-allemand.jpg"); } h2, th, td, h3 { text-align:center; } table { border-collapse:collapse; border:2px solid black; margin:auto; } th, td { border:1px solid black; } </style> </head> <body> <h2><a href="rediger_news.php">Ajouter une annonce</a></h2> <h3><a href="../annonces.php">Retour à la liste d'annonces</a></h3> <?php $connexion_mysql=mysql_connect("localhost", "*****", "*****"); if ($connexion_mysql) { echo '<p>Test [Connexion au serveur MySQL] = OK</p>'; } else { echo '<p>Test [Connexion au serveur MySQL] = Erreur</p>'; } $connexion_base=mysql_select_db("balcicars_be"); if ($connexion_mysql) { echo '<p>Test [Connexion à la base de données] = OK</p>'; } else { echo '<p>Test [Connexion à la base de données] = Erreur</p>'; } // Variable d'opération $operation=0; // On vérifie si c'est une modification de news ou pas if ($_POST['id_news']==0) { echo '<p>Test = Création de news</p>'; $operation=1; } else { echo '<p>Test = Modification de news</p>'; $operation=2; } $si_titrecontenu=0; $si_image1=0; $si_image2=0; $si_image3=0; $si_image4=0; $si_image5=0; // On protège la variable "id_news" pour éviter une faille SQL $_POST['id_news']=addslashes($_POST['id_news']); //----------------------------------------------------- // Vérification 1 : est-ce qu'on veut poster une news ? //----------------------------------------------------- if (isset($_POST['titre']) && isset($_POST['contenu'])) { $titre = addslashes($_POST['titre']); $contenu = addslashes($_POST['contenu']); $si_titrecontenu=1; // On vérifie si c'est une modification de news ou pas if ($operation==1) { echo '<p>Test [Création de news] = Ajout titre & contenu</p>'; // Ce n'est pas une modification, on crée une nouvelle entrée dans la table } else { echo '<p>Test [Modification de news] = Modification titre & contenu</p>'; // C'est une modification, on met juste à jour le titre et le contenu } } else { echo '<p>Test = Pas de modification de titre et de contenu</p>'; } //-------------------------------------------------------- // Vérification 2 : est-ce qu'on veut supprimer une news ? //-------------------------------------------------------- if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news { echo '<p>Test [Suppression de news] = Vrai</p>'; // Alors on supprime la news correspondante // On protège la variable "id_news" pour éviter une faille SQL $_GET['supprimer_news']=addslashes($_GET['supprimer_news']); mysql_query("DELETE FROM news WHERE id=".$_GET['supprimer_news']); } else { echo '<p>Test [Suppression de news] = Faux</p>'; } ?> <table><tr> <th>Modifier</th> <th>Supprimer</th> <th>Titre</th> </tr> <?php $retour = mysql_query('SELECT * FROM news ORDER BY id DESC') or die(mysql_error()); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <tr> <td><?php echo '<a href="rediger_news.php?modifier_news=',$donnees['id'],'">'; ?>Modifier</a></td> <td><?php echo '<a href="administration.php?supprimer_news=',$donnees['id'],'">'; ?>Supprimer</a></td> <td><?php echo stripslashes($donnees['titre']); ?></td> </tr> <?php } // Fin de la boucle qui liste les news ?> </table> <?php // Définition des extensions valides (pour tout le bloc) $extensions_valides=array('jpg','jpeg','gif','png','bmp'); // Avatar 1 $i=0; $poid_max_avatar=10000000; $largeur_max_avatar=100000000000000000; $longeur_max_avatar=100000000000000000; //On définit les variables : $maxsize=$poid_max_avatar; //Poid de l'image $maxwidth=$largeur_max_avatar; //Largeur de l'image $maxheight=$longeur_max_avatar; //Longueur de l'image if ($_FILES['photo1']['error']>0) $i++; if ($_FILES['photo1']['size']>$maxsize) $i++; $image_sizes=getimagesize($_FILES['photo1']['tmp_name']); if ($image_sizes[0]>$maxwidth || $image_sizes[1]>$maxheight) $i++; $extension_upload=strtolower(substr(strrchr($_FILES['photo1']['name'],'.'),1)); if (!in_array($extension_upload,$extensions_valides)) $i++; if ($i==0) { //On déplace l'avatar $avatar='1'.time(); $nomavatar=str_replace(' ','',$avatar).".".$extension_upload; $avatar="../upload-admin/".str_replace(' ','',$avatar).".".$extension_upload; move_uploaded_file($_FILES['photo1']['tmp_name'],"$avatar"); $si_image1=1; } // Avatar 2 $j=0; $poid_max_avatar_2=10000000; $largeur_max_avatar_2=100000000000000000; $longeur_max_avatar_2=100000000000000000; //On définit les variables : $maxsize_2=$poid_max_avatar_2; //Poid de l'image $maxwidth_2=$largeur_max_avatar_2; //Largeur de l'image $maxheight_2=$longeur_max_avatar_2; //Longueur de l'image if ($_FILES['photo2']['error']>0) $j++; if ($_FILES['photo2']['size']>$maxsize_2) $j++; $image_sizes_2=getimagesize($_FILES['photo2']['tmp_name']); if ($image_sizes_2[0]>$maxwidth_2 || $image_sizes_2[1]>$maxheight_2) $j++; $extension_upload_2 = strtolower(substr(strrchr($_FILES['photo2']['name'],'.'),1)); if (!in_array($extension_upload_2,$extensions_valides)) $j++; if ($j==0) { //On déplace l'avatar $avatar_2='2'.time(); $nomavatar_2=str_replace(' ','',$avatar_2).".".$extension_upload_2; $avatar_2="../upload-admin/".str_replace(' ','',$avatar_2).".".$extension_upload_2; move_uploaded_file($_FILES['photo2']['tmp_name'],"$avatar_2"); $si_image2=1; } // Avatar 3 $k=0; $poid_max_avatar_3=10000000; $largeur_max_avatar_3=100000000000000000; $longeur_max_avatar_3=100000000000000000; //On définit les variables : $maxsize_3=$poid_max_avatar_3; //Poid de l'image $maxwidth_3=$largeur_max_avatar_3; //Largeur de l'image $maxheight_3=$longeur_max_avatar_3; //Longueur de l'image if ($_FILES['photo3']['error']>0) $k++; if ($_FILES['photo3']['size']>$maxsize_3) $k++; $image_sizes_3 = getimagesize($_FILES['photo3']['tmp_name']); if ($image_sizes_3[0]>$maxwidth_3 || $image_sizes_3[1]>$maxheight_3) $k++; $extension_upload_3=strtolower(substr(strrchr($_FILES['photo3']['name'],'.'),1)); if (!in_array($extension_upload_3,$extensions_valides)) $k++; if ($k==0) { //On déplace l'avatar $avatar_3='3'.time(); $nomavatar_3=str_replace(' ','',$avatar_3).".".$extension_upload_3; $avatar_3="../upload-admin/".str_replace(' ','',$avatar_3).".".$extension_upload_3; move_uploaded_file($_FILES['photo3']['tmp_name'],"$avatar_3"); $si_image3=1; } // Avatar 4 $l=0; $poid_max_avatar_4=10000000; $largeur_max_avatar_4=100000000000000000; $longeur_max_avatar_4=100000000000000000; //On définit les variables : $maxsize_4=$poid_max_avatar_4; //Poid de l'image $maxwidth_4=$largeur_max_avatar_4; //Largeur de l'image $maxheight_4=$longeur_max_avatar_4; //Longueur de l'image if ($_FILES['photo4']['error']>0) $l++; if ($_FILES['photo4']['size']>$maxsize_4) $l++; $image_sizes_4=getimagesize($_FILES['photo4']['tmp_name']); if ($image_sizes_4[0]>$maxwidth_4 || $image_sizes_4[1]>$maxheight_4) $l++; $extension_upload_4=strtolower(substr(strrchr($_FILES['photo4']['name'],'.'),1)); if (!in_array($extension_upload_4,$extensions_valides)) $l++; if ($l==0) { //On déplace l'avatar $avatar_4='4'.time(); $nomavatar_4=str_replace(' ','',$avatar_4).".".$extension_upload_4; $avatar_4="../upload-admin/".str_replace(' ','',$avatar_4).".".$extension_upload_4; move_uploaded_file($_FILES['photo4']['tmp_name'],"$avatar_4"); $si_image4=1; } // Avatar 5 $m = 0; $poid_max_avatar_5=10000000; $largeur_max_avatar_5=100000000000000000; $longeur_max_avatar_5=100000000000000000; //On définit les variables : $maxsize_5=$poid_max_avatar_5; //Poid de l'image $maxwidth_5=$largeur_max_avatar_5; //Largeur de l'image $maxheight_5=$longeur_max_avatar_5; //Longueur de l'image if ($_FILES['photo5']['error']>0) $m++; if ($_FILES['photo5']['size']>$maxsize_5) $m++; $image_sizes_5=getimagesize($_FILES['photo5']['tmp_name']); if ($image_sizes_5[0]>$maxwidth_5 || $image_sizes_5[1]>$maxheight_5) $m++; $extension_upload_5=strtolower(substr(strrchr($_FILES['photo5']['name'],'.'),1)); if (!in_array($extension_upload_5,$extensions_valides)) $m++; if ($m == 0) { //On déplace l'avatar $avatar_5='5'.time(); $nomavatar_5=str_replace(' ','',$avatar_5).".".$extension_upload_5; $avatar_5="../upload-admin/".str_replace(' ','',$avatar_5).".".$extension_upload_5; move_uploaded_file($_FILES['photo5']['tmp_name'],"$avatar_5"); $si_image5=1; } // Opérations de mise à jour de la BDD en une seule fois ! if ($operation==1) { // Création de news $sql=""; if ($si_titrecontenu==1) $sql.="titre,contenu"; if ($si_image1==1) {if ($sql!="") $sql.=",";$sql.="image";} if ($si_image2==1) {if ($sql!="") $sql.=",";$sql.="image2";} if ($si_image3==1) {if ($sql!="") $sql.=",";$sql.="image3";} if ($si_image4==1) {if ($sql!="") $sql.=",";$sql.="image4";} if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5";} $sql2=""; if ($si_titrecontenu==1) $sql2.="'$titre','$contenu'"; if ($si_image1==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar'";} if ($si_image2==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_2'";} if ($si_image3==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_3'";} if ($si_image4==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_4'";} if ($si_image5==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_5'";} mysql_query("INSERT INTO news($sql) VALUES($sql2)") or die(mysql_error()); } if ($operation==2) { // Edition de news $sql=""; if ($si_titrecontenu==1) {$sql.="titre='$titre',contenu='$contenu'";} if ($si_image1==1) {if ($sql!="") $sql.=",";$sql.="image='$nomavatar'";} if ($si_image2==1) {if ($sql!="") $sql.=",";$sql.="image2='$nomavatar_2'";} if ($si_image3==1) {if ($sql!="") $sql.=",";$sql.="image3='$nomavatar_3'";} if ($si_image4==1) {if ($sql!="") $sql.=",";$sql.="image4='$nomavatar_4'";} if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5='$nomavatar_5'";} $sql.=" WHERE id=".$POST['id_news']; mysql_query("UDPATE news SET $sql") or die(mysql_error()); } // Fin de la session MySQL mysql_close(); // Fin du bloc PHP ?> </body> </html>
Cordialement,
el_linwin
bonsoir,
je commence avec le bouton "supprimer"... il me supprime toujours le contenu et le titre et les images, mais pas la news en elle même de la BDD.
Avec le modification de news, elle se fait, mais j'ai quand même encore une news supplémentaire VIDE qui se crée... pareil lors de l'ajout d'une news... j'ai une news avec le contenu, et une avec rien...
cordialement,
jerryp
je commence avec le bouton "supprimer"... il me supprime toujours le contenu et le titre et les images, mais pas la news en elle même de la BDD.
Avec le modification de news, elle se fait, mais j'ai quand même encore une news supplémentaire VIDE qui se crée... pareil lors de l'ajout d'une news... j'ai une news avec le contenu, et une avec rien...
cordialement,
jerryp
Bonsoir jerryp,
En ce cas, j'ai deux questions.
Pour la première, mon niveau de MySQL ne me permet pas d'y répondre:
Est-il normal que le fichier rediger_news.php, qui effectue une connexion à la BDD, ne possède pas d'instruction mysql_close(); ? Cela ne provoque-t'il pas un problème de mise à jour de la BDD par rapport aux opérations effectuées entre-temps ?
Et, deuxième question, toujours concernant rediger_news.php (ligne 44): est-il normal qu'il y ait la ligne $photo = stripslashes($donnees['photo']); sachant que $photo n'est pas employée, et que 'photo' ne semble pas faire partie de la base de données (alors que image,image2,image3,image4 et image5, oui) ?
En espérant que vous puissiez éclairer ma lanterne, y compris PhP, s'il le souhaite, bien entendu ;-)
Cordialement,
el_linwin
En ce cas, j'ai deux questions.
Pour la première, mon niveau de MySQL ne me permet pas d'y répondre:
Est-il normal que le fichier rediger_news.php, qui effectue une connexion à la BDD, ne possède pas d'instruction mysql_close(); ? Cela ne provoque-t'il pas un problème de mise à jour de la BDD par rapport aux opérations effectuées entre-temps ?
Et, deuxième question, toujours concernant rediger_news.php (ligne 44): est-il normal qu'il y ait la ligne $photo = stripslashes($donnees['photo']); sachant que $photo n'est pas employée, et que 'photo' ne semble pas faire partie de la base de données (alors que image,image2,image3,image4 et image5, oui) ?
En espérant que vous puissiez éclairer ma lanterne, y compris PhP, s'il le souhaite, bien entendu ;-)
Cordialement,
el_linwin
bonsoir,
pour le mysql_close(), c'est une simple négligeance de ma part... ce n'est en effet pas normal que celui-ci soit absent...
et pour la variable photo, ce doit être le vestige d'un code que l'on m'avait envoyé sur un autre forum... Car j'avais, avant de venir sur celui-ci, demandé de l'aide sur deux autres forums (demande infructueuse d'ailleurs, car l'un à eu un problème de serveur, donc, adieu les messages de mon topic... et sur l'autre, personne n'a voulu m'aider en raison de mon code assez "désorganisé"), je ne voispas non plus ce que ça fait là...
cordialement,
jerryp
pour le mysql_close(), c'est une simple négligeance de ma part... ce n'est en effet pas normal que celui-ci soit absent...
et pour la variable photo, ce doit être le vestige d'un code que l'on m'avait envoyé sur un autre forum... Car j'avais, avant de venir sur celui-ci, demandé de l'aide sur deux autres forums (demande infructueuse d'ailleurs, car l'un à eu un problème de serveur, donc, adieu les messages de mon topic... et sur l'autre, personne n'a voulu m'aider en raison de mon code assez "désorganisé"), je ne voispas non plus ce que ça fait là...
cordialement,
jerryp