2015-04-24 3 views
1

У меня есть форма, которая имеет действие отправляется create_user.phpОтправка переменной из HTML формы

The create_user.php сделок с информацией и вставить в таблицу тузд и 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); 




    } 

Я хочу, чтобы переменные, отправленные на страницу Aswell регистра 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, как заголовок ("Location: ../../register/register-2.php?r=" . $ значение "& с =" $ значение2 "")...; –

+0

рассмотрите вопрос об использовании 'include '../../ register/register-2.php';' вместо 'header (" Location: ../../register/register-2.php ");' – Augwa

+0

Либо вы можете использовать как @FaranAli, либо использовать сеанс. Не забудьте уничтожить, как только закончите с данными –

ответ

1

Сессии можно использовать для безопасного хранения переменных на сервере между страницами.

На первой странице:

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'];

Однако лучшим и безопасным способом было бы превратить эти переменные в сеанс, а затем вы могли бы захватить их так (это МНОГО БОЛЬШЕ безопаснее, так как размещение идентификаторов и информации пользователя в 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);; 
} 

Предупреждение: Escape YOUT $username_check = $_POST['username_entry']; на регистр-2.php

+0

Я избежал $ link в качестве глобальной переменной. –

Смежные вопросы