Newsgroup: it.comp.www.php
Titolo: maschera login

Ciao a tutti , uso php su altervista con un db mysql, volevo 
fare una form di login che appena riceve l'input di utenza e 
password richiama un'altra pagina php che riceve il parametro 
utente e fa altre cose , per ora visualizzare l'ultimo avvenuto 
collegamento. 
il codice di login è :
$query="Select * from Tb_settaggi where utente = '$nome' AND 
password = '$password'";
$results = mysql_query($query);
   // Se ha trovato un record
    if(mysql_num_rows($results) == 1)
    {header("Location:NuovoFile.php?nome=$_POST[nome]
&password=$_POST[password]"); 
	}
		else {
		$messaggio = urlencode("Utente o Password non 
validi"); 
	    	header("location: $_SERVER[PHP_SELF]?
msg=$messaggio"); 
	    	exit; 
		}
	}
mysql_close($connection);
?>
mentre la pagina che riceve NuovoFilr.php per ora è 
semplicemente con quest codice:
<?php
echo "Io mi chiamo " .$_post[$nome]. "<br>";
?>
però non mi visualizza la variabile utente,mentre nel browser 
vedo sia utente che password. 
Dov'è l'errore ? 
Altra domanda : come fare per passare i parametri senza che si 
vedano nel browser? 
Php lo trovo veramente difficile...
grazie a tutti
-- 
Postato da Virgilio Newsgroup: lo usi da web ma con le funzioni del newsreader 
http://newsgroup.virgilio.it
Gerarchie it, italia, it-alt, tin, it.binari. Unico!


$_post[$nome] ?????????
forse prova $_post['nome'] sempre se il campo html si chiama nome.
comunque spero che tu non abbia fatto
$nome = $_post['nome'];
$password = $_post['password'];
 > $query="Select * from Tb_settaggi where utente = '$nome' AND
 > password = '$password'";
perchè se fosse così si buca in 1 secondo :)
Ciao

 Php lo trovo veramente difficile...
bene, quale linguaggio trovi facile?

 Php lo trovo veramente difficile...
Quale linguaggio reputi più semplice di PHP? 
Uno dei vantaggi/svantaggi di PHP è proprio quello
di essere estremamente semplice, almeno a livello
di programmazione (i concetti sono uguali in tutti
i linguaggi) tant'è che permette di far funzionare
in maniera più o meno corretta, codice come quello 
che hai scritto che non si può definire in maniera
differente da accozzaglia di comandi messi li
senza un senso.
C'è almeno un errore per riga, a cominciare con
l'indentazione del codice che è assente e dove è
presente è sbagliata.
Credo ti convenga prima leggere un manuale che parta
dalle basi delle stringhe e da come si scrivono quando
contengono variabili, degli array, come si scrivono e
come si richiamano, poi passare a _GET e _POST, poi alle
sql injection e così via.
Insomma, ti conviene partire dall'ABC perchè in quel codice
non c'è nulla di giusto, compreso il metodo di controllo
password, che messo come è messo li, ti obbliga a salvare
la password o in chiaro, o con un algoritmo soggetto a
rainbox table come l'md5.

 algoritmo soggetto a rainbox table come l'md5.
?


l'hash md5 di una stringa è sempre uguale.
visto che la password viene confrontata direttamente
a livello di database senza una select preventiva, è
impossibile fare una cosa tipo:
crypt($newpwd, $oldpwd) e verificare l'hash generato
basandosi sul salt della password criptata.
con un "where password = '$password'" fai verificare la
stringa al database, il che implica il non aver preso
la password per generarne l'hash corretto.
altrimenti prima prendi utente e password da database,
poi a livello di php fai il check tra la password
immessa e quella criptata e se ok, vai avanti.
il check è lato php e non lato mysql.