Recuperation d'une variable de session

Résolu/Fermé
whiny Messages postés 20 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 1 juin 2009 - 1 juin 2009 à 11:44
wido22 Messages postés 19 Date d'inscription samedi 23 mai 2009 Statut Membre Dernière intervention 1 juin 2009 - 1 juin 2009 à 12:39
Bonjour,

Je vous explique mon problème qui ne devrait surment pas l'être mais je suis bloquer quand même :D

En faite voilà j'ai créé une page web ou les gens s'inscrive et se log pour entré dessus grace à leur adresse mail et mot de pass. jusque la tout va bien :D.

ensuite sur le site il peuvent selectionner des objets.

dans le liste.php:


<?php echo("Bonjours, ".$_SESSION["mail"]."<br/>") ; ?>
<?php echo("<a href=\"deconnexion.php\">déconnexion</a><br/>") ;?>

<li onclick="javascript:montre('sdesc21');">Un service à fondue &#160;&#160;<a href="http://shop.conradt.be/" alt="Aller sur le site web de Conradt"><img src="style/images/conradt.gif"></a>
<form method="post" action="action.php"><input type="checkbox" name="item" id="item" value="Service a fondu"/><input type="submit" value="Je vous l'offre"/></form>

Tout marche bien sur la page liste.php il afficher bien la variable $_SESSION ect...
le problème c'est que dans action je voudrais pouvoir récupérer le nom de session c'est à dire leur adresse mail et l'enregistrer dans la base de donnée.

dans le action.php:
<?php	
			$mail=$_POST["mail"];
			$item = $_POST["item"];

	//connexion au serveur
	$cnx = mysql_connect("localhost", "root", "");

	//sélection de la base de données
	$db = mysql_select_db("dbmariage");
	//création de la requête SQL
	
	//création de la requête SQL
	$sql = "INSERT INTO dbliste (item,mail) VALUES ('".$item."','".$mail."')";
	
	//exécution de la requête
	$requete = @mysql_query($sql, $cnx) or die($sql."<br>".mysql_error());
	if($requete)
	{		

		echo "merci pour votre cadeau";

	//sinon on retourne à la page de liste.
	}//fin if
	else {
		header("Location: liste.php");
		
	}//fin else

?>


mais je n'arrive pas a appelé la session pour qu'il enregistre l'adresse mail. Sinon il enregistre bien le bon item qd je le choisis.

Merci d'avance pour vos réponse.

9 réponses

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
1 juin 2009 à 11:51
Une variable de session est défini par $_SESSION['variable'].
Pour le mail ça sera donc par exemple: $_SESSION['mail'].
Pour appelé et utiliser les variables de session il faut le code suivant en tout début de page avant toute chose:
<?php
session_start();
?>
0
whiny Messages postés 20 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 1 juin 2009
1 juin 2009 à 11:55
bon j'ai essayer ca

<?php	
session_start();
			$_SESSION["mail"]=$mail;
			$mail=$_POST["mail"];
			$item = $_POST["item"];

	//connexion au serveur
	$cnx = mysql_connect("localhost", "root", "");

	//sélection de la base de données
	$db = mysql_select_db("dbmariage");
	//création de la requête SQL
	
	//création de la requête SQL
	$sql = "INSERT INTO dbliste (item,mail) VALUES ('".$item."','".$mail."')";
	
	//exécution de la requête
	$requete = @mysql_query($sql, $cnx) or die($sql."<br>".mysql_error());
	if($requete)
	{		

		echo "merci pour votre cadeau";

	//sinon on retourne à la page d'inscription
	}//fin if
	else {
		header("Location: liste.php");
		
	}//fin else

?>

mais il me mais tjrs une erreur

Notice: Undefined variable: mail in C:\wamp\www\liste cadeau\action.php on line 3

Notice: Undefined index: mail in C:\wamp\www\liste cadeau\action.php on line 4
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
1 juin 2009 à 11:56
Ben en même temps tu donnes à $_SESSION['mail'] la valeur de $mail qui n'est pas défini.

$_SESSION["mail"]=$mail;
$mail=$_POST["mail"];

Là, y'a une incohérence.
0
whiny Messages postés 20 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 1 juin 2009
1 juin 2009 à 12:11
ouai je susi con :D j'ai juste rajouter

<?php	
session_start();
if(!isset($_SESSION["mail"]) || $_SESSION["mail"] == "")
{	
  header("Location: index.php") ;
}//fin if
else
{

			$item = $_POST["item"];

	//connexion au serveur
	$cnx = mysql_connect("localhost", "root", "");

	//sélection de la base de données
	$db = mysql_select_db("dbmariage");
	//création de la requête SQL
	
	//création de la requête SQL
	$sql = "INSERT INTO dbliste (item,mail) VALUES ('".$item."','".$_SESSION["mail"]."')";
	
	//exécution de la requête
	$requete = @mysql_query($sql, $cnx) or die($sql."<br>".mysql_error());
	if($requete)
	{		

		echo "merci pour votre cadeau";

	//sinon on retourne à la page d'inscription
	}//fin if
	else {
		header("Location: liste.php");
		
	}//fin else */
}
?>

maintenant ca marche :)

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wido22 Messages postés 19 Date d'inscription samedi 23 mai 2009 Statut Membre Dernière intervention 1 juin 2009 31
1 juin 2009 à 12:19
Faut juste que tu mettes :

$mail=$_SESSION["mail"];
$item = $_POST["item"];


car la variable $_SESSION["mail"] est déjà défini sur ta page liste.php, enfin si tu l'as bien défini.
0
whiny Messages postés 20 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 1 juin 2009
1 juin 2009 à 12:29
ben enfaite sur ma page liste j'ai

<?php
session_start() ;

if(!isset($_SESSION["mail"]) || $_SESSION["mail"] == "")
{	
  header("Location: index.php") ;
}//fin if
else
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link href="style/style.css" rel="stylesheet" type="text/css"/>
		<title>Liste de mariage de Laurent HELLIN et Aurore CORMAN</title>
	</head>
	<script type="text/javascript">

<!--

window.onload=montre;

function montre(id) {

var d = document.getElementById(id);

	for (var i = 1; i<=200; i++) {

		if (document.getElementById('sdesc'+i)) {document.getElementById('sdesc'+i).style.display='none';}

	}

if (d) {d.style.display='block';}

}

//-->

</script>

	<body>
		<div id="page">
		<div id="header">
		<h1>Notre liste de mariage</h1>
		</div>
		<div id="content">
			<?php echo("Bonjours, ".$_SESSION["mail"]."<br/>") ; ?>
			<?php echo("<a href=\"deconnexion.php\">déconnexion</a><br/>") ;?>


mais qd je me log dans verif.php j'ai

 <?php
if($_POST["mail"] != "" && $_POST["mdp"] != "")
{
    $mail  = $_POST['mail'] ;
    $mdp   = $_POST['mdp'];

 
	//connexion au serveur
	$cnx =mysql_connect("localhost", "root", "") or die ("Pb connexion a la base ".mysql_error());
	//sélection de la base de données
	$db = mysql_select_db("dbmariage") or die ("Pb selection base ".mysql_error());
	
       //création de la requête SQL
	$sql = "SELECT * FROM dbinvit WHERE mail = '$mail' AND mdp = '$mdp'"; 
       //exécution de la requête SQL
	$requete = mysql_query($sql, $cnx) or die($sql."<br>".mysql_error()) ;

		//on récupère le résultat
	$result = mysql_fetch_object($requete) ;
  //si la requête s'est bien passée
	//var_dump($result);
	
 if(is_object($result))
    {
    //début de la sessions
		session_start() ;
			//enregistrement d'une variable de session, ici le mail de l'utilisateur
			$_SESSION["mail"]=$mail;
	
			header("Location: liste.php");
			
	}//fin du if
	 //sinon on retourne à la page de login
	 else
	 {
		header("Location: index.php");
		
	  }//fin else
	}//fin if
	/*Sinon on retourne au login*/
	else
	{
		header("Location: index.php");
		
	}//fin else
?>


sinon j'ai essayer comme tu dis il me met une erreur

Parse error: parse error in C:\wamp\www\liste cadeau\action.php on line 4
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
1 juin 2009 à 12:32
Tu as quoi en ligne 4 du fichier action.php ?
0
whiny Messages postés 20 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 1 juin 2009
1 juin 2009 à 12:36
J'ai rien dis j'avais : au lieu du ;

Merci pour ton aide.
0
wido22 Messages postés 19 Date d'inscription samedi 23 mai 2009 Statut Membre Dernière intervention 1 juin 2009 31
1 juin 2009 à 12:39
Le parse error est un problème de syntaxes.

0