- Home
- Categorie
- Coding e Sistemistica
- PHP
- Cookie o sessioni? Non ci ho capito niente in nessun caso
-
Cookie o sessioni? Non ci ho capito niente in nessun caso
Ciao a tutti.. ho questo problema. Ho creato un form di login in flash che passa i dati ad una pagina PHP. Il problema ce l'ho proprio sul codice PHP.
La mia pagina è composta così
[php]<?
//Includo la connessione al database
include('connessione.php');
//Queste sono le variabili che vengono inviate dal filmato flash
$user=$_POST['user'];
$pass=$_POST['pass'];//connessione al database
if ($user && $pass){
//Creao la query
$query = "SELECT * FROM tb_utentidownload WHERE username = '$user' AND userpassword = '$pass'";
$result = mysql_query( $query ) or die ("query errata");
error_log('query: '.$query);//Controllo lo stato del login $num = mysql_num_rows( $result ); if ($num == 1){ print "status=Grazie per aver effettuato il Login.&checklog=1"; } else { print "status=Spiacenti i suoi dati non hanno avuto riscontro con il nostro database&checklog=2"; }
}
?>
[/php]Dove viene controllato lo stato del login tramite if ($num == 1), vorrei che se la condizione fosse verificata, oltre a avviare la funzione PRINT si desse inizio ad una sessione o venisse settato un cookie. Questo perchè altrimenti le altre pagine che dovrebbero essere parte dell'area protetta non so come proteggerle.
In una di queste "pagine tipo" vorrei ci fosse qualcosa del genere:[PHP]if(condizione) {
vedo il codice html
} else {
echo "Spiacenti, devi effettuare l'accesso per poter visualizzare i contenuti";
}[/PHP]Mi date una manina? Grazie mille..
Cecco
-
Innanzitutto, se si tratta di pagine con sessioni, bisogna controllare se arrivano valori via **$_POST **quindi:
if (!$_HTTP_POST_VAR) deve essere il primo dei controlli da fare
dopo di che passiamo a verificare i dati che arrivano controllando che siano di un utente esistente nel nostro DATABASE con una query di tipo COUNT ad esempio$user = $_POST['user'];
$pass = $_POST['pass']; // LA PASSWORD TI CONSIGLIEREI DI SCRIVARLA IN MD5 NEL DATABASE COSI' DA DIVENTARE PER IL CONFRONTO $pass = md5($_POST['pass']);$COUNT = "SELECT COUNT(*) FROM utenti WHERE username=$user" AND password='$pass';
$QC = mysql_query($COUNT);
$RC = m ysql_fetch_row($QC);
$TC = $RC[0]; // TOTALE UTENTEif ($TC > 0) {
$SESSION['user'] = $user;
$SESSION['pass'] = $pass; }
else {
echo "Non sei autorizzato"; }Spero di averti dato input al fine di finire il tuo lavoro.
Se hai ancora problemi fammi sapere che ti do un'altr dritta.
CIAO