Ragazzi ho un problema:
Con questo codice effettuo un login su un'altra pagina, su un hosting hostingsolutions.it , con Sistema operativo : Win 2000 - Server web : IIS 5, con installato PHP 5.0.5, e va benissimo:
Vedi quì: http://www.masserialemarangi.it/tariffe/pass/login.php
Codice:
<?php
// Variables
// Path to the config file.
$config = "conf.php";
// End Variables
// Load config file.
require($config);
// Initial File checks to make sure the files exist before using them.
if(!file_exists($user_data)) {
echo "<h1 align=\"center\">$user_data_file_not_exist</h1>";
exit;
}
elseif(!is_readable($user_data)) {
echo "<h1 align=\"center\">$user_data_file_not_readable</h1>";
exit;
}
elseif($log_login) {
if(!file_exists($log_file)) {
echo "<h1 align=\"center\">$log_file_not_exist</h1>";
exit;
}
elseif(!is_writable($log_file)) {
echo "<h1 align=\"center\">$log_file_not_writable</h1>";
exit;
}
}
// Perform operation according to command:
switch ($cmd) {
case "login":
if(check_user($username, $password, $name, $log_login)) {
session_start("pageprotect");
session_register('valid');
session_register('username');
session_register('name');
// Uses MD5 and soundex to encode "valid" var to avoid easy access.
$valid = strrev(soundex(name).md5($username));
if ($log_login) {
$fd = @fopen($log_file, "a");
fputs($fd, time()."|$name|$username\n");
fclose($fd);
}
header("Location: $first_page?".SID);
exit;
} else {
header("location: $login_page?cmd=invalid");
exit;
}
break;
case "unauth":
session_start("pageprotect");
session_destroy();
print_header();
echo "<h3 align=\"center\">$unauthorised[/i]</h3>";
print_login();
print_footer();
break;
case "invalid":
print_header();
echo "<h3 align=\"center\">$invalid_username_password[/i]</h3>";
print_login($username);
print_footer();
break;
case "logout":
session_start("pageprotect");
session_destroy();
print_header();
echo "<h3 align=\"center\">$logged_out[/i]</h3>";
print_login($username);
print_footer();
break;
default:
print_header();
print_login($username);
print_footer();
break;
}
function print_header() {
// Prints the header of the page.
echo "<html><head><title>Login</title></head><body style=\"font-family:arial;\">";
}
function check_user($username, $password, &$name, &$log) {
// Checks to see the user is valid.
if(($username == $GLOBALS[admin_username]) && ($password == $GLOBALS[admin_password])) {
$name = "Administrator";
$log = false;
return true;
}
else {
$file = @file($GLOBALS[user_data]);
$pw = md5($password);
$valid = false;
if(is_array($file)) {
foreach($file as $user) {
$dat = explode("|", $user);
if($username==$dat[0] && $pw == trim($dat[2])) {
$valid = true;
$name = $dat[1];
}
}
}
return $valid;
}
}
function print_login($username='') {
// Prints the login form.
echo "<h2 align=\"center\">$GLOBALS[user_login]</h2>
<form method=\"post\" action=\"$GLOBALS[SCRIPT_NAME]\">
<input type=\"hidden\" name=\"cmd\" value=\"login\">
<table align=\"center\">
<tr><td>Username:</td><td><input type=\"text\" name=\"username\" value=\"$username\"></td></tr>
<tr><td>Password:</td><td><input type=\"password\" name=\"password\"></td></tr>
<tr><td colspan=\"2\" align=\"center\"><input type=\"submit\" value=\"Login\"></td></tr></table></form>";
}
?>
--------------------------------------------------
Lo stesso codice nello stesso server ma con installato PHP 5.0.4
mi da un errore come:
Fatal error: Call to undefined function print_footer() in d:\www\MW_qPcaqIPqq\hotelcecere.com\tariffe\pass\l ogin.php on line 84
Vedi quì: http://www.hotelcecere.com/tariffe/pass/login.php
L'hosting mi dice di contattare l'amministratore del software, ma non potrebbe essere invece un problema di settaggio nel PHP 5.0.4?
Come posso risolvere? Ciao e Grazie!