注册表格未正确连接到MySQL

时间:2016-02-14 17:28:50

标签: javascript php html mysql css

好的,所以我已经成功地将我的网站的联系表格链接到了一个MySQL数据库,我很高兴在我的注册中找出它, 然而 页面我的代码不起作用。我运行了这个连接检查:

    if (mysqli_connect_errno())
{  
echo "Failed to connect to MySQL: " . mysqli_connect_error();  
} else {
      echo "It's Working!";
}

它说:“它正在发挥作用!”所以我知道我已经建立了与我的SQL数据库的连接。

让我试着进一步澄清:

我有这个特定程序的2个主要文件(显然我们不需要关心styles.css或我网站中其他页面的链接文件): register.php db.php 。这是我的两个代码。它只是一个项目网站,所以我不在乎人们是否看到/使用我的代码...它无论如何都不起作用所以请自己敲门,哈哈!

首先, db.php

    define('DB_SERVER', 'localhost');
    define('DB_USERNAME', 'root');
    define('DB_PASSWORD', '');
    define('DB_DATABASE', 'forms1');
    $db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);

现在这里是 register.php 中的php,我把它放在任何HTML之前的顶部:

    include ("db.php"); 

    $msg = "";
    if(isset($_POST["submit"]))
    {
        $name = $_POST["name"];
        $lname = $_POST["lname"];
        $a1 = $_POST["a1"];
        $a2 = $_POST["a2"];
        $city = $_POST["city"];
        $state = $_POST["state"];
        $zip = $_POST["zip"];
        $phone = $_POST["phone"];
        $email = $_POST["email"];
        $password = $_POST["password"];

        $name = mysqli_real_escape_string($db, $name);
        $lname = mysqli_real_escape_string($db, $lname);
        $a1 = mysqli_real_escape_string($db, $a1);
        $a2 = mysqli_real_escape_string($db, $a2);
        $city = mysqli_real_escape_string($db, $city);
        $state = mysqli_real_escape_string($db, $state);
        $zip = mysqli_real_escape_string($db, $zip);
        $phone = mysqli_real_escape_string($db, $phone);
        $email = mysqli_real_escape_string($db, $email);
        $password = mysqli_real_escape_string($db, $password);
        $password = md5($password);


        $sql="SELECT email FROM users WHERE email='$email'";
        $result=mysqli_query($db,$sql);
        $row=mysqli_fetch_array($result,MYSQLI_ASSOC);
        if(mysqli_num_rows($result) == 1)
        {
            $msg = "Sorry...This email already exist...";
        }
        else
        {
            $query = mysqli_query($db, "INSERT INTO users(name,lname,a1, a2, city, state, zip, phone, email, password) VALUES ('$name', '$lname', '$a1', '$a2', '$city', '$state', '$zip', '$phone', '$email', '$password')");
            if($query)
            {
                $msg = "Thank You! you are now registered.";
            }
        }
    }
    mysqli_close($db);

我应该提一下,JavaScript包含在我的HTML的HEAD部分中:

    (function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement)

    $(document).ready(function() {
        $('form.required-form').simpleValidate({
          errorElement: 'em',
          ajaxRequest: true,
          completeCallback: function($el) {
          var formData = $el.serialize();
          }
        });
    });
    $("form[name='form1']").submit(function(){

    .... JS code ....
    return error;
    });
    </script>
    <script type= "text/javascript">
var RecaptchaOptions = {
theme: 'clean'
};

好吧,我试图包含表单的HTML代码,但它没有正确显示,但是当我告诉你时,相信我表单字段的所有输入都有一个名字= “”对应于MySQL中我的数据库中我的表中的字段。 HTML肯定不是问题。我一遍又一遍地检查语法和拼写。这不是HTML。但是某处有错误。

请帮助!!!

非常感谢你。

-Maj

P.S。我故意在这些示例中删除了打开和关闭php / html标签,因此它更容易阅读,但我将它们放在原始代码中。

2 个答案:

答案 0 :(得分:0)

之后如果($ query){}阻止尝试添加else {print(mysqli_error($ db)); } 也许有一个错误,但你从register.php得到的回应是什么?

答案 1 :(得分:0)

你应该开始调试你的源代码,但如果你不使用调试器,就把一些“die(SOME VARIABLE);”找到你的麻烦区域,没有javascript,第一个。只需使用一些简单的html-formular并获取行数据,将答案放入&lt; PRE&gt;标签(或在终端中使用curl,我喜欢这种方式,但对你来说没有必要)。

如果您不调试您的php代码或您的浏览器相关代码,则表示“html,css,javascript,...”(您可以看到firebug,您要发送的数据以及即将发生的内容)返回),你可以使用echo“INSERT .... BLA ... $ VAR ...;”并复制粘贴SQL-Statement并在PhpMyAdmin中测试它,看你得到一个正确的声明,也许有类型转换问题或许多其他想法是可能的。

如果一切顺利,你的javascript代码可能会有些麻烦。但是,您可能需要转换某种类型的变量,您应该复制并粘贴您的SQL语句并在phpmyadmin中执行它,以验证您放入Php-Code中的SQL语句。欢呼声。