اكتب هذا في userAccess.php
<?php
session_start();
echo 'User is: ' . $_SESSION['admin']['fname'] . ' ' . $_SESSION['admin']['lname'];
?>
سؤال
أنا أتنفذ حاليا Lightopenid. إنه يعمل جزئيًا ، لكنني أواجه صعوبات في إعادة توجيه المستخدمين مع الحفاظ على بيانات الاعتماد. يحتوي المثال أدناه على تسجيل الدخول إلى المستخدم من خلال Google ثم يُفترض أنه يعيد التوجيه إلى صفحة وصول المستخدم حيث يعرض اسمه. لا يتم عرض أي شيء في userAccess.php. كيف يمكنني إعادة توجيه المستخدم ببيانات اعتماده من OpenID بشكل صحيح
login.php
<?php
# Logging in with Google accounts requires setting special identity, so this example shows how to do it.
session_start();
require 'openid.php';
try {
$openid = new LightOpenID('http://mydomain.com'); // akshat - declared an object of class lightopenid.. this is listed in openid.php
if(!$openid->mode) {
if(isset($_GET['login'])) {
$openid->identity = 'https://www.google.com/accounts/o8/site-xrds?hd=mydomain.com'; //this can be changed as you know...
$openid->required = array('namePerson/friendly', 'contact/email' , 'contact/country/home', 'namePerson/first', 'pref/language', 'namePerson/last'); // akshat - line added by me from after reading from the net....
header('Location: ' . $openid->authUrl());
}
?>
<script type="text/javascript">
//change to jquery so it is compatible with cross browsers
window.onload=function(){
document.getElementById("lform").submit();
}
</script>
<form name="form" id="lform" action="?login" method="post"> </form>
<?php
} elseif($openid->mode == 'cancel') {
echo 'User has canceled authentication for Your Domain !';
} else { // FETCH USER INFO HERE
$fname = $openid->ret_fname(); // fetching user first name...
$lname = $openid->ret_lname(); // fetching user last name...
$email = $openid->ret_email(); // fetching user email...
$lang = $openid->ret_lang(); // fetching user language...
session_start();
// use it as required. I set them in session !
$_SESSION['admin']['emailID'] = $email; //put email id in session.
$_SESSION['admin']['fname'] = $fname; //put first name also in session.
$_SESSION['admin']['lname'] = $lname; //put last name also in session.
header("Location: www.example.com/useraccess.php"); // Go back to the calling application !
}
} catch(ErrorException $e) {
echo $e->getMessage();
}
?>
userAccess.php
<?php
session_start();
echo 'User is: ' . $fname . ' ' . $lname;
?>
المحلول
اكتب هذا في userAccess.php
<?php
session_start();
echo 'User is: ' . $_SESSION['admin']['fname'] . ' ' . $_SESSION['admin']['lname'];
?>