php会话在使用我的IP而不是localhost时丢失


php session is lost when using my IP instead of localhost

im使用xampp,当im使用我的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");

标题("访问控制最大页:1000");header('Content-Type:application/json');

$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);

?>

这里的问题是,会话有一个唯一的会话ID,它是通过与服务器的连接生成的。

因此,如果您连接到localhost,则您的IP为127.0.0.1,并且如果您使用实际IP启动会话,则您将获得类似于:192.168.0.10的信息,并生成并启动新会话ID。解决此问题的一种可能方法是在主机文件中输入一个主机条目。

问题是:你想实现什么?测试时是否切换URL?如果,为什么?