Pb session php

Résolu
alonso -  
 alonso -
Bonjour,

je voudrais récupérer une variable session sur une autre page:

code qui teste mon login et le mot de passe membre:

<? session_start();?>

<?
include ('./connect/connection.php');
?>

<?

$email=$_POST['email']; //récup sur formulaire
$password=$_POST['password'];

if (empty($email) or empty($password)) //test si champs vides
{
?>
<script language="javascript">document.location.href='?rub=9'</script>
<?

}
else //champs rempli
{
$sql = "SELECT * FROM clients where mail_client='$email'and mdp_client=md5(md5('$password'))";
$req=mysql_query($sql);
$data= mysql_num_rows($req);

if ($data==0) // si mot de passe faux
{
?>
<script language="javascript">document.location.href='?rub=9'</script>

<?
}
else //sinon mot de passe vrai
{
$_SESSION['id_client']=$data['id_client'];
$_SESSION['mail_client']=$data['mail_client'];
$_SESSION['nom_client']=$data['nom_client'];
?>
<script language="javascript">document.location.href='./client.php'</script>
<?
}

}

mysql_close();
?>

dans ma page client.php je voudrais voir le mail du client mais ca ne fonctionne pas une idée???

code client.php

<? session_start();?>

<? echo $_SESSION['mail_client'];?>
Configuration: Windows XP Internet Explorer 6.0

20 réponses

  1. jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
     
    Essayes de voir si déjà ils ont les mêmes id de session
    tu fais un echo session_id(); juste après tes session_start
    s'ils sont différents, c'est normal que ca n'affiche rien
    0
  2. Claire
     
    pour visualiser le contenu de tes session il y a un truc très gentil :

    echo '<pre>';
    print_r($_SESSION);
    echo '</pre>';

    bien visualiser tes session t'aidrea a résoudre tes problèmes :)
    0
  3. alonso
     
    re merci pour ta réponse
    pourtant c'est la première session ke je démarre

    dans client.php il m'affiche bien l'id session
    mais comment vérifier puisque l'autre page est juste un test qui me renvoie sur cette page client.php

    suis perdu lol
    une idée pour m'aider?
    0
  4. jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
     
    Heu
    au fait pourquoi tu passes par du javascript pour faire une redirection ?
    pourquoi pas un simple header location en php ?
    parce que ton code js dans le php comme ca, ca marche pas ...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. alonso
     
    je viens de tester c'est le mm

    quand je recup l' id session kan les champs sont vides c 2ebf5283bedf205931273af45500c11e
    quand je recup l'id session kan les champs sont remplis et juste
    il me donne 2ebf5283bedf205931273af45500c11e sur client.php

    une idée stp?
    0
  7. alonso
     
    jai remplacé par header
    comme ceci
    <? session_start();?>
    <?
    include ('./connect/connection.php');
    ?>
    <?
    $email=$_POST['email'];
    $password=$_POST['password'];
    if (empty($email) or empty($password))
    {
    ?>
    <script language="javascript">document.location.href='?rub=9'</script>
    <?
    }
    else
    {
    $sql = "SELECT * FROM clients where mail_client='$email'and mdp_client=md5(md5('$password'))";
    $req=mysql_query($sql);
    $data= mysql_num_rows($req);

    if ($data==0)
    {
    ?>
    <script language="javascript">document.location.href='?rub=9'</script>
    <?
    }
    else
    {
    $_SESSION['id_client']=$data['id_client'];
    $_SESSION['mail_client']=$data['mail_client'];
    $_SESSION['nom_client']=$data['nom_client'];
    header("location:./client.php");
    exit();
    }
    }
    mysql_close();
    ?>

    mais rien a faire il met une erreur une autre idée stp
    merci d'avance
    0
  8. jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
     
    mais c'est normal qu'il mette une erreur, t'as tjs du code js au milieu du php !
    il tinterpretera tjs le code javascript, on peut pas en inclure au milieu du php
    0
  9. alonso
     
    ou
    header("location:client.php");

    rien a faire ?????
    merci
    0
  10. alonso
     
    ok mais pourtant je l'ai déjà fait ailleurs ca fonctionner bien
    ok v modifier ca

    te remercie en tout cas
    c gentil de ta part
    0
  11. alonso
     
    j'ai fait ca

    <? session_start();?>
    <?
    include ('./connect/connection.php');
    ?>
    <?
    $email=$_POST['email'];
    $password=$_POST['password'];
    if (empty($email) or empty($password))
    {
    header("location:erreur.php");
    exit();
    }
    else
    {
    $sql = "SELECT * FROM clients where mail_client='$email'and mdp_client=md5(md5('$password'))";
    $req=mysql_query($sql);
    $data= mysql_num_rows($req);

    if ($data==0)
    {
    header("location:erreur.php");
    exit();
    }
    else
    {
    $_SESSION['id_client']=$data['id_client'];
    $_SESSION['mail_client']=$data['mail_client'];
    $_SESSION['nom_client']=$data['nom_client'];
    header("location:client.php");
    exit();
    }
    }
    mysql_close();
    ?>

    et la il me signale une erreur a la ligne 10 qui correspond au header
    j'ai fait une faute????
    0
  12. jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
     
    <? session_start();?>
    <?
    include ('./connect/connection.php');
    ?>
    <?
    $email=$_POST['email'];
    $password=$_POST['password'];
    if (empty($email) or empty($password))
    {
    header("Location: erreur.php");
    exit();
    }
    else
    {
    $sql = "SELECT * FROM clients where mail_client='$email'and mdp_client=md5(md5('$password'))";
    $req=mysql_query($sql);
    $data= mysql_num_rows($req);

    if ($data==0)
    {

    header("Location: erreur.php");
    exit();
    }
    else
    {
    $_SESSION['id_client']=$data['id_client'];
    $_SESSION['mail_client']=$data['mail_client'];
    $_SESSION['nom_client']=$data['nom_client'];
    header("Location: client.php");
    exit();
    }
    }
    mysql_close();
    ?>
    0
  13. alonso
     
    un truc de fous toujours rien il me signale une erreur
    sur la ligne 1 donc session start
    et sur le header

    comprends plus????

    fodrait 'il ke je déclare les variables sessions vides apres session start comme c la premiere ke j'utilise dans mes pages?

    merci
    0
  14. alonso
     
    bonjour
    voilà j'ai fait ca et ca marche sur ma page client s'affiche bien les infos si je fais un echo
    voilà merrci pour l'aide ^^

    <?
    session_start();
    include ('./connect/connection.php');
    ?>
    <?
    $email=$_POST['email'];
    $password=$_POST['password'];
    if (empty($email) or empty($password))
    {
    ?>
    <script language="javascript">document.location.href='?rub=9'</script><?
    }
    else
    {
    $sql = "SELECT * FROM clients where mail_client='$email'and mdp_client=md5(md5('$password'))";
    $req=mysql_query($sql);
    $data= mysql_num_rows($req);

    if ($data==0)
    {
    ?>
    <script language="javascript">document.location.href='?rub=9'</script><?
    }
    else {
    $data = mysql_fetch_assoc($req);

    session_start();
    $_SESSION['id_client']= $data['id_client'];
    $_SESSION['mail_client']= $data['mail_client'];
    $_SESSION['nom_client']= $data['nom_client'];

    ?>
    <script language="javascript">document.location.href='./client.php'</script>
    <?
    }
    }
    mysql_close();
    ?>
    0
  15. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    Bonjour :)

    OK.. juste un ptit conseil : une balise pour php c'est '<?php' et non juste '<?'.. pour fermer l'est bon, y a juste à mettre '?>'.
    0
  16. alonso
     
    pour ceux qui regarderont cette solution j'avais fait une erreur
    voilà c mieux si ca peut aider

    et metter les balises comme il a dit le monsieur bien ke ca va changé grand chose
    mais bon c conseiller a +++

    <?
    session_start();
    include ('./connect/connection.php');
    ?>
    <?
    $email=$_POST['email'];
    $password=$_POST['password'];
    if (empty($email) or empty($password))
    {
    ?>
    <script language="javascript">document.location.href='?rub=9'</script><?
    }
    else
    {
    $sql = "SELECT * FROM clients where mail_client='$email'and mdp_client=md5(md5('$password'))";
    $req=mysql_query($sql);
    $data= mysql_num_rows($req);

    if ($data==0)
    {
    ?>
    <script language="javascript">document.location.href='?rub=9'</script><?
    }
    else {
    $data = mysql_fetch_assoc($req);

    $_SESSION['id_client']= $data['id_client'];
    $_SESSION['mail_client']= $data['mail_client'];
    $_SESSION['nom_client']= $data['nom_client'];

    ?>
    <script language="javascript">document.location.href='./client.php'</script>
    <?
    }
    }
    mysql_close();
    ?>
    0
  17. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    ca change tout en php5 ;)
    0
  18. alonso
     
    lol
    dis moi tu as l'air de t'y connaitre

    g une petitte question pour toi sur ma page client
    il me cette erreur kan j 'ouvre une nouvelle page

    Notice: Undefined index: mail_client in c:\program files\easyphp1-8\www\tabacpresseweb\site\client.php on line 3

    Notice: Undefined index: id_client in c:\program files\easyphp1-8\www\tabacpresseweb\site\client.php on line 4

    code page client

    <? session_start();?>
    <? echo session_id();?>
    <? echo $_SESSION['mail_client'];?>
    <? echo $_SESSION['id_client'];?>

    3 et 4 c'est les deux dernieres et kan je rafraichis la page et ke je rentre de nouvo les log
    sans pb g mes infos sur ma page client une idée??

    merci
    0
  19. jjsteing Messages postés 1613 Date d'inscription   Statut Contributeur Dernière intervention   181
     
    bonjour :)

    $_SESSION['mail_client'] est défini pour les sessions utilisateurs, donc tant que tu n est pas connecté, cette variable n existe pas... pour y remédier :

    if isset($_SESSION['mail_client']){ // si une session existe => si un utilisateur connu est connecté ;)

    <? echo $_SESSION['mail_client'];?>
    <? echo $_SESSION['id_client'];?>

    }else{
    echo "Vous n'êtes pas encore logué";
    0