Espace membre : session + cookie

Répondre
Benamour Jr
Benamour Jr
Déconnecté
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 :

  1.  
  2. <?php
  3. if (!empty($_SESSION["pseudo"]) OR !empty($_COOKIE["pseudo"]))  
  4. { 
  5.    if (isset($_POST["chg_mdp"])) 
  6.    { 
  7.       // connexion à la bdd
  8.       try 
  9.       { 
  10.          $bdd = new PDO('mysql:host=localhost;dbname=estoriai_archive', 'estoriai_Ben', '*****'); 
  11.       } 
  12.       catch (Exception $e) 
  13.       { 
  14.             die('Erreur : ' . $e->getMessage()); 
  15.       } 
  16.       
  17.       // vérifier que l'ancien mot de passe est correct
  18.       $req_verif_mdp = $bdd->prepare('SELECT mdp FROM membre WHERE pseudo = :pseudo'); 
  19.       $req_verif_mdp->execute(array('pseudo' => 
  20.    }  
  21. }  
  22. ?>
  23.  


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 :

  1.  
  2. <?php
  3. $req_verif_mdp->execute(array('pseudo' => $_SESSION['pseudo'] OR $_COOKIE['pseudo']));  
  4. <?  
  5.  


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 :

  1.  
  2. <?php
  3. if (!empty($_SESSION['pseudo']))  
  4. { 
  5.    $pseudo = $_SESSION['pseudo'];  
  6. }  
  7. if (!empty($_SESSION['pseudo']))  
  8. { 
  9.    $pseudo = $_COOKIE['pseudo'];  
  10. }  
  11. ?>
  12.  


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 :)
Benamour Jr
Benamour Jr
Déconnecté
correction du dernier code :

[code]
<?php
if (!empty($_SESSION['pseudo']))
{
$pseudo = $_SESSION['pseudo'];
}
if (!empty($_COOKIE['pseudo']))
{
$pseudo = $_COOKIE['pseudo'];
}
?>
Benamour Jr
Benamour Jr
Déconnecté
Pour ceux que ca intéresserait, j'ai simplement fait un $_SESSION['pseudo'] = $_SESSION['cookie'] pour confondre les deux ;)
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique