![](/img/trans.png)
[英]Prevent '$.post' calls from outsiders Javascript PHP
[英]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.