我正在使用xampp,当我使用我的IP而不是localhost /时,我的会话总是丢失 我怎么能保持会议?如果我使用localhost /
,它可以正常工作<?php
require '/mysqli.php';
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
header("Access-Control-Allow-Credentials: true");
标题(&#39; Access-Control-Max-Age:1000&#39;); 标题(&#39;内容类型:application / json&#39;);
$myJson = json_decode(file_get_contents('php://input'));
$action = $myJson->action;
session_start();
if($action == 'login') {
$myJson->password ? $role='admin' : $role='encoder';
$_SESSION['username'] = $myJson->username;
$_SESSION['role'] = $role;
$_SESSION['id'] = session_id();
if($role =='admin'){
$sql = "SELECT * FROM `users` WHERE `username`='".$myJson->username."' AND `password`='".md5($myJson->password)."'";
// $_SESSION['status'] =
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) == 1){
$_SESSION['status'] = "Login success.";
} else {
session_unset();
session_destroy();
$_SESSION['status'] = "Login failed.";
}
} else {
$_SESSION['status'] = "Login success.";
}
} else if ($action == 'logout') {
session_unset();
session_destroy();
$_SESSION['status'] = "Logged out.";
} else if ($action == 'check' && session_id() == ''){
$_SESSION['username'] = $_SESSION[''];
$_SESSION['role'] = $_SESSION[''];
$_SESSION['id'] = $_SESSION[''];
var_dump($_SESSION);
}
echo json_encode($_SESSION);
&GT;
答案 0 :(得分:1)
这里的问题是会话具有唯一会话ID ,这是通过与服务器的连接生成的。
因此,如果您使用 localhost 连接,则您的IP为127.0.0.1
,如果您使用实际的IP启动会话,则会出现以下内容:192.168.0.10
和 new会话ID 生成并因此启动。
解决此问题的一种可能方法是在主机文件中输入主机条目。