2016-12-26 102 views
0

我在通過多個頁面(實際上通過同一頁面,但通過多次刷新)維護變量的值方面存在問題。
第一次導航到新頁面時,變量的值被保存並可以被echo使用,但在刷新頁面後,該值不能被重用,它顯示錯誤,表明該變量沒有值。
我正在一個web應用程序在php中聊天。
我想在每個頁面(發送消息的每個頁面)上顯示用戶(發件人)的名稱。所以我使用的代碼通過PHP中的許多頁面維護變量的值無Cookie,會話

<?php 
$writtervar = $_POST['writter']; 
echo $writtervar; 
?> 

我正在輸入通過一個單獨的頁面,代碼是

<form action="ddd.php" method="post"> 
    Enter your name <input type="text" name="writter" > 
    <input type="submit" id="submit" value="Press" > 
</form> 
+0

使用'session's。 – chris85

+0

找出沒有餅乾,會話的某種方式.... –

+0

好吧,然後添加更多的細節問題。你必須記住一些東西。 – chris85

回答

0

HTTP是無狀態的。 $_POST數組在用戶發出請求時被填充。如果您想訪問網絡瀏覽量的值,請閱讀setcookiesessions

如果你不想使用cookies,你需要重新發送你的參數在每個請求(可能會被掩蓋某種方式)。或者在每個請求上發送一個標識符來保存您的信息服務器(無論如何,您可以使用php會話來完成此操作)。但這樣做不方便也不安全。

+0

找出沒有cookie的方式 –

0

您可以設置cookie

$value = 'something from somewhere'; 
setcookie("TestCookie", $value); 

,並獲得價值:

echo $_COOKIE["TestCookie"]; 

您還可以使用會議:

session_start(); 

// Set session variables 
$_SESSION["TestSession"] = $value; 

// Get session 
echo $_SESSION["TestSession"]; 

你最好使用一個框架像Laravel這可以幫助你處理會話,表單,重定向值等。

您可以找到documentation上php.net

+0

找出沒有cookie的方式 –

+0

@HNSingh編輯。 – Samuel

0

您可以使用會議。根據你的代碼,你可以試試這個: 在開始頁面(ddd.php)你必須設置你的會話值。

<?php 
    session_start(); 
    $_SESSION["writer"] = $_POST["writter"]; 
?> 
... 

在其他頁面中使用你的會話值e.g:

<?php 
    session_start(); 
    ... 
    echo $_SESSION["writer"]; 
?> 

注意未設置末斷你的工作摧毀您的會話。

<?php 
    // remove all session variables 
    session_unset(); 

    // destroy the session 
    session_destroy(); 
?>