session

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 : session

Re: session

par john7 » 24 mars 2010, 13:19

Mais oui, mais c'est bien sur.... :oops: Je suis désolé de poser une question dont j'ai la réponse !
J'ai posé cette question à 2 heures du matin....Fatigué!!
Puisque la session et start, elle est donc ouverte, il faut juste vérifier qu'elle y est sur la page demandée, sur la même page, il n'y a aucun intérêt ! Merci tout de même pour le temps passé à répondre. :D

Re: session

par jojolapine » 24 mars 2010, 13:06

J'ai l'impression que tu mélanges plusieurs choses....
Pour simplifier on va dire que tu as deux fichiers: login.php et pageprotege.php
le premier contient le code que tu as coller ici, à savoir, le code du login qui s'occupe de vérifier que le membre existe et si oui d'initialiser des variables sessions.

Le deuxième contient du code (peut importe lequel) qui ne doit être accessible qu'aux membres identifiés.
Ce dernier est accessible sur tout ton site via
<a href="pageprotege.php">Page protégée</a>
Et ce sans distinction entre les connectés et les non-connectés.

Et c'est une fois sur pageproteges.php que l'on test si oui ou non on a le droit d'y rester... (via le code que je t'ai filé juste avant).

Si encore une fois je répond à côté, c'est que ta question est mal posée, ré-expose ton problème clairement, quels fichiers entrent en jeu, le code de ces derniers, et précisément le point qui te pose problème ;)

Re: session

par john7 » 24 mars 2010, 12:49

Oui et non ! Dans le script, tout ça existe déjà, j'ai juste a vérifier. Ça, c'est bon. La question est: Est-ce que dans ma balise
href
je mets
<?php echo $loginFormAction; ?>
pour vérifier ou y a t'il une autre technique? C'est vrai que j'ai un peu tourné autour du pot pour poser cette question !

Re: session

par jojolapine » 24 mars 2010, 12:36

Alors pour faire ta vérification, tu vas devoir dans ta page postcomment.php (pour l'exemple)
Faire quelque chose dans ce gout là:
<?php
session_start();

// Si la session n'est pas renseignée
if(empty($_SESSION['MM_Username'])){

    // redirection vers la page de connection
    // ou affichage d'un message indiquant qu'il faut se connecter

}
// Sinon on a le droit de poster.
else {

    // code du post de commentaire

}
Note: si tu choisis la redirection en cas de personne non connectée, via header('Location: url');
Si tu prend bien soins de placer un exit(); après le header, tu n'as pas besoin du else { }.
puisque la redirection suivit du exit() empêchera complètement l'accès au reste de la page.
ça donnerait ça:
<?php
session_start();

// Si la session n'est pas renseignée
if(empty($_SESSION['MM_Username'])){

    header('Location: url');
    exit();
}

// code du post de commentaire
Est-ce que je répond mieux à ta question?

Re: session

par john7 » 24 mars 2010, 12:21

J'ai du mal m'exprimer. Ce n'est pas le script en lui même que je ne comprends pas, c'est assez clair, mais comment écrire cette vérification dans mon lien, Dans l'action du formulaire, on vérifie la variable :
<?php echo $loginFormAction; ?>
, est-ce la même chose dans un lien? merci

Re: session

par jojolapine » 24 mars 2010, 11:41

Pour ce qui est de tout ça, c'est automatique, je ne me pose pas de question.
Et c'est bien ça le problème ;)
Si c'est dreamweaver qui génère ton code de connection, il semble normal que tu ne t'y retrouves pas :/
Il faut que tu essayes de comprendre ce que fait le code ci-avant et/ou que tu essayes de faire le tiens tout seul avec par exemple ce tutoriel: http://www.phpdebutant.org/article47.php

Ensuite, pour être anti-pedagogique, et te donner un bout de solution plus directe,
il faut que tu fasses tes tests sur cette variable: $_SESSION['MM_Username']
à savoir si elle est existante et remplie ou non.
Pour ce qui est des redirections vers d'autres pages: header() ;)

Re: session

par john7 » 24 mars 2010, 11:18

Je bosse avec dreamweaver sur mac. J'ai sur la page un formulaire de connection qui marche.
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['textfield'])) {
  $loginUsername=$_POST['textfield'];
  $password=$_POST['textfield2'];
  $MM_fldUserAuthorization = "niveau";
  $MM_redirectLoginSuccess = "index.php";
  $MM_redirectLoginFailed = "Administration/erreur.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_conn, $conn);
  	
  $LoginRS__query=sprintf("SELECT pseudo, pass, niveau FROM `user` WHERE pseudo=%s AND pass=%s",
  GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 
   
  $LoginRS = mysql_query($LoginRS__query, $conn) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
    
    $loginStrGroup  = mysql_result($LoginRS,0,'niveau');
    
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;	      

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>
et dans la page qui reçoit il y a la restriction adéquat. Pour ce qui est de tout ça, c'est automatique, je ne me pose pas de question.
Je ne sais pas si c'est plus clair, en tout cas merci pour la réponse.

Re: session

par jojolapine » 24 mars 2010, 10:50

Avant de savoir comment vérifier si le membre est connecté sur telle ou telle page...
Il faudrait savoir comment tu gères tes connections? le script de connection est-il déjà en place?
Comment fonctionne-t-il?

session

par john7 » 24 mars 2010, 02:58

Je sais que le sujet est basique mais moi aussi pour l'instant...
Ma question est la suivante:
Sur une page quelconque, j'ai un lien pour pouvoir poster des commentaires, seulement, il faut être enregistrer pour pouvoir le faire. Donc comment savoir si une session est ouverte quand on clique sur le lien et rediriger le client sur la page demandée ou comment rediriger le client le cas contraire? le rediriger sur une autre page de connexion ou même sur la même page avec un message. Merci pour vos réponses ; Il est tard, je vais me coucher!!!! :!: