从HTML表单发送变量

时间:2015-04-24 14:08:27

标签: php mysql

我有一个表单,其中有一个动作发送到create_user.php

create_user.php处理信息并INSERT到mysql表中并发送header("Location: ../../register/register-2.php");

$insertSQL = sprintf("INSERT INTO di_ssenisub (timestamp,
         username,
         password) 

         VALUES (NOW(), %s, %s)",

        GetSQLValueString($username_entry, "text"), 
        GetSQLValueString($hashPass, "text"));

        if (mysqli_query($link, $insertSQL)) {
            header("Location: ../../register/register-2.php");

        } else {
            echo "Error: " . $insertSQL . "<br>" . mysqli_error($link);
        }

        mysqli_close($link);




    } 

我希望变量发送到register-2.php页面,所以我可以像这样从数据库表中调用所有内容。

    require '../scripts/php/db_connect.php';

    $username_check = $_POST['username_entry'];

    if($result = $link->query("SELECT * FROM di_ssenisub WHERE username = '$username_check'")) {

        if($count = $result->num_rows) {

        $rows = $result->fetch_assoc();

    }

}

echo $rows['username'];
echo $rows['password'];
echo $rows['id'];
echo $rows['timestamp'];

问题是将变量发送到下一页。有人可以帮忙吗?

4 个答案:

答案 0 :(得分:1)

您可以使用“会话”在页面之间的服务器上安全地存储变量。

在第一页:

    session_start();
    $_SESSION['username'] = $username_entry;

第二个:

session_start();
$username = $_SESSION['username'];

我希望有所帮助!

答案 1 :(得分:0)

if (mysqli_query($link, $insertSQL)) {
    header("Location: ../../register/register-2.php?user=$username_entry&pass=$ashpass");

以这种方式更改网址,然后在register-2页面中添加:

if(isset($_GET(user)){
    $username_entry = $_GET['username_entry'];
}else{
    $username_entry = '';
}
if(isset($_GET(pass)){
    $hashpass = $_GET['pass'];
}else{
    $hashpass = '';
}

即使我不将密码发送到下一页。

答案 2 :(得分:0)

要将值发送到下一页,您有几个选项。最简单的方法是通过网址发送变量,并使用$_GET['']在下一页上提取它们。

例如,像这样:

echo '<a href = "page2script.php?id='. $rows['id'] . '">next page</a>';

(或者你可以将它嵌入你的标题脚本而不是链接,这就是你似乎在做的事情)

然后在下一页上得到它,如下所示:      $ id = $ _GET [&#39; id&#39;];

然而,更好,更安全的方法是将这些变量放入会话中,然后你可以像这样抓住它们(这是非常安全的,因为将id和用户信息放入GET变量是相当危险并且可以使恶意用户(或者甚至是任何好奇的人)访问另一个人的数据。

$id = $_SESSION['id'];

等...用于所有变量

答案 3 :(得分:0)

这可以解决问题:

function redirect_post($uri, array $post_data)
{
    $options = [
        'http' => [
            'method' => 'POST',
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'content' => $post_data
        ]
    ];
    $context = stream_context_create($data)
    return file_get_contents($uri, false, $context);;
}

警告:在register-2.php上逃脱$username_check = $_POST['username_entry'];