我有我的网站的管理员部分,并希望能够允许管理员注册然后能够登录。现在我正在处理注册表单。当我提交用户名和密码时,Web浏览器只显示一个空白屏幕,并且没有任何内容添加到我的数据库中。这是我的代码。任何想法为什么会发生这种情况,而不起作用?
<?
$con = mysql_connect("localhost", "root", "");
if(!$con)
{
die('Could not connect: ' .mysql_error());
}
mysql_select_db("bics_place", $con);
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$encrypted_mypassword=md5($mypassword);
$sql = "INSERT INTO admin
(username, password)
VALUES
('myusername','encrypted_mypassword')";
if(!mysql_query($sql, $con))
{
die('Error: ' .mysql_Error());
}
echo "1 record added";
mysql_close($con);
?>
答案 0 :(得分:2)
我在本地测试了你的代码,它有效。有几件事要检查。
您的服务器可能未配置为允许短标签。尝试将第1行中的'<?'
更改为'<?php'
。
如果您必须使用短标签(您正在使用其他人使用它们的代码),则需要编辑您的php.ini文件以允许它。出于兼容性原因,我倾向于避开它们。
short_open_tag=On
如果这不能解决您的问题,请将error_reporting(E_ALL);
添加到文件的开头,它应该会显示错误。在代码运行后将其删除。
此外,您还需要编辑$ sql变量。将$放在变量名前面。
$sql = "INSERT INTO admin
(username, password)
VALUES
('$myusername','$encrypted_mypassword')";
否则,您的服务器错误日志会告诉您什么?
答案 1 :(得分:0)
不确定为什么您不会看到任何错误,但您的SQL不正确。
你有:
$sql = "INSERT INTO admin (username, password) VALUES ('myusername','encrypted_mypassword')";
应该是:
$sql = "INSERT INTO admin (username, password) VALUES ('$myusername','$encrypted_mypassword')";
您错过了变量前面的$
。