buongiorno a tutti
mi aiutereste a capire come e cosa devo fare per creare un form di login in una pagina?
poi autenticare l'utente all'accesso e quindi entrare in un'altra pagina passando come parametri username?
grazie
buongiorno a tutti
mi aiutereste a capire come e cosa devo fare per creare un form di login in una pagina?
poi autenticare l'utente all'accesso e quindi entrare in un'altra pagina passando come parametri username?
grazie
Ciao!
Ecco il form di login, situato magari in pagina.html ^^
<form name="login" method="POST" action="login.php">
Username:<input type="text" name="username">
Password :<input type="password" name="password">
<input type="submit" Value="entra">
</form>
Ecco la parte importante, login.php
<?php
session_start();
function login($username,$password) {
//Una funzione che cerca dati in una tabella mysql o pgsql.....
//Ma restituisce true se trova in corrispondenza di $username la password $password
//Se non sai come fare postalo nel forum e risponderemo =)
}
if (login($_POST["username"],$_POST["password"])) {
$_SESSION["user"] = $username;
echo "
Benvenuto ".$_SESSION["user"]."</p>";
} else {
echo "
Username o Password scorretti! Riprova</p>";
}
?>
In questo modo passando i valori POST username e pasword(inseriti nel form di login) come argomenti della funzione login verrà eseguito un test, in caso di esito positivo, il nome utente viene registrato nella sessione, e ci rimarrà finchè non effettuerà logout o l'istanza del browser verrà chiusa (anche se su quest ultimo punto non sono sicuro al 100%)
Digital Riot!
http://fatmatt.wordpress.com
-Chi è disposto a rinunciare alla propria libertà in cambio di sicurezza, non merita ne libertà ne sicurezza- Benjamin Franklin
ti ringrazio per l'informazione che mi hai dato
ora inserisco e provo un pò
ti faccio sapere fra un pò
sto scrivendo in PHP cambia qualcosa?
No se vuoi fare una pagina php invece che html non cambia nulla, occhio però alla formattazione dei doppi apici però![]()
Digital Riot!
http://fatmatt.wordpress.com
-Chi è disposto a rinunciare alla propria libertà in cambio di sicurezza, non merita ne libertà ne sicurezza- Benjamin Franklin
ho inserito ma non funziona
Cmq io ho la pagina Login.php dove si inseriscono username e password e premendo "Entra" dovrebbe eseguire il login ed entrare in AccessoEffettuato.php o AccessoNegato.php
ok?
spiegami bene bene se non ti dispiace
aiutatemi
L'accesso viene controllato dalla pagina php, non puoi fare in modo che se i dati son corretti va in una pagina altrimenti nell'altra direttamente dal form di invio perchè lo script deve innanzitutto controllare la validità dei dati inseriti.
Quindi
Prima cè il form che fornisce l'interfaccia per inviare i dati
una volta che premi invia, i dati POST vengono inviati ad un'altra pagina php che li elabora, ma prima di elaborarli non si è a conoscenza dell'esito del login quindi non puoi scrivere due pagine accessoNegato o corretto perchè non cè modo di determinarlo prima!
A questo punto i dati arrivano alla pagina login.php che li elabora come ho scritto
Chiaramente la funzione devi definirla, io lho lasciata vuota per permetterti di scegliere il metodo di autenticazione che preferisci!Codice PHP:
<?php
session_start();
function login($username,$password) {
//Una funzione che cerca dati in una tabella mysql o pgsql.....
//Ma restituisce true se trova in corrispondenza di $username la password $password
//Se non sai come fare postalo nel forum e risponderemo =)
}
if (login($_POST["username"],$_POST["password"])) {
$_SESSION["user"] = $username;
echo "
Benvenuto [b]".$_SESSION["user"]."[/b]</p>";
} else {
echo "
Username o Password scorretti! [url='pagina.html']Riprova[/url]</p>";
}
?>
Il succo della questione è che se i dati corrispondono (magari in una tabella mysql o in un file) la funzione login restituisce TRUE e l'username viene salvato nella sessione corrente
Se i dati non corrispondono visualizza il messaggio di errore
Digital Riot!
http://fatmatt.wordpress.com
-Chi è disposto a rinunciare alla propria libertà in cambio di sicurezza, non merita ne libertà ne sicurezza- Benjamin Franklin