Моя проблема в том, что когда я использую session_start(); в моем php-коде вместо установленного cookie-файла PHPSESSID вместо него устанавливается cookie с пустым заголовком и значением «HttpOnly». Используя var_dump ($ _ SESSION), я вижу, что я могу установить переменные сеанса, и они будут отображаться на странице, но они не будут отображаться ни на одной другой странице. Для чего это стоит, эти две страницы: login.domain.com/index.php и login.domain.com/login. Один и тот же код работает нормально локально, а другие php-файлы, работающие на разных поддоменах на одном сервере, работают. Я не могу найти никакой информации, поэтому, если у кого есть какие-то идеи, я бы хотел их услышать.PHP session_start не работает
Это PHP на index.php:
<?php
session_start();
?>
И это РНР на входе/login.php
<?php
session_start();
$role = 0; //default to "guest"
$was_success = false; //default to a failed login
if(isset($_POST["user"]) && isset($_POST["password"])){ //if the post details are set then continue
$pass = password_hash("PASSWORD", PASSWORD_DEFAULT);
if (!isset($_COOKIE["mellifluous_loginRefer"])){
$arr = array("Username" => $_POST["user"],
"Error" => "No destination set!",
"Success" => false
);
die(json_encode($arr));
}
if (password_verify($_POST["password"], $pass) && ($_POST["user"] == "USER")){
$was_success = true;
if ($_COOKIE['mellifluous_loginRefer'] == "home"){
$_SESSION['mellifluous']['home']['username'] = $_POST['user'];
}
}
else $was_success = false;
$arr = array("Username" => $_POST["user"],
"Role" => $role,
"Success" => $was_success
);
if ($was_success) setcookie("mellifluous_loginRefer", "", time() - 10, "/");
echo(json_encode($arr));
//echo "You sent in: ";//Username: " . $_POST["user"] . " Password: ";//. $password;
}
else if(isset($_GET["user"]) && isset($_GET["password"])){
die("This interface has been deprecated.");
//$pass = password_hash($_POST["password"], PASSWORD_DEFAULT);
$arr = array("Username" => $_GET["user"]);
echo(json_encode($arr));
//echo "You sent in: ";//Username: " . $_POST["user"] . " Password: ";//. $password;
}
else{
die("ERROR!");
}
?>
Большое спасибо заранее!
проверьте, не осталось ли перед пробелом перед ''? Php'' перед сеансом 'session_start' –
, но он не работает на другом сервере. это вопрос не так ли? – user3099298
@PrasunJajodia Нет пробелов. –