2

我的网站在 localhost 上运行良好,但是一旦我将它部署到我的托管服务,会话就会停止工作。

<?php 

session_start();
session_save_path('log/session.txt');
ini_set('session.gc_probability', 1);
error_reporting(E_ALL ^ E_NOTICE);
date_default_timezone_set("Asia/Jakarta");
require_once 'jadwal/calendar/tc_calendar.php';

include "../metode/data.php"; 
include "../metode/jalan.php";
include "../metode/perintah.php";
include "../metode/gambar.php";

//session
$queryadmin = mysql_query("select * from root");
$dataadmin = mysql_fetch_row($queryadmin);
$id = $dataadmin[0];
$key1 = $dataadmin[1];

if (isset($_POST['admin'])) {
    $_SESSION['id'] = $_POST['x'];
    $_SESSION['key1'] = $_POST['xx'];
}
if (isset($_POST['root'])) {
    $_SESSION['user'] = $_POST['xxx'];
    $_SESSION['key2'] = $_POST['xxxx'];
}
if (isset($_POST['clear'])) {
    $_SESSION['id'] = "";
    $_SESSION['key1'] = "";
    $_SESSION['user'] = "";
    $_SESSION['key2'] = ""; 
}
if (isset($_POST['exit'])) {
    $_SESSION['id'] = "";
    $_SESSION['key1'] = "";
}

//access
if ($_SESSION['id'] == $id && $_SESSION['key1'] == $key1) {
    $user = $dataadmin[3];
    $key2 = $dataadmin[2];
    if ($_SESSION['user'] == $user && $_SESSION['key2'] == $key2) {
        mysql_query("insert into root history values('','".$_POST['day']."','".$_POST['time']."')");
    print "<br><br><br>";
    include_once "jembatan.php";
    } else {
        include "root.php";
    }
}
else {
    include "admin.php";
}

?>

如果您需要我显示任何其他文件,请询问。

4

3 回答 3

2

可能是您的主机设置 PHP 的方式。尝试在主机上打印 phpinfo() 并检查它们的设置。

要运行 phpinfo 函数,只需运行如下所示的脚本:

<?php
    phpinfo();
?>

输出将包括一个巨大的设置列表,但你正在寻找这个部分:

在此处输入图像描述

请注意我的设置如何显示Session Support = enabled。这表明我的主机(在我的例子中是本地主机)支持会话。

于 2013-01-26T21:32:44.740 回答
0

确保在标记之前没有空格或新行<?php,因为您在此处的代码在它之前包含 3 个空格。

于 2013-01-26T21:31:50.153 回答
0

直到这个答案可能会出现,我最近遇到了同样的问题,经过多次试验和错误。我发现会话上方有最轻微的 HTML 标记可能会阻止会话不注册。所以确保你在顶部的第一件事是

<?php
session_start();
?>

于 2019-08-06T12:10:07.190 回答