problemi codice php per il login

  • Creatore Discussione Creatore Discussione linus80
  • Data di inizio Data di inizio

linus80

Nuovo Utente
29 Ott 2007
6
0
0
Ciao ragazzi...da un pò di tempo sto programmando in php ma dopo diverse ore non riesco ad uscirne fuori...vi posto il codice...

<?
include("dbconf.php");
$db = mysql_connect($db_host, $db_username, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_database, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$query = 'SELECT username, password, area FROM utente';
$ris = mysql_query($query,$db) or die("Errore nella query: " . mysql_error());
while($riga = mysql_fetch_array($ris)) {
if ($_POST['username']==$riga[username]&&$_POST['password']==$riga[password]){
switch ($riga[area]){
case 1:
header("Location: areariservata.htm");
case 2:
header("Location: home.htm");
break;
}
}
else
header ("Location: errore.htm");
}
mysql_close($db);
?>
 
problema codice

il problema è a partire dal ciclo while($riga = mysql_fetch_array($ris))
non so xkè non entra nello switch ma lo salta e va sempre nella pagina "errore.htm" il login è corretto ma niente...sicuramente avrò trascurato qualcosa...se potessi testarlo anche tu e dirmi dove sbaglio mi faresti un grande favore...
Ti ringrazio per qualunque aiuto tu voglia darmi...
Saluti da linus80
 
che errore ti da?

se metto questo codice mi apre le pagine ma in caso di errore mi dà la pagina bianca...se metto un else (in caso di password sbagliata) mi dà sempre la pagina di errore anche se i dati sono giusti...come posso risolvere? il problema sta nel while
posto il codice che mi dà la pagina bianca in caso di errore
voglio che un utente inserisca username e password e che a seconda dei dati inseriti si apre un gruppo o una pagina.
grazie
<?
include("dbconf.php");
$db = mysql_connect($db_host, $db_username, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_database, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$query = 'SELECT username, password, area FROM utente';
$ris = mysql_query($query,$db) or die("Errore nella query: " . mysql_error());
while($riga = mysql_fetch_array($ris)) {
if ($_POST['username']==$riga[username]&&$_POST['password']==$riga[password]){
switch ($riga[area]){
case 1:
header("Location: areariservata.htm");
break;
case 2:
header("Location: home.htm");
break;
}
}
}
mysql_close($db);
?>
 
ce l'ho fatta da solo!!!

Il codice che riporto qui sotto aveva l'intenzione di gestire l'accesso tramite una login ed una password prelevate da mysql a cui preventivamente mi collego. Il login però era particolare xkè a seconda di chi inserisce i proprio dati si apre una pagina diversa...e dopo tante prove e ore passate al pc sembra che funzioni...ovviamente questo codice è stato simulato in locale...mi chiedo...quali sono i passi necessari per caricare tutto sul mio sito ?(compreso mysql?)
inoltre ci sono dei metodi per proteggere le pagine...non so attraverso cookie o cose del genere? attendo risposta....intanto posto il codice...
PHP:
<?
include("dbconf.php");
$db = mysql_connect($db_host, $db_username, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_database, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$query = 'SELECT username, password, area FROM utente';
$ris = mysql_query($query,$db) or die("Errore nella query: " . mysql_error());
while($riga = mysql_fetch_array($ris)) {
if ($_POST['username']==$riga[username]&&$_POST['password']==$riga[password]){
   switch ($riga[area]){
   case 1:
   header("Location: areariservata.htm");
   die();
   case 2:
   header("Location: home.htm");
   die();
   }
}
else
header ("Location: errore.htm");
}


mysql_close($db); 
?>
 
Problemi con la protezione della pagina e le sessioni

Per la protezione tramite login dai unosguardo a questo tutorial
le pagine php sono 3 essenzialmente:
- la pagina "dbconf.php" che contiene i parametri di configurazione e contiene la funzione session_start();
- la pagina chiamata stampa.php per il login
- infine la pagina da proteggere in php areariservata 0.php
Il problema consiste nel fatto che non riesco a inserire tag html dopo l'if della sessione in areariservata 0.php infatti quando inserisco tag dopo l'if mi da errore...cosa posso fare?come posso risolvere il problema?
posto le pagine stampa.php e areariservata 0.php
Ti ringrazio per ogni aiuto che mi puoi dare

Questa è la pagina per il login
PHP:
<?php
include("dbconf.php");
$_SESSION['username'] = $_POST['username'];
$_SESSION['password'] = $_POST['password'];
$db = mysql_connect($db_host, $db_username, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file dbconf.php");
mysql_select_db($db_database, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file dbconf.php");
$query = 'SELECT username, password, area FROM utenti';
$ris = mysql_query($query,$db) or die("Errore nella query: " . mysql_error());
while($riga = mysql_fetch_array($ris)) {
if ($_SESSION['username']==$riga[username]&&$_SESSION['password']==$riga[password]){
   switch ($riga[area]){
   case 0:
   header("Location: areariservata 0.php");
   
   die();
   case 1:
   header("Location: areariservata 1.php");
   session_unset();
   }
}
else
header ("Location: errore.php");
}
session_destroy();

mysql_close($db); 
?>

areariservata 0.php
PHP:
<html>
<body>
<?php
//includo il file di Configurazione con session_start()) dentro
include "dbconf.php";

//se esiste la variabile $_SESSION['username'] è loggato
if(isset($_SESSION['username']))
	echo "Benvenuto ".$_SESSION['username']." hai effettuato il login con successo</br>Puoi effettuare <a href=\"logout.php\">logout</a>";   
	//Altrimenti non è loggato	
     
else 
	echo "Non hai fatto il login correttamente, mi spiace <a href=\"index.php\">riprova</a>";
?>
   
 </body>
</html>
 
Che errore ti da se inserisci l'HTML, tipo header already sent?
 

Discussioni simili