【发布时间】:2016-10-20 17:36:22
【问题描述】:
我正在创建一个站点作为主站点www.example.com 的子域www.login.example.com。当用户(从子域)登录时,用户名和密码通过这个 ajax 脚本传递到主站点:
<script>
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
function loginano() {
var div= document.getElementById('thes').value;
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
xmlhttp.open('POST', "https://example.com/sess.php", true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send('username='+username+'&password='+password);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var resp = JSON.parse(xmlhttp.responseText);
if(resp.status) {
div.innerHTML = "Great";
}else {
div.innerHTML = "Nope";
}
}else{
div.innerHTML = "Wait";
}
}
}
</script>
这个PHP代码接收和处理post数据:
<?php
header("Access-Control-Allow-Origin: *");
session_start();
$servername = "localhost";
$username = "username";
$password = "pass";
$dbname = "dbname";
$loginusername = $_POST["username"];
$loginpassword = md5($_POST["password"]);
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="SELECT * FROM tbl_users WHERE username='$loginusername' ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$sessionid = $row['id'];
$sessionuser = $row['username'];
$userpassword = $row['password'];
}}
if($loginpassword == $userpassword){
$_SESSION ["sessionid"]= $sessionid;
$_SESSION ["sessionuser"]= $sessionuser;
$return_arr["status"]=1;
} else {
$return_arr["status"]=0;
}
echo json_encode($return_arr); // return value
exit();
$conn->close();
?>
登录成功,但会话未启动。我错过了什么或可能是什么问题?
【问题讨论】:
-
你怎么知道会话没有开始?有什么错误吗?之后你会在哪里尝试获取
$_SESSION? -
它没有启动会话,因为我已经写了一个脚本来检查会话,这里;
-
codecode
标签: php jquery ajax session subdomain