-
Login
Ciao a tutti!
Avrei un problemino assai facile per chi bazzica nel mondo php da piu tempo di me (io ho sempre usato asp) avrei da fare una sezione login ma ovviamente non riesco a capire dove sbaglio.
Creo il file per la connessione(conn.php):
Codice PHP:
<?php
$connessione = mysql_connect("localhost", "giovanicarrara", "")
or die("Connessione non riuscita: " . mysql_error());
@mysql_select_db("my_giovanicarrara") or die("Impossibile connettersi al database");
?>
poi creo il file che autentica gli utenti (login.php):
Codice PHP:
<?php
session_start();
require"conn.php";
$action = $_POST['action'];
if ($action == "login")
{
$username = $_POST['username'];
$password = $_POST['password'];
$verifico_user = mysql_query("SELECT * FROM utenti WHERE username = '.$username.' and password = '.$password.' and attivo = 1");
$ok_login = mysql_num_rows($verifico_user);
if ($ok_login == 0)
{
echo"Login errato";
}
else
{
echo"Login eseguito";
}
}
else {header("Location: index.php");}
?>
In tutti e 2 i casi mi dice "Login errato" qualcuno mi sa dire perchè?
Grazie 1000
Claudio :wink:
-
Prova a modificare la query in questo modo:
Codice PHP:
$verifico_user=mysql_query("SELECT * FROM utenti WHERE username='".$username."' AND password='".$password."' AND attivo='1'");
-
Hai anche un altro problema, molto più subdolo: hai assegnato come nome di campo una parola chiave di MySQL (il campo "password", per la precisione). Non l'hai proprio dichiarato nel tuo codice, ma dovrebbe essere per questo che è causato l'errore (per averne la controprova, prova a mettere un die("Impossibile eseguire la query") esattamente come hai fatto nello script di connessione).
Per risolverlo hai due soluzioni:
- o chiudi il nome dei campi dentro i "backward quote" che usa anche phpMyAdmin per formulare le sue query (è una specie di apostrofo, ma non è disponibile sulla tastiera italiana a meno di astrusi giri con il tastierino numerico)
- o cambi il nome al campo, chiamandolo ad esempio "pwd" (che non è una parola chiave di MySQL)
Stammi bene...