登录php和mysqli

ee7vknir  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(390)

我的登录页面有问题。我谈论这个问题。如果我尝试登录网页,他给我一个完美的结果,当他在本地工作,但当一个网页是在线的查询mysqli找不到任何东西。当一个没有密码的查询他工作得很好;

<?php
    session_start();// come sempre prima cosa, aprire la sessione
    require ("library/include/configurazione.php"); // Include il file di connessione al database
    $matricola = $_POST['matricola'];
    $password = md5($_POST['password']);
    $query_utente= mysqli_query($conne,"SELECT * FROM operatore WHERE matricola='".$matricola."'  ");  //per selezionare nel db l'utente e pw che abbiamo appena scritto nel log
    // Con il SELECT qua sopra selezione dalla tabella users l utente registrato (se lo è) con i parametri che mi ha passato il form di login, quindi
    // Quelli dentro la variabile POST. username e password. 

   if (mysqli_num_rows($query_utente)==true) { 
       $_SESSION["matricola"] = mysqli_real_escape_string($conne,$_POST["matricola"]); // con questo associo il parametro username che mi è stato passato dal form alla variabile SESSION username
       $_SESSION["sede"] = mysqli_real_escape_string($conne,$_POST["sede"]);
       $_SESSION["password"] = mysqli_real_escape_string($conne,md5($_POST['password'])); // con questo associo il parametro username che mi è stato passato dal form alla variabile SESSION password
       $row = mysqli_fetch_array($query_utente);     // metto i risultati dentro una variabile di nome $row
       $_SESSION["logged"] = true;  // Nella variabile SESSION associo TRUE al valore logged
       header("location:modules/root/dashboard.php");
   }
   else{
       echo "Errore ... Operatore non trovato"; // altrimenti esce scritta a video questa stringa di errore
   }
?>

但如果我能用密码查询他就不行了

$query_utente= mysqli_query($conne,"SELECT * FROM operatore WHERE matricola='".$matricola."' AND password='".$password."' ");
zxlwwiss

zxlwwiss1#

你能复习一下你的作业内容吗 library/include/configurazione.php ? 可能需要配置数据库服务器、数据库用户名、数据库密码和数据库名称。确保您的数据库已连接到您的网站上。

<?php

$dbServername = ""; //servername
$dbUsername = ""; //database username
$dbPassword = ""; //database password
$dbName = ""; //database name

//Create connection
$conne = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName);

// Check connection
if (!$conne) {
die("Connection failed: " . mysqli_connect_error());
}
echo "<!--Connected db successfully-->";

?>

我还修改了你的代码。试试这个

<?php
   $matricola = mysqli_real_escape_string($conne, $_POST['matricola']);
   $password =  md5(mysqli_real_escape_string($conne, $_POST['password']));

   $query_utente= mysqli_query($conne,"SELECT * FROM operatore WHERE 
   matricola='$matricola' AND password ='$password'");  
   $resultCheck = mysqli_num_rows($query_utente);

  if ($resultCheck > 0) { 
   $row = mysqli_fetch_array($query_utente); 
   $_SESSION["matricola"] = $row['matricola'];
   $_SESSION["sede"] = $row['sede'];
   $_SESSION["password"] = $row['password']; 
   $_SESSION["logged"] = true;  
   header("location:modules/root/dashboard.php");
   }
   else{
   echo "Errore ... Operatore non trovato"; // altrimenti esce scritta a 
   video questa stringa di errore
  }
  ?>

但我建议你用 password_hash 以及 password_verify .

相关问题