我正在努力学习PHP& MYSQL,我做了这个代码,它似乎工作,但我有很多“警告”,我不知道他们的意思,无论如何php连接到数据库。代码如下:
myPgae.php “主要”页面
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" href='http://localhost/prove/librerie/bootstrap/css/bootstrap.css'></script>
<script type="text/javascript" src='http://localhost/prove/librerie/angular.min.js'></script>
<script type="text/javascript" src='http://localhost/prove/librerie/bootstrap/js/bootstrap.min.js'></script>
<body>
<form action="procces.php" method="POST">
<div class="text-info identazione" class="identazione">Username : </div><input lass="form-control" type="text" name="username"/>
<div class="text-info identazione">Password : </div><input type="text" name="password"/>
<div class="identazione"><input class=" btn btn-success" type="submit"/></div>
</form>
</body>
</head>
<style>
body {
padding : 50px;
}
.identazione{
padding: 12px;
}
</style>
process.php
<?php
//da myPage a variabili locale
$username = $_POST['username'];
$password = $_POST['password'];
//per prevenire mysql injection
$username= stripcslashes($username);
$password= stripcslashes($password);
$username= mysql_real_escape_string($username);
$password= mysql_real_escape_string($password);
//connessione al server e selezione database
mysql_connect("localhost","root","");
mysql_select_db("login");
//query al database per utente
$risultato= mysql_query("select * from utenti where username = '$username' and password = '$password' ") or die("Utente non trovato, verificare le credenziali".mysql_error());
$riga = mysql_fetch_array($result);
if($riga['username']==$username && $riga['password']==$password){
echo "Login effettuato. Benvenuto".$riga['username'];
}
else
echo "Login errato. Reinserisci i dati";
?>
这是警告的证据
此外,如果它可以帮助您,我正在使用Chrome并使用Wampp。我在意大利语中写道,我希望这不是问题,无论如何我创建了数据库它的名字是:登录,用用户名,密码和id定义。我的creata是一个usertest和userpass,如果我尝试登录,但它们有相同的错误
更新:
我改变了risutato的结果,这是我的错误,现在只是两个警告,无论如何我必须更新我的知识,我正在研究过时的来源
答案 0 :(得分:0)
在你继续前进之前停止,你正在使用日期方法,并且需要在进一步阅读之前做一些阅读。
不再支持mysql,使用注入攻击很危险。建议您阅读本文并开始了解如何使用它进行数据库查询 - https://code.tutsplus.com/tutorials/why-you-should-be-using-phps-pdo-for-database-access--net-12059
如果您愿意,也可以使用mysqli,但我建议使用PDO。
接下来你需要看看安全性,你将密码存储为普通测试,这很糟糕。为了提供合适的安全级别,我建议你在这里阅读 - http://php.net/manual/en/function.password-hash.php
这可让您了解如何使用password_hash()
函数以及password_verify()
函数。
希望这有帮助。
答案 1 :(得分:-1)
为了您自己的安全:只是不要使用mysql_connect!
切换到mysqli或pdo。
无论如何要隐藏/禁止您在页面顶部执行的弃用警告,请使用以下命令:
error_reporting(E_ALL ^ E_DEPRECATED);
error_reporting(0);