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

时间:2017-05-19 13:47:42

标签: php query-string

我已阅读了这么多页面,并且在过去的三个小时内我一​​直坚持这一点,因为它不会起作用。

我一直收到通知:未定义的索引:名字

这是无法正常工作的大部分细分:

$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,它回显了正确的值。

2 个答案:

答案 0 :(得分:1)

将您的代码更改为

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

您无法访问$firstname,因为这不是关键值。 errMsg是你应该使用的关键。

答案 1 :(得分:0)

对我来说很好,它应该工作。

要删除通知,您需要使用isset()

定义变量
$firstname = isset($_GET['firstname']) ? $_GET['firstname'] : '';

OR

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