2015-04-24 44 views
1

可变我有一个具有发送到create_user.php发送从HTML形式

与信息的create_user.php优惠和插入到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']; 

问题是发送变量到下一页。谁能帮忙?

+1

可以通过GET方法发送的值一样 标题( “位置:../../register/register-2.php?r=” 。$值 “&amp; C =” $ VALUE2 “”)。。。; –

+0

考虑做一个'include'../../ register/register-2.php';'而不是'header(“Location:../../register/register-2。php“);' – Augwa

+0

要么你可以使用@FaranAli告诉或使用会话。不要忘记一旦你完成数据后就销毁 –

回答

1

您可以使用Sessions在页面之间安全地在服务器上存储变量。

在第一页:

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

而在第二:

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

我希望帮助!

+0

我可以在一个会话中添加多个变量吗? ie - $ _SESSION ['username' ] = $ username_entry,$ ....,$ ....; –

+0

绝对!您可以添加任意数量。 –

+0

用逗号分隔?$,$,$; –

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

更改URL这种方式,然后在寄存器2页地址:

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

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

0

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

例如,像这样:

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

(或者你可以嵌入这个标题中的脚本,而不是一个链接,这是你仿佛在做)

,然后把它在下一页像这样: $ id = $ _GET ['id'];

然而,更好和更安全的方法是将这些变量放入会话中,然后您可以像这样抓住它们(这会更安全,因为将ID和用户信息放入GET变量中相当危险,使恶意用户(甚至是任何人谁是好奇)来访问其他人的数据

$id = $_SESSION['id']; 

等等......所有的变量的

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);; 
} 

警告:对寄存器2.PHP逃生YOUT $username_check = $_POST['username_entry'];

+0

我将$ link作为全局变量转义。 –