关于启动PHP会话的问题似乎很常见,但是我没有遇到任何有关此问题的描述。
我正在使用ldap_bind来让用户在我的站点中进行身份验证,如果他们成功进行身份验证,我只希望他们访问登录名后面的页面。
为此,我相信我需要创建一个PHP会话,但是应该在登录页面的开头创建PHP会话,还是仅在他们成功通过ldap_bind
进行身份验证后才创建? >
如果是后者,那么我应该将session_start();
放在我的if语句中,该语句用于检查提供的用户名和密码是否适用于LDAP绑定,如果可以,我是否应该在{中调用会话用户名{1}}页?
我的ldap绑定非常简单:
'protected'
受保护页面顶部的可能代码:
$ldapconn = ldap_connect("11.222.33.44")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, "uid=$username,cn=users,dc=abc,dc=net", "$password");
// verify binding
if ($ldapbind) {
worked
sessinon_start();
} else {
didnt work } }
答案 0 :(得分:1)
您需要在页面的开头开始会话,并在成功的ldap bind上设置会话。不,您不需要在受保护的页面中调用用户名,因为ldap本身就是Windows身份验证
session_start();
$ldapconn = ldap_connect("11.222.33.44")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, "uid=$username,cn=users,dc=abc,dc=net", "$password");
// verify binding
if ($ldapbind) {
$_SESSION['username']=username;
} else {
//didnt work } }