Récupérer données formulaire dans une variable de session - How?

Fermé
jacobmboyo - 18 oct. 2017 à 18:00
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 19 oct. 2017 à 09:53
Bonjour,

J'aimerais savoir comment stocker les données d'un formulaire dans une variable de session afin de les restituer sur une autre page.

Comprenez que je sais transiter des données de page en page en me servant d'un formulaire et du variable $_POST, mais la question n'est pas là.

Stocker les données saisi dans le formulaire pour l'affiché sur une autre page avec la variable SESSION.

Merci à l'avance de votre aide
A voir également:

3 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
18 oct. 2017 à 18:58
Bonjour

Deja.. mettre un
session_start ();


Sur chaque page

Puis utiliser la variable $_SESSION
0
No le problème n'est pas là. Je fait déjà transiter des données de page en page en utilisant les SESSION, ces données sont issus de la base de données.

Cependant sur une des pages figure un formulaire auquel j'aimerais que les données soit charger dans la SESSION comme les autres données qui transitent déjà de page en page.

Un exemple:
<form action="/action_page.php">
First name:<br>
<input type="text" name="firstname" value="Mickey"><br>
Last name:<br>
<input type="text" name="lastname" value="Mouse"><br><br>
<input type="submit" value="Submit">
</form>

J'aimerais charger firstname et lastname dans la SESSION existante afin qu'elle puissent être restituer sur une page plus loin.

Merci!
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > jacobmboyo
18 oct. 2017 à 21:19
Deja.. ajoute l'attribut method='post' à ton form.
Ensuite... il te suffira de récupérer tes variables dans $_POST
0
Merci mais votre réponse n'est pas précise,

Voici mon code MySql:

<?php
session_start();

if(!isset($_SESSION['username']))
{
header("location:./erreur.php"); // redirection
exit; // arrêt du script
}
//La session est ouverte on peut afficher la page
?>

Comment doit-je procéder exactement SVP? Chargé la valeur du form dans la SESSION.
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > jacobmboyo
Modifié le 18 oct. 2017 à 22:24
bonsoir, as-tu essayé
$_SESSION['prenom']=$_POST['firstname'];
?
si tu souhaites une réponse précise, n'hésite pas à poser une question précise en donnant des faits, en partageant ton code.
(modifié comme signalé par jordane (bonjour&merci))
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
18 oct. 2017 à 22:00
Penses à remplacer les parenthèses par des crochets par contre ;-)
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
19 oct. 2017 à 00:44
quand tu écris "je sais transiter des données de page en page en me servant d'un formulaire et du variable $_POST", je comprends que tu as fait un exercice pour faire cela.
j'ai l'impression que l'exemple que tu proposes avec tes trois pages est la solution de l'exercice précédent.
si tu veux faire un exercice en utilisant les sessions au lieu des formulaires, je pense qu'il faut faire un autre ensemble de pages, avec une autre logique.
par exemple:
- la page 1 affiche un formulaire, l'utilisateur le complète et les données sont passées à la page 2. cela commence donc comme l'exercice précédent.
- la page 2 mémorise les données dans les variables de sessions, puis affiche une page (sans formulaire) avec un lien vers la page 3. l'utilisateur clique sur le lien.
- la page 3 utilise les variables de sessions pour afficher les données sauvées par la page 2.
- ceci prouve que les données sont passées de la page 2 à la page 3 en utilisant les variables de session et pas un formulaire.
0
Je ne voulais pas vous bombarder de code mais voici les détails:

J'ai réaliser un formulaire d'Insertion MySql (avec DreamweaverCS4), le problème est qu'avec l'insertion, j'ai juste ma page de confirmation qui dit tout simplement que l'insertion a bel et bien été effectué! Or j'aimerais que cette page puisse donner un résumé de mon INSERTION pour des fins d'impression. Il s'agit d'un système de transfert d'argent via un application web.

Comme je code avec Dreamweaver, mon code d'Insertion est assez kilométrique:
<?php
session_start();

if(!isset($_SESSION['zotikwa_iri']))
{
 header("location:./erreur.php"); // redirection
 exit; // arrêt du script
}

//La session est ouverte on peut afficher la page

?>
<?php require_once('Connections/pata.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "env-form")) {
  $insertSQL = sprintf("INSERT INTO toka (toka_montant, toka_montant_apayer, toka_numero, toka_nom_exp, toka_prenom_exp, toka_tel_exp, toka_ville_exp, toka_msg, toka_piece_valide, toka_nom_ben, toka_pren_ben, toka_tel_ben, toka_type_piece_exp, toka_num_piece_exp, toka_question, toka_reponse, zotikwa_nom) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['toka_montant'], "text"),
                       GetSQLValueString($_POST['toka_montant_apayer'], "text"),
                       GetSQLValueString($_POST['toka_numero'], "text"),
                       GetSQLValueString($_POST['toka_nom_exp'], "text"),
                       GetSQLValueString($_POST['toka_prenom_exp'], "text"),
                       GetSQLValueString($_POST['toka_tel_exp'], "text"),
                       GetSQLValueString($_POST['toka_ville_exp'], "text"),
                       GetSQLValueString($_POST['toka_msg'], "text"),
                       GetSQLValueString($_POST['toka_piece_valide'], "text"),
                       GetSQLValueString($_POST['toka_nom_ben'], "text"),
                       GetSQLValueString($_POST['toka_pren_ben'], "text"),
                       GetSQLValueString($_POST['toka_tel_ben'], "text"),
                       GetSQLValueString($_POST['toka_type_piece_exp'], "text"),
                       GetSQLValueString($_POST['toka_num_piece_exp'], "text"),
                       GetSQLValueString($_POST['toka_question'], "text"),
                       GetSQLValueString($_POST['toka_reponse'], "text"),
                       GetSQLValueString($_POST['toko_nom_agent'], "text"));

  mysql_select_db($database_pata, $pata);
  $Result1 = mysql_query($insertSQL, $pata) or die(mysql_error());

  $insertGoTo = "imprimer.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

$colname_zoti = "-1";
if (isset($_SESSION['zotikwa_iri'])) {
  $colname_zoti = $_SESSION['zotikwa_iri'];
}
mysql_select_db($database_pata, $pata);
$query_zoti = sprintf("SELECT * FROM zotikwa WHERE zotikwa_iri = %s", GetSQLValueString($colname_zoti, "text"));
$zoti = mysql_query($query_zoti, $pata) or die(mysql_error());
$row_zoti = mysql_fetch_assoc($zoti);
$totalRows_zoti = mysql_num_rows($zoti);
?>

EDIT : Ajout des balises de code

J'ai essayé de faire transiter les données de page en page avec la méthode POST de PHP mais arrivé au processus d'Instertion MySql, le POST n'est plus afficher sur la page d'Impression. C'est pourquoi je me suis dit qu'il fallait stocker les valeurs du formulaire dans une SESSION pour une restauration sur la page d'impression.

Si vous avez une meilleur idée, elle est la bienvenue.

Merci de vos réponse et de votre aide.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
19 oct. 2017 à 09:53
oula...Bon.. y'a des choses à revoir au niveau de ton code...

Commence par ça : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Puis ensuite : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

Ensuite, si ton souci est d'utiliser les variables de session, il faut :
Dans tes pages précédentes... les remplir.
Dans celle que tu nous montre... les utiliser !

enfin.. ce qui m'étonne en regardant "ton" (??) code... c'est que tu les a déjà utilisé....
par exemple ici
if(!isset($_SESSION['zotikwa_iri']))
{
 header("location:./erreur.php"); // redirection
 exit; // arrêt du script
}

Donc je ne vois pas sur quoi tu bloques....


PS: A l'avenir, merci de mettre ton code avec la coloration syntaxique.
Voir ici les explications :https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0