Test variable de session
Résolu
t671
Messages postés
1476
Date d'inscription
Statut
Membre
Dernière intervention
-
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans mes scripts, je passe mes variables par sessions.
Le script de fin, là où je vais écrire mes données dans la base, si je test ma session, je vois ce qu'il doit y avoir. Mais après, certaines variables sont vides, mais pas toutes, pour l'inscription danqs la base !
Les variables qui disparraissent sont :
$monfichier = $_SESSION['monfichier'];
$nais_expression1 = $_SESSION['expression1'];
$nais_jour1 = $_SESSION['jour1'];
$nais_mois1 = $_SESSION['mois1'];
$nais_an1 = $_SESSION['an1'];
$nais_expression2 = $_SESSION['expression2'];
$nais_jour2 = $_SESSION['jour2'];
$nais_mois2 = $_SESSION['mois2'];
$nais_an2 = $_SESSION['an2'];
Pourquoi certaines sont ok puis plus rien ?
Merci.
Dans mes scripts, je passe mes variables par sessions.
Le script de fin, là où je vais écrire mes données dans la base, si je test ma session, je vois ce qu'il doit y avoir. Mais après, certaines variables sont vides, mais pas toutes, pour l'inscription danqs la base !
<?php session_start(); $nom = $_SESSION['nom']; $prenom = $_SESSION['prenom']; $famille = $_SESSION['famille']; $sexe = $_SESSION['sexe']; $monfichier = $_SESSION['monfichier']; $nais_expression1 = $_SESSION['expression1']; $nais_jour1 = $_SESSION['jour1']; $nais_mois1 = $_SESSION['mois1']; $nais_an1 = $_SESSION['an1']; $nais_expression2 = $_SESSION['expression2']; $nais_jour2 = $_SESSION['jour2']; $nais_mois2 = $_SESSION['mois2']; $nais_an2 = $_SESSION['an2']; ................................. echo '<pre>'; print_r($_SESSION); echo '</pre>'; // toutes les variables de session sont visibles echo $_SESSION['jour1']; // l'echo est vide echo $nais_jour1; // l'echo est vide echo $nom; // la variable est visible
Les variables qui disparraissent sont :
$monfichier = $_SESSION['monfichier'];
$nais_expression1 = $_SESSION['expression1'];
$nais_jour1 = $_SESSION['jour1'];
$nais_mois1 = $_SESSION['mois1'];
$nais_an1 = $_SESSION['an1'];
$nais_expression2 = $_SESSION['expression2'];
$nais_jour2 = $_SESSION['jour2'];
$nais_mois2 = $_SESSION['mois2'];
$nais_an2 = $_SESSION['an2'];
Pourquoi certaines sont ok puis plus rien ?
Merci.
A voir également:
- Test variable de session
- Test performance pc - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test steam deck oled - Guide
- Test composant pc - Guide
- Test batterie pc - Guide
12 réponses
1° script (script de saisie):
2° script (script de test) :
3° script (insertion dans la base) : ci-dessus 1° post.
Merci.
<?php session_start(); $nom = $_SESSION['nom']; $prenom = $_SESSION['prenom']; $famille = $_SESSION['famille']; $sexe = $_SESSION['sexe']; $monfichier = $_SESSION['monfichier']; $nais_expression1 = $_SESSION['expression1']; $nais_jour1 = $_SESSION['jour1']; $nais_mois1 = $_SESSION['mois1']; $nais_an1 = $_SESSION['an1']; ................. ?> <html> ................. <tr align="left"><td>Famille :</td> <td width="765"><SELECT name="famille"> <OPTION VALUE="HUMBERT">HUMBERT</OPTION> <OPTION VALUE="DAMERON">DAMERON</OPTION> <OPTION VALUE="DAQUIN">DAQUIN</OPTION> </SELECT></td></tr> <tr align="left"><td><b>NOM : </td><td width="765"><input name="nom" type="text" id="nom" size="55" maxlength="55"></td></tr> <tr align="left"><td>Prénom : </td><td width="765"><input name="prenom" type="text" id="prenom" size="55" maxlength="55"/></td></tr> <tr align="left"><td>Sexe :</td> <td width="765"><SELECT name="sexe"> <OPTION VALUE="M">M</OPTION> <OPTION VALUE="F">F</OPTION> </SELECT></td></tr> <tr><td><input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> <input type="file" name="monfichier" size="51" /></td></tr><p> <td width="200">Date de naissance :</td> <td width="800"> <SELECT name="expression1"> <OPTION VALUE="Vers">Vers</OPTION> <OPTION VALUE="Avant">Avant</OPTION> <OPTION VALUE="Après">Après</OPTION> <OPTION VALUE="Entre">Entre</OPTION> </SELECT> <SELECT name="jour1"> <OPTION VALUE="1">1</OPTION> <OPTION VALUE="2">2</OPTION> <OPTION VALUE="3">3</OPTION> <OPTION VALUE="4">4</OPTION> .................. <SELECT name="mois1"> <OPTION VALUE=""></OPTION> <OPTION VALUE="JAN">JAN</OPTION> <OPTION VALUE="FEB">FEB</OPTION>................. </SELECT> <input name="an1" type="text" id="an1" size="3" maxlength="4"/>
2° script (script de test) :
<?php session_start(); $_SESSION['nom']=$_POST['nom']; $_SESSION['prenom']=$_POST['prenom']; $_SESSION['famille']=$_POST['famille']; $_SESSION['sexe']=$_POST['sexe']; $_SESSION['monfichier']=$_POST['monfichier']; $_SESSION['nais_expression1']=$_POST['expression1']; $_SESSION['nais_jour1']=$_POST['jour1']; $_SESSION['nais_mois1']=$_POST['mois1']; $_SESSION['nais_an1']=$_POST['an1'];
3° script (insertion dans la base) : ci-dessus 1° post.
Merci.
Alors, oui je crois avoir trouver ton problème ;
C'est l'upload de fichier :
notamment
<tr><td><input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="file" name="monfichier" size="51" /></td></tr><p>
C'est pas très jolis ...
L'idéal c'est de faire un second formulaire avec l'upload de ton image.
Essaye d'abord de supprimer ces lignes d'upload de ficher ;
(Juste pour tester expression1, jour1, etc .. et tout ce qu'il suit qui n'a pas été enregistrer en $_SESSION).
C'est l'upload de fichier :
notamment
<tr><td><input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="file" name="monfichier" size="51" /></td></tr><p>
C'est pas très jolis ...
L'idéal c'est de faire un second formulaire avec l'upload de ton image.
Essaye d'abord de supprimer ces lignes d'upload de ficher ;
(Juste pour tester expression1, jour1, etc .. et tout ce qu'il suit qui n'a pas été enregistrer en $_SESSION).
Salut !
Si le print_r a effectivement affiché toutes tes variables, le problème n'est pas dans la session comme l'a dit loupix
Alors peux tu copier/coller un résultat de print_r($_SESSION) et print_r($_POST) stp
Et sinon Loupix a juste pour le fichier, ce n'est pas comme ca que ca marche. Il y a pas mal de tuto sur le net pour l'upload de fichier, je te conseil donc d'en regardé quelque un :)
Si le print_r a effectivement affiché toutes tes variables, le problème n'est pas dans la session comme l'a dit loupix
Alors peux tu copier/coller un résultat de print_r($_SESSION) et print_r($_POST) stp
Et sinon Loupix a juste pour le fichier, ce n'est pas comme ca que ca marche. Il y a pas mal de tuto sur le net pour l'upload de fichier, je te conseil donc d'en regardé quelque un :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour et merci.
J'ai testé vos idées, mais rien de mieux.
Par contre, j'ai testé en supprimant le 2° script.
Donc, 1° script, script de saisie :
Puis insertion dans la base :
Là, tout fonctionne !!! Si j'écris "$nais_jour1=$_SESSION['nais_jour1']=$_POST['jour1'];", c'est que pour la suite, c'est plus simple de travailler avec un petit nom de variable ($nais_jour1).
Par contre, si je remet en place le 2° script (pour test) :
Je perds toutes mes variables arrivé dans le 3° script !!!!!
J'ai testé vos idées, mais rien de mieux.
Par contre, j'ai testé en supprimant le 2° script.
Donc, 1° script, script de saisie :
<?php session_start(); $nom = $_SESSION['nom']; $prenom = $_SESSION['prenom']; $famille = $_SESSION['famille']; $sexe = $_SESSION['sexe']; $monfichier = $_SESSION['monfichier']; $nais_expression1 = $_SESSION['expression1']; $nais_jour1 = $_SESSION['jour1']; $nais_mois1 = $_SESSION['mois1']; $nais_an1 = $_SESSION['an1']; ................. ?> <html> ................. <form enctype="multipart/form-data" action="add_indiv.php" method="POST" value="envoyer" name="soumettre"> <tr align="left"><td>Famille :</td> <td width="765"> <SELECT name="famille"> <OPTION VALUE="H ">H</OPTION> <OPTION VALUE="D">D</OPTION> <OPTION VALUE="DA">DA</OPTION> </SELECT></td></tr> <tr align="left"><td><b>NOM : </td><td width="765"><input name="nom" type="text" id="nom" size="55" maxlength="55"></td></tr> <tr align="left"><td>Prénom : </td><td width="765"><input name="prenom" type="text" id="prenom" size="55" maxlength="55"/></td></tr> <tr align="left"><td>Sexe :</td> <td width="765"><SELECT name="sexe"> <OPTION VALUE="M">M</OPTION> <OPTION VALUE="F">F</OPTION> </SELECT></td></tr> <tr><td><input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> <input type="file" name="monfichier" size="51" /></td></tr><p> <td width="200">Date de naissance :</td> <td width="800"> <SELECT name="expression1"> <OPTION VALUE="Vers">Vers</OPTION> <OPTION VALUE="Avant">Avant</OPTION> <OPTION VALUE="Après">Après</OPTION> <OPTION VALUE="Entre">Entre</OPTION> </SELECT> <SELECT name="jour1"> <OPTION VALUE="1">1</OPTION> <OPTION VALUE="2">2</OPTION> <OPTION VALUE="3">3</OPTION> <OPTION VALUE="4">4</OPTION> .................. <SELECT name="mois1"> <OPTION VALUE=""></OPTION> <OPTION VALUE="JAN">JAN</OPTION> <OPTION VALUE="FEB">FEB</OPTION>................. </SELECT> <input name="an1" type="text" id="an1" size="3" maxlength="4"/>
Puis insertion dans la base :
<?php session_start(); $nom=$_SESSION['nom']=$_POST['nom']; $prenom=$_SESSION['prenom']=$_POST['prenom']; $famille=$_SESSION['famille']=$_POST['famille']; $sexe=$_SESSION['sexe']=$_POST['sexe']; $monfichier=$_SESSION['monfichier']=$_POST['monfichier']; $expression1=$_SESSION['expression1']=$_POST['expression1']; $nais_jour1=$_SESSION['nais_jour1']=$_POST['jour1']; $nais_mois1=$_SESSION['nais_mois1']=$_POST['mois1']; $nais_an1=$_SESSION['nais_an1']=$_POST['an1']; ..................
Là, tout fonctionne !!! Si j'écris "$nais_jour1=$_SESSION['nais_jour1']=$_POST['jour1'];", c'est que pour la suite, c'est plus simple de travailler avec un petit nom de variable ($nais_jour1).
Par contre, si je remet en place le 2° script (pour test) :
<?php session_start(); $_SESSION['nom']=$_POST['nom']; $_SESSION['prenom']=$_POST['prenom']; $_SESSION['famille']=$_POST['famille']; $_SESSION['sexe']=$_POST['sexe']; $_SESSION['monfichier']=$_POST['monfichier']; $_SESSION['nais_expression1']=$_POST['expression1']; $_SESSION['nais_jour1']=$_POST['jour1']; $_SESSION['nais_mois1']=$_POST['mois1']; $_SESSION['nais_an1']=$_POST['an1']; <?php $host = 'localhost'; $user = ''; $pass = ''; $db = '; $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); $nom = $_SESSION['nom']; $prenom = $_SESSION['prenom']; //*** Récupération des personnes pouvant être des doublons à la création *** $select = "SELECT * FROM individus WHERE nom = '%$nom%' AND prenom = '%$prenom%' "; $result = mysql_query ($select); $num_rows = mysql_num_rows($result); if ($num_rows > 0) { .....................
Je perds toutes mes variables arrivé dans le 3° script !!!!!
Bah voilà, les variables $_POST ne "passent" pas vers d'autres pages. Elles ne sont valables uniquement sur la page appelé par le action="page.php" du <form>
Encore une question ....................
Si dans mon 2° script(add_indiv.php) j'écris
Le if ne s'exécute pas alors que $num_rows = 1.
???
Si dans mon 2° script(add_indiv.php) j'écris
$select ='SELECT nom,prenom FROM individus WHERE nom LIKE "%$nom%" AND prenom LIKE "%$prenom%" '; $result = mysql_query ($select); $num_rows = mysql_num_rows($result); if ($num_rows != '0') {..................
Le if ne s'exécute pas alors que $num_rows = 1.
???