本地session_start返回许多警告

时间:2014-08-06 01:08:28

标签: php session warnings mamp

newb使用Mac上的MAMP堆栈在本地计算机上使用sessons。我试图在错误上进行谷歌搜索,但是我无法找到解决警告的方法,然后关闭警告,这没有用,对吧?

我有一个会话文件夹,它存在于我的MAMP根目录(Applications / MAMP / htdocs / sessions)中。我检查了拼写和路径,所以一切都是正确的。该文件返回会话ID为56d13f8845f91c8d7437bf0e45d94e53它似乎正在工作,但我有所有这些恼人的警告信息,并希望一些一般的指导,因为我深入研究PHP的奇妙混乱的世界。

我确实尝试了以下sudu命令,但它没有像希望的那样解决错误: sudo mkdir -p / var / chroot / MAMP / htdocs / sessions / sudo chmod 1777 / var / chroot / MAMP / htdocs / sessions /

测试页面时的警告消息和通知列表:

警告:session_start():open(/ MAMP / htdocs / sessions / sess_283ee1651e6074199d0126aaf50179fa,O_RDWR)失败:/ Applications / MAMP / htdocs / review / itc240f / a_070-adminer / sessionTest中没有此类文件或目录(2)。第6行的PHP

警告:session_start():无法发送会话cookie - 已在/ Applications / MAMP / htdocs中发送的文件(在/Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php:6处开始输出)第6行/review/itc240f/a_070-adminer/sessionTest.php

警告:session_start():无法发送会话缓存限制器 - 已在/ Applications / MAMP / htdocs中发送的报头(输出从/Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php:6开始)第6行/review/itc240f/a_070-adminer/sessionTest.php 如果你能读到这个,那么会话就开始了! 会话ID是:283ee1651e6074199d0126aaf50179fa

警告:未知:打开(/ MAMP / htdocs / sessions / sess_283ee1651e6074199d0126aaf50179fa,O_RDWR)失败:第0行的“未知”中没有此类文件或目录(2)

警告:未知:无法写入会话数据(文件)。请在第0行的Unknown中验证session.save_path的当前设置是否正确(/ MAMP / htdocs / sessions)

CODE:     

    ini_set('session.save_path','MAMP/htdocs/sessions'); //local

    session_start(); //must be declared before using any session data
    $_SESSION['test'] = "If you can read this, sessions are working!"; //create test session
    print $_SESSION['test'] . "<br>";
    print "Session ID is: ". session_id()."<br>";

这是teh文件中的所有代码,它确实以&#39;&#39;

开头

---以下是尝试初始建议后修改后的代码和错误----

I notice the most interesting difference in the reander being with the first warning that now reads '/sessions//...'. I suddenly has two forward slashes. Line numbers change to reflect that the session_start(); is now online #3 of the script.

<?php
    ini_set('session.save_path','/sessions/');
    session_start();
    $_SESSION['test'] = "If you can read this, sessions are working!";
    print $_SESSION['test'] . "<br>";
    print "Session ID is: ". session_id()."<br>";
?>

将结果呈现给屏幕如下: 警告:session_start():open(/ sessions // sess_8b67c0ef027e3c8936196d21fba298b3,O_RDWR)失败:第3行/Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php中没有此类文件或目录(2)

警告:session_start():无法发送会话cookie - 已在/ Applications / MAMP / htdocs中发送的文件(在/Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php:3处开始输出)第3行/review/itc240f/a_070-adminer/sessionTest.php

警告:session_start():无法发送会话缓存限制器 - 已在/ Applications / MAMP / htdocs中发送的标头(在/Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php:3处开始输出)第3行/review/itc240f/a_070-adminer/sessionTest.php 如果你能读到这个,那么会话就开始了! 会话ID是:8b67c0ef027e3c8936196d21fba298b3

警告:未知:打开(/ sessions // sess_8b67c0ef027e3c8936196d21fba298b3,O_RDWR)失败:第0行的“未知”中没有此类文件或目录(2)

警告:未知:无法写入会话数据(文件)。请在第0行的Unknown中验证session.save_path的当前设置是否正确(/ sessions /)

2 个答案:

答案 0 :(得分:0)

  

警告:session_start():   开(/ MAMP / htdocs中/会话/ sess_283ee1651e6074199d0126aaf50179fa,   O_RDWR)失败:没有这样的文件或目录(2)   /Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php   在第6行

我怀疑是一个权限错误,因为OSX可能没有足够的权限来创建/存储会话数据。

  

警告:session_start():无法发送会话cookie - 标头   发送者(输出开始于   /Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php:6)   在   /Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php   在第6行

这是典型的错误消息。通常在调用session_start()之前由输出引起。在调用方法之前检查空格或其他输出

  

警告:session_start():无法发送会话缓存限制器 - 标头   已发送(输出开始于   /Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php:6)   在   /Applications/MAMP/htdocs/review/itc240f/a_070-adminer/sessionTest.php   第6行如果你能读到这个,那么会话就开始了!会话ID是:   283ee1651e6074199d0126aaf50179fa

与上述相同

  

警告:未知:   开(/ MAMP / htdocs中/会话/ sess_283ee1651e6074199d0126aaf50179fa,   O_RDWR)失败:第0行的“未知”中没有此类文件或目录(2)

与第一条消息相关,因为无法查找/跟踪正确的会话数据文件夹而引发第一条消息。这只是一条儿童消息,整理了父母,这将是

  

警告:未知:无法写入会话数据(文件)。请验证   session.save_path的当前设置是正确的   (/ MAMP / htdocs / sessions)在第0行的Unknown中

另一个Child错误,解决父错误消息(检查文件权限,检查apache运行的用户是否具有足够的权限来修改/读取/执行正确的文件夹

答案 1 :(得分:0)

事实证明,问题是路径以及如何通过MAMP确定目录的主目录/根目录。我编辑了我的代码并且它有效:

<?php
     ini_set('session.save_path','/Applications/MAMP/htdocs/sessions');
     session_start();
     $_SESSION['test'] = "If you can read this, sessions are working!";
     print $_SESSION['test'] . "<br>";
     print "Session ID is: ". session_id()."<br>";
?>

关键是要意识到一切都必须从Application文件夹本身完成,而不是从MAMP文件夹中完成。