Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PEAR
PEAR Forum d'entraide sur le framework PHP : PEAR. Avant de poster -> cours PEAR.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/10/2006, 12h46   #1
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 311
Points : 311
Par défaut [Auth] Comment utiliser les sessions ?

Bonjour,

Je suis en train de tester Auth, la librairie PEAR.
J'ai deja fait des systemes d'authentification, avec les sessions, mais sans Auth.

Donc la j'ai cree une premiere page en suivant leur doc..

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
 
require_once "Auth.php";
 
function loginFunction()
{
     /*
      * Change the HTML output so that it fits to your
      * application.
      */
     echo "<form method=\"post\" action=\"index.php?login=1\">";
     echo "<input type=\"text\" name=\"username\">";
     echo "<input type=\"password\" name=\"password\">";
     echo "<input type=\"submit\">";
     echo "</form>";
}
 
if (isset($_GET['login']) && $_GET['login'] == 1) {
     $optional = true;
} else {
     $optional = false;
}
 
$options = array('dsn'=>'mysql://****:*****@localhost/*****');
$a = new Auth("DB", $options, "loginFunction");
 
$a->start();
 
echo "Everybody can see this text!<br />";
 
if (!isset($_GET['login'])) {
     echo "<a href=\"index.php?login=1\">Click here to log in</a>\n";
}
 
if ($a->getAuth()) {
     echo "One can only see this if he is logged in!";
     echo "<br/><a href='../index.php'>Test session</a>";
}
?>

Par contre, quand je passe sur une nouvelle page je ne sais pas comment garder l'authentification...?

j'ai essaye ca :
Code :
1
2
3
4
require_once "Auth.php";
if ($a->checkAuth()) {
	echo "OK";
}
Mais forcement, il me sort une erreur, vu que mon objet $a n'est pas crée dans cette page..

Comment on fait pour garder les infos d'authentification de page en page, avec Auth ? Leur doc n'est pas claire du tout !

Merci !
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 14h54   #2
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 311
Points : 311
Ou alors j'ai mal compris, et il faut fixer la session soi meme ? ca n'est pas auth qui gere ca ?
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 15h21   #3
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 311
Points : 311
Bon, j'ai fait ca comme ca, finalement :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
 
require_once "Auth.php";
 
function loginFunction()
{
     /*
      * Change the HTML output so that it fits to your
      * application.
      */
     echo "<form method=\"post\" action=\"index.php?login=1\">";
     echo "<input type=\"text\" name=\"username\">";
     echo "<input type=\"password\" name=\"password\">";
     echo "<input type=\"submit\">";
     echo "</form>";
}
 
if (isset($_GET['login']) && $_GET['login'] == 1) {
     $optional = true;
} else {
     $optional = false;
}
 
$options = array('dsn'=>'mysql://****:*****@localhost/****');
$a = new Auth("DB", $options, "loginFunction");
 
$a->start();
 
echo "Everybody can see this text!<br />";
 
if (!isset($_GET['login'])) {
     echo "<a href=\"index.php?login=1\">Click here to log in</a>\n";
}
 
if ($a->getAuth()) {
		session_start();
		$_SESSION['auth'] = serialize($a);
     echo "One can only see this if he is logged in!";
     echo "<br/><a href='../'>Test session</a>";
}
?>

et


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
//*** - index du site//
require_once "Auth.php";
 
session_start();
if (session_is_registered("auth")) 
{
	$a = unserialize($_SESSION['auth']);
	$a->start();
	if ($a->checkAuth())
	{
		echo "OK";
	}
	else
	{
		header("Location:register/index.php");
	}
}
else
{
	header("Location:register/index.php");
}
 
 
 
 
 
?>


Mais est-ce bien une facon correcte d'utiliser Auth ?????

y'a bien des gens qui l'utilisent, cette librairie, non ?
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2006, 12h15   #4
Membre à l'essai
 
Développeur Web
Inscription : mai 2003
Messages : 29
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2003
Messages : 29
Points : 22
Points : 22
Envoyer un message via Skype™ à BuLma
Je l'utilise mais je n'ai pas accès à mes scripts d'ici
j'essayerais de les récupérer dans la semaine pour voir comment j'ai fait

@++
BuLma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2007, 11h08   #5
Invité de passage
 
Inscription : janvier 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 5
Points : 2
Points : 2
Par défaut Même problème : as-tu trouvé une autre solution ?

Comme décrit sur ce post, je me pose la même question que toi sur le passage de l'instance de Auth en session à faire manuellement.

Est-ce que tu as trouvé une autre solution ou bien as-tu eu la confirmation que la méthode que tu présente ci-dessus est la bonne ?

Merci d'avance.
chben est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h22.


 
 
 
 
Partenaires

Hébergement Web