【发布时间】:2014-05-19 06:48:07
【问题描述】:
我的html代码:
<form action="send_post.php" method="post">
<input type="submit" value="Login" />
</form>
PHP 代码:
<?php
$con = mysqli_connect("","","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
else
{
// echo('Connected with Mysql');
}
@mysql_select_db("a", $con);// connect to database db_name
if (isset($_POST['Submit']))
{
$email=$_POST['email'];
$pass=$_POST['pass'];
$sql_query="INSERT INTO formdata (email, pass) VALUES('$email', '$pass')";}
?>
数据库名称:mysql
表名:formdata
为什么它不起作用?在第二行中,我首先使用了“本地主机”,但收到错误,因此我将其删除。
【问题讨论】:
-
危险:你容易受到SQL injection attacks的影响,你需要defend自己。
-
(1) 不要隐藏错误消息。
@mysql_select_db("a", $con);(2) 向我们展示表单的所有 HTML。 (3) 定义“不工作” -
您不能混合使用 MySQL API。将错误报告添加到文件顶部
error_reporting(E_ALL); ini_set('display_errors', 1);--- 另外,您的条件语句将失败。它基于寻找您的提交按钮被命名为Submit,它不是。 -
我还注意到您可能以纯文本形式存储密码。不建议这样做。使用 CRYPT_BLOWFISH 或 PHP 5.5 的
password_hash()函数。对于 PHPpassword_hash() compatibility pack.