Ragazzi non mi viene in mente niente per quanto riguarda la creazione di un modulo di login
potete dirmi come cominciare?
Ragazzi non mi viene in mente niente per quanto riguarda la creazione di un modulo di login
potete dirmi come cominciare?
comincia a leggere la sezione HTML riguardante i form..
Questa volta, più che un voto.. è favoreggiamento.
fino alla form ci sono, non sono così impedito io parlavo in quanto alle session del php.
non ho idea di come lavorarci
a che livello sei col php??
Questa volta, più che un voto.. è favoreggiamento.
allora ho già creato il template, la css e il metodo get cn cui navigare nel sito tramite i lnk:
es index.php?id=1-2 ecc ecc
avevo creato un modulo test cn la variabile post in una form e funzionava,
appunto era il metodo cn cui volevo provare a fare il form login però non so da dove cominciare
vai alla sezione script e scaricane uno capirai sicuramente come funziona, cmq devi impostare un form cha attinge da in database o un array di utenti oppure imposta manualmente la password ma questo metodo è limitato solo ad un utente ok? ciao
anch'io ho questo problema! creare una pagina di login per un solo utente, l'amministratore. ho trovato questo codice su html.it :
è corretto? ma cosa si intende all'inizio per usr='".filtra_caratteri_dannosi($_POST['user']) e poi per pwd='".md5($_POST['pwd'])?codice:<?php require('db_conn/mysql.php'); if (isset($_POST['user'])) { $query_login="SELECT * FROM tabella_utenti WHERE usr='".filtra_caratteri_dannosi($_POST['user'])."' AND pwd='".md5($_POST['pwd'])."'"; $rslt_login=$mysqlwrapper->Execute($query_login) or die("Errore di autenticazione. "); if (!$rslt_login->EOF) { // Esiste un record con questi username più(firma)password: // inserisco i dati nella sessione session_start(); $_SESSION['Username']=$rslt_login->Fields('usr'); $_SESSION['Usergroup']=$rslt_login->Fields('group'); header('location:main.php'); } else header('location:login_failed.php'); } ?> <html> <head> <title>Esempio login</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body onLoad="document.form1.user.focus()"> <form name="form1" method="POST" action="index.php"> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td>Nome utente: </td> <td><input name="user" type="text" id="user"></td> </tr> <tr> <td>Password: </td> <td><input name="pwd" type="password" id="pwd"></td> </tr> <tr> <td colspan="2"><input name="Submit" type="submit" value="Entra"></td> </tr> </table> </form> </body> </html>
elisa
leggendo brevemente il codice che hai postato quel ".filtra_caratteri dannosi ecc.." è una funzione che controlla credo con delle str_replace o eregi i caratteri che non si vogliono far immettere nel db, come per esempio tag "<" o apici.. o quello che vuoi tu.. invece il parametro md5 è un algoritmo complesso per criptare la password anche nel db e quindi impedire che anche l'amministratore del db possa sapere quale è la tua pass...
spero di essere stato chiaro. :-)
cmq sia credo che quello script sia abbastanza prolisso, se devi fare un log-in solo per l'amminsitratore io non lo farei così lo script, piuttosto creerei due pagine. login.php e check_user.php
nella login.php metterei il form e i controlli javascript:
<script language="javascript">
function Validate() {
var user=document.form1.user.value; //definisco la variabile del campo user
var pass=document.form1.pass.value; // definisco la variabile del campo pass
var regexp=/^([a-zA-Z0-9\.])+$/; // definisco in una espressione regolare che accetto solo lettere e numeri
// controllo se il campo user è vuoto o meno
if ((user == "") || (user == "undefined")) {
alert("Inserire tutti i dati");
document.modulo.user.focus();
return false;
}
//controllo se il campo pass è vuoto o meno
else if ((pass == "") || (pass == "undefined")) {
alert("Inserire tutti i dati");
document.modulo.pass.focus();
return false;
}
// controllo se il campo user contiene solo lettere e numeri
else if (!regexp.test(user)) {
alert("Sono permessi soltanto lettere,numeri ed il punto");
document.modulo.user.focus();
return false;
}
// controllo se il campo pass contiene solo lettere e numeri
else if (!regexp.test(pass)) {
alert("Sono permessi soltanto lettere,numeri ed il punto");
document.modulo.pass.focus();
return false;
}
//INVIA IL MODULO SE TUTTO QUELLO SOPRA VA BENE
else {
document.form1.action = "salva_utente.php";
document.form1.submit();
}
}
</script>
poi qui ci metto il form chiamando i due textfield "user" e "pass" che manderà con method=post i valori alla pagina check_user.php
e qui finisce la pagina login.php
passiamo alla pagina check_user.php
da questa pagina io ricevo i valori dal form, controllo se esiste già una sessione e se esiste la distruggo perchè potrebbe contenere valori che io non voglio, eseguo una query sul db per vedere se i due dati passati dal form esistono nel database e se tutto quello sopra è valido, creo una sessione e ridirigo l'utente alla pagina dopo.
check_user.php
<?php
session_start(); //starto la sessione
include "db.php"; //includo il file per il collegamento al db (parametri vari)
$user = $_POST['user'];
$pass = $_POST['pass']; //converto i valori in variabili semplici
$query= "SELECT * FROM utenti WHERE user='$user' AND pass='md5($pass)' " ;
$sql = mysql_query($query);
$login_check = mysql_num_rows($sql);
if($login_check > 0){
$row = mysql_fetch_array($sql);
$nome=$row["user"]; // controllo nel db se esiste nome utente e pass
// controllo se esiste già una sessione che si chiama come quella che voglio creare e se esiste suppongo che non l'ho creata io e la distruggo per sicurezza
if($_SESSION['nome']) {
$_SESSION=array(); // Desetta tutte le variabili di sessione.
session_destroy(); //DISTRUGGE la sessione.
}
// Registro nella sessione le variabili
session_register('nome');
$_SESSION['nome'] = $nome;
header ("Location:index.php"); // ridirigo l'utente alla pagina successiva se tutto è andato a buon fine.
?>
e questo è tutto.. :-)
ti ringrazio per la gentilissima risposta! ora però mi trovo con un altro problema: non riesco a passare la variabile di sessione alle altre pagine!!
allora la pagina di controllo della login ha il seguente codice:
e la pagina main ha questo codice:codice:$row = mysql_fetch_array($sql); $utente = $row['usr']; if(isset($_SESSION['utente'])) { session_destroy(); } else { session_register('utente'); $_SESSION['utente'] = $utente; } header ('location:main.php'); } else ....
ma non funziona!! mi manda sempre alla pagina login_failed... perché??? Grazie!!!codice:<?php // Controllo accesso session_start(); if (!isset($_SESSION['utente'])) { header('location:login_failed.php'); exit; } // Il resto dello script include('header.htm'); ?> <h3>Area Riservata!</h3> <p class=\"inrilievo\">Benvenuto!</p> <?php include('footer.htm'); ?>
non vedo il session_start() nella pagina di controllo