2013-07-11 214 views
0

我試圖使用php會話將輸入值從一個頁面傳遞到另一個頁面。花了整晚試圖解決這個問題,但沒有結果。願意你能幫助我。這裏是我的PHP腳本:PHP會話。將輸入值從一個頁面傳遞到另一個頁面

<?php 
    $dbc = mysqli_connect ('localhost', 'root', 'root', 'db') or die ('Error connecting'); 
    $lt = $_POST ['lt']; 
    $lg = $_POST ['lg']; 
    $loc= $_POST ['loc']; 
    $query = "INSERT INTO locations (lt, lg, loc)". 
    "VALUES ('$lt', '$lg', '$loc')"; 
    mysqli_query ($dbc, $query) 
    or die ('Error querying'); 
    header('Location: http://localhost:8888/stream.php'); 
    mysqli_close ($dbc); 
    session_start(); 
    $_SESSION['cl'] = $_POST['loc']; 
    ?> 

和HTML,其中採取值應通過:

<li class="currentLocation"> 
    <input class="currentLocationField" name="currentLocationField" type="text" value="<?php  echo $_SESSION["cl"] ?>" /> 
</li> 

非常感謝你提前。

+3

你應該調用'在session_start()'在頁面... – brbcoding

+0

的開始,要小心你的查詢(因爲你已經在使用mysqli的,爲什麼不使用參數化查詢?) –

+0

你的代碼是**全面開放**到SQL注入,**如果你還沒有被破解,你將被黑客攻擊**。使用PDO或類似的準備/參數化查詢來完全避免此問題。 – Brad

回答

0

就重新排序最後四行,你應該是好去:

header('Location: http://localhost:8888/stream.php'); 
mysqli_close ($dbc); 
session_start(); 
$_SESSION['cl'] = $_POST['loc']; 

進入這個:

session_start(); // even better to put this at the very top of the page 
$_SESSION['cl'] = $_POST['loc']; 
mysqli_close ($dbc); 
header('Location: http://localhost:8888/stream.php'); 

而且不要忘了打開的會話着陸頁上好。

相關問題