这是我的密码。我怎样才能修好它?错误消息如下所示
"已弃用:mysql_connect():mysql扩展已弃用,将来将被删除:在第6行的C:\wamp\www\test12345\db.php中改用mysqli或PDO"
如何创建没有错误的登录页面?我正在尝试创建一个具有安全登录会话?的网站?。我做得对吗?
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");
login.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>
我还没有测试过这个,但是如果你想要一个如何将它转换为PDO的例子
<?php
//really basic connection wrapper class
class DB{
protected $_conn;
public function __construct(){
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "web";
//http://php.net/manual/en/pdo.construct.php
$this->_conn = new PDO(
'mysql:host=' . $mysql_hostname . ';' . 'dbname=' . $mysql_database,
$mysql_user,
$mysql_password
);
}
public function getConn(){
return $this->_conn;
}
/*
$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");
*/
}
?>
//any space or new lines here ( before the open PHP tag ) will prevent the redirect
<?php
ini_set('display_errors', 1); //turn on error reporting when developing
include("db.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST"){
$DB = new DB();
// username and password sent from Form
$username = $_POST['username'];
$password = $_POST['password'];
$password = md5($password); // Encrypted Password - update this as others have stated
$sql="SELECT id FROM admin WHERE username = ? and passcode = ?";
//http://php.net/manual/en/pdo.prepare.php
$stmt = $DB->getConn()->prepare($sql);
//http://php.net/manual/en/pdostatement.execute.php
$stmt->execute( array( $username, $password ) );
//http://php.net/manual/en/pdostatement.fetchall.php
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
// If result matched $username and $password, table row must be 1 row
if(count( $results ) ){
//session_register("username"); this is deprecated
$_SESSION['login_user']=$username;
header("location: welcome.php");
exit(); //add exit here
}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>
对于重定向问题。不要使用session_register();如何修复session_register()弃用的问题?
我怎样才能解决这个问题。我已经环顾了这可能是php版本的问题,但仍然无法删除此错误消息。
问题内容: 这个问题已经在这里有了答案 : 为什么我不应该在PHP中使用mysql_ *函数? (15个答案) 6年前关闭。 当我尝试从PHP连接到MySQL服务器时,出现以下错误: 不推荐使用:不推荐使用mysql扩展,以后将删除:在第123行的/path/to/filename.php中使用mysqli或PDO代替 引用行上的代码是: 我确信这些论点是正确的,并且这种确切的代码已经工作了多年没
问题内容: 向MySQL发出命令时,出现错误#1064“语法错误”。 这是什么意思? 我该如何解决? 问题答案: 错误#1064表示MySQL无法理解您的命令。要解决这个问题: 阅读错误消息。 它 准确地 告诉您MySQL 在命令中哪里 混淆了。 检查您的命令。 如果您使用的编程语言来创建你的命令,使用,或同等学历,以显示 完整的命令 ,所以你可以看到它。 检查手册。 通过对MySQL的什么比较
问题内容: 我有一个包含以下字段的表: 现在,我需要删除具有same的行。一种方法是使用以下SQL以及脚本( ): 运行此查询后,我可以使用服务器端脚本删除重复项。 但是,我想知道是否只能使用SQL查询来完成。 问题答案: 一种简单的方法是在3列上添加索引。在编写语句时,请包含关键字。像这样: 这将删除所有重复的行。作为一项额外的好处,重复的将来会出错。和往常一样,您可能需要在运行类似内容之前进行
问题内容: 如果所有数据被意外删除,是否可以将表恢复为上一次数据。 问题答案: 还有另一种解决方案,如果服务器上有活动的二进制日志,则可以使用 用它生成一个sql文件 然后搜索您缺少的行。如果您没有激活它,则没有其他解决方案。下次进行备份。