$Php_self ?

Fermé
kronos12 - 4 janv. 2011 à 22:10
 kronos12 - 5 janv. 2011 à 14:18
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

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
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
tartefion Messages postés 31 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 21 janvier 2011 7
5 janv. 2011 à 10:44
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tartefion Messages postés 31 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 21 janvier 2011 7
Modifié par tartefion le 5/01/2011 à 13:27
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
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
tartefion Messages postés 31 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 21 janvier 2011 7
5 janv. 2011 à 13:35
je suis étonné que ça fonctionne sous la forme $_server['php_self'] oO
0
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
tartefion Messages postés 31 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 21 janvier 2011 7
5 janv. 2011 à 14:06
De rien ^^
Pour ton erreur, la ligne doit être indiqué ;)
0
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