通讯表格输入数据库

时间:2012-09-22 14:11:10

标签: php javascript mysql ajax database

我从YouTube教程中获取了以下代码(信用:pbj746)。所有这些似乎都与提交的数据无关,而这些数据并未出现在数据库中!我检查了$ dbhost,$ db,$ dbuser和$ dbpassword,它们都匹配,但数据没有被拉入。

如果有人能提供帮助那就太棒了!

    <?php
    $dbServer = "localhost";
    $db = "quizsoft_newsletter";
    $dbUser = "admin_newsletter";
    $dbPassword = "password";

    $conn = mysql_connect($dbhost,$dbuser,$dbpass);
    mysql_select_db($db);

    $email = $_POST['email'];

    mysql_query("INSERT INTO emails ('ID', 'Email')
        VALUES(NULL, '$email')") or die(mysql_error());
    ?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Form</title>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
    $("div#msgbox").hide();
    $("#addEmail").click(function() {
        $.post('process.php', {
            email:$("#email").val()
        },
        function(response) {
            $("div#msgbox #msg").html("Email Submitted Successfully!")
            $("div#msgbox").slideDown("normal");
        }
        );
        return false;
    });
    $("div#msgbox").click(function() {
        $(this).slideUp("normal");
    })
});
</script>

<style>
body { font:Verdana, Geneva, sans-serif; font-size:13px; }
div#msgbox { background:#999; border-bottom:1px solid #CCC; color:#FFF; width:100%; height:30px; top:0; left:0; cursor:pointer; }
div#msgbix #msg { line-height:30px; padding-left:10px; }
form#newsletter { margin-top:35px; }
</style>

</head>
<body>

    <div id="msgbox"><span id="msg"> </span></div>
    <form id="newsletter">
        Email:<input type="text" id="email" />
        <input type="submit" id="addEmail" value="Submit" />
    </form>

</body>
</html>

谢谢D!

已编辑:此外,我运行了一个简单的PHP脚本来确认数据库连接:http://quizsoft.co.uk/ajaxform/test.php

1 个答案:

答案 0 :(得分:0)

除了下面列出的内容之外,还有一点语法错误。 $dbServer应重命名为$dbhost,反之亦然。

此外,根据您的评论我知道您在ID上使用自动增量,因此我建议您更改此

INSERT INTO emails ('ID', 'Email') VALUES(NULL, '$email')

到这个

INSERT INTO emails (`Email`) VALUES ('$email')

因为ID不能为null,并且需要使用反引号来封装列名。

另外,就像一个抬头,你的sql容易受到sql注入,你可能想要研究使用pdo(这里是tutorial)而不是弃用的mysql函数。如果没有,你至少应该替换

$email = $_POST['email'];

通过

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