【发布时间】:2015-01-10 00:55:58
【问题描述】:
经过多年的网站开发,在这种情况下,我遇到问题的同一个网站,我对正在发生的事情完全不知所措。 我有一个标准的 php 登录,由三个页面组成:
login.php 输入登录信息,checklogin.php 检查输入凭据然后 home.php 作为登陆页面
多年来,所有这些都运行得非常好,因为在那段时间里它们几乎没有改变。 现在,最近我搬到了托管公司,这显然意味着重新安装所有我喜欢的网络托管软件并将其配置为我的网站需要的艰巨任务。 所以无论如何,由于网站编码没有改变,我认为这一定是服务器问题,要么是服务器配置,要么是我错过的设置。
我现在已经工作了三天的配置设置,然后“噗”的一声,它不想再设置会话了。 我可以设置一个并显示它,但如果我尝试将它转移到另一个页面,它将无法正常工作。
谁能解释三天内发生了什么神奇的事情,决定毁掉一切?
一些注意事项:
- 是的,我在我的目标网页上使用
session_start();以及我打算参加的任何会议。 - 我使用这些标签让您了解我的服务器正在为网页运行哪些软件(因为我仍然不确定是什么原因造成的)
- php 会话路径是
/var/lib/php/sessions/具有正确的 Apache/nginx 权限 - MySQL 正在收集数据,php 正在第 2 页设置会话,但随后第 3 页似乎丢失了会话。
这是我为测试它而进行的快速组合示例:
第 1 页:设置会话:
<?php
session_start();
require_once'../connect.php'; // Database connection
$user_info = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE id = '1'"));
$_SESSION['myid'] = $user_info['id'];
$_SESSION['myuser'] = $user_info['username'];
// Echo the set sessions just to make sure they set
echo 'ID: ' . $_SESSION['myid'] . ' - Username: ' . $_SESSION['myuser'] . '';
echo '<br /><a href="/page2.php">Click here to take your sessions to the next page</a>';
?>
第 2 页:继续课程:
<?php
session_start();
echo 'ID: ' . $_SESSION['myid'] . ' - Username: ' . $_SESSION['myuser'] . '';
?>
从上面的基本示例可以看出,第 2 页应该显示我的会话,但它不会。 对此的任何帮助都非常感谢,这让我发疯,主要是因为不知道是什么原因造成的。 如果需要任何进一步的细节,请告诉我,我会尽量详细说明。
【问题讨论】:
-
当您尝试在第 2 页上显示会话变量时,您是否得到任何错误或什么也没有? (一定要打开报错)还要确保tmp文件夹有剩余空间并且你有写权限!
-
在打开
<?php标签error_reporting(E_ALL); ini_set('display_errors', 1);后将错误报告添加到文件顶部,看看它是否产生任何结果。我的测试成功了。 -
好吧,现在我在我创建的两个测试页面上遇到了一个以前没有的错误:
Warning: Unknown: write failed: No space left on device (28) in Unknown on line 0 -
@Equinox04 我认为您的 tmp 文件夹已满?