Session retour en arrière

Signaler
-
 litipp -
Bonjour,

Je fais le suivie de donnée différente sur 6 pages. Jusque la tous va bien.

J'appelle mes donner via $_SESSION = $_POST par contre quand je fait précédent il ne reconnait plus mes donnée et tout plante mais je doit être capable de faire back.

PP

5 réponses

Messages postés
31405
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2021
344
Bonjour,


quand je fait précédent il ne reconnait plus mes donnée et tout plante

Sans plus de détail.. ni un exemple de ton code... impossible pour nous te de répondre !


Salut Jordane45,

Et bien ce que je veux dire c'est que de page en page m'est session s'enregistre et ça ne cause aucun problème pour la commande via paypal. Par contre si je veut reculer de page c'est la que ca plante,

<?php
session_start();


$_SESSION['toto'] = $_POST['toto'];
$_SESSION['tete'] = $_POST['tete'];

?>

Donc sur chaque page j'enregistre le donnée $_POST pour qu'il ce suive
Messages postés
31405
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2021
344
Et que veux dire Ca plante ....
tu as un message d'erreur ???
Oui il ne reconnait plus les variable 'toto' 'tete':

otice: Undefined index: toto
otice: Undefined index: tete

Mais j'aimerais pouvoir garder en valeur les donnée que l'utilisateur choisi es-ce possible?
Messages postés
31405
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2021
344
Ben il faut tester si tes variables post existent..
si oui tu remplaces la variable session.. sinon..tu ne fais rien..

If ( isset ($_POST['toto'])){
  $_SESSION['toto'] = $_POST ['toto'];

} else {
// rien..

}

Et bien oui elle existe quand je fait suivant et je passe a m'est autre page mais quand je clicque précédant voila que que ma variable existe pas même en testant ma variable elle me donne la même erreur en reculant.
Messages postés
31405
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2021
344 > litipp
Bon...

1 - Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

2 - Je ne vois pas les modifs que je t'avais préconnisé dans les codes que tu viens de nous donner

3 - Je ne trouve nul part dans tes pages ...où .. tu réutilises les variables....

Sachant que si tu écrit, par exemple :
$_SESSION['modele'] = $_POST['modele'];

Ta variable de SESSION['modele'] prendra systématiquement la valeur contenu dans ta variable POST['modele'] ... et que par conséquent... si tu fais un retour arrière... sans SUBMIT .. POST est VIDE !!!!!

tu dois écrire (pour conserver la valeur déjà pésente dans ta SESSION si il n'y a pas de POST:
$_SESSION['modele'] =isset( $_POST['modele'])? $_POST['modele']:isset($_SESSION['modele'])?$_SESSION['modele']:NULL;
>
Messages postés
31405
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2021

Ok je suis désolé pour la coloration je débute sur ce forum :)

Mais j'aimerais qu'il garde c'est valeur pour les faire changer. Si j'ajoute le bouton dans le form es-ce que ca règlerais mon probleme?
Messages postés
31405
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2021
344 > litipp

Mais j'aimerais qu'il garde c'est valeur

Ben il les garde... dans la Variable de SESSION ...(si tu utilises MON code ci-dessus)
je ne comprend pas ton problème...
Messages postés
31405
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2021
344
Au début de chacune de tes pages...
ajoutes du debug...

Par exemple.. sur : Etape #2
<?php
session_start();

//------ DEBUG ---------------//
  echo "<pre> POST :<br>";
if(isset($_POST)){
  echo "<br> Submit : ok <br>";
  print_r($_POST);
 } else {
     echo "<br> No Submit <br>";
 }

echo "</pre>";
echo "<br><br>";
echo "<pre> SESSION:<br>";
print_r($_SESSION);
echo "</pre>";
//-----------------------------------//


/* If ( isset ($_POST['tete'])){
$_SESSION['tete'] = $_POST ['tete'];

} else {
// rien..

}*/


$_SESSION['grandeur'] =isset( $_POST['grandeur'])? $_POST['grandeur']:isset($_SESSION['grandeur'])?$_SESSION['grandeur']:NULL;

$_SESSION['type'] =isset( $_POST['type'])? $_POST['type']:isset($_SESSION['type'])?$_SESSION['type']:NULL;

//------ DEBUG ---------------//
echo "<br><pre>";
echo "<br> grandeur= ".$_SESSION['grandeur'];
echo "<br> type= ".$_SESSION['type'];
echo "</pre>";
//-----------------------------------//
?>
<!DOCTYPE html>
<html>
<head> 
>
Messages postés
31405
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2021

Voila j'ai mit ton code sur les deux pages étapes 2 et étape trois.

Voici ce que ca me donne a l'étape 2
 POST :

 Submit : ok 
Array
(
    [grandeur] => 50"
    [type] => SPEED
    [submit_x] => 53
    [submit_y] => 14
)


 SESSION:
Array
(
    [grandeur] => 
    [type] => 
    [modele] => FERME
    [tete] => 
    [speed] => 
    [control] => 
    [power] => 
    [backpath] => /chat-live/demo/support/operator/index.php
    [color] => 
    [design] => 
    [nom] => Pascal
    [numero] => #55
    [quantiter] => 6
)


 grandeur= 
 type= 


Par contre je je perd toute la forme de ma page étape 2 donc je ne peux aller plus loin :(
Messages postés
31405
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2021
344
Tu peux me coller le code de ta page ETAPE2 ? (disons les 30 première lignes ) ===>> EN UTILISANT LES BALISES DE CODE !
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Voila je t'est mit le code php

 
 session_start();
 
//------ DEBUG ---------------//
  echo "<pre> POST :<br>";
if(isset($_POST)){
  echo "<br> Submit : ok <br>";
  print_r($_POST);
 } else {
     echo "<br> No Submit <br>";
 }

echo "</pre>";
echo "<br><br>";
echo "<pre> SESSION:<br>";
print_r($_SESSION);
echo "</pre>";
//-----------------------------------//


/* If ( isset ($_POST['tete'])){
$_SESSION['tete'] = $_POST ['tete'];

} else {
// rien..

}*/


$_SESSION['grandeur'] =isset( $_POST['grandeur'])? $_POST['grandeur']:isset($_SESSION['grandeur'])?$_SESSION['grandeur']:NULL;

$_SESSION['type'] =isset( $_POST['type'])? $_POST['type']:isset($_SESSION['type'])?$_SESSION['type']:NULL;

//------ DEBUG ---------------//
echo "<br><pre>";
echo "<br> grandeur= ".$_SESSION['grandeur'];
echo "<br> type= ".$_SESSION['type'];
echo "</pre>";
//-----------------------------------//

 
 //$_SESSION['grandeur'] = isset( $_POST['grandeur'])? $_POST['grandeur']:isset($_SESSION['grandeur'])?$_SESSION['grandeur']:NULL;
 /*	If ( isset ($_POST['tete'])){
  $_SESSION['tete'] = $_POST ['tete'];

} else {
// rien..

}*/
	

  //$_SESSION['grandeur'] = $_POST['grandeur'];
 // $_SESSION['type'] = $_POST['type'];
Messages postés
31405
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2021
344
On va retirer l'écriture ternaire... si ça se trouve (mais ça serait étonnant.. ça vienne de là..)

Remplace le début de ta page par celle là:
<?php

session_start();
 
//------ DEBUG ---------------//
echo "<div>";

echo "<pre> POST :<br>";
if(isset($_POST)){
  echo "<br> Submit : ok <br>";
  print_r($_POST);
 } else {
     echo "<br> No Submit <br>";
 }

echo "</pre>";
echo "<br><br>";
echo "<pre> SESSION: avant modification en cas de submit<br>";
print_r($_SESSION);
echo "</pre>";
//-----------------------------------//


// On stocke les valeur du POST en SESSION
if(isset($_POST)){
 if(isset($_POST['grandeur'])){
 $grandeur = $_POST['grandeur'];
 $_SESSION['grandeur'] = $_POST['grandeur'];
 }
 if(isset($_POST['type'])){
 $type = $_POST['type'];
 $_SESSION['type'] = $_POST['type'];
 }  
}else{
 $grandeur = $_SESSION['grandeur'];
 $type = $_SESSION['type'];
}
echo "</pre>";
echo "<br><br>";
echo "<pre> SESSION: APRES modification en cas de submit<br>";
print_r($_SESSION);
echo "</pre>";

 //------ DEBUG ---------------//
echo "<br><pre>";
echo "<br> grandeur= ".$grandeur;
echo "<br> type= ".$type;
echo "</pre>";
//-----------------------------------//

echo "</div>";

?>
<!DOCTYPE html>
<html>
<head>



et redonne moi le résultat.



Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
POST :

Submit : ok
Array
(
[grandeur] => 50"
[type] => SPEED
[submit_x] => 91
[submit_y] => 20
)


SESSION: avant modification en cas de submit
Array
(
[grandeur] => 50"
[type] => SPEED
[modele] => FERME
[tete] =>
[speed] =>
[control] =>
[power] =>
[backpath] => /chat-live/demo/support/operator/index.php
[color] =>
[design] =>
[nom] => Pascal
[numero] => #55
[quantiter] => 6
)


SESSION: APRES modification en cas de submit
Array
(
[grandeur] => 50"
[type] => SPEED
[modele] => FERME
[tete] =>
[speed] =>
[control] =>
[power] =>
[backpath] => /chat-live/demo/support/operator/index.php
[color] =>
[design] =>
[nom] => Pascal
[numero] => #55
[quantiter] => 6
)


grandeur= 50"
type= SPEED


Voila ce que ca me donne sur ma page mais elle plante toujours impossible d'aller plus loin.
Messages postés
31405
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2021
344 > litipp
Oui mais maintenant tu vois bien que les valeurs sont bien présentes dans les variables de session et par la même dans les variables:
$grandeur
$type

Tu peux donc mettre en commentaire tout les DEBUG que je t'ai fait... et ta page devrait fonctionner;...

<?php

session_start();
 
//------ DEBUG ---------------//
/*
echo "<div>";
echo "<pre> POST :<br>";
if(isset($_POST)){
  echo "<br> Submit : ok <br>";
  print_r($_POST);
 } else {
     echo "<br> No Submit <br>";
 }
echo "</pre>";
echo "<br><br>";
echo "<pre> SESSION: avant modification en cas de submit<br>";
print_r($_SESSION);
echo "</pre>";
*/
//-----------------------------------//


// On stocke les valeur du POST en SESSION
if(isset($_POST)){
 if(isset($_POST['grandeur'])){
 $grandeur = $_POST['grandeur'];
 $_SESSION['grandeur'] = $_POST['grandeur'];
 }
 if(isset($_POST['type'])){
 $type = $_POST['type'];
 $_SESSION['type'] = $_POST['type'];
 }  
}else{
 $grandeur = $_SESSION['grandeur'];
 $type = $_SESSION['type'];
}

/*
echo "</pre>";
echo "<br><br>";
echo "<pre> SESSION: APRES modification en cas de submit<br>";
print_r($_SESSION);
echo "</pre>";
*/
 //------ DEBUG ---------------//
/*
echo "<br><pre>";
echo "<br> grandeur= ".$grandeur;
echo "<br> type= ".$type;
echo "</pre>";
*/
//-----------------------------------//

echo "</div>";

?>
<!DOCTYPE html>
<html>
<head>

>
Messages postés
31405
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2021

Merci,

Ca fonctionne.

Par contre quand je fais retour le hik est quand je décide de revenir (suivant) la les valeur capote un peut. Mais j'ai décider de ne pas les appeler.

Merci!!! de ton aide :) très apprécier