簡體   English   中英

阻止PHP在POST之前運行

[英]Prevent PHP from running until POST

因此,我真的是PHP和MySQL的新手(今天才開始!)。

我有一個頁面根據發布的結果更新MySQL數據庫。

我現在擁有的方式是,PHP代碼在頁面上,並且可以運行,但是問題在於它也需要在頁面加載時即在POST發生之前進行。

有什么辦法可以防止這種情況?

這是我的代碼:

        <?php
            //do stuff

            // see if any rows were returned
            if (mysql_num_rows($result) > 0) {

                $row = mysql_fetch_row($result);

                while($row = mysql_fetch_row($result)) {
//do something
                  }
            }
            else {
//do something else
            }

            // free result set memory
            mysql_free_result($result);
            $first = 0;
        ?>
        <br />
        <br />

          <div id="addName">  
            <h3 class="caps">Want to add yourself?</h3>  

            <div class="box">  

            <br /> <br />
            <form id="form1" name="form1" method="post" action="#">

            Email:
            <label>
            <input type="text" name="email" id="email" />
            </label>

              <label>
              <input type="submit" name="submit" id="submit" value="Submit" />
              </label>

            </form>
            </div>  

          </div>  

        </div>  

看到的問題是,它將在填寫表單之前// //運行其他操作。 有什么建議么?

謝謝!

if(isset($_POST['submit'])){
  // do things when post has been made
  // e.g. insert the data into SQL
}

閱讀頁面。 上面的代碼將檢查以確保已按下“提交”按鈕。

條件更好

if(isset($_POST['submit']) && !empty($_POST) ){
  // now do with your post data
}

這將防止發布空數據

如果您將HTML表單托管在其他頁面上,則可以將其放在PHP頁面上代碼的頂部。 在執行任何代碼之前,它將把用戶重定向到HTML表單文件。

if (!$_POST['submit']) {
   header("Location: ./form.html");
   die();
}

但是,如果您希望將表單保留在同一頁面上(看起來像您一樣),則可以使用上面的建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM