Hvid skærm ved forkert logon
Jeg har følgende problem. Se evt. http://www.damholdt.dk/musikal/index2.php.Jeg kan fint nok logge på med den emailadresse og kode som er oprettet i databasen, men lige så snart jeg taster forkert emailadresse/kode (ja, eller ingen for den sags skyld) får jeg bare en helt hvid skærm uden source.
Koden ser ud som følger:
---------------------------------------------
<?php
require 'db.inc.php';
$head_message = "Du er ikke logget ind i øjeblikket. Benyt loginboksen herunder hvis du vil logge ind.";
session_start();
# Allerførst finder vi ud af om brugeren allerede er logget på
if(isset($_SESSION[email])) {
$login = true;
} else {
$login = false;
};
# Ønsker brugeren af logge ud, så skal dette naturligvis ske som det første
if ($login && $_GET['logout']) {
unset($_SESSION['email'], $_SESSION['password'], $_SESSION['name'], $_SESSION['lastonline'], $_SESSION['id']);
$login = false;
};
# Hvis ikke brugeren er logget ind undersøger vi om loginboksen er udfyldt
if (!$login) {
if (isset($_POST['login_email'], $_POST['login_password'])) {
# Vi starter sessions og hiver variablerne ud af formen...
$login_email = $_POST['login_email'];
$login_password = md5($_POST['login_password']);
# ...og kontrollerer om brugeren eksisterer i databasen
open_db();
$login_result = mysql_query("SELECT * FROM musikal_users WHERE user_email = '$login_email' AND user_password = '$login_password'") or die(mysql_error());
$user_row = mysql_fetch_object($login_result) or die(mysql_error());
close_db();
if (!empty($user_row) && $user_row->user_email == $login_email && $user_row->user_password == $login_password) {
# Yes yes. Brugeren er god nok! Så logger vi ind og sætter sessions
$login = true;
$_SESSION['email'] = $login_email;
$_SESSION['password'] = $login_password;
$_SESSION['name'] = $user_row->user_firstname . ' ' . $user_row->user_surname;
$_SESSION['lastonline'] = $user_row->user_lastonline;
$_SESSION['id'] = $user_row->user_id;
# Hvis det er første gang brugeren logger på registrerer vi det i databasen
if (!$user_row->user_active) {
open_db();
mysql_query("UPDATE musikal_users SET user_active = 1 WHERE user_email = '$login_email'") or die(mysql_error());
mysql_query("UPDATE musikal_users SET user_activated = NOW() WHERE user_email = '$login_email'") or die(mysql_error());
close_db();
echo "<script language=\"javascript\" type=\"text/javascript\">alert('Dette er første gang du logger på MusiKal. Dit abonnement startes nu.');</script>";
# Og vi ændrer lastonline-beskeden
$head_message = 'Hej ' . $_SESSION['name'] . '! Dette er første gang du logger på. [<a href="' . $PHP_SELF . '?logout=1" class="logout">log ud</a>]';
$kill_head = true;
};
# Vi retter logintidspunkt i databasen
open_db();
mysql_query("UPDATE musikal_users SET user_lastonline = NOW() WHERE user_email = '$login_email'") or die(mysql_error());
close_db();
# Hvis email og kode ikke passer sammen, så sender vi brugeren tilbage med besked om at ændre fejlen
} else {
echo "<script language=\"javascript\" type=\"text/javascript\">alert('Fejl i email og/eller adgangskode. Ret fejlen og prøv igen!');</script>";
header('Location: $PHP_SELF');
};
};
};
# Hvis brugeren er logget ind eller bliver det vha. ovenstående skal vi skabe adgang til de hemmelige ting
if($login) {
# Vi skal lige have styr på tidspunktet og lavet velkomstbeskeden
if (!$kill_head) {
$datefromdb = $_SESSION['lastonline'];
$year = substr($datefromdb,0,4);
$mon = substr($datefromdb,4,2);
$day = substr($datefromdb,6,2);
$hour = substr($datefromdb,8,2);
$min = substr($datefromdb,10,2);
$sec = substr($datefromdb,12,2);
$orgdate = date("j/n-Y, \k\l. H:i.s ",mktime($hour,$min,$sec,$mon,$day,$year));
$head_message = 'Hej ' . $_SESSION['name'] . '! Du var sidst online d. ' . $orgdate . ' [<a href="' . $PHP_SELF . '?logout=1" class="logout">log ud</a>]';
};
};
?>
---------------------------------------------
På forhånd tak!
