所以我真的非常擅长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>
请注意,问题是它会在表单填写之前运行//执行其他操作。有什么建议吗?
谢谢!
答案 0 :(得分:4)
if(isset($_POST['submit'])){
// do things when post has been made
// e.g. insert the data into SQL
}
阅读this页面。上面的代码将检查以确保已按下提交按钮。
答案 1 :(得分:4)
更好的条件
if(isset($_POST['submit']) && !empty($_POST) ){
// now do with your post data
}
这样可以防止发布空数据
答案 2 :(得分:0)
如果您在另一个页面上托管HTML表单,可以将它放在PHP页面上的代码顶部。在执行任何代码之前,它会将用户重定向到HTML表单文件。
if (!$_POST['submit']) {
header("Location: ./form.html");
die();
}
但是,如果您希望将表单保留在同一页面(您看起来像是这样),则可以使用上述建议。