2016-08-22 75 views
-3

用這個例子我回顧一下我的問題: 我第一次執行這個php頁面我想回顯「我有兩個按鈕」。當用戶點擊按鈕「next」或「next1 「我想回聲」我已經說過我有兩個按鈕「,而不是」我必須按鈕「。我也證明了隱藏的輸入文本,但它不起作用。 THK求助如何控制執行PHP代碼

<?php 
if ($_SESSION['already_said'] == false){ 
    echo "I have two buttons". date('h:i:s')."<br>"; 
} 

$_SESSION['already_said']=true; 

if(isset($_GET["next"]) || isset($_GET["next1"])) { 
    echo "I already said I have two buttons". date('h:i:s')."<br>"; 
} 
?> 
<html> 
<body> 
<form name="form" method="GET" action="" > 

<button type="submit" name="next"> 
<span class="label">Next</span> 
</button> 

<button type="submit" name="next1"> 
<span class="label">Next1</span> 
</button> 

</form> 
</body> 
</html> 
+0

你忘了'session_start()'。 –

+0

@MarcB - 100次中有99次,說「究竟」是什麼?啊,是的,*「我正在使用session_start()」*。但是沒有把它放在那裏。那麼,你站在50%的權利;-) –

+0

里約遊戲結束了(沒有更多的金幣),但「綠色仍然繼續」,我懷疑在這裏看到。 –

回答

1

當然,重要的是要記住把session_start()在使用該會話的任何腳本的頂部。事實上,把它放在所有的腳本中是一個好主意,即使有一些不使用會話只是爲了保持會話活着。

<?php 
session_start(); 

$msg = "I have two buttons ". date('h:i:s')."<br>"; 

if (! isset($_SESSION['already_said'])){ 
    $_SESSION['already_said'] = true; 
} 

if((isset($_GET["next"]) || isset($_GET["next1"])) && isset($_SESSION['already_said'])) { 
    $msg = "I already said " . $msg; 
} 
?> 
<html> 
<body> 
    <div> <?php echo $msg; ?></div> 
<form name="form" method="GET" action="" > 

<button type="submit" name="next"> 
<span class="label">Next</span> 
</button> 

<button type="submit" name="next1"> 
<span class="label">Next1</span> 
</button> 

</form> 
</body> 
</html>