【发布时间】:2014-11-11 20:21:58
【问题描述】:
这是我的代码。我该如何解决? 错误信息是这样的
“不推荐使用:mysql_connect():不推荐使用mysql扩展并且 将来将被删除:使用 mysqli 或 PDO 代替 C:\wamp\www\test12345\db.php 在第 6 行"
我怎样才能创建一个没有错误的登录页面? 我正在尝试创建一个具有会话安全登录的网站?我做得对吗?
db.php
<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "web";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Can't connect to database");
mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong");
登录.php
<?php
include("db.php");
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from Form
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$password = md5($password); // Encrypted Password
$sql = "SELECT id FROM admin WHERE username='$username' and passcode='$password'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
// If result matched $username and $password, table row must be 1 row
if ($count == 1) {
session_register("username");
$_SESSION['login_user'] = $username;
header("location: welcome.php");
} else {
$error = "Your Login Name or Password is invalid";
}
}
?>
<form action="login.php" method="post">
<label>UserName :</label>
<input type="text" name="username"/><br />
<label>Password :</label>
<input type="password" name="password"/><br/>
<input type="submit" value=" Login "/><br />
</form>
【问题讨论】:
-
是时候转移到
mysqli或消息所述的 PDO。 -
我建议你完全放弃这段代码并查看以下链接:使用CRYPT_BLOWFISH 或 PHP 5.5 的
password_hash()函数。对于 PHPpassword_hash() compatibility pack。另外,use prepared statements 或 PDO with prepared statements。 -
当我将其更改为 mysqli 时会弹出此错误消息。“警告:mysqli_select_db() 期望参数 1 为 mysqli,C:\wamp\www\test12345\db.php 中给出的字符串7号线
-
"当我将其更改为 mysqli 时会弹出此错误消息。"警告:mysqli_select_db() 期望参数 1 为 mysqli,字符串在 C:\wamp\www\test12345\第 7 行的 db.php"" - 很明显,您正在混合这些 MySQL API。他们不混合。
mysqli_+mysql_= 没有爱。 -
只需使用
$bd = mysqli_connect($mysql_hostname, $mysql_user, $mysql_password, $mysql_database)就可以了。您不需要将mysqli_select_db与mysqli一起使用。你可以,但是通过使用所有 4 个参数,它会覆盖它host, username, password, db。只是不要将mysqli_select_db与此建议结合使用。
标签: php mysql database session encryption