Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP变量在第二页上一直显示为空白_Php_Redirect_Http Post_Forms - Fatal编程技术网

PHP变量在第二页上一直显示为空白

PHP变量在第二页上一直显示为空白,php,redirect,http-post,forms,Php,Redirect,Http Post,Forms,我有一个PHP页面,它呈现一个HTML表单,通过POST将数据发送到PHP页面2,执行一些MySQL命令,并根据结果将$status设置为一些文本,以便我可以在初始提交页面上回显它。无论我做什么,都没有任何表现。如果我删除$status=''在顶部,它给出了未定义的变量,因此除了在开头的空白值之外,它似乎再也看不到$status Index.php(提交页面) 型号: 模型A 序列号: //这一点也不显示 upload.php(MySQL页面) 在每种情况下,只要将非空字符串文本分配给$s

我有一个PHP页面,它呈现一个HTML表单,通过POST将数据发送到PHP页面2,执行一些MySQL命令,并根据结果将
$status
设置为一些文本,以便我可以在初始提交页面上回显它。无论我做什么,都没有任何表现。如果我删除
$status=''
在顶部,它给出了未定义的变量,因此除了在开头的空白值之外,它似乎再也看不到
$status

Index.php(提交页面)

型号:
模型A


序列号:


//这一点也不显示
upload.php(MySQL页面)
在每种情况下,只要将非空字符串文本分配给
$status
(即,当尝试插入记录或报告关联记录已存在时),就会调用
头()
。这将告诉浏览器导航到另一个页面,基本上结束当前页面的执行。因此,在此之后,
$status
中存储的值不会持续存在

        $status = "Success";
        header('Location: index.php');
    } else {
        $status = "Failed";
        header('Location: index.php');
    }
}
else if ($check->num_rows >= 1)
{
    $status = "Exists";
    header('Location: index.php');

因此,您需要弄清楚如何在不重定向的情况下设置该值,或者将该值发送到重定向到的页面。选项包括将值附加到查询字符串(例如,
标题('Location:index.php?status='.$status);
并检查
$\u GET['status']
中的值,以分配给index.php中的
$status
),使用会话(如Nosajimiki所述),等等,每当将非空字符串文字分配给
$status
(即,当尝试插入记录或报告关联记录已存在时),都会调用
header()
。这将告诉浏览器导航到另一个页面,基本上结束当前页面的执行。因此,在此之后,
$status
中存储的值不会持续存在

        $status = "Success";
        header('Location: index.php');
    } else {
        $status = "Failed";
        header('Location: index.php');
    }
}
else if ($check->num_rows >= 1)
{
    $status = "Exists";
    header('Location: index.php');

因此,您需要弄清楚如何在不重定向的情况下设置该值,或者将该值发送到重定向到的页面。选项包括使用会话(如Nosajimiki所述)将值追加到查询字符串(例如,
标题('Location:index.php?status='.$status);
,并检查
$\u GET['status']
中的值以分配给index.php中的
$status
),等等。

看起来您正试图使用$status作为会话变量。如果希望在页面之间保留PHP变量,请创建一个会话并将其另存为会话变量

<?php
// Start the session
session_start();
...
$_SESSION["status"] = $status;
header('Location: index.php');
?>


然后,您可以在其他后续页面上使用$\u SESSION[“status”]

调用它。看起来您正在尝试使用$status作为会话变量。如果希望在页面之间保留PHP变量,请创建一个会话并将其另存为会话变量

<?php
// Start the session
session_start();
...
$_SESSION["status"] = $status;
header('Location: index.php');
?>



然后,您可以使用$\u SESSION[“status”]

在其他后续页面上调用它。您在上面发布的“Page 2”是否命名为upload.php?如果是这样,您正在将表单发布到该页面,并将该页面包含在“第1页”中?是否要发布到第2页,然后在第1页上显示从第2页生成的变量?还非常确定您不应该在SELECT语句中用括号括起变量,我以前从未见过这种标记。另外,HTML选择标记不应该是自动关闭的(即
,然后有相应的关闭标记:
…),仅仅因为它看起来有效并不意味着它是正确的和/或永远有效。您在上面发布的“第2页”是否命名为upload.php?如果是这样,您正在将表单发布到该页面,并将该页面包含在“第1页”中?是否要发布到第2页,然后在第1页上显示从第2页生成的变量?还非常确定您不应该在SELECT语句中用括号括起变量,我以前从未见过这种标记。另外,HTML选择标记不应该是自动关闭的(即,
,然后有相应的关闭标记:
…),仅仅因为它看起来有效并不意味着它是正确的和/或总是有效的。如果需要添加另一个序列号,我可以重定向回提交页面,考虑到upload.php中的代码,这是有道理的。我更新了解释,试图更加明确。这主要起作用了,因此从post重定向后的URL显示index.php?status=存在,这很好,但仍然没有在表单页面上回显任何内容,然后让index.php检查查询字符串:
$status=isset($\u GET['status'])?$\u GET['status']:“”…我可以使用
if(strpos($\u SERVER['REQUEST\u URI'],“Exists”)!==false){echo“Found”}
感谢大家的帮助。如果需要添加另一个序列号,我可以重定向回提交页面。啊,考虑到upload.php中的代码,这很有意义。我更新了解释,试图更加明确。这主要起作用了,因此从post重定向后的URL显示index.php?status=存在,这很好,但仍然没有在表单页面上回显任何内容,然后让index.php检查查询字符串:
$status=isset($\u GET['status'])?$\u GET['status']:“”…我可以通过
if(strpos($\u SERVER['REQUEST\u URI'],“Exists”)!==false){echo“Found”}
感谢大家的帮助。