2012-09-26 91 views
4

我可以通過值形成一個網頁到另一個,但我需要通過這樣的價值,如何從一個PHP頁面值傳遞到另一個使用會話

第1頁:

Page4.php

Page3.php

我需要將Page1.php中的文本字段中的值傳遞給Page2.php中的文本字段,因爲表單不是直接重定向到page2,我無法傳遞該值,我嘗試了會話,表單發佈方法和其他一些方法,但我還沒有成功。

如果您可以幫助我的代碼或一些建議,我會很高興。

謝謝!

編輯..........

我找到了答案,感謝您的幫助,它實際上是我的一個無心之失,我用$ _ POST,而不是$ _SESSION。

它現在工作。

感謝您的幫助。

+1

向我們展示您的代碼將是一個好的開始。 – David

+0

使用會話可以將變量傳遞給任何頁面。那是什麼問題? –

+0

如果您不知道事件的順序,可能會有點混亂。頁面的PHP代碼被執行,*然後*頁面加載。如果您使用表單加載新頁面,表單的輸入標記將在$ _REQUEST下的下一頁的PHP代碼中可用。從那裏,您可以添加到$ _SESSION中,或者直接在新頁面上指定表單值。 – Neil

回答

7

使用這樣的事情:

page1.php中

<?php 
session_start(); 
$_SESSION['myValue']=3; // You can set the value however you like. 
?> 

任何其他PHP頁面:

<?php 
session_start(); 
echo $_SESSION['myValue']; 
?> 

的幾個注意事項要牢記雖然:你需要調用session_start()前任何輸出,HTML,回聲 - 甚至是空格。

你可以不斷地改變在會話中值 - 但它會能夠在第一頁之後使用 - 這意味着,如果你將其設置在第1頁,您將無法直到你使用它到另一個頁面或刷新頁面。

變量本身可以以多種方式中的一種進行的設定:

$_SESSION['myValue']=1; 
$_SESSION['myValue']=$var; 
$_SESSION['myValue']=$_GET['YourFormElement']; 

如果你想檢查的變量是得到一個潛在的錯誤之前設置,使用這樣的:僅僅使用POST

if(!empty($_SESSION['myValue']) 
{ 
    echo $_SESSION['myValue']; 
} 
else 
{ 
    echo "Session not set yet."; 
} 
3

解決方案 - 沒有$ _SESSION

page1.php中

<form action="page2.php" method="post"> 
    <textarea name="textarea1" id="textarea1"></textarea><br /> 
    <input type="submit" value="submit" /> 
</form> 

使page2.php

<?php 
    // this page outputs the contents of the textarea if posted 
    $textarea1 = ""; // set var to avoid errors 
    if(isset($_POST['textarea1'])){ 
     $textarea1 = $_POST['textarea1'] 
    } 
?> 
<textarea><?php echo $textarea1;?></textarea> 

解決方案使用$ _SESSION和POST

第1頁。PHP

<?php 

    session_start(); // needs to be before anything else on page to use $_SESSION 
    $textarea1 = ""; 
    if(isset($_POST['textarea1'])){ 
     $_SESSION['textarea1'] = $_POST['textarea1']; 
    } 

?> 


<form action="page1.php" method="post"> 
    <textarea name="textarea1" id="textarea1"></textarea><br /> 
    <input type="submit" value="submit" /> 
</form> 
<br /><br /> 
<a href="page2.php">Go to page2</a> 

使page2.php

<?php 
    session_start(); // needs to be before anything else on page to use $_SESSION 
    // this page outputs the textarea1 from the session IF it exists 
    $textarea1 = ""; // set var to avoid errors 
    if(isset($_SESSION['textarea1'])){ 
     $textarea1 = $_SESSION['textarea1'] 
    } 
?> 
<textarea><?php echo $textarea1;?></textarea> 

警告! - 這包含沒有驗證!

+0

更好使用隱藏字段。

相關問題