当前位置: 首页 > 面试题库 >

PHP SQL表单插入

冯茂实
2023-03-14
问题内容

我开发了一种将许多东西插入数据库的表单。但是以某种方式,当页面被填满时,它也只插入数据库管理员的user_password。我该如何解决这个问题?

<?php
//include the connection file

require_once('connection.php');
require_once("validation.php");

if( isset($_POST['send']) && (!validateName($_POST['name']) || !validateEmail($_POST['email']) || !validatePasswords($_POST['pass1'], $_POST['pass2']) || !validateContact($_POST['contact']) || !validateAge($_POST['age'])) ):?>
            <div id="error">    
                <ul>
                    <?php if(!validateName($_POST['name'])):?>
                        <li><strong>Invalid Name:</strong> We want names with more than 3 letters.</li>
                    <?php endif?>
                    <?php if(!validateEmail($_POST['email'])):?>
                        <li><strong>Invalid E-mail:</strong> Type a valid e-mail please.</li>
                    <?php endif?>
                    <?php if(!validatePasswords($_POST['pass1'], $_POST['pass2'])):?>
                        <li><strong>Passwords are invalid:</strong> Passwords doesnt match or are invalid!</li>
                    <?php endif?>
                    <?php if(!validateContact($_POST['contact'])):?>
                        <li><strong>Please enter your contact number.</strong></li>
                    <?php endif?>
                    <?php if(!validateAge($_POST['age'])):?>
                        <li><strong>Please enter your age</strong></li>
                    <?php endif?>
                    </ul>
            </div>
        <?php elseif(isset($_POST['send'])):?>
            <div id="error" class="valid">
                <ul>
                <?php $query = "INSERT INTO employee (name, password, email, contact, age, gender, location, skill) ";                           
                $query .= "('$name', '$password', '$email','$contact','$age','$gender','$location','$skill')";
                // run the query
                mysql_query($query);?>
                    <li><strong>Congratulations!</strong> All fields are OK ;)</li>
                </ul>
            </div>
    <?php endif?>

问题答案:
  1. 您忘记输入关键字“ VALUES”。检查INSERT INTO的语法。
  2. 您传递给MySQL的变量(“ $ name”,“ $ password”,“ $ email”,“ $ contact”,“ $ age”,“ $ gender”,“ $ location”,“ $ skill”)没有被设置(它们没有值)。
  3. 您不处理空字符串的情况。
  4. 仅在验证了所有参数之后,才应调用数据库(您可能具有SQL注入漏洞*)。
  5. 如果您正在学习PHP,建议不要使用双引号。
  6. 将输出与逻辑分开可能会更好,以后将更易于维护。
  7. 有用于此的库。

*:您可能也想换个字符,PHP中有为此功能,例如htmlentities和mysql_real_escape_string。



 类似资料:
  • pre { white-space: pre-wrap; } jQuery EasyUI 插件 通过 $.fn.form.defaults 重写默认的 defaults。 表单(form)提供多种方法来执行带有表单字段的动作,比如 ajax 提交、加载、清除,等等。当提交表单时,调用 'validate' 方法来检查表单是否有效。 用法 创建一个简单的 HTML 表单。构建表单并给 id、acti

  • 我需要帮助插入以下数据到数据库我有两个表employee和employee_skills(1个employee可以有很多技能) mapper.xml

  • 本文向大家介绍Vue.js 表单校验插件,包括了Vue.js 表单校验插件的使用技巧和注意事项,需要的朋友参考一下 Vuerify 是一个简单轻量的数据校验插件。内置基础的校验规则和错误提示。可自定义规则,规则类型支持正则、函数或者字符串。校验规则可全局注册也可以组件内注册。插件会给 vm 添加 $vuerify 对象,同时 watch 数据并校验合法性,如果有错误会存入 vm.$vuerify.

  • 目前支持对以下格式的值进行验证:   cnum*-*(纯数字),   char*-*(纯字母),   zwen*-*(中文),   bysc*-*(字母开头),   mail(邮箱),   yzbm(邮政编码)      *    其中的‘*’表示长度,比如“zwen1-5”表示中文1-5位的长度。同时支持“zwen”(只能是中文),“zwen5-*”(5位长度的文字),其他的数据类型如同上面所示。      

  • 问题内容: 我从终端创建了一个表,然后尝试创建简单的任务:从表单中插入值。这是我的 这是我的。 按下我的保存按钮后,什么也没有发生,数据库仍然为空。我尝试了查询,它按照预期的方式从表单中获取所有值。在尝试从终端检查是否可以正常工作后,我登录到尝试从users表返回所有数据的操作,但得到了空集。 问题答案: 以下代码仅声明了一个包含MySQL查询的字符串变量: 它不执行查询。为此,您需要使用一些功能

  • 最后编辑:现在一切正常工作将在下面的工作代码,清理后像idealCastle说,并修复了一些语法错误,一切正常工作,因为它应该与javascript验证谢谢大家 超文本标记语言代码: Javascript文件: PHP文件: