Recuperation d'une variable de session

Résolu
whiny Messages postés 20 Statut Membre -  
wido22 Messages postés 20 Statut Membre -
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.
Configuration: Windows Vista
Firefox 3.0.10

9 réponses

  1. arthezius Messages postés 3756 Statut Membre 475
     
    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
  2. whiny Messages postés 20 Statut Membre
     
    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
  3. arthezius Messages postés 3756 Statut Membre 475
     
    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
  4. whiny Messages postés 20 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. wido22 Messages postés 20 Statut Membre 32
     
    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
  7. whiny Messages postés 20 Statut Membre
     
    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
  8. arthezius Messages postés 3756 Statut Membre 475
     
    Tu as quoi en ligne 4 du fichier action.php ?
    0
  9. whiny Messages postés 20 Statut Membre
     
    J'ai rien dis j'avais : au lieu du ;

    Merci pour ton aide.
    0
  10. wido22 Messages postés 20 Statut Membre 32
     
    Le parse error est un problème de syntaxes.

    0