Domanda erorre nel login

Firepect

Utente Iron
2 Giugno 2021
28
10
0
16
PHP:
<?php
// Get value passe from from in login.php file
  $username = $_POST['user'];
  $password = $_POST['pass'];
 
  // to prevent mysql injection
  $username = stripcslashes($username);
  $password = stripcslashes($password);
  $username = mysql_real_escape_string($username);
  $password = mysql_real_escape_string($password);


  // connect to the server and select the database
  mysql_connect("localhost", "root", "");
  mysql_select_db("login");

  //Query the database for user
  $result = mysql_query("select * from users where username = '$username' and password = '$password'")
    or die("Failed to query database " .mysql_error());
  $row = mysql_fetch_array($result);{
  if ($row['username'] == $username && $row['password'] == $password ){
    echo "Login funzionato, Benvenuto" .$row['username'];
  } else {
      echo "Connessione fallita";
  }

  }
?>
MI da l'errore in questo
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
cioè :


Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\sito\login\process.php:14 Stack trace: #0 {main} thrown in C:\xampp\htdocs\sito\login\process.php on line 14
 
PHP:
<?php
// Get value passe from from in login.php file
  $username = $_POST['user'];
  $password = $_POST['pass'];
 
  // to prevent mysql injection
  $username = stripcslashes($username);
  $password = stripcslashes($password);
  $username = mysql_real_escape_string($username);
  $password = mysql_real_escape_string($password);


  // connect to the server and select the database
  mysql_connect("localhost", "root", "");
  mysql_select_db("login");

  //Query the database for user
  $result = mysql_query("select * from users where username = '$username' and password = '$password'")
    or die("Failed to query database " .mysql_error());
  $row = mysql_fetch_array($result);{
  if ($row['username'] == $username && $row['password'] == $password ){
    echo "Login funzionato, Benvenuto" .$row['username'];
  } else {
      echo "Connessione fallita";
  }

  }
?>
MI da l'errore in questo
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
cioè :


Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\sito\login\process.php:14 Stack trace: #0 {main} thrown in C:\xampp\htdocs\sito\login\process.php on line 14

mysqli_connet prova così
 
  • Mi piace
Reazioni: Firepect
Ultima modifica:
mysqli_connet prova così, mi da un'altro errore
Messaggio unito automaticamente:

Le funzioni che stai usando sono deprecate da PHP 5.5. Probabilmente il tuo XAMPP fa uso di PHP 7.x. Dovresti utilizzare MYSQLi https://www.php.net/manual/en/book.mysqli.php
quando l'ho installato cosa faccio?
Messaggio unito automaticamente:

mysqli_connet prova così
ma se cancello il

// to prevent mysql injection
$username = stripcslashes($username);
$password = stripcslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
?
Messaggio unito automaticamente:

mysqli_connet prova così
ora l'ho fatto diventare così
Codice:
<?php
// Get value passe from from in login.php file
  $username = $_POST['user'];
  $password = $_POST['pass'];
 
 

  // connect to the server and select the database
  mysqli_connect("localhost", "root", "");
  mysql_select_db("login");

  //Query the database for user
  $result = mysql_query("select * from users where username = '$username' and password = '$password'")
    or die("Failed to query database " .mysql_error());
  $row = mysql_fetch_array($result);{
  if ($row['username'] == $username && $row['password'] == $password ){
    echo "Login funzionato, Benvenuto" .$row['username'];
  } else {
      echo "Connessione fallita";
  }

  }
?>


ma mi dice questo errore:
Fatal error: Uncaught Error: Call to undefined function mysql_select_db() in C:\xampp\htdocs\sito\login\process.php:10 Stack trace: #0 {main} thrown in C:\xampp\htdocs\sito\login\process.php on line 10
 
Messaggio unito automaticamente:


quando l'ho installato cosa faccio?
Messaggio unito automaticamente:


ma se cancello il

// to prevent mysql injection
$username = stripcslashes($username);
$password = stripcslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
?
Messaggio unito automaticamente:


ora l'ho fatto diventare così
Codice:
<?php
// Get value passe from from in login.php file
  $username = $_POST['user'];
  $password = $_POST['pass'];
 
 

  // connect to the server and select the database
  mysqli_connect("localhost", "root", "");
  mysql_select_db("login");

  //Query the database for user
  $result = mysql_query("select * from users where username = '$username' and password = '$password'")
    or die("Failed to query database " .mysql_error());
  $row = mysql_fetch_array($result);{
  if ($row['username'] == $username && $row['password'] == $password ){
    echo "Login funzionato, Benvenuto" .$row['username'];
  } else {
      echo "Connessione fallita";
  }

  }
?>


ma mi dice questo errore:
Fatal error: Uncaught Error: Call to undefined function mysql_select_db() in C:\xampp\htdocs\sito\login\process.php:10 Stack trace: #0 {main} thrown in C:\xampp\htdocs\sito\login\process.php on line 10
Come ti è già stato detto stai usando delle funzioni che molto probabilmente non sono più presenti nella tua versione di PHP in utilizzo. Vai su XAMPP e controlla quale versione di PHP stai utilizzando, dopodichè cerca quali sono le funzioni disponibili per quella versione.

Come puoi leggere nella documentazione ufficiale di PHP (https://www.php.net/manual/en/function.mysql-select-db.php) la funzione che stai utilizzando tu (mysql_select_db) è deprecata, significa che nelle nuove versioni (dalla 7.0.0 in poi) non esiste più ed è stata rimpiazzata da mysqli_select_db().
 
  • Mi piace
Reazioni: hck2009
Ultima modifica:
se non vuoi installare mysqli, devi modificare tutti mysql in mysqli...
non va
Messaggio unito automaticamente:

Come ti è già stato detto stai usando delle funzioni che molto probabilmente non sono più presenti nella tua versione di PHP in utilizzo. Vai su XAMPP e controlla quale versione di PHP stai utilizzando, dopodichè cerca quali sono le funzioni disponibili per quella versione.

Come puoi leggere nella documentazione ufficiale di PHP (https://www.php.net/manual/en/function.mysql-select-db.php) la funzione che stai utilizzando tu (mysql_select_db) è deprecata, significa che nelle nuove versioni (dalla 7.0.0 in poi) non esiste più ed è stata rimpiazzata da mysqli_select_db().
ho provato a cambiare codice ma così nn manda niente
<?php

$connessione = mysqli_connect('localhost','root','','contatti');
?>
<?php

if(isset($_POST['submit'])){
$nome = $_POST['nome'];

$mail = $_POST['mail'];
if(!empty($nome)&& !empty($mail)){
$query = "INSERT INTO utenti(nome , email) VALUES ('{$nome}','{$mail}')";

$creaUtenti=mysqli_query($connessione , $query);
if(!$creaUtenti){
die('query fallita'.mysqli_error($connessione));
}
$avviso = "dati registrati con successo";
//echo $avviso;
}

else{
$avviso="I campi non devono essere vuoti!";
//echo $avviso;
}
}







?>
 
Messaggio unito automaticamente:


quando l'ho installato cosa faccio?
Messaggio unito automaticamente:


ma se cancello il

// to prevent mysql injection
$username = stripcslashes($username);
$password = stripcslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
?
Messaggio unito automaticamente:


ora l'ho fatto diventare così
Codice:
<?php
// Get value passe from from in login.php file
  $username = $_POST['user'];
  $password = $_POST['pass'];
 
 

  // connect to the server and select the database
  mysqli_connect("localhost", "root", "");
  mysql_select_db("login");

  //Query the database for user
  $result = mysql_query("select * from users where username = '$username' and password = '$password'")
    or die("Failed to query database " .mysql_error());
  $row = mysql_fetch_array($result);{
  if ($row['username'] == $username && $row['password'] == $password ){
    echo "Login funzionato, Benvenuto" .$row['username'];
  } else {
      echo "Connessione fallita";
  }

  }
?>


ma mi dice questo errore:
Fatal error: Uncaught Error: Call to undefined function mysql_select_db() in C:\xampp\htdocs\sito\login\process.php:10 Stack trace: #0 {main} thrown in C:\xampp\htdocs\sito\login\process.php on line 10
mysqli_connect("localhost", "root", "");
mysql_select_db("login"); // modifica questo campo con mysqli_select_db ----->dove ti da l'errore e lì che devi correggerlo (anche se non sempre dipende dal tipo di errore).

P.s. Il caro Moderatore @0xbro ha già spiegato chiaramente il motivo dell'errore, segui le sua spiegazione in alto e leggi "attentamente".

Saluti.
 
mysqli_connect("localhost", "root", "");
mysql_select_db("login"); // modifica questo campo con mysqli_select_db ----->dove ti da l'errore e lì che devi correggerlo (anche se non sempre dipende dal tipo di errore).

P.s. Il caro Moderatore @0xbro ha già spiegato chiaramente il motivo dell'errore, segui le sua spiegazione in alto e leggi "attentamente".

Saluti.
ciao, grazie per la risposta... mi puoi dare il tuo discord se c'è l'hai?
aaa
 
perchè scrivere in php5 quando con php7 puoi usare PDO? ed evitare sql injection in modo semplice veloce ed elegante grazie ai prepared statement?

PS. nel db si salva l'hash e quando si prende la password si ricalcola l'hash e lo si confronta con quello salvato nel db, non come hai fatto tu.