Session clients
Résolu
Lolo
-
Profil bloqué -
Profil bloqué -
Bonjour,
Comme promis voici mon code pour les sessions :
Formulaire d'identification:
<div id="identifier">
<form method='post' action='identifier.php'/>
<p> S'identifier
<input type="email" value="email" name="email"/>
<input type="password" value="mot de passe" name="mot_de_passe"/>
<input type="submit" value="Ok"/> </p>
</form>
</div>
Connexion session :
<?php session_start();
$_SESSION['email'] = $_POST['email'];
$_SESSION['mot_de_passe'] = $_POST['mot_de_passe'];
?>
Requête Sql pour récupérer les données d'identification :
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);
$req=$bdd->prepare('SELECT prenom, email, mot_de_passe FROM session WHERE email = ? AND mot_de_passe = ?');
$req -> execute (array($_POST['email'], $_POST['mot_de_passe']));
if ($req->rowCount() == 0)
{
echo 'Se compte n\'éxiste pas';
}
else
{
while ($donnees = $req->fetch())
{
echo 'Bienvenue ' .htmlspecialchars($donnees['prenom']);
}
}
$req->closeCursor();
}
catch(Exception $e)
{
die('Erreur: '.$e->getMessage());
}
?>
Problème :
Une fois identifié le client peut de nouveau s'identifier. Aucun compte particulié n'est ouvert. Les données des pages panier et commande peuvent être accessible à n'importe qui.
Comme promis voici mon code pour les sessions :
Formulaire d'identification:
<div id="identifier">
<form method='post' action='identifier.php'/>
<p> S'identifier
<input type="email" value="email" name="email"/>
<input type="password" value="mot de passe" name="mot_de_passe"/>
<input type="submit" value="Ok"/> </p>
</form>
</div>
Connexion session :
<?php session_start();
$_SESSION['email'] = $_POST['email'];
$_SESSION['mot_de_passe'] = $_POST['mot_de_passe'];
?>
Requête Sql pour récupérer les données d'identification :
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);
$req=$bdd->prepare('SELECT prenom, email, mot_de_passe FROM session WHERE email = ? AND mot_de_passe = ?');
$req -> execute (array($_POST['email'], $_POST['mot_de_passe']));
if ($req->rowCount() == 0)
{
echo 'Se compte n\'éxiste pas';
}
else
{
while ($donnees = $req->fetch())
{
echo 'Bienvenue ' .htmlspecialchars($donnees['prenom']);
}
}
$req->closeCursor();
}
catch(Exception $e)
{
die('Erreur: '.$e->getMessage());
}
?>
Problème :
Une fois identifié le client peut de nouveau s'identifier. Aucun compte particulié n'est ouvert. Les données des pages panier et commande peuvent être accessible à n'importe qui.
A voir également:
- Session clients
- Pourquoi sfr perd des clients - Guide
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Teamviewer code de session expiré ✓ - Forum logiciel systeme
- Session invalide ou obsolète ✓ - Forum finances
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Windows
2 réponses
<?php session_start();
$_SESSION['email'] = $_POST['email'];
$_SESSION['mot_de_passe'] = $_POST['mot_de_passe'];
?>
Non ^^'
Après ton code sql, si tu as trouvé ce qu'il faut, tu mets ça
$_SESSION['email'] = $_POST['email'];
$_SESSION['mot_de_passe'] = $_POST['mot_de_passe'];
(avec htmlscpecialchars)
Et en haut de ta page tu laisses bien session_start.
Et en principe tu devrais pouvoir accéder à l'email et au mot de passe partout, une fois qu'ils ont eut une valeur.
Teste
$_SESSION['email'] = $_POST['email'];
$_SESSION['mot_de_passe'] = $_POST['mot_de_passe'];
?>
Non ^^'
Après ton code sql, si tu as trouvé ce qu'il faut, tu mets ça
$_SESSION['email'] = $_POST['email'];
$_SESSION['mot_de_passe'] = $_POST['mot_de_passe'];
(avec htmlscpecialchars)
Et en haut de ta page tu laisses bien session_start.
Et en principe tu devrais pouvoir accéder à l'email et au mot de passe partout, une fois qu'ils ont eut une valeur.
Teste
Il faut mettre en variable de session les valeurs récupérés par la requête si il y en a !
Sinon en effet tout le monde peut s'identifier avec n'importe quel login et mdp ^^
Si ta requête sql ne retourne rien, c'est que l'utilisateur n'existe pas et tu dois le jerter sans le connecter...
Autrement question sécurité, j'espère que tu cryptes tes mdp...
Sinon en effet tout le monde peut s'identifier avec n'importe quel login et mdp ^^
Si ta requête sql ne retourne rien, c'est que l'utilisateur n'existe pas et tu dois le jerter sans le connecter...
Autrement question sécurité, j'espère que tu cryptes tes mdp...
Alors à priori ça marche...
J'ai placé
<?php
$_SESSION['email'] = $_POST['email'];
$_SESSION['mot_de_passe'] = $_POST['mot_de_passe'];
?>
après ma requête Sql. A part. Quand j'essaie de récupérer la variable de session 'email' dans une autre page il m'indique bien la bonne donnée.
Inversement il me note mon message d'erreur quand l'email ou le mot de passe ne sont pas bons.
Est ce que comme ça je peux considérer que j'ai créé une session client qui sera retenir les informations du panier du client pour qu'il puisse faire sa commande ??
Comment faire pour que l'email du client soit inscrit en permanence sur les page du site à la place du formulaire d'identification ?
Merci beaucoup...
J'ai placé
<?php
$_SESSION['email'] = $_POST['email'];
$_SESSION['mot_de_passe'] = $_POST['mot_de_passe'];
?>
après ma requête Sql. A part. Quand j'essaie de récupérer la variable de session 'email' dans une autre page il m'indique bien la bonne donnée.
Inversement il me note mon message d'erreur quand l'email ou le mot de passe ne sont pas bons.
Est ce que comme ça je peux considérer que j'ai créé une session client qui sera retenir les informations du panier du client pour qu'il puisse faire sa commande ??
Comment faire pour que l'email du client soit inscrit en permanence sur les page du site à la place du formulaire d'identification ?
Merci beaucoup...
Il faut que tu fasses une fonction avec un update, à chaque fois qu'un client ajoutera quelque chose à son panier, genre
"UPDATE lepanier SET ".'cequetuveuxmettre'." FROM mabdd WHERE emailclient=".'$_SESSION['email']'
Enfin c'est un exemple. Mais c'est le concept.
PS pense à bien t'assurer que l'email entré est valide.
"UPDATE lepanier SET ".'cequetuveuxmettre'." FROM mabdd WHERE emailclient=".'$_SESSION['email']'
Enfin c'est un exemple. Mais c'est le concept.
PS pense à bien t'assurer que l'email entré est valide.