Javascript php函数显示未填写的字段

Javascript php函数显示未填写的字段,javascript,php,forms,validation,post,Javascript,Php,Forms,Validation,Post,我有一个简单的JavaScript函数,如果没有填写所有字段,就不允许提交表单。除此之外,我希望PHP在空字段旁边写一条错误消息。问题是函数在$\u POST时激活,但只要其中一个字段为空,我的JavaScript函数就不允许出现$\u POST 如果我将操作保持在$\u POST条件之外,则页面将加载已显示的错误消息。我对PHP和JavaScript还比较陌生,希望了解可能是另一个可用的条件,我可以使用它来触发错误消息,使其出现在我的表单中。我也愿意接受关于错误处理的任何其他建议。我更喜欢保持

我有一个简单的JavaScript函数,如果没有填写所有字段,就不允许提交表单。除此之外,我希望PHP在空字段旁边写一条错误消息。问题是函数在
$\u POST
时激活,但只要其中一个字段为空,我的JavaScript函数就不允许出现
$\u POST

如果我将操作保持在
$\u POST
条件之外,则页面将加载已显示的错误消息。我对PHP和JavaScript还比较陌生,希望了解可能是另一个可用的条件,我可以使用它来触发错误消息,使其出现在我的表单中。我也愿意接受关于错误处理的任何其他建议。我更喜欢保持JavaScript的存在,因为如果表单填写不正确,它可以防止表单被提交。除非有其他方法来执行该操作,否则我必须保留JavaScript

PHP:

HTML:


博客

登录

用户id:


密码:


首先: 像您这样验证数据服务器端总是一个非常好的主意。 原因很简单:Javascript是客户端的,可以很容易地修改以绕过这些检查。另外,在数据库查询中使用发送的数据之前对其进行转义也很好

您的问题是,您正在检查$POST是否存在-它始终存在,这是一个超级全局变量。您实际上想要检查是否为空

if (!empty($_POST))...

如果你真的想提供详细的信息,说明到底哪里出了问题,你可能会想仔细考虑一下。提供更多信息对用户更友好,但它更容易攻击,尤其是在X重试后不阻止用户。

为什么不使用JavaScript编写那些错误MSG(在空表单字段旁边)?或者,或者让PHP处理空白字段,然后在表单被张贴之后返回错误,说明字段不能是空的。使用if(isset($\u POST['pass'])例如
任何关于可能另一个可用条件的洞察,我可以使用它触发错误消息以我的表单出现
客户端&远离Javascript,您可以使用HTML5&我还没有研究HTML5的验证。我必须看一看,我想我会尝试使用JavaScripts更改错误字段的值。谢谢您提供的信息。如果我把我所有的都换成新的!空($\u POST)条件是否会影响功能?我也没有考虑过如何阻止一个用户,但我还有相当一点要做。如果你把它替换为!空($\u POST),仅当通过POST提交数据(或将数据复制到$\u POST中)时才会执行。因此,它不应该对其余代码产生影响。或者,您可以向表单中添加一个隐藏的输入字段并进行检查,而不是检查!空($\u POST):
然后:
如果(isset($\u POST['submitted']))
这比只检查空帖子更严格,但效果相同。避免检查submit按钮值,某些浏览器在某些情况下不会发送该值。
<div id="intro">
    <h1 id="the_blog" align="center">The <span id="blog_animate" style="position:relative;">Blog</span></h1>
    <div id="log-in"><p id="log">Log In</p><br> <?php echo $error_1;  ?>
        <form action="blog.php" method="post" onsubmit="return checkForm(this)" name="form1">
            <p id="log">User ID :</p> <input type="text" placeholder="johnnyApple175" name="userId"></input><?php echo $error_2 ?><br>
            <p id="log">Password:</p> <input type="password" name="pass"></input><?php echo $error_3; ?><br>
            <input type="submit" value="submit" class="button" ></input>
        </form> 
if (!empty($_POST))...