Pb session php

Résolu/Fermé
alonso - 30 juil. 2009 à 16:21
 alonso - 31 juil. 2009 à 16:17
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'];?>

20 réponses

jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
30 juil. 2009 à 16:36
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
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
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
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
30 juil. 2009 à 16:49
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

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

Posez votre question
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
ok v essayer merci
0
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
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
30 juil. 2009 à 17:02
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
ou
header("location:client.php");

rien a faire ?????
merci
0
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
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
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
30 juil. 2009 à 17:18
<? 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
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
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
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
31 juil. 2009 à 10:24
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
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
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
31 juil. 2009 à 10:39
ca change tout en php5 ;)
0
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
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
31 juil. 2009 à 13:05
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
merci l'ami
ca fonctionne c good^^ :-)
0