2016-04-29 58 views
1

我對HTML和PHP都是新手,在處理一些簡單的項目時遇到了問題。比方說,我的網頁上有一個文本欄,我想在用戶輸入一些文本並按下提交按鈕後,在網頁上顯示用文本欄寫的文本。我的問題是,網頁首次加載時顯示輸出。有沒有辦法阻止php代碼執行直到提交被按下?HTML + PHP如何防止網頁顯示任何東西,直到提交被按下

這裏是一個示例代碼,指出我所指的問題。

<html> 
    <body> 

     <form action="./index.php" method="GET"> 
      First Name: <input type="text" name="first" maxlength="50"><br/> 
      <input type="submit" value="GO"/> 
     </form> 


    </body> 
</html> 



<?php 
    $text_var = $_GET[first]; 

     echo "This was typed into text bar" . $text_var; 
?> 

所以「這是輸入到文本欄」在網站加載時立即輸出。 我希望它在按下提交按鈕後才能輸出。

謝謝。

+0

您還應該用'$ _GET ['first']'或$ _GET [「first」]'替換'$ _GET [first]'。請參閱[爲什麼$ foo \ [bar \]錯誤?](http://php.net/manual/en/language.types.array.php#language.types.array.foo-bar)和[Strings]( http://php.net/manual/en/language.types.string.php)的更多細節。 –

回答

1

檢查是否存在$_GET['first']。這通常是完成如下所示:

查看

<form action="index.php" method="post"> 
    <!-- input fields here --> 
    <input type="submit" name="submit" value="GO"/> 
</form> 

控制器

<?php 
if (isset($_POST['submit'])) { 
    // process post 
} else { 
    // display the form 
} 
+0

謝謝,它工作。 –

+0

請檢查我關於安全的答案不要回顯用戶輸入 – di3

0
<?php 
    if(isset($_GET['submit'])){ 
    $text_var = $_GET[first]; 

     echo "This was typed into text bar" . $text_var; 
    } 
?> 
+0

請在答案中加入一些更多的努力。 –

2

你需要把它分割形式應該如果沒有被顯示是submited所以要麼檢查價值或提交按鈕 確保你保持html格式。看標籤標籤來描述表單輸入

<html> 
    <body> 
     <form action="./index.php" method="GET"> 
      <label for="first">First:</label> 
      <input id="first" type="text" name="first" maxlength="50"><br/> 
      <input type="submit" value="GO"/> 
     </form> 
<?php 
if (!empty($_GET['first'])) { 
    //take care you escape things never output user input (XSS) 
    $op = htmlspecialchars($_GET['first']); 
    echo "This was typed into text bar" . $op; 
} 
?> 
    </body> 
</html>