【发布时间】:2012-12-28 21:25:37
【问题描述】:
我正在尝试自学如何使用 php 和 mysql。为了练习,我做了一个简单的测试网站,它需要一个用户名和一个密码,以及一个使用 phpmyadmin 和 mysql 的数据库。我能够成功连接到我的数据库,但现在我正试图从我网站上的表单中获取数据并将其插入一个名为“帐户”的表中。帐户具有三个字段:“用户名”、“密码”和“用户 ID”(主键)。用户 ID 应该自动递增,因此该字段不需要输入数据。我编写了我认为会收集用户名和密码并将其作为新记录添加到帐户表中的代码,但我收到一条错误消息:
内部服务器错误
服务器遇到内部错误或配置错误,并且 无法完成您的请求。
此外,在尝试访问时遇到 404 Not Found 错误 使用 ErrorDocument 来处理请求。
下面我已经包含了我的代码。我以前从未使用过 PHP 或做过数据库,所以我可能犯了非常明显的错误。
php_script
<?PHP
$db_host = "stevie.heliohost.org";
$db_username = "secret";
$db_pass = "secret";
$db_name = "secret";
$connection = @mysql_connect ("$db_host","$db_username", "$db_pass")
or die ("could not connect to mySQL");
@mysql_select_db("$db_name") or die ("No database");
$sql="INSERT INTO account(username, password)
VALUES('$_POST[user]','$_POST[password]')";
if (!mysql_query($sql,$connection ))
{die('Error: ' . mysql_error());}
echo "1 record added";
mysql_close($con);
?>
HTML 表单
<form name="LOGIN" action="php_script.php" method="post">
Username: <input id="username" type="text" name="user">
password: <input id="password" type="text" name="password">
<input id="submit" type="submit" value="Submit">
</form>
【问题讨论】:
-
有一点是肯定的,您的网站很容易受到 SQL 注入的攻击
-
删除
@你正在抑制错误,你几乎不应该这样做! -
如果你只是在学习,那么你真的应该学习 MySQLi 或 PDO,而不是过时和弃用的 MySQL
-
在
"$db_host"这样的变量周围使用引号是完全多余和浪费的。只需删除引号并自行使用变量即可。 -
这听起来像是网络服务器配置问题,与 PHP 或 MySQL 无关。