les sessions pour l'accès à certaines pages

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 : les sessions pour l'accès à certaines pages

par Ryle » 21 juin 2006, 18:11

ah bon ? les invités y peuvent po dire quand ils ont trouvé une solution ? c'est dommage nan ? :(

Merci mere-teresa :)

pis dededick, qu'est ce que tu attends pour t'inscrire ?! ronthudjiu !! ;)

par mere-teresa » 21 juin 2006, 18:06

Comme tu es invité, tu n'as pas encore accès à cette option : je l'ai fait pour toi !

par Ryle » 21 juin 2006, 18:03

Tu as un joli bouton résolu orange à gauche qui te tends les bras en criant "clique moi, clique moi !" ;)

[résolu]

par dededick » 21 juin 2006, 17:45

Oui, résolu, mais je sais pas comment le mettre :?

par Ryle » 21 juin 2006, 17:42

[Résolu] :?: :wink:

par dededick » 21 juin 2006, 17:41

Et ça marche (à prioris ^^) !!!
Merci beaucoup! :D :D :D

par dededick » 21 juin 2006, 17:27

ce qui donne :
<?php
session_start();
// pensez a ouvrir une connexion vers mysql ici
include('chien.php');

if(isset($_POST) && !empty($_POST['pseudo']) && !empty($_POST['password'])) {
  extract($_POST);
  // on recupère le password de la table qui correspond au login du visiteur
  $sql = "select password from siteweb where pseudo='".$pseudo."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  $data = mysql_fetch_assoc($req);

  if($data['password'] != $password) {
    include('erreur.html'); // On inclut le formulaire d'identification
    exit;
  }
  else {
    
    $_SESSION['pseudo'] = $_POST['pseudo'];// si pb, essayer de remplace 'pseudo' par
//'login' ;)

    echo 'Vous etes bien logué <br/><br/>';
  echo'Vous rendre sur la page <a href="acceuil.html"> principale </a>';  // ici vous pouvez afficher un lien pour renvoyer
    // vers la page d'accueil de votre espace membres
  }
}
else {
   include('erreur2.html'); // On inclut le formulaire d'identification
   exit;
}
?>

par Ryle » 21 juin 2006, 17:25

Faut que j'ouvre une session_start() dans ma page connexion.php?

Au tout début?
Bah voui.. sinon il ne démarre pas la session, et tout ce que tu peux mettre dans ta variable $_SESSION (genre le pseudo) n'est pas conservée d'une page à l'autre :)

par dededick » 21 juin 2006, 17:22

Faut que j'ouvre une session_start() dans ma page connexion.php?

Au tout début?

par Orni » 21 juin 2006, 15:15

Chaque fois que tu veux utilise les variables en $_SESSION["xxxx"], il te faut obligatoirement mettre session_start() au tout début de ta page.
pas obligatoirement ! ça dépend comment est configuré php
Oui mais par défaut c'est désactivé sinon ça prend des ressources.

par HanX » 21 juin 2006, 15:08

Chaque fois que tu veux utilise les variables en $_SESSION["xxxx"], il te faut obligatoirement mettre session_start() au tout début de ta page.
pas obligatoirement ! ça dépend comment est configuré php

par Ryle » 21 juin 2006, 15:08

S'il exécute à chaque fois le header(), c'est qu'il rentre à chaque fois dans le if(), que par conséquent la condition !isset($_SESSION['pseudo'])) est toujours vrai et que donc $_SESSION['pseudo'] ne doit jamais être défini...

est-il bien mis en session ? (print_r($_SESSION) pour voir ce qu'elle contient)
sachant que tu n'as toujours pas de session_start() dans ta page connexion.php pour démarrer la session et y stocker le pseudo, je doute qu'elle soit renseignée... ;)

par dededick » 21 juin 2006, 15:04

ça marche pas: il me redirige à chaque fois vers le header :(

par Orni » 21 juin 2006, 15:02

Chaque fois que tu veux utilise les variables en $_SESSION["xxxx"], il te faut obligatoirement mettre session_start() au tout début de ta page.

par dededick » 21 juin 2006, 15:01

fo ke je rajoute ça?
<?php session_start();
//Ouvrir une session pour pas que les non-connectés n'accèdent pas à cette page
if (!isset($_SESSION['pseudo'])) {
    header ('Location:index.html');
    exit();
}
?>