【问题标题】:pass php variable accross pages with redirect通过重定向在页面之间传递 php 变量
【发布时间】:2012-06-03 13:17:29
【问题描述】:

所以,我浏览了不同的帖子和其他资源,但仍然无法正常工作。 似乎基本和常见,但我迷路了。 这是我的代码。 页面“test_start.php”:

<html>
<head>
<title>Test</title>
</head>
<body>
    <p>Click <a href="test_script.php">here</a></p>
</body>
</html>

页面“test_script.php”:

<?php
    session_start();
    $_SESSION['passed']="My text!";
    header("Location: test_ultima.php");
?>

页面“test_ultima.php”:

<?php session_start(); ?>
<html>
<head>
    <title>Something</title>
</head>
<body>
    <p>This text shows, so redirect worked!</p>
    <?php
        echo "<p>Result isset: ".isset($_SESSION['passed'])."</p>";
        echo "<p>I passed:".$_SESSION['passed']."</p>";
    ?>
</body>
</html>

当我点击链接时,我看到以下内容:

此文本显示,因此重定向有效!
结果集:
我通过了:

我做错了什么? 请,如果可以的话,还请解释它为什么以及如何工作......

补充说明:第一个文件是 .php,因为最后它还会包含一些 php 代码...这显然是首先使其工作并了解其工作原理的示例.. .

【问题讨论】:

  • 您是否在 PHP 中启用了错误报告?
  • 我的 php 几乎处于“默认”设置中,是否默认启用?如果没有,我该如何启用它?
  • 把print_r($_SESSION)放到第二页查看内容
  • print_r 返回:“数组()”
  • 在所有 php 文件的顶部添加这个:error_reporting(E_ALL | E_STRICT); ini_set("display_errors", 1);

标签: php


【解决方案1】:

来自 OP 的评论:

session_start() [function.session-start]: open(C:\PHP\sessions\sess_87ruc3n1gb0e5ivlsfurgr0nr0, O_RDWR) 失败:C:\Inetpub\wwwroot\missione-berna.ch 中没有这样的文件或目录 (2) \test_ultima.php 在第 3 行

这意味着 PHP 尝试写入会话的目录不存在,或者它没有在该目录中读取/写入的权限。

所以你首先需要检查目录是否真的存在。如果存在,您应该检查 apache(或其他 web 服务)用户对该目录的权限。

【讨论】:

  • 所以问题出在我的 php 安装设置中,php.ini 指向文件夹“会话”,但文件夹名称拼写错误(会话)。多亏了它的启发!
  • 让这成为你的一个教训。在开发时始终启用错误报告。 :-)
猜你喜欢
  • 2013-07-16
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 2012-04-25
  • 1970-01-01
相关资源
最近更新 更多