Problème de session

Résolu/Fermé
graknar - Modifié par graknar le 19/04/2016 à 12:13
graknar Messages postés 6 Date d'inscription dimanche 5 juillet 2015 Statut Membre Dernière intervention 19 avril 2016 - 19 avril 2016 à 15:44
Salutation à tous,

Voilà j'ai un projet de site web à faire et dans ce dernier j'aimerais avoir la gestion de session. Pour cela j'utilise le "session_start();" du php. Mais voilà sur mon ordinateur perso (qui utilise wamp) il n'y a aucun problème la variable super-globale $_SESSION["email"] passe d'une page à l'autre et il ne me retourne aucune erreur. Et sur les pc de la fac il ne marche pas, il tourne comme si la session_start n'existait pas et donc la valeur de la variable super-globale ne passe pas...

voilà le code de la page connexion.php et de ma page depot.php (servant au dépôt d'une annonce) :

<!DOCTYPE html>
<html>
<head>
<meta charset= "UTF-8" />
<link rel="stylesheet" href="index.css" />
<link rel="stylesheet" href="connexion.css" />
<title> Le Mauvais Coin </title>
<?php
include 'cle.php';
session_start();

$_SESSION['email'];
?>
</head>
<body>
<header>
<ul>
<li>
<h1>
<a href= "http://pubhtml/~<?php echo $sql_user ?>/main.php">Le Mauvais Coin</a>
</h1>
</li>
<li>
<?php
if(empty($_SESSION['email']))
{
echo"<a href='http://pubhtml/~". $sql_user ."/connexion.php' title='connection'> Se connecter</a>";
}
else
{
echo"<a href='http://pubhtml/~". $sql_user ."/connexion.php' title='connection'> Se deconnecter</a>";
}
?>
</li>
</ul>
</header>
<nav>
<ul>
<li><a href="http://pubhtml/~<?php echo $sql_user ?>/main.php">Accueil</a></li>
<li><a href="http://pubhtml/~<?php echo $sql_user ?>/depot.php">Déposer une annonce</a></li>
<li><a href="http://pubhtml/~<?php echo $sql_user ?>/recherche.php">Recherche</a></li>
<li><a href="http://pubhtml/~<?php echo $sql_user ?>/mesAnnonces.php">Mes annonces</a></li>
</ul>
</nav>
<section>
<article>
<?php
$password=$_POST['password'];
$email=$_POST['email'];
if(empty($_SESSION['email']))
{

if(empty($email) && empty($password))
{
echo "Bienvenue </br></br> <form name='connexion' action='connexion.php' method='post'> Entrer votre login : <input type='text' name='email'/> </br> Entrer votre mot de passe : <input type='password' name='password'/></br> <input type='submit' value='envoyer'/> </form>";
}
else
{
if(filter_var($email, FILTER_VALIDATE_EMAIL))
{
$requete1 = "select email from Contact WHERE email='$email'";
$requete2 = "select * from Contact Where '$password'in(select * from contact where email='$email')";
$resultat1= mysql_query($requete1);
$resultat2= mysql_query($requete2);
while($ligne = mysql_fetch_array($resultat1))
{
$testemail=$ligne['email'];
}

while($ligne = mysql_fetch_array($resultat2))
{
$testpassword=$ligne['password'];
}

if($testemail==$email)
{
//if ($testpassword==$password)
//{
$_SESSION['email']=$email;
echo"Bienvenue </br>".$_SESSION['email'];
/*}
Connectez vous! else
{
echo "Mauvais password";
}*/
}
else
{
echo "Votre compte n'existe pas, veuillez vous inscrire! ";
}
}
else
{
echo "Ceci n'est pas une adresse mail";
}
}
}
else
{

if($_POST['deconnexion']=="deconnexion")
{
unset($_SESSION['email']);
echo "Aurevoir";
session_destroy();
}
else
{
echo "<p>Voulez-vous vraiment vous déconnecter ?</p><form name='deconnexion' action='connexion.php' method= 'post'> <input type='submit' value='deconnexion' name='deconnexion' /> </from>";
}
}
?>
</article>
<?php
if(empty($_SESSION['email']))
{
echo "<article>Pour vous inscrire cliquez ici: <form name='inscription' action='inscription.php' method='post'><input type='submit' value='Vous inscrire' name='inscription'/></article>";
}
?>
</section>
</body>
<?php
mysql_close($link);
?>
</html>

et le dépot <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="index.css" />
<link rel="stylesheet" href="depot.css" />
<title> Le Mauvais Coin </title>
<?php
include 'cle.php';
session_start();

$_SESSION['email'];
?>
</head>
<body>
<header>
<ul>
<li>
<h1>
<a href= "http://pubhtml/~<?php echo $sql_user ?>/main.php">Le Mauvais Coin</a>
</h1>
</li>
<li>
<?php
if(empty($_SESSION['email']))
{
echo"<a href='http://pubhtml/~". $sql_user ."/connexion.php' title='connection'> Se connecter</a>";
}
else
{
echo"<a href='http://pubhtml/~". $sql_user ."/connexion.php' title='connection'> Se deconnecter</a>";
}
?>
</li>
</ul>
</header>
<nav>
<ul>
<li><a href="http://pubhtml/~<?php echo $sql_user ?>/main.php">Accueil</a></li>
<li><a href="http://pubhtml/~<?php echo $sql_user ?>/depot.php">Déposer une annonce</a></li>
<li><a href="http://pubhtml/~<?php echo $sql_user ?>/recherche.php">Recherche</a></li>
<li><a href="http://pubhtml/~<?php echo $sql_user ?>/mesAnnonces.php">Mes annonces</a></li>
</ul>
</nav>
<section>
<article>
<p>Création de l'annonce</p>
</article>
<article>
<?php
if(!empty($_SESSION['email']))
{
?>
<form name='depot' action='depot.php' method='post'>
Entrez un titre :<input type='text' name='titre'/></br>
Entrez une description:</br><textarea name='description'></textarea></br>
catégorie de parution ? <select name='categorie'>
<?php
$resultat = mysql_query('select * from Categorie ');

while($ligne = mysql_fetch_array($resultat))
{
echo "<option value=".$ligne['idCategorie'].">".$ligne['idCategorie']." - ".$ligne['categorie']."</option>";
}
echo "</select> </br> Entrez le prix de l'objet a vendre: <input type='text' name='prix'/></br><input type='submit' value='envoyer' /></form>";
$email= $_SESSION['email'];
}
else
{
echo "<form name='connexion' action='connexion.php' method='post'> <input type='submit' value='Connectez vous! '/></form>";
}
?>
</article>
<?php
$titre = htmlspecialchars($_POST['titre']);
$description = htmlspecialchars($_POST['description']);
$categorie =$_POST['categorie'];
$prix = $_POST['prix'];
if(!is_numeric($prix))
{
$prix='NULL';
}
if (!empty($titre)&&!empty($description))
{
$requete='SELECT * FROM Contact WHERE email="'.$email.'"';
$resultat = mysql_query($requete);

while($ligne = mysql_fetch_array($resultat))
{
$idContact = $ligne['idContact'];
}

$numero = mysql_query('select numero from Annonce where numero >= ALL(select numero from Annonce)');
while($ligne = mysql_fetch_array($numero))
{
$numero=$ligne['numero']+1;
}

$requete2 = 'INSERT INTO Annonce VALUES('.$numero.',"'.$titre.'","'.$description.'",'.$categorie.','.$idContact.','.$prix.',now())';
$resultat2=mysql_query($requete2);

if($resultat2){echo "<article> L'annonce à bien été postée </article>";}
}
else
{
if(empty($titre)&&!empty($description)||!empty($titre)&&empty($description)){
echo "<article> Vous n'avez pas rempli un des champs obligatoires.</article>";
}
}
?>
</section>
</body>
<?php
mysql_close($link);
?>
</html>


merci d'avance pour vos réponse.

1 réponse

Yuh12 Messages postés 184 Date d'inscription mercredi 7 mai 2014 Statut Membre Dernière intervention 28 septembre 2017 24
19 avril 2016 à 12:44
Bonjour,
Peux-tu commencer par éditer ton message et mettre le code en PHP et non en "Spoiler" pour qu'on puisse le lire plus facilement ?

Je te conseille déjà de comparer les versions de PHP / MyQSL de tes wamp serveur (celui chez toi et à la FAC) pour savoir si il n'y a pas un problème de compatibilité du code.

Tu peux également tester un
var_dump($_SESSION); 

En dessous de ton session_start(); pour voir ce que la variable renvoi.
0
graknar Messages postés 6 Date d'inscription dimanche 5 juillet 2015 Statut Membre Dernière intervention 19 avril 2016
19 avril 2016 à 14:43
Rebonjour,
alors j'aimerais bien retirer les spoilers, mais je l'ai envoyer cette question sans utiliser mon compte (j'avais oublié qu'elle existait et oui je sais je suis un boulet)

Ensuite j'ai fait comme tu as dis mes versions PHP sont différentes (j'ai PHP5.6 sur les pc de la fac et PHP7 sur le mien) et pour MYSQL je ne sais pas je n'ai pas regardé...

J'ai essayer le var_dump($_SESSION); et la réponse est toujours NULL...
0
graknar Messages postés 6 Date d'inscription dimanche 5 juillet 2015 Statut Membre Dernière intervention 19 avril 2016
19 avril 2016 à 15:44
bon finalement j'ai résolu mon problème, c'était le chemin d'accès qui marchait pas, j'ai mit session_set_save_handler( ... ) et session_save_path (...) en début de fichier. Ainsi j'ai les droits d'administrateur sur les fichiers, en lecture et écriture.

Du coup merci quand même
0