我正在寻找一个简单的PHP解决方案来阻止表单中的空输入值提交空输入字段。表格的代码如下。如果可能,我想使用简单的PHP(非Javascript)解决方案。
Form.php
代码:
<form name="form" method="post" action="add.php">
<input type="text" name="url" id="url">
<button type="submit" id="submit">submit</button>
</form>
add.php
代码:
$url=$_POST['url'];
$sql= "insert into my_table set url='$url'";
mysql_query($sql) or die("query failed: $sql".mysql_error());
$msg= 'URL Added Thank You';
session_register('msg');
header("Location: form.php ");
exit;
如果有任何PHP解决方案可以阻止在表单提交之前或提交之后提交空输入,那么它可以将我发送回form.php
。
谢谢。
答案 0 :(得分:5)
就个人而言,我几乎总是分两步完成这些事情。先消毒,然后验证。
// Step 1: Sanitize fields
$url = mysql_real_escape_string($_POST['url']);
// Step 2: Validate fields
if(empty($url))
{
$msg = "Text can't be empty";
session_register('msg');
header("Location: form.php ")
}
// Step 3: Whatever
$sql= "insert into my_table set url='$url'";
mysql_query($sql) or die("query failed: $sql".mysql_error());
$msg= 'URL Added Thank You';
session_register('msg');
header("Location: form.php ");
exit;
答案 1 :(得分:2)
使用empty
功能:
if (empty($_POST['query'])) {
// Set error and return to form
}
我高度建议阅读mysql_real_escape_string。
答案 2 :(得分:1)
您可以检查输入值是否填充:
<?php
if(!empty($_POST['url'])){
// Do something
}
?>
答案 3 :(得分:1)
$url=$_POST['url'];
if(empty($url)) {
// redirect back to form
header("Location: form.php ");
} else {
// add record
$sql= "insert into my_table set url='$url'";
mysql_query($sql) or die("query failed: $sql".mysql_error());
$msg= 'URL Added Thank You';
session_register('msg');
header("Location: form.php ");
exit;
}
Little Bobby Tables