$Php_self ?

Bonjour,

voila je suis en train d'écrire un programme en php qui a pour but de m'afficher dans un tableau tout ce qui se trouve dans une table de ma base de données, avec à coté de ce tableau des cases à cocher pour pouvoir supprimer une ligne de ma base de données (je travaille sur easyphp)
je n'ai pas mon code sur moi je le posterai demain mais j'ai un problème , à l'éxécution du formulaire il me donne deux variables non définies dont $Php_self ...
est ce vraiment utile de la mettre ?
sinon comment et ou la déclarer ?
je suis bloqué dans mon code j'espere que quelqu'un pourra m'aider ...

merci d'avance

cordialement

6 réponses

  1. rectification :
    $_server['php_self'] fonctionne je devais rajouter des accolades car la variable est dans une chaine de caractères je ne l'avais pas différencié ...

    Me reste toujours le probleme pour définir $Confirmation...

    Actuellement le code pour afficher le tableau avec les cases à cocher a l'air de bien fonctionner mais je doute pour celui de la demande de confirmation à l'utilisateur et celui de la suppression ...
    0
    1. je suis étonné que ça fonctionne sous la forme $_server['php_self'] oO
      0
    2. nonon ne t'en fais pas je l'ai évidemment écrit en majuscules dès le début , c'est juste que ici je ne l'ai pas fait ^^
      merci pour ton petit code je ne sais pourquoi je n'y ai pas pensé enfin encore merci à toi !!
      il me reste une dernière erreur, pas la moins chiante malheureusement ...
      j'ai du oublier une accolade ou un guillemet quelque part car j'obtiens "unexpected $end" lol j'ai plus qu'a chercher!
      encore merci a toi
      0
    3. De rien ^^
      Pour ton erreur, la ligne doit être indiqué ;)
      0
    4. non ça me donnait la toute dernière ligne alors qu'il n'y a rien ...
      mais j'ai trouvé et il me manquait bien une accolade ;)
      Je n'ai plus d'erreur (détectée) en revanche quand j'essaie de supprimer une ligne rien ne se passe je n'ai même pas la demande de confirmation et encore moins la suppression =(
      Ma page ne fait que se recharger sans rien modifier
      je ne sais pas pourquoi et ou est mon erreur ...
      0
  2. Pour confirmation tu peux le faire en javascript...
    Ou, plus simble si tu ne connais pas le js, faire un petit formulaire de confirmation :D

    /* l'adresse de ta page */
    $ou = $_SERVER['PHP_SELF']; /

    /* Ton formulaire */
    echo "<form action='$ou' method='POST'>";
    echo "<select name='choix'>";
    echo "<option value='oui'>Oui</option>";
    echo "<option value='non'>Non</option>";
    echo "</select>";
    echo "<input type='submit' /></form>";

    /* Déclaration de $confirmation */
    if(isset($_POST['choix']))
    {
    $confirmation = $_POST['choix'];
    }

    Pour ton autre erreur, il faut - impérativement - mettre les caractères en majuscule sinon ça ne fonctionne pas : $_SERVER['PHP_SELF'] puisque cette variable est déjà défini, il faut donc l'écrire correctement ^^
    0
    1. Concernant la variable $confirmation ce que je voudrais faire en fait c'est demander une confirmation (!) à l'utilisateur et que selon sa réponse, oui ou non, la variable $confirmation prendra la valeur oui ou non selon le choix de l'utilisateur , comme ça il suffirait de tester cette variable à la publication du formulaire ...
      je débute en php je pensais que cela suffirait ... que dois je faire pour qu'elle soit déclarée ?

      concernant la variable $php_self , j'ai effectivement testé $_server['php_self'] mais j'obtiens cette erreur :

      Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\Program Files\EasyPHP-5.3.3\www\suppression'z.php on line 53

      Je pensais aussi qu'en mettant $_server['php_self'] ça fonctionnerait mais ça n'est pas le cas ...

      Merci pour ton aide !
      0
      1. Bonjour,

        Tu ne peux pas utilisé de variable non déclaré dans des conditions.
        Ici $confirmation est utilisé dans un if sans être déclaré, d'où l'erreur.
        La ligne if($confirmation == "oui") signifie que l'on effectue un test sur la valeur de $confirmation or dans ton code on ne voit aucun éléments qui la définissent.

        Ensuite pour ta variable $PHP_self, ça ne serait pas plutôt $_SERVER['PHP_SELF'] ? Qui indiquerait que ton formulaire doit agir sur la page en cours.

        Au plaisir.
        0
        1. Merci DiabloBros je jetterai un oeil à ton code plus tard ;)

          comme dit hier je vous envoie mon code :

          <html>
          <SCRIPT>
          
          var coche = true;
          
          function cocher(){
          var frm = document.Suppression;
          
              for(i=0;i< frm.length;i++)
              {
                e=frm.elements[i];
                if (e.type=='checkbox')  e.checked = coche;
              }
          
              coche = !(coche);
          }
          </SCRIPT>
          <?php
          
          /*****************************/
          /* Formulaire de sélection   */
          /*****************************/
          
              if (!($Lien = mySql_connect("localhost", "root", "")))
               {
                print("<H1><FONT color=\"red\">La connexion a echoué!</Font></H1>\n") ;
                print("<BR><H2>Arrêt immédiat!</H2>\n") ;
                exit() ;
               }
          
              if ( !(mySql_select_db("csv_db",$Lien))){
          
               print("<H1><FONT color=\"red\">Erreur Interne</Font></H1>\n") ;
               print("<BR><H2>Arrêt immédiat!</H2><BR>\n") ;
               print("<H3>" . mySql_errno()." : ". mySql_error(). "</H3>\n") ;
               exit() ;
              }
          
          
              $Requete = "Select * from parc_informatique ORDER BY NomCalife DESC" ;
          
              if(!$Resultat = mySql_query($Requete,$Lien)){
               print("<H1><FONT color=\"red\">Erreur Interne</Font></H1>\n") ;
               print("<BR><H2>Arrêt immédiat!</H2><BR>\n") ;
               print("<H3>" . mySql_errno()." : ". mySql_error(). "</H3>\n") ;
               exit() ;
              }
          
          
              $presentation=array("fond"=>array("#D3DCE3","#CCCCCC","#DDDDDD"),
                                  "police"=>array("#000000"));
          	
              echo ("<TABLE><FORM NAME=\"Suppression\" Action=\"$PHP_SELF\" Method=\"get\">\n");
          
              // Affichage de l'entete
          
              print("<TR BGCOLOR=\"".$presentation['fond'][0]."\">\n");
              print("<TD><INPUT TYPE=\"checkbox\" name=\"Tous\" OnClick=\"cocher();\">\n");
              print("</TD>\n");
          
              print("<TD><B><FONT COLOR=\"".$presentation['police'][0]."\">\n");
              print("Prenom\n");
              print("</FONT></B></TD>\n");
          
              print("<TD><B><FONT COLOR=\"".$presentation['police'][0]."\">\n");
              print("Nom\n");
              print("</FONT></B></TD>\n");
          
              print("<TD><B><FONT COLOR=\"".$presentation['police'][0]."\">\n");
              print("NomCalife\n");
              print("</FONT></B></TD>\n");
          	
          	print("<TD><B><FONT COLOR=\"".$presentation['police'][0]."\">\n");
              print("Service\n");
              print("</FONT></B></TD>\n");
          	
          	print("<TD><B><FONT COLOR=\"".$presentation['police'][0]."\">\n");
              print("Libelle\n");
              print("</FONT></B></TD>\n");
          	
          	print("<TD><B><FONT COLOR=\"".$presentation['police'][0]."\">\n");
              print("Constructeur\n");
              print("</FONT></B></TD>\n");
          	
          	print("<TD><B><FONT COLOR=\"".$presentation['police'][0]."\">\n");
              print("NumSérie\n");
              print("</FONT></B></TD>\n");
          	
          	print("<TD><B><FONT COLOR=\"".$presentation['police'][0]."\">\n");
              print("Date_Application\n");
              print("</FONT></B></TD>\n");
          
              $index = 0;
              $NbCouleur = count($presentation['fond']) - 1;
          
              // Remplissage du tableau
          
              while($donnees = mysql_fetch_object($Resultat))
              {
              print("<TR BGCOLOR=\"".$presentation['fond'][$index%$NbCouleur + 1]."\">\n");
          
              print("<TD><INPUT TYPE=\"checkbox\" name=\"Ref[]\" value=\"$donnees->Prenom\"></TD>\n");
          
              print("<TD>\n");
              print($donnees->Prenom."\n");
              print("</FONT></TD>\n");
          
              print("<TD>\n");
              print($donnees->Nom."\n");
              print("</FONT></TD>\n");
          
              print("<TD>\n");
              print($donnees->NomCalife."\n");
              print("</FONT></TD>\n");
          	
          	print("<TD>\n");
              print($donnees->Service."\n");
              print("</FONT></TD>\n");
          	
          	print("<TD>\n");
              print($donnees->Libelle."\n");
              print("</FONT></TD>\n");
          	
          	print("<TD>\n");
              print($donnees->Constructeur."\n");
              print("</FONT></TD>\n");
          	
          	print("<TD>\n");
              print($donnees->NumSérie."\n");
              print("</FONT></TD>\n");
          	
          	print("<TD>\n");
              print($donnees->Date_Application."\n");
              print("</FONT></TD>\n");
          
              $index ++;
          
              }
              print("<TR><TD colspan=\"4\"><input type=\"submit\"></TD>\n");
              print("<input type=\"hidden\" name=\"Validation\" value=\"1\">");
              print("</FORM></TABLE>\n");
          
          /*******************************/
          /* Formulaire de confirmation  */
          /*******************************/
          
          	if (isset($Validation)){
          
              print("<FORM ACTION=\"$PHP_SELF\" METHOD=\"get\" Name=\"valid\">\n");
              print("<TABLE>");
          
              if (count($Ref)==0) {
               print("<TR><TD><H1>Vous n'avez saisi aucune valeur</H1></TD>\n");
               print("<TR><TD><INPUT TYPE=\"submit\" value=\"Retour\"></TD>");
          
              }else{
          
                   print("<TR><TD><H1>Etes-vous certains de vouloir effacer les données</H1></TD>\n");
                   print("<TR><TD><Input type=\"submit\" name=\"Confirmation\" value=\"Oui\">\n");
                   print("<Input type=\"submit\" name=\"Confirmation\" value=\"Non\"></TD>");
          
              // on replace toutes les references.
          
              for($i=0;$i<count($Ref);$i++)
                   print("<input type=\"hidden\" name=\"Ref[]\" value=\"".$Ref[$i]."\">\n");
          
              }
              print("</TABLE></FORM>");
              exit();
          
          }
          
          
          /*******************************/
          /* Suppression des données     */
          /*******************************/
          
          	if ($Confirmation=='Oui') {
          	
          	if (!($Lien = mySql_connect("localhost", "root", "")))
          	{
          	print("<H1><FONT color=\"red\">La connexion a échoué!</Font></H1>\n");
          	print("<BR><H2>Arrêt immédiat!</H2>\n") ;
          	exit() ;
          	}
              if ( !(mySql_select_db("csv_db",$Lien))){
               print("<H1><FONT color=\"red\">Erreur Interne</Font></H1>\n") ;
               print("<BR><H2>Arrêt immédiat!</H2><BR>\n") ;
               print("<H3>" . mySql_errno()." : ". mySql_error(). "</H3>\n") ;
               exit() ;
              }
              $Requete = "DELETE FROM parc_informatique WHERE NomCalife IN (";
          
          	for($i=0;$i<count($Ref)-1;$i++)
              $Requete .= $Ref[$i] . ",";
              $Requete .= $Ref[count($Ref)-1] . ")";
              
              if(!$Resultat = mySql_query($Requete,$Lien)){
               print("<H1><FONT color=\"red\">Erreur Interne</Font></H1>\n") ;
               print("<BR><H2>Arrêt immédiat!</H2><BR>\n") ;
               print("<H3>" . mySql_errno()." : ". mySql_error(). "</H3>\n") ;
               exit() ;
              } else {
               print("<H1><FONT color=\"red\">Commande réussie</Font></H1>\n") ;
               print("<BR><H2>Vos données sont effacées</H2><BR>\n") ;
          exit() ;
              }
          
          }
          
          ?>
          </html>
          


          Voila j'ai mis en gras les deux erreurs que me trouve easyphp
          les variables $Php_self et $confirmation ne sont pas définies et je suis bloqué, mon tableau représentant ce qu'il y a dans ma base s'affiche bien mais pour la demande de confirmation et la requête de suppression rien ne s'effectue ...

          merci d'avance !

          cordialement
          0
          1. j'avais fais ca il ya un moment deja :
            https://codes-sources.commentcamarche.net/

            là bien sur cele gere des fichier , mais cela peu etre des client ou autre peu importe ^^

            tu trouvera surment la reponse a ton soucie ...
            __
            _/ \_____________________
            \__/ - diablobros was here -
            0