Pagina php interrotta, senza alcun errore
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