PHP noob here ...如果你发现这是一个蹩脚的问题,请原谅。
我有以下表格:
HTML
<form id="myForm" action="" method="post">
<div id="edit-box">
<INPUT type="submit" name="save-text" id="save-text" value="Save">
<textarea id="editor" name="editor">
<?php echo $content; ?>
</textarea>
</div>
</form>
PHP
if ($_POST["save-text"]){
// get form data, making sure it is valid
$submit_date = date('Y-m-d H:i:s');
$content = mysql_real_escape_string(htmlspecialchars($_POST['editor']));
$url = "http://example.com/" . $key;
// build query
mysql_query("INSERT INTO `source`(`id`, `key`, `submit_date`, `ip`, `content`)
VALUES (null, '$key','$submit_date','$ip','$content')")
or die(mysql_error());
}
如何确保只在单击提交按钮时才运行PHP脚本?
答案 0 :(得分:2)
在页面开头的html标记之前添加此内容
也不要忘记将页面名称扩展名从.html
更改为.php
if (isset($_POST['save-text'])) {
mysql_query("INSERT INTO `source`(`id`, `key`, `submit_date`, `ip`, `content`)
VALUES (null, '$key','$submit_date','$ip','$content')")
or die(mysql_error());
}
答案 1 :(得分:1)
问题是if($_POST["save-text"])
返回false,因此您的代码没有被执行。您需要使用$_POST["save-text"]
函数包装isset()
。 isset()可用于检查某个变量的存在,如果存在变量并且其值不是TRUE
或NULL
,则会返回FALSE
。
正确的代码如下所示:
if (isset($_POST['save-text'])) {
//Do something
}
您还应确保提交按钮具有“&#39;值”&#39;属性。如果他们没有,那么$ _POST数组中就不会有值,因此isset($ _ POST [&#34; submit&#34;])将返回false。
示例:
<input type="submit" name="submit">
isset($_POST["submit"]) // returns false
<input type="submit" name="submit" value="submit">
isset($_POST["submit"]) // returns true.