好的,所以我已经成功地将我的网站的联系表格链接到了一个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标签,因此它更容易阅读,但我将它们放在原始代码中。
答案 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语句。欢呼声。