当前位置: 首页 > 知识库问答 >
问题:

简单表单验证中意外的elseif

马欣荣
2023-03-14

我刚刚制作了一个注册表单,在添加最终验证(MySQL验证)时遇到了一个问题。

这是我得到的错误:解析错误:语法错误,意外的'elseif'(T_ELSEIF)在C:\xampp\htdocs\Signup\包含\第72行的signup.php

第72行已标记,以帮助您解决此问题。

else
        {
            require_once("db_connect.php");

            // Email validation
            $query_email="SELECT email FROM users WHERE email='$email'";
            $result_email=mysql_query($query_email) or die (mysql_error());
            if (mysql_num_rows($result_email)>0)
            {
                echo "You already have an account registered on this email.";
            }

            // Username validation
            $query_username="SELECT username FROM users WHERE username='$username'";
            $result_username=mysql_query($query_username) or die (mysql_error());
            elseif (mysql_num_rows($result_username)>0) /* !!! ROW 72 !!! */
            {
                echo "Username already registered. Pick something else";
            }

            // Add new user to database
            else
            {
                $query="INSERT INTO users VALUES ('', '$username', '$password', '$email', '$first_name', '$last_name', '$birthday', '$sex', '', '$registered', '')";
                mysql_query($query) or die (mysql_error());
                echo "User created!";
            }

        }

如果我注释//用户名验证//添加新用户到数据库之间的所有内容,一切正常(除了我没有用户名验证的事实)。

如果你想知道$用户名是什么:

$username = mysql_real_escape_string($_POST['username']);

我在SO上读到了一些关于意外的问题,但我就是不明白。括号看起来没问题,否则会有一个条件。请在降级前让我知道,这样我就可以编辑我的问题。谢谢!

共有1个答案

敖永丰
2023-03-14

更改此项:

// Username validation
            $query_username="SELECT username FROM users WHERE username='$username'";
            $result_username=mysql_query($query_username) or die (mysql_error());
            elseif (mysql_num_rows($result_username)>0) /* !!! ROW 72 !!! */
            {
                echo "Username already registered. Pick something else";
            }

为此:

// Username validation
            $query_username="SELECT username FROM users WHERE username='$username'";
            $result_username=mysql_query($query_username) or die (mysql_error());
            if (mysql_num_rows($result_username)>0) /* !!! ROW 72 !!! */
            {
                echo "Username already registered. Pick something else";
            }

这是意外的,因为else if是初始if条件的else条件,由标准格式的大括号依次连接。这里的示例代码没有初始if条件。

您最后的ther语句将需要其他类型的检查来确定是否需要插入。

这里有一个替代方案:

// Email validation
            $query_email="SELECT * FROM users WHERE email='$email' OR username='$username'";
            $result_email=mysql_query($query_email) or die (mysql_error());
            if (mysql_num_rows($result_email)>0)
            {
                echo "There is already an account registered on this email or that username is already taken.";
            }
            else
            {
                // Add new user to database
                $query="INSERT INTO users VALUES ('', '$username', '$password', '$email', '$first_name', '$last_name', '$birthday', '$sex', '', '$registered', '')";
                mysql_query($query) or die (mysql_error());
                echo "User created!";
            }

另外,请注意,您需要清理此输入。我不知道您目前正在做什么来确保$username或$email不是劫持企图。此外,不推荐使用mysql函数。切换到PDO或mysqli,并使用准备好的语句来清理输入。

 类似资料:
  • 问题内容: 我需要一个简单的php库,该库可用于轻松地将规则和字段名传递给它,然后可以轻松执行验证。还应该有一种简单的方法来检索错误。 有什么建议么? 问题答案: 我编写了自己的简单类,将多年来收集的一些正则表达式与PHP的sanatize和filter函数结合在一起。 现在,这需要在此处看到的某些javascript的mootools,但是您可以轻松地将其更改为您喜欢的javascript框架。

  • 本文向大家介绍jquery实现简单的表单验证,包括了jquery实现简单的表单验证的使用技巧和注意事项,需要的朋友参考一下  jquery如何实现简单的表单验证,我们先跟大家分享一下实现思路。 大概思路: 先为每一个required添加必填的标记,用each()方法来实现。 在each()方法中先是创建一个元素,然后通过append()方法将创建的元素加入到父元素后面。 这里面的this用的很精髓

  • 本文向大家介绍最常用的jQuery表单验证(简单),包括了最常用的jQuery表单验证(简单)的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了,具体代码如下所示: 以上所述是小编给大家介绍的最常用的jQuery表单验证(简单),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 本文向大家介绍简单解析Django框架中的表单验证,包括了简单解析Django框架中的表单验证的使用技巧和注意事项,需要的朋友参考一下 我们的搜索示例仍然相当地简单,特别从数据验证方面来讲;我们仅仅只验证搜索关键值是否为空。 然后许多HTML表单包含着比检测值是否为空更为复杂的验证。 我们都有在网站上见过类似以下的错误提示信息:     请输入一个有效的email地址, foo' 并不是一个有效的

  • 问题内容: 下面的代码对于执行基本的必需表单验证似乎效果很好。 当该字段是脏的+无效且为 Great 时,该表单将显示红色的 Name required 消息 。 如果该字段是脏的+有效消息。 但是,对于表单中的每个字段重复此代码是很混乱的: 我希望能够以更简单的方式指定和属性。 问题答案: 一种方法是将验证表达式抽象到范围方法: 控制者

  • 问题内容: 页面包含如下表格。 1)如果我插入表单 validate =“ true” ,则在页面加载此表单后,将请求提交到邮件操作(此时尚未创建验证xml)。 2)创建验证xml后(与动作相同),然后向该页面的控制请求返回的动作返回404页面。 我错过了什么? 验证XML 如果我不添加验证,那么一切都会正常进行。 struts.xml 问题答案: 是Struts2提供的预定义结果之一; 基本上,