Sessions: encore un problème ..
Package123
-
le père -
le père -
Bon, vous allez me dire, encore un qui sait pas utiliser les sessions ... Mais !
Je vois vraiment pas où j'ai mal écrit mon code ...
code de ma page verifconnexion.php
et ma page connexion.php
Je pense que c'est ce que j'ai fléché qui n'est pas bon (=====>>>), ça ne met rien en session ...
Et toutes mes pages commencent par le fameux <?php session_start();>
Je vois vraiment pas où j'ai mal écrit mon code ...
code de ma page verifconnexion.php
<?php
$loginOK = false;
if ( isset ( $_POST[ 'connexion' ] ) && $_POST[ 'connexion' ] == 'Connexion' )
{
if ( isset ( $_POST ) && ( ! empty ( $_POST[ 'pseudo' ] )) && ( ! empty ( $_POST[ 'mdp' ] )))
{
{
$pdo_options[ PDO::ATTR_ERRMODE ] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
$req = $bdd -> prepare ( "SELECT COUNT(*) FROM membres WHERE pseudo=? AND mdp=?" );
$req -> execute (array($_POST[ 'pseudo' ],($_POST[ 'mdp' ])));
$res = $req->fetch(PDO::FETCH_ASSOC);
if($res["COUNT(*)"] == 1)
{
$loginOK = true; //la variable change
}
else
{
echo "Vous n'êtes pas enregistré(e) OU Mauvais mot de passe";
}
}
// Si LoginOK a été validé -> données en sessions
if ( $loginOK )
{
=====>>> $_SESSION['pseudo'] = $pseudo;
=====>>> $_SESSION['mdp'] = $mdp;
header ( 'Location: pagedossiers.php' );
}
}
}
else
{
echo 'Une erreur est survenue, veuillez réessayer !';
}
?>
et ma page connexion.php
<du code html> <div class="body_formulaire"> <p class="formulaire_inscrip">Connexion</p> <form method="post" action="verifconnexion.php"> <p> Votre pseudo : <input type="text" name="pseudo" id="pseudo" placeholder="17 caracteres max." maxlength="17" required/><br/> Votre mot de passe : <input type="password" name="mdp" id="mdp" required/><br /> <input type="submit" name="connexion" value="Connexion" /> </p> </form> </div> <autre code html>
Je pense que c'est ce que j'ai fléché qui n'est pas bon (=====>>>), ça ne met rien en session ...
Et toutes mes pages commencent par le fameux <?php session_start();>
A voir également:
- Sessions: encore un problème ..
- Vous ne pouvez pas creer plusieurs sessions instagram - Guide
- Ouvrir deux sessions windows en même temps - Forum Windows
- Variables de sessions chez 1and1 - Forum Hébergement
- Problème ouverture de sessions d'un serveur ✓ - Forum Windows serveur
- [Messenger] 2 sessions en même temps - Forum Mail
24 réponses
page verifconnexion.php
page connexion.php
C'est une totale absurdité.
Je sais ... mais après avoir essayer beaucoup de scripts qui fonctionnaient sur les autres et pas chez moi, j'ai remodifié mon script en me rapprochant le plus de ce qui pouvait aller le plus loin. Ici tout est mis en session SAUF le pseudo ...
Je te l'ai dit, je suis à bout, jusqu'à en devenir débile et ne plus me rappeler les choses qui fonctionnent ou pas ...
<?php
session_start();
$loginOK = false;
// Conditions: appuyer sur le bouton Connexion et champs remplis.
if (isset($_POST['connexion'])&& $_POST['connexion'] == 'Connexion')
{
if (isset($_POST)&&(!empty($_POST['pseudo'])) && (!empty($_POST['mdp'])))
{
$pdo_options[ PDO::ATTR_ERRMODE ] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
$req = $bdd -> prepare ("SELECT COUNT(*) AS nbr FROM membres WHERE pseudo=? AND mdp=?");
$req -> execute (array($_POST['pseudo'],$_POST['mdp']));
$resu = $req->fetch(PDO::FETCH_ASSOC);
if($resu["nbr"] == 1)
{
$loginOK = true; //la variable change
$_POST["pseudo"] = $_SESSION["pseudo"];
header ( 'Location: pageaccueil.php' );
}
else {echo '<center>Vous n\'êtes pas enregistré(e)</br> ET/OU</br> Mauvais mot de passe</br></br>
<a href="connexion.php">Cliquez ici pour revenir à la page de connexion</a></center>';}
} else {echo "Pseudo et/ou mdp vide(s) !";}
}
else{echo 'Une erreur est survenue, veuillez réessayer !';}
?>
page connexion.php
<?php session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="pages.css" />
<title>Titre du site</title>
<link rel="icon" type="image/ico" href="images/favicon.ico" />
</head>
<body>
<div class="bloc_page">
<header>
<?php include("banniere_site.php"); ?>
<?php include("menupasco.php"); ?>
</header>
<div class="body_formulaire">
<p class="formulaire_inscrip">Connexion</p>
<form method="post" action="verifconnexion.php">
<p>
Votre pseudo : <input type="text" name="pseudo" id="pseudo" placeholder="17 caracteres max." maxlength="17" required/><br/>
Votre mot de passe : <input type="password" name="mdp" id="mdp" required/><br />
<input type="submit" name="connexion" id="connexion" value="Connexion" />
</p>
</form>
</div>
<?php include("footer.php"); ?>
</div>
</body>
</html>
C'est une totale absurdité.
Je sais ... mais après avoir essayer beaucoup de scripts qui fonctionnaient sur les autres et pas chez moi, j'ai remodifié mon script en me rapprochant le plus de ce qui pouvait aller le plus loin. Ici tout est mis en session SAUF le pseudo ...
Je te l'ai dit, je suis à bout, jusqu'à en devenir débile et ne plus me rappeler les choses qui fonctionnent ou pas ...
Quand je dis c'est une totale absurdité, je ne parle pas du script en général (je n'ai même pas cherché à le comprendre) mais de la ligne
$_POST["pseudo"] = $_SESSION["pseudo"];
Pour enregistrer le pseudo dans la session, c'est
$_SESSION["pseudo"]=$_POST["pseudo"]
C'est la variable à gauche du = qui reçoit la valeur. Si tu veux mettre quelque chose en session, il suffit de faire $_SESSION['variable']=valeur.
$_POST["pseudo"] = $_SESSION["pseudo"];
Pour enregistrer le pseudo dans la session, c'est
$_SESSION["pseudo"]=$_POST["pseudo"]
C'est la variable à gauche du = qui reçoit la valeur. Si tu veux mettre quelque chose en session, il suffit de faire $_SESSION['variable']=valeur.
Bon, j'ai ENFIN trouvé !
Pour ceux que ça intéresse:
page verifconnexion.php
Je réfléchis mieux le matin, merci le père pour tes aides ;-)
Pour ceux que ça intéresse:
page verifconnexion.php
<?php
session_start();
$loginOK = false;
// Conditions: appuyer sur le bouton Connexion et champs remplis.
if (isset($_POST['connexion'])&& $_POST['connexion'] == 'Connexion')
{
if (isset($_POST)&&(!empty($_POST['pseudo'])) && (!empty($_POST['mdp'])))
{
$_SESSION["pseudo"] = $_POST["pseudo"];
$pdo_options[ PDO::ATTR_ERRMODE ] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
$req = $bdd -> prepare ("SELECT COUNT(*) AS nbr FROM membres WHERE pseudo=? AND mdp=?");
$req -> execute (array($_POST['pseudo'],$_POST['mdp']));
$resu = $req->fetch(PDO::FETCH_ASSOC);
if($resu["nbr"] == 1)
{
$loginOK = true; //la variable change
header ( 'Location: pageaccueil.php' );
}
else {echo '<center>Vous n\'êtes pas enregistré(e)</br> ET/OU</br> Mauvais mot de passe</br></br>
<a href="connexion.php">Cliquez ici pour revenir à la page de connexion</a></center>';}
} else {echo "Pseudo et/ou mdp vide(s) !";}
}
else{echo 'Une erreur est survenue, veuillez réessayer !';}
?>
Je réfléchis mieux le matin, merci le père pour tes aides ;-)
Le 20 avril, il y a plus de 15j, tu avais écrit :
J'ai changé mes variables en $_SESSION['pseudo'] = $_POST['pseudo'] mais rien n'y fait
Je t'ai fait remarqué le 5 mai que tu faisais l'inverse, c'est à dire $_POST['pseudo'] = $_SESSION['pseudo'] alors qu'il fallait bien $_SESSION['pseudo'] = $_POST['pseudo'].
Ce matin, ce qui ne marchait pas le 20 avril s'est remis à marcher ?
Et tu écris sans vergogne Bon, j'ai ENFIN trouvé
Tu réfléchiras à tout ça. Un matin de préférence.
J'ai changé mes variables en $_SESSION['pseudo'] = $_POST['pseudo'] mais rien n'y fait
Je t'ai fait remarqué le 5 mai que tu faisais l'inverse, c'est à dire $_POST['pseudo'] = $_SESSION['pseudo'] alors qu'il fallait bien $_SESSION['pseudo'] = $_POST['pseudo'].
Ce matin, ce qui ne marchait pas le 20 avril s'est remis à marcher ?
Et tu écris sans vergogne Bon, j'ai ENFIN trouvé
Tu réfléchiras à tout ça. Un matin de préférence.