Fenetre de confirmation de suppression - Page 2

Résolu
  1. C'est bon ça fonctionne. A l'aide des fonctions addslashes et htmlentities. J'ai vu sur internet qu'il fallait les utiliser pour faire ce que je voulais. Meme si j'aimerai avoir des explications sur leurs roles réels !
    0
    1. addslashes échappe certains caractères permettant d'éviter les injections SQL (ce que fait mysql_real_escape_string, mais de façon plus poussée et plus en accord avec la base de données). htmlentities convertit les caractères tels que < ou > en < ou >. Ca évite que n'importe qui puisse ajouter du code HTML à ta page, voire des scripts, puisque un tel code ne sera pas interprété en tant que tel, mais afficher comme du texte simple.

      edit : cf. https://www.php.net/manual/fr/function.addslashes.php qui conseille d'utiliser les fonctions spécifiques à la base de données lorsqu'elles sont disponibles.
      0
  2. D'accord merci.

    Encore une petite chose, mon code fonctionne mais j'obtiens quand même ces 2 notifications :
    ==>

    Notice: Undefined index: nom_fr in c:\users\dimexbat5\desktop\ectfrance.com\admin\admincat.php on line 10

    Notice: Undefined index: nom_en in c:\users\dimexbat5\desktop\ectfrance.com\admin\admincat.php on line 11
    Position

    suite à la déclaration de ces variables :
    $nomfr=addslashes($_POST['nom_fr']);
    $nomen=addslashes($_POST['nom_en']);

    Je nsais pas trop comment remédier à ces 2 erreurs
    0
    1. Essaie comme ça :
      if ( isset( $_POST ) ) {
          $nomfr=addslashes($_POST['nom_fr']); 
          $nomen=addslashes($_POST['nom_en']); 
      }
      0
  3. C'est bon merci mon problème est résolu !
    0
    1. Bon pour ce qui est de l'affichage du menu, c'est fait. J'ai bien mon menu déroulant comportant le nom de mes catégories puis quand je clique dessus, la liste des pages associées a ma catégories s'affichent.

      Maintenant ce que je veux faire c'est administrer mes pages donc par catégorie. Mais donc dans ce cas là il faudrait que j'ai autant de pages d'administration que de catégories à savoir dans mon cas 11.

      C'est à dire que je vais faire 11 liens sur mes 11 catégories vers 11 pages différentes dans laquelle je pourrais gérer mes pages.
      PS: Je ne peux pas faire le lien en cliquant sur ma catégorie dans le menu parce que en cliquant g déjà une action qui s'effectue, à savoir le déroulement de mes pages associées à la catégorie.

      Donc déjà ce que je veux faire dans un premier temps c'est en cliquant sur le noms de mes catégories, atterir sur une page dans lequel se trouve le contenu de ma table(txt_fr,txt_en,titre_fr,titre_en,ordre) et pouvoir les gérer !

      Est-ce la bonne méthode ?
      0
      1. Non ! L'utilisation d'un langage tel que php sert justement à générer dynamiquement les pages ! Donc tu dois passer un paramètre avec ton lien (genre admin.php?cat=2) et interroger la base en fonction de ça.
        0
    2. Jcomprends pas ton raisonnement, quel lien ?
      0
      1. Je te cite : "C'est à dire que je vais faire 11 liens sur mes 11 catégories vers 11 pages différentes dans laquelle je pourrais gérer mes pages."
        0
    3. Bé oui c bien ce ke g di !
      0
      1. Ben ne me demande pas quel lien, c'est toi qui en parles...
        0
    4. Tu ve donc ke je fasse un seul lien pour me mener à 11 pages différentes ?
      0
      1. Voici ce que j'ai fait !

        [CODE]$r_cat = mysql_db_query($db,"SELECT * FROM cat ORDER BY ordre ASC");
        while($cat = mysql_fetch_assoc($r_cat))
        {

        echo' <div align="right"><form method="post" action="adminpages2.php&id='.$cat['id'].'">
        <select name="catégories">
        <option value="catégories">'.$cat['nom_fr'].'</option>
        </select></form>';

        }[/CODE]

        Je souhaite créer une liste déroulante avec le noms de mes catégories dedans, le problème là est que ça affiche 11 fois(11 étant le nombre de mes catégories) une liste déroulante avec à l'intérieur 1 des 11 noms de ma catégorie. Et ce n'est pas ce que je veux. Je veux 1 seule liste déroulante avec mes 11 catégories qui défilent !
        0
        1. Pourquoi tu refais un select ? Tu as déjà ta catégorie passée par l'url dans la variable $_GET['id']... Tu n'as plus qu'à faire le traitement que tu veux dessus.
          0
      2. Bé non pas sur cette page. Sur cette page j'affiche juste un menu et une liste déroulante. C'est juste ma page précédente sur l'administration catégories que j'avais mis le numéro de la catégorie dans l'url !
        0
        1. C'est bon j'ai fait mon menu déroulant pas de problème. J'ai créé ma 2ème page ou je vais pouvoir gérer mon contenu selon la catégorie. J'ai utilisé les variables de session pour pouvoir récupérer l'id de ma catégorie sur la 2ème page. Voici le code :

          <?php

          session_start(); // (pour utiliser les variables de session)
          // connexion a la BD
          include("connection.php");
          // recuperation de l'id de la categorie
          if (isset($_POST['categories']) && $_POST['categories']!='') // vérification si on a bien choisi une des catégories dans la liste déroulante
          {
          // on met la categorie dans une variable de session
          // ce qui permettra de l utiliser par la suite
          $_SESSION['idcat'] = mysql_real_escape_string($_POST['categories']);
          }

          if(isset($_GET['action'])&& $_SESSION['idcat'])
          {

          switch($_GET['action'] )
          {
          case 'Supprimer':

          $r_pages=mysql_db_query($db,"SELECT * FROM pages WHERE id=".$_GET['id']."");
          while($pages = mysql_fetch_assoc($r_pages))
          {
          echo'Voulez-vous vraiment supprimer la page '.$pages['titre_fr'].'?
          <form method="post" action="adminpages2.php?action=Suppression&id='.$pages['id'].'"><input type="submit" value="Suppression" />
          <input type="button" value="Annuler" onClick="document.location=\'adminpages2.php\'" /></form>';
          }
          break;

          case 'Suppression':
          $suppr=mysql_db_query($db,"DELETE from pages WHERE id='".$_GET['id']."' ");
          break;

          case 'Ajouter':
          $add=mysql_db_query($db,"INSERT INTO pages (titre_fr,titre_en,txt_fr,txt_en,ordre) VALUES ('$_POST[titre_fr]','$_POST[titre_en]','$_POST[txt_fr]','$_POST[txt_en]','$_POST[ordre]' ) ");
          break;

          case 'Modifier':
          echo'<meta http-equiv="Refresh" content="1; url=adminpages2.php">';
          $mod = mysql_db_query($db,"UPDATE pages SET titre_fr='$_POST[titre_fr]', titre_en='$_POST[titre_en]', txt_fr='$_POST[txt_fr]', txt_en='$_POST[txt_en]',ordre='$_POST[ordre]' WHERE id='$_POST[id]'");
          break;

          default: echo"Choisissez un des trois choix";
          }
          }

          $r_pages= mysql_db_query($db,"SELECT * FROM pages WHERE id_cat='".$_SESSION['idcat']."' ORDER BY ordre ASC");

          while($pages = mysql_fetch_assoc($r_pages))
          {

          echo'<form method="post" action="adminpages2.php?action=Modifier"><input type="text" name="titre_fr" value="'.$pages['titre_fr'].'" /><input type="text" name="titre_en" value="'.$pages['titre_en'].'" /><input type="text" name="txt_fr" value="'.$pages['txt_fr'].'" /><input type="text" name="txt_en" value="'.$pages['txt_en'].'" />
          Position
          <select name="ordre">';
          for($i=1;$i<=100;$i++)
          {
          echo'<option value="'.$i.'"';
          if($i==$pages['ordre']) // vérification
          {
          echo' selected="selected"';
          }
          echo'>'.$i.'</option>';
          }
          echo'</select>';
          echo'<input type="submit" value="Modifier" /><input type="hidden" name="id" value="'.$pages['id'].'" />';
          echo'<input type="button" value="Supprimer" onClick="document.location=\'adminpages2.php?action=Supprimer&id='.$pages['id'].'" /></form> ';

          }

          echo'<div align="right"><form method="post" action="adminpages2.php?action=Ajouter&id='.$pages['id'].'"><input type="text" name="titre_fr" /><input type="text" name="titre_en" /><input type="text" name="txt_fr" /><input type="text" name="txt_en" />
          Position
          <select name="ordre">';
          for($i=1;$i<=100;$i++)
          {
          echo'<option value="'.$i.'"';
          if($i==$pages['ordre'])
          {
          echo' selected="selected"';
          }
          echo'>'.$i.'</option>';
          }
          echo'</select><input type="submit" name="Ajouter " value="Ajouter une catégorie" /></form>';

          ?>
          </body>
          </head>
          </html>

          Ca ne marche pas encore, pour l'instant il y a une erreur
          ==>
          Notice: Undefined index: idcat in c:\users\dimexbat5\desktop\ectfrance.com\admin\adminpages2.php on line 48
          La ligen 48 correspond à cette ligne de code ==>$r_pages= mysql_db_query($db,"SELECT * FROM pages WHERE id_cat='".$_SESSION['idcat']."' ORDER BY ordre ASC");.

          Je pense qu'il faut sans doute utiliser un if isset($_SESSION['idcat']) mais j'ai essayé et ça ne marche pas. Peut etre que je le place au mauvais endroit. Si vous avez des idées.Merci.
          0
          Précédent
          • 1
          • 2