[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
Bonsoir jerryp,
Voici donc la nouvelle mouture de rediger_news.php:
Cordialement,
el_linwin
Voici donc la nouvelle mouture de rediger_news.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>Rédiger une annonce</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> h3, form { text-align:center; } body { background-image: url("../images/fond-francais-allemand.jpg"); } .titre { color: rgb(43, 72, 123); font-weight: bold; } .contenu { color: rgb(43, 72, 123); font-weight: bold; } </style> </head> <body> <h3><a href="../annonces.php">Retour à la liste des annonces</a></h3> <?php mysql_connect("localhost", "*****", "*****"); mysql_select_db("balcicars_be"); if (isset($_GET['modifier_news'])) // Si on demande de modifier une news { // On protège la variable "modifier_news" pour éviter une faille SQL $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news'])); // On récupère les infos de la news correspondante $retour = mysql_query('SELECT * FROM news WHERE id=' . $_GET['modifier_news']) or die(mysql_error()); $donnees = mysql_fetch_array($retour); // On place le titre et le contenu dans des variables simples $titre = stripslashes($donnees['titre']); $contenu = stripslashes($donnees['contenu']); //$photo = stripslashes($donnees['photo']); $id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification mysql_close(); } else // C'est qu'on rédige une nouvelle news { // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news $titre = ''; $contenu = ''; $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification } ?> <form action="administration.php" method="post" enctype="multipart/form-data"> <p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p> <p> Contenu :<br /> <textarea name="contenu" cols="50" rows="10"> <?php echo $contenu; echo "Marque : "; echo "Type : "; echo "Année : "; echo "Cylindrée : "; echo "Puissance : "; echo "Kilomètrage : "; echo "Prix : "; echo "Options : "; ?> </textarea><br/><br/> Photo (Max 10Mo) : <input type="file" name="photo1"/><br/> Photo (Max 10Mo) : <input type="file" name="photo2"/><br/> Photo (Max 10Mo) : <input type="file" name="photo3"/><br/> Photo (Max 10Mo) : <input type="file" name="photo4"/><br/> Photo (Max 10Mo) : <input type="file" name="photo5"/><br/><br/><br/>; <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" /> <input type="submit" value="Envoyer" /> </p> </form> </body> </html>
Cordialement,
el_linwin
bonsoir,
lors de la modification de news, j'ai une erreur qui s'affiche sur ma page d'administration :
et j'ai toujours à chaque fois une news vide qui s'ajoute, que se soit lors de l'ajout ou lors de la modification d'une news.
mes images ne s'ajoutent pas non plus lors de la modification de news...
cordialement,
jerryp
lors de la modification de news, j'ai une erreur qui s'affiche sur ma page d'administration :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UDPATE news SET titre='test',contenu=' bouhMarque : Type : Année : Cylindrée ' at line 1
et j'ai toujours à chaque fois une news vide qui s'ajoute, que se soit lors de l'ajout ou lors de la modification d'une news.
mes images ne s'ajoutent pas non plus lors de la modification de news...
cordialement,
jerryp
Bonsoir jerryp,
Voici une version modifiée d'administration.php concernant la requête UPDATE:
Cordialement,
el_linwin
Voici une version modifiée d'administration.php concernant la requête UPDATE:
<!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'";} mysql_query("UDPATE news SET $sql WHERE id=".$POST['id_news']) or die(mysql_error()); } // Fin de la session MySQL mysql_close(); // Fin du bloc PHP ?> </body> </html>
Cordialement,
el_linwin
Bonsoir jerryp,
Cette version d'administration.php devrait éliminer l'impossibilité de mise à jour de certains éléments:
Cordialement,
el_linwin
Cette version d'administration.php devrait éliminer l'impossibilité de mise à jour de certains éléments:
<!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'"; else $sql.="'',''"; if ($si_image1==1) $sql.=",'$nomavatar'"; else $sql.=",''"; if ($si_image2==1) $sql.=",'$nomavatar_2'"; else $sql.=",''"; if ($si_image3==1) $sql.=",'$nomavatar_3'"; else $sql.=",''"; if ($si_image4==1) $sql.=",'$nomavatar_4'"; else $sql.=",''"; if ($si_image5==1) $sql.=",'$nomavatar_5'"; else $sql.=",''"; mysql_query("INSERT INTO news(titre,contenu,image,image2,image3,image4,image5) VALUES($sql)") 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'";} mysql_query("UDPATE news SET $sql WHERE id=".$POST['id_news']) or die(mysql_error()); } // Fin de la session MySQL mysql_close(); // Fin du bloc PHP ?> </body> </html>
Cordialement,
el_linwin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour,
veuillez m'excuser de ce silence soudain hier soir... Problèmes de santé =(...
j'ai essayé la dernière version, mais la suppression de news est toujours identique,j'ai toujours uniquement le contenu qui se supprime.
et pour la modification de news, ben c'est simple, rien ne se mets à jour... Et j'ai toujours l'erreur que j'ai cité plus haut :
cordialement,
jerryp
veuillez m'excuser de ce silence soudain hier soir... Problèmes de santé =(...
j'ai essayé la dernière version, mais la suppression de news est toujours identique,j'ai toujours uniquement le contenu qui se supprime.
et pour la modification de news, ben c'est simple, rien ne se mets à jour... Et j'ai toujours l'erreur que j'ai cité plus haut :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UDPATE news SET titre='',contenu=' Marque : Type : Année : Cylindrée : Puissa' at line 1
cordialement,
jerryp
Bonjour jerryp,
En ce cas, voici une nouvelle version:
Cordialement,
el_linwin
En ce cas, voici une nouvelle version:
<!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_titre=0; $si_contenu=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'])) { $titre=addslashes($_POST['titre']); $si_titre=1; } if (isset($_POST['contenu'])) { $contenu=addslashes($_POST['contenu']); $si_contenu=1; } //-------------------------------------------------------- // 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</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']); } ?> <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_titre==1) $sql.="'$titre'"; else $sql.="'[Vide]'"; if ($si_contenu==1) $sql.=",'$contenu'"; else $sql.=",'[Vide]'"; if ($si_image1==1) $sql.=",'$nomavatar'"; else $sql.=",'[Vide]'"; if ($si_image2==1) $sql.=",'$nomavatar_2'"; else $sql.=",'[Vide]'"; if ($si_image3==1) $sql.=",'$nomavatar_3'"; else $sql.=",'[Vide]'"; if ($si_image4==1) $sql.=",'$nomavatar_4'"; else $sql.=",'[Vide]'"; if ($si_image5==1) $sql.=",'$nomavatar_5'"; else $sql.=",'[Vide]'"; mysql_query("INSERT INTO news(titre,contenu,image,image2,image3,image4,image5) VALUES($sql)") or die(mysql_error()); } if ($operation==2) { // Edition de news $sql=""; if ($si_titre==1) {$sql.="titre='$titre'";} if ($si_contenu==1) {if ($sql!="") $sql.=",";$sql.="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'";} mysql_query("UDPATE news SET $sql WHERE id=".$POST['id_news']) or die(mysql_error()); } // Fin de la session MySQL mysql_close(); // Fin du bloc PHP ?> </body> </html>
Cordialement,
el_linwin
bonjour,
j'ai essayé la nouvelle version...
Lors de la modification de news, j'ai une erreur :
lors de la suppression de news, j'ai un nouveau titre "[VIDE]" qui se met et le contenu est supprimé, mais pas la news...
cordialement,
jerryp
j'ai essayé la nouvelle version...
Lors de la modification de news, j'ai une erreur :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UDPATE news SET titre='test',contenu=' [Vide]Marque : Type : Année : Cylindré' at line 1et le news ne se mets pas à jour...
lors de la suppression de news, j'ai un nouveau titre "[VIDE]" qui se met et le contenu est supprimé, mais pas la news...
cordialement,
jerryp
Bjr
Bah oui c'est normal ! Encore DES fautes de frappe de el_linwin (à croire qu'il n'a pas testé son code : T'Oh)
Remplace
(c'est la ligne pratiquement à la fin du script)
par
Il manquait un underscore devant POST et c'est UPDATE pas UDPATE !!
Pas bien réveillé el_linwin lol
Autre chose : il serait bien de déplacer le code qui affiche la liste des news à la fin du script
autrement comme on l'affiche avant d'appliquer les modifications ça donne l'impression que
les mises à jour ne sont pas appliquées alors qu'en fait si !
Code à déplacer à la fin
pour obtenir
Bah oui c'est normal ! Encore DES fautes de frappe de el_linwin (à croire qu'il n'a pas testé son code : T'Oh)
Remplace
mysql_query("UDPATE news SET $sql WHERE id=".$POST['id_news']) or die(mysql_error());
(c'est la ligne pratiquement à la fin du script)
par
mysql_query("UPDATE news SET $sql WHERE id=".$_POST['id_news']) or die(mysql_error());
Il manquait un underscore devant POST et c'est UPDATE pas UDPATE !!
Pas bien réveillé el_linwin lol
Autre chose : il serait bien de déplacer le code qui affiche la liste des news à la fin du script
autrement comme on l'affiche avant d'appliquer les modifications ça donne l'impression que
les mises à jour ne sont pas appliquées alors qu'en fait si !
Code à déplacer à la fin
<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>
pour obtenir
... if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5='$nomavatar_5'";} mysql_query("UPDATE news SET $sql WHERE id=".$_POST['id_news']) or die(mysql_error()); } ?> <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> <? // Fin de la session MySQL mysql_close(); // Fin du bloc PHP ?>
Bonjour PhP,
Je ne peux pas tester le code... je n'ai pas de serveur avec la combinaison PHP/MySQL à disposition !
Donc, je suis obligé d'y aller plus ou moins en aveugle.
Et, effectivement, je n'étais pas particulièrement réveillé.
Quand il fait trop chaud la nuit, je me réveille la tête dans les choux. =\
Merci à vous de trouver les coquilles, ceci dit ! =)
Cordialement,
el_linwin
Je ne peux pas tester le code... je n'ai pas de serveur avec la combinaison PHP/MySQL à disposition !
Donc, je suis obligé d'y aller plus ou moins en aveugle.
Et, effectivement, je n'étais pas particulièrement réveillé.
Quand il fait trop chaud la nuit, je me réveille la tête dans les choux. =\
Merci à vous de trouver les coquilles, ceci dit ! =)
Cordialement,
el_linwin
bonjour,
ah, de mieux en mieux... la modification de news fonctionne sans aucun problème...
Reste la suppression de news... en cliquant sur "supprimer", le contenu et les images sont supprimés, mais la news reste dans la base de données et reste visible sur la page d'annonces...
cordialement,
jerryp
ah, de mieux en mieux... la modification de news fonctionne sans aucun problème...
Reste la suppression de news... en cliquant sur "supprimer", le contenu et les images sont supprimés, mais la news reste dans la base de données et reste visible sur la page d'annonces...
cordialement,
jerryp
bonjour,
et lors de l'ajout d'une nouvelle news, j'ai toujours une deuxième news qui se crée, mais vide...
cordialement,
jerryp
et lors de l'ajout d'une nouvelle news, j'ai toujours une deuxième news qui se crée, mais vide...
cordialement,
jerryp
Ouais faut dire que ton code est "merdique" à souhait aussi ... (désolé mais c'est ainsi)
Je vois très bien pourquoi ça ne fonctionne pas : il faut faire un test pour déterminer l'action à effectuer (Modification/Suppression/Création etc ..) tout au début proprement et une fois pour toute et le stocker dans une variable disons $action
Je vois très bien pourquoi ça ne fonctionne pas : il faut faire un test pour déterminer l'action à effectuer (Modification/Suppression/Création etc ..) tout au début proprement et une fois pour toute et le stocker dans une variable disons $action
bonjour,
pas de problèmes, je sais bien que mon code n'est pas génial...
mais pour le test au début, ce n'est pas ce qui est déjà fait, mais avec la variable $operation ?
car :
si c'est ça, pourquoi refaire un test ?
Merci d'éclairer ma lanterne...
cordialement,
jerryp
pas de problèmes, je sais bien que mon code n'est pas génial...
mais pour le test au début, ce n'est pas ce qui est déjà fait, mais avec la variable $operation ?
car :
if ($operation==1) { // Création de news } ... if ($operation==2) { // Edition de news }
si c'est ça, pourquoi refaire un test ?
Merci d'éclairer ma lanterne...
cordialement,
jerryp
Oui sauf qu'operation n'est pas utilisé pour la suppression : c'est pour ca que ca marche pas
En fait on test d'un côté $operation et de l'autre $_GET['supprimer_news'] : lors de la suppression on supprime effectivement mais $operation vaut également 1 donc on créé aussi un news vide hé oui
Voici le code corrigé : (d'habitude c'est le boulot d'el_linwin ça ;-) Mais où es-t-il ? )
l
En fait on test d'un côté $operation et de l'autre $_GET['supprimer_news'] : lors de la suppression on supprime effectivement mais $operation vaut également 1 donc on créé aussi un news vide hé oui
Voici le code corrigé : (d'habitude c'est le boulot d'el_linwin ça ;-) Mais où es-t-il ? )
<!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 // Définition des constantes : valeurs que peut prendre $operation // C'est juste pour se faciliter la vie. // En effet c'est plus facile d'utiliser OP_MODIFICATION que de se souvenir que // lorsque $operationn vaut 2 alors c'est qu'on est en modification define("OP_AUCUNE",0); define("OP_CREATION",1); define("OP_MODIFICATION",2); define("OP_SUPPRESSION",3); // Au départ on ne connait pas encore l'action à faire donc on ne fait rien : logique $operation=OP_AUCUNE; // Equivalent à $operation = 0; if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news { $operation = OP_SUPPRESSION; } else { // On vérifie si c'est une modification de news ou pas if (isset($_POST['id_news'])) { if ($_POST['id_news']==0) { $operation = OP_CREATION; } else { $operation= OP_MODIFICATION; } } } $connexion_mysql=mysql_connect("localhost", "root", ""); 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("voiture"); 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>'; } if ($operation == OP_SUPPRESSION ) { // 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']); } $si_titre=0; $si_contenu=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']); if (isset($_POST['titre'])) { $titre=addslashes($_POST['titre']); $si_titre=1; } if (isset($_POST['contenu'])) { $contenu=addslashes($_POST['contenu']); $si_contenu=1; } ?> <?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 == OP_CREATION) { // Création de news $sql=""; if ($si_titre==1) $sql.="'$titre'"; else $sql.="'[Vide]'"; if ($si_contenu==1) $sql.=",'$contenu'"; else $sql.=",'[Vide]'"; if ($si_image1==1) $sql.=",'$nomavatar'"; else $sql.=",'[Vide]'"; if ($si_image2==1) $sql.=",'$nomavatar_2'"; else $sql.=",'[Vide]'"; if ($si_image3==1) $sql.=",'$nomavatar_3'"; else $sql.=",'[Vide]'"; if ($si_image4==1) $sql.=",'$nomavatar_4'"; else $sql.=",'[Vide]'"; if ($si_image5==1) $sql.=",'$nomavatar_5'"; else $sql.=",'[Vide]'"; mysql_query("INSERT INTO news(titre,contenu,image,image2,image3,image4,image5) VALUES($sql)") or die(mysql_error()); } if ($operation == OP_MODIFICATION) { // Edition de news $sql=""; if ($si_titre==1) {$sql.="titre='$titre'";} if ($si_contenu==1) {if ($sql!="") $sql.=",";$sql.="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'";} mysql_query("UPDATE news SET $sql WHERE id=".$_POST['id_news']) or die(mysql_error()); } ?> <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> <? // Fin de la session MySQL mysql_close(); // Fin du bloc PHP ?> </body> </html>
l
Bonjour à tous,
Pour PhP: que vous n'aimiez pas le code, je le conçois aisément, mais n'oubliez pas qu'il est inachevé. Ceci dit, qualifier un code de "merdique" avant qu'il ne soit fini, c'est comme qualifier un plat de déguelasse avant que le cuisinier n'ait fini sa recette. Bref, c'est prématuré et non-constructif.
Pour obtenir un programme efficace, il faut respecter ces trois étapes:
- d'abord, on rédige un code brut, même s'il est mal ficelé: c'est la rédaction
- ensuite, on corrige toutes les fautes/coquilles qui empêchent le bon fonctionnement: c'est la correction
- enfin, on fignole le code de façon à le rendre soit plus lisible, soit plus rapide, soit plus compact, soit un compromis entre les trois: c'est l'optimisation
Aucun "vrai" programmeur de haut niveau n'ira procéder autrement.
Actuellement, on en est à l'étape 2. La question de la remise en forme du code (afin qu'il ne soit plus "merdique") viendra ensuite.
Concernant les corrections du code:
- je ne peux pas à la fois être aux séances du code de la route et coder. Je n'ai pas le don d'ubiquité.
- d'après la version que j'ai concernant $operation:
Soit, si on n'a pas une opération de suppression, $operation vaudra 1 ou 2. Mais, si $_GET['supprimer_news'] existe, $operation reste à zéro. N'est-ce pas PhP ? =D
Cordialement,
el_linwin
Pour PhP: que vous n'aimiez pas le code, je le conçois aisément, mais n'oubliez pas qu'il est inachevé. Ceci dit, qualifier un code de "merdique" avant qu'il ne soit fini, c'est comme qualifier un plat de déguelasse avant que le cuisinier n'ait fini sa recette. Bref, c'est prématuré et non-constructif.
Pour obtenir un programme efficace, il faut respecter ces trois étapes:
- d'abord, on rédige un code brut, même s'il est mal ficelé: c'est la rédaction
- ensuite, on corrige toutes les fautes/coquilles qui empêchent le bon fonctionnement: c'est la correction
- enfin, on fignole le code de façon à le rendre soit plus lisible, soit plus rapide, soit plus compact, soit un compromis entre les trois: c'est l'optimisation
Aucun "vrai" programmeur de haut niveau n'ira procéder autrement.
Actuellement, on en est à l'étape 2. La question de la remise en forme du code (afin qu'il ne soit plus "merdique") viendra ensuite.
Concernant les corrections du code:
- je ne peux pas à la fois être aux séances du code de la route et coder. Je n'ai pas le don d'ubiquité.
- d'après la version que j'ai concernant $operation:
$operation=0; // On vérifie si c'est une modification de news ou pas if (!isset($_GET['supprimer_news'])) { 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; } // On protège la variable "id_news" pour éviter une faille SQL $_POST['id_news']=addslashes($_POST['id_news']); }
Soit, si on n'a pas une opération de suppression, $operation vaudra 1 ou 2. Mais, si $_GET['supprimer_news'] existe, $operation reste à zéro. N'est-ce pas PhP ? =D
Cordialement,
el_linwin
bonjour,
avec le nouveau code, je n'ai rien sur ma page administration.php... j'ai juste les différents tests insérés par el_linwin, mais sinon, j'ai écrit no database selected... Ce n'est pas parce que vous avez mis les lignes d'accès àla base de données après votre test ??? Et je n'ai pas non plus d'annonces qui s'affiche dans ma page annonces.php
cordialement,
jerryp
avec le nouveau code, je n'ai rien sur ma page administration.php... j'ai juste les différents tests insérés par el_linwin, mais sinon, j'ai écrit no database selected... Ce n'est pas parce que vous avez mis les lignes d'accès àla base de données après votre test ??? Et je n'ai pas non plus d'annonces qui s'affiche dans ma page annonces.php
cordialement,
jerryp
Bonjour el_linwin
Houlà je n'ai fait qu'apporter des modifications mineures c'est tout et j'ai gardé intact l' "esprit" (?) du prog.
Autant pour moi pour $operation j'étais resté sur la version du poste n° 174 pensant que c'était la bonne
vu que c'était la plus récente !
Le déplacement de l'affichage de la table des news à la fin du script c'est quand même plus logique pour reflêter les modifcations non ?
Hé non on ne commence pas par rédiger un code mal ficelé : d'habitude un programmeur code proprement et lisiblement dès la rédaction. Ce sont les autres qui trouvent que son code ne va pas.
Maintenant je comprends que dans un but pédagogique et didactique tu tiennes absolument à retoucher ligne par ligne le code : sache quand même que ça peut en lasser plus d'un (après chaque modif on test et paf ça marche toujours pas) ou pire l'amener à penser qu'on le considère comme incapable de comprendre si on va plus vite
Pour le code dans se version actuelle tu as raison j'aime pas du tout. Dans sa version définitive si on est passé d'une Trabant à une Porsche je sens que ça ve me plaire. ;-)
Houlà je n'ai fait qu'apporter des modifications mineures c'est tout et j'ai gardé intact l' "esprit" (?) du prog.
Autant pour moi pour $operation j'étais resté sur la version du poste n° 174 pensant que c'était la bonne
vu que c'était la plus récente !
Le déplacement de l'affichage de la table des news à la fin du script c'est quand même plus logique pour reflêter les modifcations non ?
Hé non on ne commence pas par rédiger un code mal ficelé : d'habitude un programmeur code proprement et lisiblement dès la rédaction. Ce sont les autres qui trouvent que son code ne va pas.
Maintenant je comprends que dans un but pédagogique et didactique tu tiennes absolument à retoucher ligne par ligne le code : sache quand même que ça peut en lasser plus d'un (après chaque modif on test et paf ça marche toujours pas) ou pire l'amener à penser qu'on le considère comme incapable de comprendre si on va plus vite
Pour le code dans se version actuelle tu as raison j'aime pas du tout. Dans sa version définitive si on est passé d'une Trabant à une Porsche je sens que ça ve me plaire. ;-)
Bonjour PhP,
En logique procédurale, je vais plus vite (en C, je précise), en suivant ces 3 étapes. Elles sont d'ailleurs recommandées dans la cadre d'une programmation optimisée. Le code étant très malléable, les corrections sont vites propagées. Pour la logique objet, je pense comprendre votre désaccord. Il est alors préférable d'avoir un plan de route prédéfini, sur lequel se baser pour créer les classes, les méthodes, etc...
+1 sur le maintient de l'identité (plus que l'esprit) du code. Vous remplissez parfaitement cet objectif. Euh... aurais-je dit ou laissé entendre le contraire ? Si oui, je m'en excuse.
+1 pour le déplacement de l'affichage de la boucle des news à la fin du code. J'étais plus concentré sur les problèmes liés à la base de données. Par contre, je ne comprends pas la création de la deuxième news vide en plus de celle souhaitée. Je ne sais pas si c'est inhérent à administration.php, à rediger_news.php ou à un morceau de code que je n'aurais pas vu. Ou encore, à une particularité de MySQL, sachant que je n'ai qu'effleuré ce moteur de base de données dans mon cursus.
Passer d'un code "Trabant" à un code "Porsche" ? Parfaitement d'accord ! Ca me plaira aussi, même si cela devait finir avec des objets. Promis ! ;-)
Pour résumer, l'essentiel est de faire fonctionner le code et surtout de s'assurer que jerryp s'y retrouve.
Après cela, si vous souhaitez initier jerryp au PHP objet, à vous maestro !
Cordialement,
el_linwin
En logique procédurale, je vais plus vite (en C, je précise), en suivant ces 3 étapes. Elles sont d'ailleurs recommandées dans la cadre d'une programmation optimisée. Le code étant très malléable, les corrections sont vites propagées. Pour la logique objet, je pense comprendre votre désaccord. Il est alors préférable d'avoir un plan de route prédéfini, sur lequel se baser pour créer les classes, les méthodes, etc...
+1 sur le maintient de l'identité (plus que l'esprit) du code. Vous remplissez parfaitement cet objectif. Euh... aurais-je dit ou laissé entendre le contraire ? Si oui, je m'en excuse.
+1 pour le déplacement de l'affichage de la boucle des news à la fin du code. J'étais plus concentré sur les problèmes liés à la base de données. Par contre, je ne comprends pas la création de la deuxième news vide en plus de celle souhaitée. Je ne sais pas si c'est inhérent à administration.php, à rediger_news.php ou à un morceau de code que je n'aurais pas vu. Ou encore, à une particularité de MySQL, sachant que je n'ai qu'effleuré ce moteur de base de données dans mon cursus.
Passer d'un code "Trabant" à un code "Porsche" ? Parfaitement d'accord ! Ca me plaira aussi, même si cela devait finir avec des objets. Promis ! ;-)
Pour résumer, l'essentiel est de faire fonctionner le code et surtout de s'assurer que jerryp s'y retrouve.
Après cela, si vous souhaitez initier jerryp au PHP objet, à vous maestro !
Cordialement,
el_linwin
Pour la news vide je pense que l'erreur est tout simplement due à une mauvause version du code.
En effet si comme moi jerryp s'est basé sur la version d'aujourd'hui poste 174 alors le code était
// 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;
}
or ici $_POST['id_news'] n'étant pas défini PHP nous sort
Notice: Undefined index: id_news
Comme un varible non définie est équivalente à 0 la condition était tjrs vraie CQDF
Passer à une version objet n'a d'intérêt que pour quelqu'un qui connait déjà ce type de programmation hélàs car expliquer la POO wow
En effet si comme moi jerryp s'est basé sur la version d'aujourd'hui poste 174 alors le code était
// 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;
}
or ici $_POST['id_news'] n'étant pas défini PHP nous sort
Notice: Undefined index: id_news
Comme un varible non définie est équivalente à 0 la condition était tjrs vraie CQDF
Passer à une version objet n'a d'intérêt que pour quelqu'un qui connait déjà ce type de programmation hélàs car expliquer la POO wow
bonjour,
pas mal la comparaison entre trabant et porsche :-D...
mais ça ne me lasse pas (du moins pas encore xD) de repasser le code en revue ligne par ligne...
cordialement,
jerryp
pas mal la comparaison entre trabant et porsche :-D...
mais ça ne me lasse pas (du moins pas encore xD) de repasser le code en revue ligne par ligne...
cordialement,
jerryp
bonsoir,
bien bien bien... maintenant, ça fonctionne sans problèmes...
je vais encore juste mettre une condition dans mon fichier annonces.php afin de n'afficher les liens que si j'ai une image qui y correspond, mais, ça devrait aller sans problèmes ;-)
cordialement,
jerryp
bien bien bien... maintenant, ça fonctionne sans problèmes...
je vais encore juste mettre une condition dans mon fichier annonces.php afin de n'afficher les liens que si j'ai une image qui y correspond, mais, ça devrait aller sans problèmes ;-)
cordialement,
jerryp
Bonjour jerryp,
Ca y est, tout fonctionne ?
Si oui, heureux d'y avoir contribué.
Un grand merci à PhP pour le débogage dont il a fait preuve.
jerryp, n'hésitez pas à présent à consulter les différents cours sur le PHP, le MySQL disponibles sur internet, ainsi que les ouvrages de référence dans ces domaines. Cela vous sera indispensable pour la suite.
Et, bien entendu de venir nous consulter sur CCM si vous avez d'autres questions/problèmes.
PhP, quelque chose à ajouter pour jerryp ?
Cordialement,
el_linwin
Ca y est, tout fonctionne ?
Si oui, heureux d'y avoir contribué.
Un grand merci à PhP pour le débogage dont il a fait preuve.
jerryp, n'hésitez pas à présent à consulter les différents cours sur le PHP, le MySQL disponibles sur internet, ainsi que les ouvrages de référence dans ces domaines. Cela vous sera indispensable pour la suite.
Et, bien entendu de venir nous consulter sur CCM si vous avez d'autres questions/problèmes.
PhP, quelque chose à ajouter pour jerryp ?
Cordialement,
el_linwin
Bien sûr,
jerryp , tu peux surtout remercier el_linwin qui doit a dû être formateur dans une autre vie et à qui je souhaite d'obtenir le petit papier rose lui permettant de faire wroum wroum sur nos routes (pour la 911 prévoir quand même dans les 90 000 € ;-)
Maintenant si tu compte apprendre le PHP tu oublies la programmation objet (arrgh ca y est je l'ai dit mince !) au début en tout cas.
Résolu, comment ça Résolu ?
Même si tu as mis Résolu sur ton post il est loin d'être terminé : surtout au niveau des avatars.
Ici tu n'en a que 5 mais pose toi la question de savoir comment tu va faire sur demain on te demande d'en autoriser 10 ? Indice : utiliser les tableaux voir la doc en PHP sur array ... Tu verras les tableaux associatifs c'est génial !
Ensuite lorsque tu supprimes une news ce serait bien que tu fasses en sorte que ton code ignore complètement le traitement des avatars.
La réf que j'utilise pour le PHP (attention c'est pas un site pour apprendre par contre ça donne la syntaxe exhaustive du langage) : https://www.php.net/
Bienvenue dans le monde merveilleux du développement (quand on trouve la solution) et des heures de galère quand on cherche la solution.
Voilà
PS : tu noteras que j'ai pas réussi à convaincre el_linwin de se mettre à la POO en PHP ;-) Et en C++ ?
jerryp , tu peux surtout remercier el_linwin qui doit a dû être formateur dans une autre vie et à qui je souhaite d'obtenir le petit papier rose lui permettant de faire wroum wroum sur nos routes (pour la 911 prévoir quand même dans les 90 000 € ;-)
Maintenant si tu compte apprendre le PHP tu oublies la programmation objet (arrgh ca y est je l'ai dit mince !) au début en tout cas.
Résolu, comment ça Résolu ?
Même si tu as mis Résolu sur ton post il est loin d'être terminé : surtout au niveau des avatars.
Ici tu n'en a que 5 mais pose toi la question de savoir comment tu va faire sur demain on te demande d'en autoriser 10 ? Indice : utiliser les tableaux voir la doc en PHP sur array ... Tu verras les tableaux associatifs c'est génial !
Ensuite lorsque tu supprimes une news ce serait bien que tu fasses en sorte que ton code ignore complètement le traitement des avatars.
La réf que j'utilise pour le PHP (attention c'est pas un site pour apprendre par contre ça donne la syntaxe exhaustive du langage) : https://www.php.net/
Bienvenue dans le monde merveilleux du développement (quand on trouve la solution) et des heures de galère quand on cherche la solution.
Voilà
PS : tu noteras que j'ai pas réussi à convaincre el_linwin de se mettre à la POO en PHP ;-) Et en C++ ?
Bonsoir PhP,
Pour la programmation objet en PHP, c'est mort en ce qui me concerne.
Encore une fois, à part le Java où je n'ai pas trop le choix (je triche un peu avec les classes pour retrouver un cadre plus procédural, mais bon... le Java, c'est le Java, quoi...), tant que je peux éviter les objets, j'évite.
Ne prenez pas ça pour un mépris de cette façon de programmer, PhP, c'est juste que j'ai besoin d'un code linéaire/procédural pour m'y retrouver, je m'y sens tellement à l'aise.
Autant j'adore programmer en C (combiné avec de l'assembleur: miam miam), de loin mon langage préféré, autant le C++ me rebute. Il n'oblige pas à la POO, pourtant... enfin bon.
+1 pour l'utilisation de tableaux pour le projet de jerryp. Cela simplifiera le code, et cela facilitera la maintenance, les extensions... En effet, dans le cas de la suppression de news, le traitement des avatars est superflu. C'est une optimisation de code à apporter.
A la limite, PhP, c'est mieux que jerryp essaie d'apporter lui-même les améliorations à son code.
Il pourra ainsi consulter toute la documentation disponible et progresser par lui-même.
La programmation est un long chemin, dont on n'atteint jamais la fin.
Personne ne peut dire: j'ai tout fait en programmation. Il y a toujours quelque-chose à apprendre.
Et ce topic en est l'une des meilleurs preuves ! =)
Cordialement,
el_linwin
Pour la programmation objet en PHP, c'est mort en ce qui me concerne.
Encore une fois, à part le Java où je n'ai pas trop le choix (je triche un peu avec les classes pour retrouver un cadre plus procédural, mais bon... le Java, c'est le Java, quoi...), tant que je peux éviter les objets, j'évite.
Ne prenez pas ça pour un mépris de cette façon de programmer, PhP, c'est juste que j'ai besoin d'un code linéaire/procédural pour m'y retrouver, je m'y sens tellement à l'aise.
Autant j'adore programmer en C (combiné avec de l'assembleur: miam miam), de loin mon langage préféré, autant le C++ me rebute. Il n'oblige pas à la POO, pourtant... enfin bon.
+1 pour l'utilisation de tableaux pour le projet de jerryp. Cela simplifiera le code, et cela facilitera la maintenance, les extensions... En effet, dans le cas de la suppression de news, le traitement des avatars est superflu. C'est une optimisation de code à apporter.
A la limite, PhP, c'est mieux que jerryp essaie d'apporter lui-même les améliorations à son code.
Il pourra ainsi consulter toute la documentation disponible et progresser par lui-même.
La programmation est un long chemin, dont on n'atteint jamais la fin.
Personne ne peut dire: j'ai tout fait en programmation. Il y a toujours quelque-chose à apprendre.
Et ce topic en est l'une des meilleurs preuves ! =)
Cordialement,
el_linwin
bonsoir,
je suis d'accord, d'ailleurs, je vais enlever le "résolu"...
Mais je vais laisser le code tel quel provisoirement, je vais d'abord aller fouiner sur des sites proposant des tutos et des cours sur le PHP... La POO, je laisserai pour plus tard :-)...
Quand un jour j'aurai optimisé le code à fond, je reposterai pour vous le transmettre...
Un grand merci à tout les deux,
cordialement,
jerryp
je suis d'accord, d'ailleurs, je vais enlever le "résolu"...
Mais je vais laisser le code tel quel provisoirement, je vais d'abord aller fouiner sur des sites proposant des tutos et des cours sur le PHP... La POO, je laisserai pour plus tard :-)...
Quand un jour j'aurai optimisé le code à fond, je reposterai pour vous le transmettre...
Un grand merci à tout les deux,
cordialement,
jerryp
bonjour,
oui, tout fonctionne... à part ma condition... mais c'est parce que les noms d'images sont préremplis avec [Vide]... ma condition est :
bien entendu avec toutes les images...
je vais essayer de corriger ça...
Mais sinon,
je vous dis un tout tout grand merci à tout les deux, el_linwin et PhP...
Je vais suivre votre conseil el_linwin, je vais aller voir sur différents cours sur le PHP et je vais progresser lentement, mais sûrement...
cordialement,
jerryp
oui, tout fonctionne... à part ma condition... mais c'est parce que les noms d'images sont préremplis avec [Vide]... ma condition est :
if($donnees['image1'])...
bien entendu avec toutes les images...
je vais essayer de corriger ça...
Mais sinon,
je vous dis un tout tout grand merci à tout les deux, el_linwin et PhP...
Je vais suivre votre conseil el_linwin, je vais aller voir sur différents cours sur le PHP et je vais progresser lentement, mais sûrement...
cordialement,
jerryp