$id se perd
Résolu
txiki
Messages postés
6596
Date d'inscription
Statut
Contributeur
Dernière intervention
-
txiki Messages postés 6596 Date d'inscription Statut Contributeur Dernière intervention -
txiki Messages postés 6596 Date d'inscription Statut Contributeur Dernière intervention -
Salut a tous,
Voilà ça fait plusieurs jours que j'essaie de mettre en place une page protégée (2 pages en 1 en fait) mais quand on clique sur modifier, avant de valider le login et le pass, l'id est bon. Sauf que, en validant, il se perd (est vide). Voici le code complet de la page en question.
Le Pb vient du fait que j'utilise la variable session_start() (si je supprime la protection login/pass, ça fonctionne mais ce n'est pas le but). Les modifs, suppression et ajout sont uniquement réservées aux administrateurs et c'est ça mon Pb.
A force de tripatouiller je ne sais plus où j'en suis.
Si quelqu'un pouvait me regarder où m'orienter sur mon erreur ? ce serait super cool.
J'ai regardé un tas de tutos mais en vain !
Merci d'avance pour votre aide. 9a commence a devenir urgent (c'est pour ma boite et je pédale dans la choucroute, graaaaave !).
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Voilà ça fait plusieurs jours que j'essaie de mettre en place une page protégée (2 pages en 1 en fait) mais quand on clique sur modifier, avant de valider le login et le pass, l'id est bon. Sauf que, en validant, il se perd (est vide). Voici le code complet de la page en question.
Le Pb vient du fait que j'utilise la variable session_start() (si je supprime la protection login/pass, ça fonctionne mais ce n'est pas le but). Les modifs, suppression et ajout sont uniquement réservées aux administrateurs et c'est ça mon Pb.
<? session_start(); // Démarrage de la session. A placer obligatoirement avant tout code html. $_SESSION['connect'] = 0; //initialise la variable 'connect'. if (isset($_POST['mot_de_passe']) AND isset($_POST['login'])) // Si les variables existent. { $mot_de_passe = $_POST['mot_de_passe']; $login = $_POST['login']; //On récupère les données envoyées par la méthode POST du formulaire d'identification. } else // Les variables n'existent pas encore. { $mot_de_passe = ""; $login = ""; // On crée des variables $mot_de_passe et $login vides. } if (($mot_de_passe == "tintin" AND $login == "txiki") OR ($mot_de_passe == "******" AND $login == "******")OR ($mot_de_passe == "******" AND $login == "******") OR ($mot_de_passe == "******" AND $login == "******")) // Si le mot de passe et le login sont bons (valable pour 4 utilisateurs). Plusieurs identifiants et mots de passe. { $_SESSION['connect'] = 1; // Change la valeur de la variable connect. $_SESSION['login'] = $login; // Permet de récupérer le login afin de personnaliser la navigation. $_GET['id'] = '$id'; // On transmet la variable id de la fiche sélectionnée // Si le couple login/pass est correct, on affiche la page cachée. // **************************************************************** ?> <!-- page cachée que l'on va afficher si le couple login/pass est OK --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Fiche détaillée du logiciel</title> <link href="scripts_styles/form.css" rel="stylesheet"> </head> <body> <table border="0" align="center" cellpadding="0" cellspacing="0" id="titre"> <tr> <td id="td-gauche"> </td> <td id="td-milieu"><h1> Fiche logicielle a modifier</h1></td> <td id="td-droit"> </td> </tr> </table> <br /> <? mysql_pconnect('localhost','root','') or die ("Impossible de se connecter à MySQL"); // On se connecte a mysql. mysql_select_db('txiki') or die("Impossible de sélectionner la base de données"); // On choisi la base de données. //============================================================================== // requête SQL qui affiche les infos de la fiche correspondante au lien cliqué //============================================================================== $select = "select * FROM logiciels where id"; // On selectionne seulement la ligne qui correspond au logiciel choisi. $result = mysql_query($select) or die ('Erreur : '.mysql_error() ); $row= mysql_fetch_row($result); // mysql_fetch_row genere un tableau correspondant a la ligne selectionnée de la base. // Les informations sont accessibles par $row["0"], $row["6"], $row["5"] les n° correspondent a leur ordre dans la table, // 0 = id, 6 = nom (6è position dans la table) etc.... // =================================================== // Affichage de la fiche dans un tablea&u dynamique // =================================================== echo "<table width='65%' class='tabmodifs' bgcolor='#FFFFFF' border='2' cellspacing='0' cellpadding='2' align='center'>\n"; // première ligne on affiche le titre "Fiche logicielle" dans 2 colonnes fusionnées. echo "<tr text-align='center'>"; echo "<td colspan='2' bgcolor='#FF9900'><h2> Fiche logicielle </h2></td>"; echo "</tr>\n"; // lecture et affichage des résultats sur 2 colonnes, 1 résultat par lot de 2 lignes. echo "<tr bgcolor='#FFFFFF' text-align='center'>"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong class='echec'> N° d'enregistrement: </strong><strong>" .$row['0']."</strong></td>"; // le n° d'enregistrement. echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong class='echec'> Date d'enregistrement: </strong><strong>" .$row['1']."</strong></td>"; // la date d'enregistrement. echo "<tr>"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Groupe: </strong>" .$row['2']."</td>"; // affiche le groupe du logiciel echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Catégorie: </strong>" .$row['3']."</td>"; // affiche la catégorie du logiciel echo "</tr>\n"; echo "<tr>"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Source: </strong>" .$row['4']."</td>"; // affiche la source du logiciel echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Editeur: </strong>" .$row['5']."</td>"; // affiche l'éditeur du logiciel echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Nom: </strong><strong class='echec'>" .$row['6']."</strong></td>"; // affiche le nom du logiciel echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Ligne du produit: </strong>" .$row['7']."</td>"; // affiche le nom (interne) de la ligne produit echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Socle: </strong>" .$row['8']."</td>"; // affiche le socle nécessaire pour son installation echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Référence DSI: </strong>" .$row['9']."</td>"; // affiche la référence DSI (cat, ref etc...) echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Standard DSI: </strong>" .$row['10']."</td>"; // affiche le standard de la DSI echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Type de licence: </strong>" .$row['11']."</td>"; // affiche le type de licence (flottante, etc...) echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Version standard: </strong>" .$row['12']."</td>"; // affiche la version utilisée en standard à TM echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Compatibilité XP: </strong>" .$row['13']."</td>"; // affiche la compatibilité avec XP ou pas echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Versions en exploitation: </strong>" .$row['14']."</td>"; // affiche le nombre de versions en exploitation echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Type de déploiement: </strong>" .$row['15']."</td>"; // affiche le type de déploiement echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Type d'installation: </strong>" .$row['16']."</td>"; // affiche le type d'installation echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Domaine: </strong>" .$row['17']."</td>"; // affiche le domaine d'application echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Fonctionnalité: </strong>" .$row['18']."</td>"; // affiche une courte description de sa fonctionnalité echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Description: </strong>" .$row['19']."</td>"; // affiche une description plus détaillée echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Instructions: </strong>" .$row['20']."</td>"; // affiche les instructions particulières s'il y en a echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Pré-requis: </strong>" .$row['21']."</td>"; // affiche les pré-requis nécessaires a son installation echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Référent métier: </strong>" .$row['22']."</td>"; // affiche le référent métier de l'application echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Commentaires: </strong>" .$row['23']."</td>"; // affiche des commentaires s'il y en a echo "</tr>\n"; echo "</table>\n"; // fin du tableau. echo "<p></p>\n"; mysql_close(); ?> </form> <table width="80%" border="0" align="center" cellpadding="4" cellspacing="0"> <tr> <td width="100%" colspan="3" align="center"><img src="boutons-catalogue/valider-modification.png" width="150" height="21" onClick="document.location.href='insert_modifs.php'"></td> </tr> </table> <table width="80%" border="0" align="center" cellpadding="4" cellspacing="0"> <tr> <td colspan="3" align="center"><a href="index.php"><img src="boutons-catalogue/accueil.png" alt="Retour à la page d'accueil" width="62" height="21" border="0" /></a> <a href="liste.php"><img src="boutons-catalogue/afficher-catalogue.png" alt="Afficher la liste des logiciels du catalogue" width="139" height="21" border="0" /></a> <a href="fiche_ajout.php"><img src="boutons-catalogue/ajouter.png" alt="Ajouter un logiciel au catalogue" width="116" height="21" border="0" /></a> <a href="rechercher.php"><img src="boutons-catalogue/chercher-fiche.png" alt="Chercher un logiciel dans le catalogue" width="128" height="21" border="0" /></a> <a href="javascript:history.go(-1)"><img src="boutons-catalogue/retour.png" alt="Retour à la page précédente" width="58" height="21" border="0" /></a></td> </tr> <tr> <td align="center" width="35%"> </td> <td align="center" bgcolor="#E5E5E5" width="30%"> <? echo "Mis à jour le: "; echo date("d - m - Y"); ?> </td> <td align="center" width="35%"> </td> </tr> </table> </body> </html> <? } else // le mot de passe n'est pas bon { // On affiche la zone de texte pour rentrer le mot de passe. ?> <!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> Page protégée par mot de passe </title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link href="scripts_styles/form.css" rel="stylesheet"> </head> <body> <h1 align="center"> Cette page est réservée <br /> aux administrateurs uniquement ! </h1> <h3 align="center" class="echec"> Veuillez entrer le login et mot de passe : </h3> <p> </p> <table align="center" width="500px"><tr><td> <form action="modification.php" name="authentification" method="post"> <p align="center"><input type="text" name="login" /></p> <script type="text/javascript" language="JavaScript">document.authentification.login.focus();</script> <p align="center"><input type="password" name="mot_de_passe" /></p> <p align="center"><input type="submit" name="valider" value="Valider"></p> </form> </td></tr></table> <? $_GET['id'] = '$id'; // On transmet la variable id de la fiche sélectionnée ?> </body> </html> <? } // Fin du else ?>Elle est visible sur: http://txiki.free.fr (afficher le catalogue, cliquer sur le dernier de la première page paexemple). C'est la première fiche de la table qui s'affiche (le n°1 n'existe pas).
A force de tripatouiller je ne sais plus où j'en suis.
Si quelqu'un pouvait me regarder où m'orienter sur mon erreur ? ce serait super cool.
J'ai regardé un tas de tutos mais en vain !
Merci d'avance pour votre aide. 9a commence a devenir urgent (c'est pour ma boite et je pédale dans la choucroute, graaaaave !).
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
5 réponses
Salut,
bon j'ai pas regardé le code encore, mais juste en regardant l'adresse ( sur un serveur Free) et si tu fais tes tests sur ce serveur, il est possible que tu ais oublié de mettre un dossier "sessions" vide à la racine de ton site..
bon j'ai pas regardé le code encore, mais juste en regardant l'adresse ( sur un serveur Free) et si tu fais tes tests sur ce serveur, il est possible que tu ais oublié de mettre un dossier "sessions" vide à la racine de ton site..
Salut Stringman621,
Tout d'abord merci pour vos réponses !
Un petit changement après la modif. Maintenant dans l'url (avant de valider) je vois ceci:
http://127.0.0.1/Catalogue/modification.php?id=206
Après validation, voici ce que je vois:
http://127.0.0.1/Catalogue/modification.php?id='.$_GET['id'].'
Je n'y comprends plus rien.
J'ai viré des <?
$_GET['id'] = '$id'; // On transmet la variable id de la fiche sélectionnée
?> que j'avais mis un peu partout.
Tout d'abord merci pour vos réponses !
Un petit changement après la modif. Maintenant dans l'url (avant de valider) je vois ceci:
http://127.0.0.1/Catalogue/modification.php?id=206
Après validation, voici ce que je vois:
http://127.0.0.1/Catalogue/modification.php?id='.$_GET['id'].'
Je n'y comprends plus rien.
J'ai viré des <?
$_GET['id'] = '$id'; // On transmet la variable id de la fiche sélectionnée
?> que j'avais mis un peu partout.
Désolé je n'ai pas été très explicite (woah quel vocabulaireuhhh :-p )
Alors exactement il faut mettre ca :
Désolé encore une fois
Di moi si LA ca te va loool !
Alors exactement il faut mettre ca :
<form action="modification.php?id=<? $GET['id'] ?>" name="authentification" method="post">
Désolé encore une fois
Di moi si LA ca te va loool !
??? voici ce que j'ai dans la barre url de Firefox avec cette méthode:
modification.php?id=%3Cbr%20/%3E%3Cb%3ENotice%3C/b%3E:%20%20Undefined%20variable:%20%20GET%20in%20%3Cb%3Eg:\sites%20web\txiki\modification.php%3C/b%3E%20on%20line%20%3Cb%3E153%3C/b%3E%3Cbr%20/%3E
Et bien sur j'ai toujours la première fiche de la table au lieu de la 10è de la première page
modification.php?id=%3Cbr%20/%3E%3Cb%3ENotice%3C/b%3E:%20%20Undefined%20variable:%20%20GET%20in%20%3Cb%3Eg:\sites%20web\txiki\modification.php%3C/b%3E%20on%20line%20%3Cb%3E153%3C/b%3E%3Cbr%20/%3E
Et bien sur j'ai toujours la première fiche de la table au lieu de la 10è de la première page
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Encore désolé j'ai oublié le underscore entre $ et GET
Si tu regarde bien dans ton URL tu trouve :
notice undefined variable GET et les %20% sont les espaces
;)
Si tu regarde bien dans ton URL tu trouve :
notice undefined variable GET et les %20% sont les espaces
;)
Je vais péter un cable (il va passer par la fenetre (ce P***** d'ordi de ****)
Voici ce que j'ai maintenant:
http://127.0.0.1/Catalogue/modification.php?id=
Il l'a encore perdu l'id en cours de route (après validation mais avec une fiche détaillée vide)
Je te refile le code tel qui l'est actuellement:
Je sens que je suis vraiment très près mais où est la boulette ?
RAPPEL: la page est constituée de 2 pages en fait (le login avec le formulaire à la fin et la fiche au milieu).
En local (pas chez free hein !)
Voici ce que j'ai maintenant:
http://127.0.0.1/Catalogue/modification.php?id=
Il l'a encore perdu l'id en cours de route (après validation mais avec une fiche détaillée vide)
Je te refile le code tel qui l'est actuellement:
<? session_start(); // Démarrage de la session. A placer obligatoirement avant tout code html. $_SESSION['connect'] = 0; //initialise la variable 'connect'. if (isset($_POST['mot_de_passe']) AND isset($_POST['login'])) // Si les variables existent. { $mot_de_passe = $_POST['mot_de_passe']; $login = $_POST['login']; //On récupère les données envoyées par la méthode POST du formulaire d'identification. } else // Les variables n'existent pas encore. { $mot_de_passe = ""; $login = ""; // On crée des variables $mot_de_passe et $login vides. } if (($mot_de_passe == "tintin" AND $login == "txiki") OR ($mot_de_passe == "******" AND $login == "******")OR ($mot_de_passe == "******" AND $login == "******") OR ($mot_de_passe == "******" AND $login == "******")) // Si le mot de passe et le login sont bons (valable pour 4 utilisateurs). Plusieurs identifiants et mots de passe. { $_SESSION['connect'] = 1; // Change la valeur de la variable connect. $_SESSION['login'] = $login; // Permet de récupérer le login afin de personnaliser la navigation. $_GET['id'] = '$id'; // On transmet la variable id de la fiche sélectionnée // Si le couple login/pass est correct, on affiche la page cachée. // **************************************************************** ?> <!-- page cachée que l'on va afficher si le couple login/pass est OK --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Fiche détaillée du logiciel</title> <link href="scripts_styles/form.css" rel="stylesheet"> </head> <body> <table border="0" align="center" cellpadding="0" cellspacing="0" id="titre"> <tr> <td id="td-gauche"> </td> <td id="td-milieu"><h1> Logiciel a modifier</h1></td> <td id="td-droit"> </td> </tr> </table> <br /> <? mysql_pconnect('localhost','root','') or die ("Impossible de se connecter à MySQL"); // On se connecte a mysql. mysql_select_db('txiki') or die("Impossible de sélectionner la base de données"); // On choisi la base de données. //============================================================================== // requête SQL qui affiche les infos de la fiche correspondante au lien cliqué //============================================================================== $id = $_GET['id']; $select = "select * FROM logiciels WHERE id='$id'"; // On selectionne seulement la ligne qui correspond au logiciel choisi. $result = mysql_query($select) or die ('Erreur : '.mysql_error() ); $row= mysql_fetch_row($result); // mysql_fetch_row genere un tableau correspondant a la ligne selectionnée de la base. // Les informations sont accessibles par $row["0"], $row["6"], $row["5"] les n° correspondent a leur ordre dans la table, // 0 = id, 6 = nom (6è position dans la table) etc.... // =================================================== // Affichage de la fiche dans un tablea&u dynamique // =================================================== echo "<table width='65%' class='tabmodifs' bgcolor='#FFFFFF' border='2' cellspacing='0' cellpadding='4' align='center'>\n"; // première ligne on affiche le titre "Fiche logicielle" dans 2 colonnes fusionnées. echo "<tr text-align='center'>"; echo "<td colspan='2' bgcolor='#FF9900'><h2> Fiche détaillée </h2></td>"; echo "</tr>\n"; // lecture et affichage des résultats sur 2 colonnes, 1 résultat par lot de 2 lignes. echo "<tr bgcolor='#FFFFFF' text-align='center'>"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong class='echec'> N° d'enregistrement: </strong><strong>" .$row['0']."</strong></td>"; // le n° d'enregistrement. echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong class='echec'> Date d'enregistrement: </strong><strong>" .$row['1']."</strong></td>"; // la date d'enregistrement. echo "<tr>"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Groupe: </strong>" .$row['2']."</td>"; // affiche le groupe du logiciel echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Catégorie: </strong>" .$row['3']."</td>"; // affiche la catégorie du logiciel echo "</tr>\n"; echo "<tr>"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Source: </strong>" .$row['4']."</td>"; // affiche la source du logiciel echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Editeur: </strong>" .$row['5']."</td>"; // affiche l'éditeur du logiciel echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Nom: </strong><strong class='echec'>" .$row['6']."</strong></td>"; // affiche le nom du logiciel echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Ligne du produit: </strong>" .$row['7']."</td>"; // affiche le nom (interne) de la ligne produit echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Socle: </strong>" .$row['8']."</td>"; // affiche le socle nécessaire pour son installation echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Référence DSI: </strong>" .$row['9']."</td>"; // affiche la référence DSI (cat, ref etc...) echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Standard DSI: </strong>" .$row['10']."</td>"; // affiche le standard de la DSI echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Type de licence: </strong>" .$row['11']."</td>"; // affiche le type de licence (flottante, etc...) echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Version standard: </strong>" .$row['12']."</td>"; // affiche la version utilisée en standard à TM echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Compatibilité XP: </strong>" .$row['13']."</td>"; // affiche la compatibilité avec XP ou pas echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Versions en exploitation: </strong>" .$row['14']."</td>"; // affiche le nombre de versions en exploitation echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Type de déploiement: </strong>" .$row['15']."</td>"; // affiche le type de déploiement echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Type d'installation: </strong>" .$row['16']."</td>"; // affiche le type d'installation echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Domaine: </strong>" .$row['17']."</td>"; // affiche le domaine d'application echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Fonctionnalité: </strong>" .$row['18']."</td>"; // affiche une courte description de sa fonctionnalité echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Description: </strong>" .$row['19']."</td>"; // affiche une description plus détaillée echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Instructions: </strong>" .$row['20']."</td>"; // affiche les instructions particulières s'il y en a echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Pré-requis: </strong>" .$row['21']."</td>"; // affiche les pré-requis nécessaires a son installation echo "</tr>\n"; echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche'><strong>Référent métier: </strong>" .$row['22']."</td>"; // affiche le référent métier de l'application echo "<td width='50%' bgcolor='#F0F0F0' class='td-fiche-droite'><strong>Commentaires: </strong>" .$row['23']."</td>"; // affiche des commentaires s'il y en a echo "</tr>\n"; echo "</table>\n"; // fin du tableau. echo "<p></p>\n"; mysql_close(); ?> </form> <table width="80%" border="0" align="center" cellpadding="4" cellspacing="0"> <tr> <td width="100%" colspan="3" align="center"><img src="boutons-catalogue/valider-modification.png" width="150" height="21" onClick="document.location.href='insert_modifs.php'"></td> </tr> </table> <table width="80%" border="0" align="center" cellpadding="4" cellspacing="0"> <tr> <td colspan="3" align="center"><a href="index.php"><img src="boutons-catalogue/accueil.png" alt="Retour à la page d'accueil" width="62" height="21" border="0" /></a> <a href="liste.php"><img src="boutons-catalogue/afficher-catalogue.png" alt="Afficher la liste des logiciels du catalogue" width="139" height="21" border="0" /></a> <a href="fiche_ajout.php"><img src="boutons-catalogue/ajouter.png" alt="Ajouter un logiciel au catalogue" width="116" height="21" border="0" /></a> <a href="rechercher.php"><img src="boutons-catalogue/chercher-fiche.png" alt="Chercher un logiciel dans le catalogue" width="128" height="21" border="0" /></a> <a href="javascript:history.go(-1)"><img src="boutons-catalogue/retour.png" alt="Retour à la page précédente" width="58" height="21" border="0" /></a></td> </tr> <tr> <td align="center" width="35%"> </td> <td align="center" bgcolor="#E5E5E5" width="30%"> <? echo "Mis à jour le: "; echo date("d - m - Y"); ?> </td> <td align="center" width="35%"> </td> </tr> </table> </body> </html> <? } else // le mot de passe n'est pas bon { // On affiche la zone de texte pour rentrer le mot de passe. ?> <!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> Page protégée par mot de passe </title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link href="scripts_styles/form.css" rel="stylesheet"> </head> <body> <h1 align="center"> Cette page est réservée <br /> aux administrateurs uniquement ! </h1> <h3 align="center" class="echec"> Veuillez entrer le login et mot de passe : </h3> <p> </p> <table align="center" width="500px"><tr><td> <form action="modification.php?id=<? $_GET['id'] ?>" name="authentification" method="POST"> <p align="center"><input type="text" name="login" maxlength="10" /></p> <script type="text/javascript" language="JavaScript">document.authentification.login.focus();</script> <p align="center"><input type="password" name="mot_de_passe" maxlength="10" /></p> <p align="center"><input type="submit" name="valider" value="Valider"></p> </form> </td></tr></table> </body> </html> <? } // Fin du else ?>
Je sens que je suis vraiment très près mais où est la boulette ?
RAPPEL: la page est constituée de 2 pages en fait (le login avec le formulaire à la fin et la fiche au milieu).
En local (pas chez free hein !)
J'ai teste ton script chez moi en mettant une valeur bidon en GET et j'ai en effet comme toi :
http://localhost/modification.php?id=
Je pense avoir trouver (enfin en modifiant ce truc la valeur passé bien en GET), j'ai transformer :
<form action="modification.php?id=<? $_GET['id'] ?>" name="authentification" method="POST">
En:
<? echo '<form action="test.php?id='.$id.'" name="authentification" method="POST">'; ?>
Voilo, voilou, si ca ne marche pas je viens t'aider a balancer ton PC ;)
Au fait, ya un truc que j'ai pas compris, ya un moment tu a ecris ca :
$_GET['id'] = '$id'
Donc dans ta variable $_GET['id'], tu auras $id et non la valeur de $id (supprime les " ' ")
Et aussi cette affectation ne me semble pas utile car les seules valeurs qui seront envoyées en GET sont :
- celles d'un formulaire
ou
- celle ajouter dans l'URL (comme dans la balise form)
Tchô
http://localhost/modification.php?id=
Je pense avoir trouver (enfin en modifiant ce truc la valeur passé bien en GET), j'ai transformer :
<form action="modification.php?id=<? $_GET['id'] ?>" name="authentification" method="POST">
En:
<? echo '<form action="test.php?id='.$id.'" name="authentification" method="POST">'; ?>
Voilo, voilou, si ca ne marche pas je viens t'aider a balancer ton PC ;)
Au fait, ya un truc que j'ai pas compris, ya un moment tu a ecris ca :
$_GET['id'] = '$id'
Donc dans ta variable $_GET['id'], tu auras $id et non la valeur de $id (supprime les " ' ")
Et aussi cette affectation ne me semble pas utile car les seules valeurs qui seront envoyées en GET sont :
- celles d'un formulaire
ou
- celle ajouter dans l'URL (comme dans la balise form)
Tchô
Bonjour, je n'ai lu tout les commentaires de nos amis mais g juste une remarque à propos de :<form action="modification.php?id=<? $_GET['id'] ?>" ...
je trouve que c normal que id ne prends rien il faut ecrire le get avec un echo <form action="modification.php?id=<? echo $_GET['id']; ?>"
a mes connaissances si dans une page php on ecrit:
$_GET['id']; rien ne sera affiché.
je trouve que c normal que id ne prends rien il faut ecrire le get avec un echo <form action="modification.php?id=<? echo $_GET['id']; ?>"
a mes connaissances si dans une page php on ecrit:
$_GET['id']; rien ne sera affiché.
Non, non, ce dossier existe bien et il contient même des fichiers comme ci-dessous (avec plein de chiffres).
sess_0a786f70b21ac4cc9ec8aa49...............
Moi, je fais les tests en local.
Pourtant cette façon de protéger la page (avec le session start puis les login et pass enregistrés avant la page cahé me convenait bien car il n'y aura que 3/4 personnes max pour utiliser ces fonctions de suppression, modifs ajout).
Le reste doit etre disponible pour tous les visiteurs de la boite.
Ce que je ne m'explique pas c'est que je vois l'id 206 sur la barre d'url (en cliquant sur le lien modifier de la dernière fiche de la première page dans la liste) et qu'en validant (login et pass) tout disparait. Je parle la en local car chez free il ne m'affiche pas de la même façon càd par ordre croissant de nom
En fait, il est là mon Pb.
Ce je ne sais pas ou le mettre (a plusieurs endroits de la page mais où (comme il s'agit de 2 pages en 1...)
Je remet à jour les pages chez free tout de suite.
deja un truc pourquoi les autres variables que tu récupères sont avec la méthode POST alors que pour récupérer l'id tu utilises la method GET
donc regarde si tu as bien mis la méthode GET pour le formulaire envoyant l'id...
ensuite une de tes requetes :
il doit manquer quelque chose dans ta requete donc essaie comme ceci :
voila j'espère avoir pu t'aider
La methode post permet de ne pas voir les login et pass dans l'url (embetant non !). On ne passe jamais jamais les login en get.
il doit manquer quelque chose dans ta requete donc essaie comme ceci :
$select = "select * from logiciels where id= '$id' ";
Excellente remarque: seulement ça me mettait undefined id en mettant le ='$id'; donc je l'ai viré.
Mais le Pb demeure entier. On voit le bon id jusqu'au moment de valider le formulaire login. C'est a ce moment que l'id disparait ( ? ? ?)
Je ne sait pas si je me trouvais dans la partie de code qui te poser problème, mais j'ai vu que tu perdais une variable en GET lors de la validation de ton formulaire et il me semble avoir vu un leger oubli.
Tu mets dans ta balise form :
Mais lorsque tu valide ton formulaire tu lui demande de "recharger" la page modification.php sans la variable GET a la suite don essaie de faire ca :
Enfin avec quelques modif' au niveau des apostrophes ;)
Dis moi si ca te convient !
Tchô !