PHP: ou est le Pb ? (id absent)

Résolu/Fermé
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 2 janv. 2011 à 22:10
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 16 janv. 2011 à 21:01
Bonjour,
Sur le site ci-dessous (user=test et pass=toto (colonne du milieu pour les modifs)
1- http://editionsgracianne.free.fr/Agenda/Formulaire.php

2- http://editionsgracianne.free.fr/Agenda/Liste_Agenda_Modifier.php tout se passe bien.

3- http://editionsgracianne.free.fr/Agenda/Fiche_Agenda_Modifier.php?ID=2 Mais à l'étape 3, en cliquant sur un lien pour afficher d'abord la page pour vérifier s'il l'on est bien sur le bon article à modifier, on a un bouton Modifier, qui est sensé afficher un formulaire pré-renseigné en vue d'une modification, l'id ne se transmet plus (voir le code source du navigateur ou l'url).
J'ai déjà bien galéré pour pouvoir afficher la liste (apparemment des Pb de transfert ftp car après de multiples essais, ça s'est à fonctionner).

Vous pouvez faire des tests, la table sera détruite à la fin de tous les tests (c'est pas encore gagné hi hi hi hi....).

Merci d'avance pour ceux qui verront un peu plus clair que que moi car je sature, là....



Le bonheur est la seule chose que l'on peut donner sans l'avoir.
A voir également:

4 réponses

txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
3 janv. 2011 à 06:15
Bonjour et merci de vous etre penché sur le Pb, mais il faut savoir que j'ai tout essayé. Voici une partie du code du formulaire de modif (à priori c'est lui qui merde).
<?php
// On recupere la variable "id" correspondant au prénom choisi
//ce script est appelé par un click sur le lien n'est ce pas, alors l'id est passé par l'URL donc en GET 
$id=$_GET['ID']; // on récupère la requete par la variable $_GET

// on prends les infos de connexion sur le fichier Fonctions_Agenda.php
require 'Fonctions_Agenda.php';  

// connection à la DB
$link = mysql_pconnect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base
mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table

// requête SQL qui affiche les infos de la fiche correspondante au lien cliqué 
$select = 'SELECT * FROM agenda WHERE ID="$id"';  // On selectionne seulement la ligne qui correspond à l'événement choisi
$query = mysql_query($select)  or die ('Erreur : '.mysql_error() );
$row= mysql_fetch_array($query);  // mysql_fetch_array génère un tableau correspondant a la ligne selectionnée de la BDD

?>

<div id="globalmodif" style="position:absolute; visibility:visible; z-index:1;">
  <table width="100%"  border="0" cellspacing="0" cellpadding="6">
    <tr>
      <td><h2 align="center"> Modifier cet événement dans l'agenda. </h2>
        <!-- Pour que les champs obligatoires soient controlés, ils doivent être vierges (pas de value) -->
        <form  name="Presse" id="Presse" action="Traitement_Agenda_Modifier.php"  onSubmit="return verif(this)" method="POST">
		<p><label for="ID"></label> <input name="ID" id="ID" type="hidden" value="<?php echo $_GET['ID']; ?>" /> 
		<i>(Les champs marqués <span class="red">*</span> sont obligatoires et ne doivent excéder 256 caractères) </i></p>
          <p align="center"><label for="Lien">Texte pour le lien</label> 
          : <span class="red">*</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
          <input name="Lien" id="Lien" tabindex="10" type="text" value="<?php echo $row['Lien']; ?>" size="100" maxlength="255" /></p>
          <p align="center"><label for="Source">Source du texte</label> : &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="Source" id="Source" tabindex="20" type="text" value="<?php echo $row['Source']; ?>" size="100" maxlength="255" /></p>
          <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label for="Date">Date</label>
    (utiliser le calendrier ci-contre) : &nbsp;<a href="javascript:cal1.popup();"><img src="img-calendar/cal.gif" width="16" height="16" border="0" alt="Cliquez ici pour choisir la date" title="Cliquez ici pour choisir la date."></a>&nbsp;
    <input name="Date" id="Date" value="<?php echo $row['Date']; ?>" tabindex="21" type="text" size="14" maxlength="25" />
        <script language="JavaScript">
// créer un objet de calendrier juste après la fermeture d'un "tag de formulaire". 
// Spécifier l'élément du formulaire comme le seul paramètre (document.forms['nom_du_formulaire'].elements['nom_d'entrée']); 
// Note : vous pouvez avoir autant d'objets de calendrier dont vous avez besoin pour votre application
// elements.date ou ['date']" est le name du champ du formulaire juste au dessus
				var cal1 = new calendar1(document.forms['Presse'].elements['Date']);
				cal1.year_scroll = true;
				cal1.time_comp = false;
			</script></p>
<p align="center"><label for="Titre">Titre dans la page</label> : <span class="red">*</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="Titre" id="Stitre" tabindex="30" type="text" value="<?php echo $row['Titre']; ?>" size="100" maxlength="255" /></p>
<p align="center"><label for="Stitre1">Sous titre dans la page</label> : &nbsp;&nbsp;<input name="Stitre1" id="Stitre1" tabindex="40" type="text" value="<?php echo $row['Stitre1']; ?>" size="100" maxlength="255" /></p>
          <p align="center"><label for="Stitre">Sous titre 2 dans la page</label> : <input name="Stitre" id="Stitre" tabindex="50" type="text" value="<?php echo $row['Stitre']; ?>" size="100" maxlength="255" /></p>

		<fieldset><legend> Mise en forme du texte dans l'agenda : <span class="red">*</span></legend>
				<p  align="center">
Note: malgré vos suggestions ça ne fonctionne pas plus c'est pour ça que je ne comprends pas.
Ici le code bouton Modifier (qui n'était pas en php au départ):
<!-- Le bouton SUBMIT doit obligatoirement se trouver à l'intérieur des balises FORM -->
<?php
	echo '<form  method="GET" name="Modif" id="Modif" action="Formulaire_Modifier.php?ID=$id" />';
	echo '<p align="center"><input type="submit" value="Modifier"/></p>';
	echo '</form>';
?>

Je vais peter un cable ! ! ! !

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
1
Utilisateur anonyme
3 janv. 2011 à 08:31
echo '<form  method="GET" name="Modif" id="Modif" action="Formulaire_Modifier.php?ID='.$id.'" />';

Bonne journée
0
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
3 janv. 2011 à 10:56
Désolé mais ça ne fonctionne pas mieux. J'ai tout essayé ! y compris le moins logique ! En vain. A moins que le Pb se situe ailleurs ? mais comment expliquer que l'on arrive jusqu'à la page de résumé avant modif..Je craaaaaque !
0
<form method="GET" name="Modif" id="Modif" action="Formulaire_Modifier.php?ID=2"><p align="center"><input type="hidden" name="ID" value="<?php echo $id ?>" /><input type="submit" value="Modifier"></p></form>

J'ai voulu aller vite ... enfin bref bonne année ;)
PS : j'ai remis id en majuscule.
PS2 : Ceci remplace :
<?php
	echo '<form  method="GET" name="Modif" id="Modif" action="Formulaire_Modifier.php?ID=$id" />';
	echo '<p align="center"><input type="submit" value="Modifier"/></p>';
	echo '</form>';
?>
0
duweb Messages postés 352 Date d'inscription dimanche 30 mai 2010 Statut Membre Dernière intervention 6 mars 2014 72
2 janv. 2011 à 22:16
il faudrait le code source du fichier.

pour récupérer l'id :
<?php echo $_GET['ID']; ?>
évidemment la ligne précédente est différente de
<?php echo $_GET['id']; ?>
0
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
3 janv. 2011 à 00:18
Salut.

Voilà où ça coince :
<form  method="GET" name="Modif" id="Modif" action="Formulaire_Modifier.php?ID="$id" />


Tout d'abord, la balise <form> n'est pas auto-fermante.
Donc il faut l'ouvrir avec <form ...> et la fermer avec </form>
<form .../> n'est pas valide.

Ensuite, il y a un guillemet en trop dans l'attribut action.
Apparemment, tu as raté ton echo en PHP.
0
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
16 janv. 2011 à 21:01
Bonjour et merci à tous pour votre patience !
Ça y est ! c'est EN...FIN !!! réglé (je ne sais pas par quel mystère mais cela fonctionne.
Note: j'avais déjà eu le même Pb pour afficher les données dans un formulaire qui devait être pré-rempli.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0