Espace membre : session + cookie

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Espace membre : session + cookie

Re: Espace membre : session + cookie

par Benamour Jr » 27 mars 2010, 13:24

En effet c'est bien plus pratique, merci ! :)

Re: Espace membre : session + cookie

par devlop78 » 27 mars 2010, 03:12

Normalement les sessions s'adaptent : cookie et non cookie.

Re: Espace membre : session + cookie

par Ryle » 27 mars 2010, 01:07

Et pourquoi tu n'utiliserais pas les sessions pour tout le monde ? Tu n'aurais alors qu'une seule variable à tester :)

Si l'utilisateur dispose d'un cookie, tu t'en sers lorsqu'il arrive sur le site pour pré-renseigner la session, et s'il n'en a pas tu renseigne ta session normalement... résultat, cookie ou pas pour le reste du site tu n'as que la session à vérifier :)

Espace membre : session + cookie

par Benamour Jr » 27 mars 2010, 00:17

Bonsoir,

je suis en train de développer un espace membre où le visiteur à le choix d'utiliser les cookies où non (dans ce dernier cas, tout est géré par session_start()). Donc je dois utiliser les superglobales $_SESSION ou $_COOKIE. Le "problème" c'est que quand je programme mes pages je dois faire face aux deux possibilités. Prenons ce petit bout de code (destiné à modifier son mot de passe dans un espace membre) qui s'arrête à ma question :
<?php
if (!empty($_SESSION["pseudo"]) OR !empty($_COOKIE["pseudo"]))
{
	if (isset($_POST["chg_mdp"]))
	{
		// connexion à la bdd
		try
		{
			$bdd = new PDO('mysql:host=localhost;dbname=estoriai_archive', 'estoriai_Ben', '*****');
		}
		catch (Exception $e)
		{
				die('Erreur : ' . $e->getMessage());
		}
		
		// vérifier que l'ancien mot de passe est correct
		$req_verif_mdp = $bdd->prepare('SELECT mdp FROM membre WHERE pseudo = :pseudo');
		$req_verif_mdp->execute(array('pseudo' =>
	}
}
?>
Comme je ne sais pas si le visiteur naviguera sur la page via une session ou des cookies, j'aurais aimé pouvoir faire un truc du style :
<?php
$req_verif_mdp->execute(array('pseudo' => $_SESSION['pseudo'] OR $_COOKIE['pseudo']));
<?
Bien entendu ca ne marche pas :(
Mais est-ce qu'il existe une méthode du style qui me permettrait de devoir éviter de devoir écrire à chaque fois un code du style :
<?php
if (!empty($_SESSION['pseudo']))
{
	$pseudo = $_SESSION['pseudo'];
}
if (!empty($_COOKIE['pseudo']))
{
	$pseudo = $_COOKIE['pseudo'];
}
Ca marche mais ca me parrait trop redondant pour qu'il s'agisse du code le plus optimal... Donc si qqn avait une solution plus courte à proposer, je suis preneur :)