Comment mettre la bonne valeur en session ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment mettre la bonne valeur en session ?

re:

par albius » 21 avr. 2008, 10:41

Pas de problème pour $idApp = $_GET['App'] lors du premier affichage (j'ai déjà vérifié) mais elle se vide lorsque je réaffiche cette même page avec 'onchange="document.forms['editContrat'].submit();', puisqu'elle est envoyée depuis 'listeApp.php'.

par x@v » 21 avr. 2008, 10:21

fais des echo sur
$idApp = $_GET['App'];
après j'avoue ne pas comptrendre, elle est vide cette variable, mais dans quel contexte ?

re:

par albius » 21 avr. 2008, 10:02

Bonjour,

Ok, rentrons donc dans le code. Dans mon premier fichier (listeApp.php), j'ai une liste de liens générés par une boucle:
while($data = mysql_fetch_array($requete)) { 
...
echo'<tr><td width="25%"><a href=\'javascript: MM_openBrWindow("editContrat.php?App='.$data['idapp'].'","","scrollbars=yes,resizable=yes,width=700,height=500")\'>'.$data['CiviliteApp'].' '.$data['NomApp'].' '.$data['PrenomApp'].'</a></td><td>';
...';
}
Chacun de ces liens envoie une variable 'App' contenant un identifiant, que je récupère dans le fichier 'editContrat.php' et que j'insère dans une requête pour afficher certaines informations relatives à cet identifiant:
if(isset($_GET['App']) && !empty($_GET['App'])){
	$idApp = $_GET['App'];
}
...
$select = 'SELECT * FROM suiviapprentis WHERE idapp= \''.$idApp.'\';';
$requete = mysql_query($select) or die('Erreur SQL! Nous avons un problème avec la base de données. Il sera résolu dans peu de temps <br>'.$select.'<br>'.mysql_error());
$data1 = mysql_fetch_array($requete);
...
// affichage des données:
<?php echo $data1['Diplome']; ?>
Jusque là, pas de problème, mais plus loin dans la page, j'ai un formulaire contenant deux listes dynamiques liées. La première, qui ordonne le rafraichissement de la page afin d'afficher les données de la seconde. Et c'est à ce moment là que je me perds mes premières données (<?php echo $data1['Diplome']; ?>) puisque $idApp est vidée
<select name="diplome" id="diplome" onchange="document.forms['editContrat'].submit();">
      	...
</select>
Comment palier à cela ?
merci,

par x@v » 20 avr. 2008, 14:50

pour moi il faut que tu montres plus de code, alors grosso modo il faut travailler sur l'architècture du projet et ainsi à travers les redirections on arrive à toutes sortes de chose ou de truc.

re:

par albius » 20 avr. 2008, 14:30

C'est intéressant... Mais je crois qu'il faut que j'expose ce pourquoi j'ai besoin de conserver en mémoire cette valeur. Dans le fichier appelé par le lien :
echo '<a href="file.php?ID='.$data['id'].'">'.$data['nom'].'</a>';
je me sers de cette variable pour afficher certaines informations relatives à cette id et via une nouvelle requête. Mais dans cette page se trouve également un formulaire comportant deux listes déroulantes dynamiques liées (je me suis d'ailleurs basé sur le tutoriel de Cyrano) Lorsque l'utilisateur emploie la première liste pour afficher les informations dans la seconde, il y a donc un rafraichissement de la page qui s'effectue, entraînant la disparition de la valeur de l'id, et des informations qui en découlent. Pas bien...
D'où ma question sur la mise en session (mais peut-être y-a t-il un autre moyen)
merci,

par x@v » 20 avr. 2008, 11:48

as tu essayer de créer un tableau dans ta session
$_SESSION['tab']=array();
ensuite tu associe ton tableau à ta clé.
$_SESSION['tab']=$cle;
puis vérifie le contenu. en faisant du dumping ;)
var_dump($_SESSION['tab']);

Comment mettre la bonne valeur en session ?

par albius » 20 avr. 2008, 11:15

Bonjour,

je suis dans ce type de processus pour afficher des informations:
while($data = mysql_fetch_array($requete)){
    echo '<a href="file.php?ID='.$data['id'].'">'.$data['nom'].'</a>';
}
J'aimerais ne pas envoyer la variable ID par url mais la mettre en session. Mais comment trouver la bonne, puisque je me trouve dans une boucle ?
merci,