Faire jouer une identification sur d'autres 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 : Faire jouer une identification sur d'autres pages....

par chrislabricole » 11 mai 2007, 13:48

a oui excuse moi, comme chui débutant php, je me suis trompé, pour
[session_name()] 
et
setcookie(session_name()
a la place de "session_name" j'ai mi membreid en croyant qu'il falait le remplacer, et quand j'ai vu qu'il y avait des message d'erreurs, j'ai mi des "@", il y avait forcement encore des messages d'erreurs..., j'ai alors décider de remettre "session_name" a la place de "membreid", et sa a marché, donc j'ai oublié de les enlever....
lol

Bé.... c'est encore un sujet résolu ! :wink:
Merci ! :D :D

par Ryle » 11 mai 2007, 08:27

Au lieu de cacher les erreurs sous le tapis en attendant de trouver l'aspirateur, et de se retrouver un jour avec un montagne de m**** au milieu du salon, il serait nettement plus judicieux de virer ces "@", de prendre le temps d'analyser les messages d'erreurs et de corriger que d'attendre que ca n'explose ;)

Si tu es chez free, pour que les sessions fonctionnent il te faut créer un dossier "sessions" à la racine de ton site pour qu'il puisse y gérer ses fichiers.. est-ce fait ?

Sinon quels sont les messages d'erreur que tu rencontres sur ces différentes fonctions ? :)

par chrislabricole » 10 mai 2007, 22:44

trouver !! :
<?php
@session_start();

$_SESSION = array();

if (isset($_COOKIE[session_name()])) {
    @setcookie(session_name(), '', time()-42000, '/');
}

@session_destroy();

?>
<meta http-equiv="Refresh" content="2;URL=index.html">
<p>&nbsp;</p>
<center><b>Vous avez été déconnecté !</b></center>

par chrislabricole » 10 mai 2007, 19:35

Ouai !, sa marche avec :
$id = $_SESSION["membreid"];

au lieu de
$_SESSION["membreid"] = $id;
(dans le fichier "sectionmembre_acces.php")

et
<?php
@session_start();
if (!isset($_SESSION['membre'])) {

@header ("Location: index.html");
    exit();

} 
?>
avec les "@" sinon sa génères des erreurs.. en tout cas avec free

le seul piti problème c'est que sa redirige pas...

Mais merci !

Encore pas tout à fais résolu mais sa ne serais tardé... :wink:

PS : Et pour se déconnecter alors ?? :?:

peut-être avec session_destroy() ?

par Ryle » 10 mai 2007, 08:53

Ton problème peut provenir d'ici dans ton fichier sectionmembre_acces.php :
  $_SESSION["membre"] = TRUE; 
  ...
} else { 
     $_SESSION["membre"] = FALSE; 
en effet, qu'il soit à TRUE ou FALSE, ta variable $_SESSION["membre"] sera définie et le isSet() retournera "vrai". Il te faut donc non seulement tester si elle est définie, mais également vérifier sa valeur (et accessoirement son type) :
if (!isset($_SESSION['membre']) && $_SESSION['membre'] === TRUE) 
Mais ceci ne devrait rien changer à ton message d'erreur qui est lui vraissemblement du à un espace ou un retour à la ligne, placé en dehors des balises <?php ?> avant le session_start de ta page acces.php

Nota si la page acces.php est inclue par une autre, il ne faut pas d'espace ou de retour à la ligne en dehors de balises php avant l'inclusion du fichier.

par dunbar » 09 mai 2007, 19:58

$_SESSION["membreid"] = $id; 
cela ne devrais pas être ceci ?
$id = $_SESSION["membreid"]; 

par lem » 09 mai 2007, 19:55

Mets des traces pour voir les valeurs de $id et de $motDePasse.
Vérifie que cela correspond bien à ce que tu as dans ta base.
Mets des traces dans le if et dans le else pour être sûr qu'il passe dans le else.

par chrislabricole » 09 mai 2007, 19:50

Sa marche pas avec les bon identifiants, sa "recharge" le page à cause du :
header("Location: index.html"); 

par dunbar » 09 mai 2007, 19:19

Et comme ceci ,
<?php
       // Paramètres de connexion à la base de données
    $BD_serveur     = "localhost";
    $BD_utilisateur = "my_login";
    $BD_motDePasse  = "my_pass";
    $BD_base        = "my_base";

    $id         = $_POST["id"];
    $motDePasse = $_POST["motdepasse"];

    mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
        or die("Impossible de se connecter au serveur de bases de données.");
    mysql_select_db($BD_base)
        or die("Impossible de se connecter à la base de données.");

    $requete = "SELECT * FROM table_utilisateurs  WHERE id='".$id."' AND motdepasse='".$motDePasse."'";

    $result = mysql_query($requete);

    if ($enreg = mysql_fetch_array($result)) {
    	session_start();
        // Si une ligne a été trouvée c'est que le couple
        // (identifant, mot de passe) est valide
        $_SESSION["membre"] = TRUE;
        $_SESSION["membreid"] = $id;
        header("Location: acces.php");
        die();
    } else {
        $_SESSION["membre"] = FALSE;
        header("Location: index.html");
        die();
    }
?>

par chrislabricole » 09 mai 2007, 19:05

dans acces.php , j'ai mi ceci :
<?php 
session_start();
if (!isset($_SESSION['membre'])) { 

header ('Location: index.html'); 
    exit(); 

}
?>
en m'assurant qu'il n'y est pas d'espaces(s) intercalés...

Merci !
PS : A mon avis, le fichier sectionmembre_acces.php doit y être pour quelque chose.... nan ?

par dunbar » 09 mai 2007, 18:49

index.html est dans le dossier images, mais index.php ??
Et tu a fait quoi ceci
session_start(); 
if (!isset($_SESSION['membre'])) { 

header ('Location: index.php'); 
    exit(); 

} 
ou ceci
session_start(); 
if (!isset($_SESSION['membre'])) { 

header ('Location: index.html'); 
    exit(); 

} 

par lem » 09 mai 2007, 18:46

index.html est dans le dossier images, mais index.php ??

par dunbar » 09 mai 2007, 18:35

oui oui

l'arbre: (+dossiers) (-fichiers)
..
+ images
- index.html
- sectionmembre_acces.php
- acces.php
Montre tout le code se sera plus simple

par chrislabricole » 09 mai 2007, 18:33

oui oui

l'arbre: (+dossiers) (-fichiers)
..
+ images
- index.html
- sectionmembre_acces.php
- acces.php

par dunbar » 09 mai 2007, 18:27

Je m'en rappele plus

je viens de réassayer, même chose....
la redirection vers index c'est comment ?
index.php ou ../../index.php ?
Parce que acces.php est dans ton dossier images ton index est ou lui ?