area riservata: Parse error: parse error in c:\programmi\easyphp1-8\www\a

Ciao a tutti,

sto creando una semplice area riservata, ma rilevo un errore potreste aiutarmi a capire dove sto sbagliando. Grazie mille in anticipo, segnalo lerrore:

Parse error: parse error in c:\programmi\easyphp1-8\www\area riservata_02\autentica.php on line 34

<?php
//Richiamo il collegamento al database
require('db.php');

//Avvio  o continuo la sessione
session_start();

//Otteniamo l'username e la password
$username=$_POST['username'];
$password=$_POST['password'];
$passwd = md5('$password');


//Impostiamo la query...
$querySQL= "SELECT * FROM utenti WHERE 
           'username' = '$username' 
            and 
        ' password' = '$passwd' ";

//Eseguiamo la query
$result=mysql_query($querySQL);

//Controllo se la query è andata a buon fine
if(!$result){
die ("Errore nell'esecuzione della query: <br>".mysql_error());
}
$rows=mysql_fetch_array($result);

//Verifico se l'username e la password sono sbagliati
if(mysql_num_rows($result)==0 and $rows['password'] != $passwd
{

//Mandiamo l'errore e terminiamo lo script
 die ("Username e/o password errati <br><a href='login.php'>Torna indietro</a>");
}
//Altrimenti...
else
{
//E salviamo i dati in essa
$HTTP_SESSION_VARS['username'] = $username;
$HTTP_SESSION_VARS['password'] = $passwd;

header("Location: riservata.php");
}
mysql_close();
?>
[/code
inviato 10 anni fa
wutangrob
X 0 X

if(mysql_num_rows($result)==0 and $rows['password'] != $passwd )

manca la chiusura della parentesi

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

Ciao di nuovo,

ti ringrazio per avermi segnalato l'errore, avrei un'altro interrogativo  adesso lo script mi riporta indietro cioè non effettua il login, mi dice, come da codice, che user e la password sono errati qualche idea sulla causa delle errore...

forse ho popolato male la tabella utenti?

<?php
//Richiamo il collegamento al db
require('db.php');

//Popolo la tabella utenti
$querySQL= "INSERT INTO utenti (username , password) 
           VALUES ('wutangrob', md5('69laotze'))";

//Eseguo la query
$result= mysql_query($querySQL);

//Controllo se la query è andata a buon fine
if(!$result){
die ("Errore nell'esecuzione della query: <br>".mysql_error());
}
?>

grazie

wutangrob

risposto 10 anni fa
wutangrob
X 0 X

Secondo me a prima vista le cose potrebbero essere 2:

- controlla che quando fai la select per l'autenticazione, username e password siano uguali a quelli inseriti nel DB, (la password dovrai controllare quella criptata ) 

- se ti torna indietro, vuol dire che entra in questo if:

if(mysql_num_rows($result)==0 and $rows['password'] != $passwd
{

//Mandiamo l'errore e terminiamo lo script
 die ("Username e/o password errati <br><a href='login.php'>Torna indietro</a>");
}

fatti l'echo delle due condizioni dell'if, prima dell'if stesso e vedi cosa ti stampa:

echo mysql_num_rows($result)." -- pass1: ".$rows['password']." pass2: ". $passwd;
exit;

PS già che ci sei, stampa la query e provala direttamente in mysql, così vedi se è quello il problema...

Alla fine della fiera, prova a fare un po' di debug facendo un po' di echo e vedi dove può essere il prob...

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

Ciao,

ho risolto in questo modo anche se per adesso ho abbandonato L'MD5. riproverò.

<?php
//Richiamo il collegamento al db
require('db.php');
//avvio o continuo la sessione
session_start();
//Verifico la password l' username
$username=$_POST['username'];
$password=$_POST['password'];
//Controllo se l' username e la password non sono vuoti
if((strlen($username) == 0) and (strlen($password) == 0)){
 echo("Per favore inserisci un'username e una password! ".mysql_error());
}else{
//Imposto la query
$querySQL ="SELECT username, password FROM utenti WHERE username = '".$username."' and '".$password."'";
//Eseguo la query ed effettuo un controllo
$result = mysql_query($querySQL) or die(mysql_error());
//Estrapolo i dati dalla query e controllo se la query è andata a buon fine 
if(mysql_num_rows($result) == 1 ){ 
//Passo l'utente alla sessione
$_SESSION['username'] = $username; 
$_SESSION['password'] = $password; 
//Effettuo il redirect alla pagina riservata
header("Location: riservata.php"); 
exit();    
     
} else {   
die ("Username e/o password errati <br><a href='login.php'>Torna indietro</a>"); 
}  
}              
//Libero la memoria
mysql_free_result($result);
//Effettuo il Logout
if(@$_GET['logout'] == 1){ 
//Desetto tutte le variabili di sessione   
$_SESSION = array(); 
//Distruggo le sessioni
session_destroy(); 
}
//Chiudo la connessione a mysql
mysql_close(); 

?>

Ps:se avete qualche consiglio da darmi per migliorare lo script, sono qui. Grazie mille in anticipo.

risposto 10 anni fa
wutangrob
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda