如何从另一个 php 脚本访问变量值



我已经读了很多页面,在过去的三个小时里一直坚持下去,因为它根本不起作用。

我不断收到通知:未定义的索引:名字

以下是大部分不起作用的细分:

$errMsg = "";
function sanitise($data){
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
if (isset($_POST["firstname"]))
{
    $firstname = $_POST["firstname"];
    $firstname = sanitise($firstname);
    if (!preg_match("/^[A-Za-z -]+$/",$firstname))
    {
        $errMsg .= "First name must contain only letters or hyphens.<br/>";
    }
    if (strlen($firstname) > 40)
    {
        $errMsg .= "First name cannot be over 40 characters long.<br/>";
    }
} else {
    $errMsg .= "First name cannot be empty.<br/>";
    $firstname = "";
}

    if ($errMsg != "")
    {
    header("Location: fix_order.php?firstname=$firstname");
    }

这是我想访问变量fix_order.php上的代码。

$firstname = $_GET["firstname"];
echo "<p>firstname is $firstname .</p>";

我已经测试了第一页上的$firstname,它回显了值。

代码更改为

$firstname = $_GET["errMsg"];
echo "<p>firstname is $firstname .</p>";

您无法访问$firstname因为这是值而不是键。 errMsg是您应该使用的密钥。

对我来说

看起来不错,它应该可以工作。

要摆脱通知,您需要使用 isset(( 定义变量

$firstname = isset($_GET['firstname']) ? $_GET['firstname'] : '';

if(isset($_GET['firstname'])) {
    $firstname = $_GET['firstname'];
} else {
    $firstname = '';
}

最新更新