ti linko questa discussione perche il succo è lo stesso
http://forum.mrwebmaster.it/php/3080...tml#post115594




Salve a tutti,
Dovrei creare un accesso con estrazione dei dati dal db, chiamato utenti. E poi effettuare il login. Inserendo username e Password. Visualizzando possibilmente, il benvenuto pinco pallino (ossia il nome). Chi mi puó aiutare per favore ????
ti linko questa discussione perche il succo è lo stesso
http://forum.mrwebmaster.it/php/3080...tml#post115594
Ciao,
prova a leggere anche questa discussione
http://forum.mrwebmaster.it/php/2882...li-logout.html
e posta un po di codice




Ciao Cricric,
Io ho dei codici ma sono incompleti e non funzionanti per il nuovo sito che sto cercando di fare. A parte la pagina d'iscrizione, che quello funziona perfettamente. Il problema principale, secondo me, è che il sistema non riconosce la password e non il motivo. Ho trovato un vecchio esempio che ti posto qua. Considera, che il nuovo db è a livelli, ossia, c'è un campo chiamato autorizzato = 0 e 1 corrisponde a non autorizzato. Ora ti posto quello che ho sperando di cercare di capire come potrlo modificare e renderlo funzionante.
Tabella utenti:
Suggeritami da borgo l'ultima voce. Se sono maggiorenni compoarirà il nome e cognome, se sono minorenni comparirà solo lo username.Codice PHP:
create table utenti (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
nome VARCHAR(30) NOT NULL,
cognome VARCHAR(30) NOT NULL,
username VARCHAR(30) NOT NULL,
email VARCHAR(40) NOT NULL,
password VARCHAR(255) NOT NULL,
autorizzato ENUM('0', '1') DEFAULT '0',
PRIMARY KEY (id)
);
Questo è il vecchio codice che adoperavo all'inizio, che sicuramente va modificato, l'ho chiamata provasessione.php:
E poi c'è la pagina riservata, che viene chiamata paginaris.php:Codice PHP:
<?php
require_once("connetti.php"); <--- Questo richiama il file di configurazione del db
session_start();
if(isset($_SESSION['login'])){
$id=$_SESSION['login'];
$cerco_user=mysql_query("SELECT * FROM utenti WHERE id='$id'");
while($leggo_dati_user=mysql_fetch_array($cerco_user)){
$login=$leggo_dati_user['login'];
//echo '<font face="Comic Sans MS"> <body bgcolor = "#000000"> <font color="yellow">';
}
}
else{
echo "<form action='' method='POST'>
<CENTER> <h1>
PER ENTRARE DIGITARE LOGIN & PASSWORD
</center> </h1>
<center>
Username: <input type='text' name='username'><br><br>
Password: <input type='password' name='password'><br><br>
<input type='submit' name='logga' value='Loggati'>
</center> </br>
</form>";
//if(isset($_POST['logga']) {
error_reporting(E_ALL ^ E_NOTICE);
if($_POST['logga']){
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$pass=md5($password);
//echo $hash;
$cerco=mysql_query("SELECT id FROM utenti WHERE username='$username' AND password='$pass'");
while($prelevo_id=mysql_fetch_array(($cerco))){
$id=$prelevo_id['id'];
}
$x=mysql_num_rows($cerco);
if($x==0){header("Location:failed.html");}
else{$_SESSION['login']=$id;header("Location:benvenuto.php");}
}
}
?>
Ci sarebbe anche il file login.php, che vorrei mettere tutto insieme, ossia il controllo dello username e della password. Vedi se tante volte nei codici che ho postato, mi puoi dare una mano a modificarli. Grazie. Aspetto come al solito tue notizie. Intanto provo anche il codice opostato, nella discussione che mi hai inviato, non si sa mai nella vita che mi funzioni.Codice PHP:
<?php
require_once("connetti.php");
session_start();
if(isset($_POST['username']) || isset($_POST['password']))
{
echo "Ciao " . $_SESSION['username'];
}else{
echo "Accesso non consentito";
}
?>
In questa parte di codice devi aggiungere in sessione il nome Utente se poi vuoi visualizzarlo in un altra pagina
ho fatto tre modifiche commentateCodice PHP:// aggiungi alla select anche il nome utente
$cerco = mysql_query("SELECT id,username FROM utenti WHERE username='$username' AND password='$pass'");
while ($prelevo_id = mysql_fetch_array(($cerco))) {
// preleva anceh la username
$id = $prelevo_id['id'];
$username = $prelevo_id['username'];
}
$x = mysql_num_rows($cerco);
if ($x == 0) {
header("Location:failed.html");
} else {
// metti in sessione anche il nome utente
$_SESSION['username'] = $username;
$_SESSION['login'] = $id;
header("Location:benvenuto.php");
}




Ciao,
ti ringrazio. Ma se il fatto che non riesco a connettermi persiste, cosa debbo fare ??? Ho resettato anche la tabella più di una volta. Sai ogni tanto si sputtana. Ora riprovosubito il codice. Ah la parte riguardante la pagina riservata ??? C'è anche quella per caso ???
la pagina riservata andrebbe scritta piu omeno cosi
anche se sarebbe meglio creare una funzione che controlli melgio la validita della sessione, ma si puo aggiungere piu avantiCodice PHP:<?php
require_once("connetti.php");
session_start();
if ($_SESSION['username']) {
echo "Ciao " . $_SESSION['username'];
} else {
echo "Accesso non consentito";
}
?>
sarà un problema di connetti.phpil fatto che non riesco a connettermi persiste
che errore ti restituisce?




Ciao,
nessun errore, non mi fa entrare. ora provo i due codici che mi hai dato e vediamo se tante volte risolvo. Sono sempre più cinvinto che dipenda dalla criptazione della password non so il perchè bah.




Ciao,
Allora non capisco un tubo del perchè non va. Comunque. Ti posto il codice che tu mi ha fatto, magari sbaglio io non lo so. Mi fa inkazzare...
Questo si chiama login.php
Questa è la pagina riservata chiamata paginaris.php:Codice PHP:
<?php
require_once("connetti.php");
if (!isset($_POST['log'])) {
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Loggati</title>
<center> <H1>AREA RISERVATA: PREGO EFFETTUARE IL LOGIN </H1>
<form action= '' method="POST">
<font face="Comic Sans MS">
Username: <input type="text" name="username" maxlength="30" size ="32"> <br> <br>
Password: <input type="password" name="password" maxlength="12" size ="14"> <br> <br>
</font>
<center>
<input type="submit" name="log" value="Loggati" />
</center> </form>
</head>
</body>
<?php
// da qua inizia il tuo codice con l'if iniziale del tasto "Loggati"
} else {
// aggiungi alla select anche il nome utente
$cerco = mysql_query("SELECT id,username FROM utenti WHERE username='$username' AND password='$pass'");
while ($prelevo_id = mysql_fetch_array(($cerco))) {
// preleva anceh la username
$id = $prelevo_id['id'];
$username = $prelevo_id['username'];
}
$x = mysql_num_rows($cerco);
if ($x == 0) {
header("Location:failed.html");
} else {
// metti in sessione anche il nome utente
$_SESSION['username'] = $username;
$_SESSION['login'] = $id;
header("Location:paginaris.php");
}
}
?>
E va sulla pagina di failed.php Non capisco assolutamente il perkè non va. Magari provalo anche te.Codice PHP:
<?php
require_once("connetti.php");
session_start();
if ($_SESSION['username']) {
echo "Ciao " . $_SESSION['username'];
} else {
echo "Accesso non consentito";
}
?>
ciao
nella login mi sembra che manchi session_start().
session_start() deve esserci in tutte le pagine in cui usi le sessioni