Login + MySQL

Salve,

ho un piccolo problema:

ho una tabella nel mysql chiamata admin, dove all'interno sono presenti i campi "name" e "password", relativi ai vari amministratori.

Ho il seguente form di login:

<?php
$admin_name=$_POST['name']; // qui recupero i dati del form
$admin_password=$_POST['pass'];
if($admin_name != "" AND $admin_password != "") { // faccio un piccolo controllino (vedro' di aggiungerne altri) e poi la query
require("connect.php"); // mi connetto
$check_admin="SELECT * FROM ".PREF."admin WHERE name = '$admin_name' AND password = '$admin_password'"; // e vedo se i dati sono presenti e se sono corretti
if (mysql_query($check_admin, $connect)) {
true(); //  funzione che ho creato in connect.php che mi dice che tutto e' andato bene...
} else {
false(); // o che tutto e' andato male :)
}
} else {
?>
// qui c'è il form per il login
<?php } ?>
</html>

Ora, il problema è che se io inserisco dati corretti o no, mi verifica lo stesso TRUE, mentre con i dati non corretti dovrebbe darmi la mia funzione false().

Grazie per aiuti futuri.

inviato 9 anni fa
Dark Ninja
X 0 X

Ti restituisce true perchè

if (mysql_query($check_admin, $connect))

controlla che la query sia eseguita correttamente non che i dati siano effettivamente quelli corretti, controllo che probabilmente tu hai effettuato nella tua funzione true(); posizionata nel punto sbagliato.

Dal momento che non so cosa hai scritto nelle funzioni che hai creato, ti riscrivo tutto come farei io:

<?php
$admin_name=$_POST['name']; // qui recupero i dati del form
$admin_password=$_POST['pass'];

if(!empty($admin_name) AND !empty($admin_password)) { // faccio un piccolo controllino (vedro' di aggiungerne altri) e poi la query

require("connect.php"); // mi connetto

$check_admin="SELECT admin_id FROM ".PREF."admin WHERE name = '$admin_name' AND password = '$admin_password'"; // e vedo se i dati sono presenti e se sono corretti
$esegui = mysql_query($check_admin, $connect));
$risultato_query = mysql_num_rows($esegui);

if($risultato_query > 0) {

//login effettuato

} else {

//errore nei dati

}

}

Mi pare di non aver messo errori, provalo  O0

risposto 9 anni fa
Lex84
X 0 X

Vero, grazie mille (nella var $esegui hai chiuso 2 volte la parentesi se non sbaglio)  ;)

risposto 9 anni fa
Dark Ninja
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda