Ho un problema che mi sta facendo diventare pazzo...
ho un semplice sistema di login, parte da una pagina html con un form, per spedire via Post 3 variabili, nome cognome e password, a una pagina che si occupa di verificarli...
la cosa curiosa, è che il mio script di autenticazione non produce risultati, nessun messaggio di errore, nessun output, nulla, è come fosse vuota...
Ho provato a mettere diversi echo in punti diversi della pagina... qualunque echo messo dopo la dichiarazione delle prime 4 variabili viene completamente ignorato, per non parlare del codice che segue.
E' una cosa molto strana, perche errori di sintassi nell'assegnazione credo di non averne fatti, e in caso li avessi fatti, dovrei ricevere qualche errore, mentre non vedo nulla, i due include a loro volta, in caso di fallimento visualizzano un messaggio di errore, che però non si presenta.
è come se si interrompesse di sua spontanea volonta
Vi posto il codice... magari c'è un errore banale che io per quanto mi sforzi non riesco a vedere... a me pare tutto a posto...
Pagina di invio variabili:
http://dharlet.altervista.org/metso/login.html
Codice:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Login</title>
<link rel="stylesheet" type="text/css" href="stile.css"/>
<style type="text/css">
<!--
div#middleDiv {padding:0;}
div#middleDiv table {width:100%;
}
div#middleDiv table thead tr td{background-color:#7554ac;
text-align:center;
font-weight:bold;}
div#middleDiv table {text-align:left;}
div#middleDiv table tr td.first {width:200px;
text-align:right;}
div#middleDiv table tr td.second {width:300px;}
div#middleDiv table tr td#tdEntra {text-align:center;}
-->
</style>
</head>
<body>
<div id="middleDiv">
<form method="post" action="autenticazione.php">
<table cellpadding="4px" cellspacing="0">
<thead>
<tr>
<td colspan ="2">Login</td>
</tr>
</thead>
<tr>
<td class="first">Nome:</td>
<td class="second"><input type="text" name="nome" size="25" maxlength="50"/></td>
</tr>
<tr>
<td class="first">Cognome:</td>
<td class="second"><input type="text" name="cognome" size="25" maxlength="50"/></td>
</tr>
<tr>
<td class="first">Password:</td>
<td class="second"><input type="password" name="password" size="25" maxlength="50"/></td>
</tr>
<tr>
<td colspan="2" id="tdEntra" ><input type="submit" value="Entra"/></td>
</tr>
</table>
</form>
</div>
</body>
</html>
Pagina di autenticazione
http://dharlet.altervista.org/metso/autenticazione.php
Codice PHP:
<?php
if(!@include('include/config.php'))
die('Inclusione dati Mysql fallita.');
if(!@include('include/fx_var.php'))
die('Inclusione dati Funzioni fallita.');
$regolare = true;
$nome = trim($_POST['nome']);
$cognome = trim($_POST['cognome']);
$password = $_POST['password'];
echo "---";
if(eregi("[a-z\ ']+",$nome))
{
$nome = filtra($nome);
$nome_query = filtra($nome,true);
}
else
$regolare = false;
if(eregi("[a-z\ ']+",$cognome))
{
$cognome = filtra($cognome);
$cognome_query = filtra($cognome,true);
}
else
$regolare = false;
if(!eregi("[a-z0-9]+",$password))
$regolare = false;
else
$password = md5($password);
if(!$regolare)
{
header("location:login.html");
exit;
}
//inizio una nuova sessione
session_start();
//Connessione al database
$connessione = @mysql_connect($db_host,$db_user,$db_password);
if($connessione)
{
if(@mysql_select_db($db_database, $connessione))
{
$query_string = "SELECT amministratore FROM $db_tabella WHERE nome='$nome_query' AND cognome='$cognome_query' AND password='$password'";
$risultato = @mysql_query("SELECT * FROM $db_tabella", $connessione);
if($risultato)
{
if($row = @mysql_fetch_array($risultato))
{
$successo = true;
if($row['amministratore'])
$admin = true;
else
$admin = false;
} else
{
$successo = false;
$err = "I Dati inseriti Non corrispondono a nessun utente.";
}
} else
{
$successo = false;
$err = "Impossibile effettuare la query. Verificare che il database sia accessibile.";
}
} else
{
$successo = false;
$err = "Impossibile selezionare Il database necessario. Verificare la coerenza del nome con il file di configurazione.";
}
} else
{
$successo = false;
$err = "Impossibile stabilire una connessione con il database Mysql. Verificare correttezza dei dati di configurazione";
}
//se la connessione non è avvenuta perchè si è verificato un errore, lo stampo a video,altrimenti,indirizzo alla pagina privata
if($successo)
{
$_SESSION['nome'] = $nome;
$_SESSION['cognome'] = $cognome;
$_SESSION['autenticato'] = true;
$_SESSION['amministratore']= $admin;
$_SESSION['data_login'] = time();
//la sessione ora contiene tutti i dati del login, tranne password
header("location: pannello.php");
exit;
} else
{
?>
<html>
<head>
<title>Errore</title>
<link rel="stylesheet" type="text/css" href="include/stile.css"/>
</head>
<body>
<div id="middleDiv">
<h3>Si è verificato un errore.</h3>
<p><?php echo "$err"; ?></p>
</div>
</body>
</html>
<?php
}
?>
la riga echo "---"; l'ho messa come prova, e se provate a controllare, non la visualizza. Vi è mai capitato? :S