Ses derniers messages sur les forums
remarque:
quand je me logue sur ma page
j'arrive sur le site openid
je rentre mon mot de passe
et la j'ai un tableau pour savoir ce que me demande le site et il est écrit "Status : Non demandé" pour tout les typer d'info, ça vien peut etre de la
Fanfantasy7
le code don tu parle, je l'ais pris sur un autre site, que j'ai cité plus haut
je ne connais pas la fonction complete de Auth_OpenID_Consumer
par contre
new Auth_OpenID_FileStore('./oid_store');
./oid_store c'est quoi ?
Fanfantasy7
je ne vois pas de forum sur leur site http://www.openidfrance.fr/
mais j'ai trouvé ça http://getsatisfaction.com/openid
mais c'est en anglais, j'espère que mon anglais sera compréhensible
Fanfantasy7
maintenant les 2 premières ligne de chaques fichiers sont
mais toujours pareille
Fanfantasy7
var_dump($_SESSION['var_openid']); donne array(0) { }
aprés le $_SESSION['var_openid']=$data
ça donne array(0) { }
qu'entendez-vous par exemple de donnée
ormis la documentation openid qu'on trouve sur google je n'ais rien
je n'ais pas d'erreur, ormis quand je fait un echo d'une variable dans iod_return.php, ou j'ai une erreur
Warning: Cannot modify header information
ce qui est normal
<?php
if (!isset($_POST['submit'])) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Entrez votre OpenID: <br/>
<input type="text" name="id" size="30" />
<br />
<input type="submit" name="submit" value="Log In" />
</form>
</body>
</html>
<?php
} else {
// vérifie les valeurs du formulaire
if (trim($_POST['id'] == '')) {
die("ERROR: Entrez un OpenID valide svp.");
}
// fichiers inclus
require_once "Auth/OpenID/Consumer.php";
require_once "Auth/OpenID/FileStore.php";
// démarrage de la session (requis pour YADIS)
session_start();
// crée une zone de stockage pour les données OpenID
$store = new Auth_OpenID_FileStore('./oid_store');
// crée un consommateur OpenID
$consumer = new Auth_OpenID_Consumer($store);
// commence le process d'authentification
// crée une requête d'authentification pour le fournisseur OpenID
$auth = $consumer->begin($_POST['id']);
if (!$auth) {
die("ERROR: Entrez un OpenID valide svp.");
}
// redirige vers le fournisseur OpenID pour l'authentification
$url = $auth->redirectURL('http://192.168.1.21/essai_tech/openid/', 'http://192.168.1.21/essai_tech/openid/oid_return.php');
/* $url = $auth->redirectURL('http://localhost/essai_tech/openid/', 'http://localhost/essai_tech/openid/oid_return.php'); */
header('Location: ' . $url);
}
?>
<?php
// Fichiers inclus
require_once "Auth/OpenID/Consumer.php";
require_once "Auth/OpenID/FileStore.php";
require_once "Auth/OpenID/SReg.php";
// démarre la session (requis pour YADIS)
session_start();
// crée une zone de stockage pour les données OpenID
$store = new Auth_OpenID_FileStore('./oid_store');
// crée un consommateur OpenID
// Lit la réponse du fournisseur OpenID
$consumer = new Auth_OpenID_Consumer($store);
$response = $consumer->complete('http://192.168.1.21/essai_tech/openid/oid_return.php');
// renseigne les valeurs en fonction de celles de l'authentification
if ($response->status == Auth_OpenID_SUCCESS)
{
$_SESSION['OPENID_AUTH'] = true;
// récupère les informations d'enregistrement
$sreg = new Auth_OpenID_SRegResponse();
$obj = $sreg->fromSuccessResponse($response);
$data = $obj->contents();
$_SESSION['var_openid']=$data;
}
else
{
$_SESSION['OPENID_AUTH'] = false;
}
// redirige vers la zone restreinte
header('Location: restricted.php');
?>
<?php
// Vérifie le statue de l'authentification
session_start();
if (!isset($_SESSION['OPENID_AUTH']) || $_SESSION['OPENID_AUTH'] !== true)
{
die ('Vous n\'avez pas le droit d\'accéder a cette page! Loggez-vous svp.<br><a href="openid.php">retour</a>');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
</head>
<body>
<h2>Page restreinte</h2>
<p>Vous voyez cette page seulement car l'authentification OpenID a fonctionnée.</p>
<p>
<?php
echo 'var_dump = ';
var_dump($_SESSION['var_openid']);
echo '<br>';
echo 'var_openid dob = '.$_SESSION['var_openid']['dob'].'<br>';
echo 'var_openid email = '.$_SESSION['var_openid']['email'].'<br>';
if (isset($data['email']))
{
echo 'email = '.$data['email'];
}
else
{
echo 'pas d\'email';
}
?>
</p>
<p>
<a href="openid.php">retour</a><br>
<a href="http://www.openidfrance.fr/logout.html">Déconnexion du site openID</a><br>
<a href="logout.php">Déconnexion de la session</a><br>
</p>
</body>
</html>
<?php
session_start();
//détruire les variables de la session
session_unset();
echo '
<html>
<head>
<title>
logout
</title>
</head>
<body>
<br />
';
//détruire la session
if (session_destroy())
{
echo 'Vous êtes déconnecté<br />';
}
else
{
echo 'Erreur : impossible de détruire la session !<br />';
}
unset($_SESSION);
echo '
</body>
</html>
';
?>
Fanfantasy7
oui ben justement, même en passant par $_SESSION j'ai rien, mais le problème n'est pas de passé la variable d'un page a une autre, mais bien une problème de lecture d'information
Fanfantasy7
dans cette page, il y a le code qui récupére l'email
http://jcrozier.developpez.com/tutoriels/web/php/openid/
j'ai fait la même chose mais ça marche pas
Fanfantasy7
$data = $obj->contents();
ligne 25 de iod_return.php
Fanfantasy7
bonjour,
j'aimerai savoir comment on peut récupérer les infos d'un compte openid aprés authentification ?
<?php
if (!isset($_POST['submit'])) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Entrez votre OpenID: <br/>
<input type="text" name="id" size="30" />
<br />
<input type="submit" name="submit" value="Log In" />
</form>
</body>
</html>
<?php
} else {
// vérifie les valeurs du formulaire
if (trim($_POST['id'] == '')) {
die("ERROR: Entrez un OpenID valide svp.");
}
// fichiers inclus
require_once "Auth/OpenID/Consumer.php";
require_once "Auth/OpenID/FileStore.php";
// démarrage de la session (requis pour YADIS)
session_start();
// crée une zone de stockage pour les données OpenID
$store = new Auth_OpenID_FileStore('./oid_store');
// crée un consommateur OpenID
$consumer = new Auth_OpenID_Consumer($store);
// commence le process d'authentification
// crée une requête d'authentification pour le fournisseur OpenID
$auth = $consumer->begin($_POST['id']);
if (!$auth) {
die("ERROR: Entrez un OpenID valide svp.");
}
// redirige vers le fournisseur OpenID pour l'authentification
$url = $auth->redirectURL('http://192.168.1.21/essai_tech/openid/', 'http://192.168.1.21/essai_tech/openid/oid_return.php');
/* $url = $auth->redirectURL('http://localhost/essai_tech/openid/', 'http://localhost/essai_tech/openid/oid_return.php'); */
header('Location: ' . $url);
}
?>
<?php
// Fichiers inclus
require_once "Auth/OpenID/Consumer.php";
require_once "Auth/OpenID/FileStore.php";
require_once "Auth/OpenID/SReg.php";
// démarre la session (requis pour YADIS)
session_start();
// crée une zone de stockage pour les données OpenID
$store = new Auth_OpenID_FileStore('./oid_store');
// crée un consommateur OpenID
// Lit la réponse du fournisseur OpenID
$consumer = new Auth_OpenID_Consumer($store);
$response = $consumer->complete('http://192.168.1.21/essai_tech/openid/oid_return.php');
// renseigne les valeurs en fonction de celles de l'authentification
if ($response->status == Auth_OpenID_SUCCESS)
{
$_SESSION['OPENID_AUTH'] = true;
$sreg = new Auth_OpenID_SRegResponse();
$obj = $sreg->fromSuccessResponse($response);
$data = $obj->contents();
$_SESSION['var_openid']=$data;
}
else
{
$_SESSION['OPENID_AUTH'] = false;
}
// redirige vers la zone restreinte
header('Location: restricted.php');
?>
<?php
session_start ();
// Vérifie le statue de l'authentification
if (!isset($_SESSION['OPENID_AUTH']) || $_SESSION['OPENID_AUTH'] !== true) {
die ('Vous n\'avez pas le droit d\'accéder a cette page! Loggez-vous svp.<br><a href="openid.php">retour</a>');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
</head>
<body>
<h2>Page restreinte</h2>
<p>Vous voyez cette page seulement car l'authentification OpenID a fonctionnée.</p>
<p>
<?php
echo 'var_openid = '.$_SESSION['var_openid']['dob'].'<br>';
if (isset($data['email']))
{
echo 'email = '.$data['email'];
}
else
{
echo 'pas d\'email';
}
?>
</p>
<p>
<a href="openid.php">retour</a><br>
<a href="http://www.openidfrance.fr/logout.html">Déconnexion du site openID</a><br>
<a href="logout.php">Déconnexion de la session</a><br>
</p>
</body>
</html>
en fait mon problème est que
pendant l'authentification sur toutes les info j'ai "Status : Non demandé"
et donc $data['email'] est vide
merci d'avance
Fanfantasy7
sebastien
ton code ne fonctionne pas vraiment
en fait ce que tu fait est logique
mais a l'affichage de la page la frame apparait
ton script réaffiche le bon cadre
et multimania remet la frame et c'a tourne ne boucle
Fanfantasy7