难以从两页注册传递变量

时间:2017-03-27 23:44:25

标签: php html mysql

我有两页表格用于注册过程。两种形式都提供两个不同的表格。 users和user_profile。我正在研究使用$ _SESSIONS将唯一属性从第一页传递到第二页,以便两个表上的每个用户都有一个关系。 ID列是增量的,因此我决定使用用户名列,因为它是唯一的。现在我很难将用户名从第一页传递到第二页,这样我就可以将它添加到sql的insert语句中。我在第一页的代码如下

<?php
session_start();
$_SESSION['message'] = '';
$_SESSION['var_user'] = 'username';
....

username是第二页上formand的字段名称,我有

<?php
session_start();
$_SESSION['message'] = '';
$username = $_SESSION['var_user'];
$mysqli = new mysqli("localhost", "root", "", "webdev");
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$houseno = ($_POST['str_number']);
$street =($_POST['str_name']);
$city = ($_POST['city']);
$county = ($_POST['county']);
$postcode = ($_POST['pst_code']);
$skills = ($_POST['skills']);
$_username = ($_POST[$username]);
$sql = ("INSERT INTO users_profile (house_no, street_name, city, county, 
postcode, about_me, username) VALUES ('$houseno', '$street', '$city', 
'$county', '$postcode', '$skills', '$_username')");        
     if ($mysqli->query($sql) === true){
                    $_SESSION['message'] = "Registration succesful! Added $username to the database!";
                    header("location: index.html");
}       else{
    $_SESSION['message'] = 'Registration Unsuccessful, Please login and update your information';
}
}

我已尝试过在表单中​​使用隐藏输入。似乎没有工作。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您在第二页上使用$username作为密钥:

$username = $_SESSION['var_user'];
...
$_username = ($_POST[$username]);

相反,您应该只在第一页上定义它:

$_SESSION['var_user'] = $_POST['var_user']

并在第二页上使用它:

$username = $_SESSION['var_user'];