Ciao a tutti ragazzi, premetto che non sono esperto di php, ho scaricato uno script per la gestione utenti ci ho lavorato poco sopra ed adesso mi trovo dinanzi ad un problema non mio ma dello script. Vi spiego.....
Io nella pagina index.php ho messo questo codice qui:
Codice PHP:
<?PHP
include ("functions.php");
//if the user is logged in.
if (is_logged_in($user)) {
$cookie_read = explode("|", base64_decode($user));
$username = $cookie_read[1];
//put your code here (protected page).
echo "<div style=\"width:270px; background-color: #E1F9FF; font-family: Arial; font-size: 12px; color:black;\">Ciao [b]$username[/b], [[b] <a href=\"users.php\" style=\"color:navy;\">Il Mio Account</a>[b] ] [[/b] <a href=\"users.php?maa=Logout\" style=\"color:navy;\">Logout</a>[/b] ]</div>
";
}else{
//header("Location: users.php"); die();
echo "<div style=\"width:270px; background-color: #E1F9FF; font-family: Arial; font-size: 12px; color:black;\">Salve visitatore, puoi effettuare il [b] <a href=\"users.php\" style=\"color:black;\">Login</a> [/b] o in alternativa puoi [b]<a href=\"users.php?maa=Register\" style=\"color:black;\">Registrarti</a> [/b]</div>
";
}
?>
Ho già letto qui sopra un topic su questo script ma non ho trovato la soluzione.
Praticamente fin qui va tutto bene, quando effettuo il login nella pagina users.php e torno sulla home mi dice Ciao Mimmo etc. etc.
Il problema sta nel fatto che se io mi collego ad esempio alla pagina index.php?pag?=scriviinbacheca che è una pagina riservata e quindi ci metto il controllo con la funzione is_logged_in , mi da un errore perchè richiamo due volte questa funzione stando sia nella index principale, sia nella pagina che ho scriviinbacheca.php che ho richiamato con la funzione include. C'è un modo per non fare questo errore? ripeto, ho letto un topic dove c'era lo stesso errore ma non è stata data la soluzione. L'errore è il seguente ora lo scrivo....
Codice PHP:
Fatal error: Cannot redeclare is_logged_in() (previously declared in /web/htdocs/www.unitiperilmondo.it/home/sito/functions.php:124) in /web/htdocs/www.unitiperilmondo.it/home/sito/functions.php on line 141
mentre invece la pagina functions.php è la seguente
Codice PHP:
<?
###########################################
#-----------Users login system------------#
###########################################
/*=========================================\
Author : Mohammed Ahmed \\
Version : 1.2 \\
Date Created: Aug 20 2005 \\
---------------------------- \\
Last Update: 26-APR-2008 \\
---------------------------- \\
Country : Palestine \\
City : Gaza \\
E-mail : [email]m@maaking.com[/email] \\
WWW : [url]http://www.maaking.com[/url] \\
Skype : maaking \\
\\
===========================================\
------------------------------------------*/
//skip the functions file if somebody call it directly from the browser.
if (eregi("functions.php", $_SERVER['SCRIPT_NAME'])) {
Header("Location: index.php"); die();
}
// Report all errors and ignor notices
error_reporting(E_ALL ^ E_NOTICE);
// Disable magic_quotes_runtime
set_magic_quotes_runtime(0);
if (!ini_get("register_globals")) {
import_request_variables('GPC');
}
$phpver = phpversion();
if ($phpver < '4.1.0') {
$_GET = $HTTP_GET_VARS;
$_POST = $HTTP_POST_VARS;
$_SERVER = $HTTP_SERVER_VARS;
}
$phpver = explode(".", $phpver);
$phpver = "$phpver[0]$phpver[1]";
if ($phpver >= 41) {
$PHP_SELF = $_SERVER['PHP_SELF'];
}
if(isset($admin)){
$admin = base64_decode($admin);
$admin = addslashes($admin);
$admin = base64_encode($admin);
}
if(isset($user)){
$user = base64_decode($user);
$user = addslashes($user);
$user = base64_encode($user);
}
foreach ($_GET as $sec_key => $secvalue) {
if ((eregi("<[^>]*script*\"?[^>]*>", $secvalue)) ||
(eregi("<[^>]*object*\"?[^>]*>", $secvalue)) ||
(eregi("<[^>]*iframe*\"?[^>]*>", $secvalue)) ||
(eregi("<[^>]*applet*\"?[^>]*>", $secvalue)) ||
(eregi("<[^>]*meta*\"?[^>]*>", $secvalue)) ||
(eregi("<[^>]*style*\"?[^>]*>", $secvalue)) ||
(eregi("<[^>]*form*\"?[^>]*>", $secvalue)) ||
(eregi("<[^>]*img*\"?[^>]*>", $secvalue)) ||
(eregi("<[^>]*onmouseover*\"?[^>]*>", $secvalue)) ||
(eregi("\([^>]*\"?[^)]*\)", $secvalue)) ||
(eregi("\"", $secvalue))) {
die ("not allowed");
}
}
foreach ($_POST as $secvalue) {
if ((eregi("<[^>]*onmouseover*\"?[^>]*>", $secvalue)) ||
(eregi("<[^>]script*\"?[^>]*>", $secvalue)) ||
(eregi("<[^>]meta*\"?[^>]*>", $secvalue)) ||
(eregi("<[^>]style*\"?[^>]*>", $secvalue))) {
die ("not allowed");
}
}
//set root path
$ROOT_DIR = realpath(dirname(__FILE__));
$ROOT_DIR = str_replace('\\', '/', $ROOT_DIR);
include ("$ROOT_DIR/config.php");
include("$ROOT_DIR/mysql.class.php");
$db = new sql_db($db_host, $db_username, $db_password, $databse_name, false);
if(!$db->db_connect_id) {
include("header.php");
//if connection to database/login faild, print error.
echo "
<font color=\"red\"><h5>
<center>Error:[/b]
<hr>
[b]Connection to database has faild!
check mysql server/database name/username/password </center>
";
echo mysql_error();
include("footer.php");
die();
}
//load the site options and info from db.
$options_sql = $db->sql_query("SELECT * FROM ".$prefix."_options");
$options = $db->sql_fetchrow($options_sql);
$site_name = stripslashes($options['site_name']);
$site_email= stripslashes($options['site_email']);
$site_url = stripslashes($options['site_url']);
$site_info = stripslashes($options['site_info']);
$language = stripslashes($options['language']);
$tmp_header = stripslashes($options['tmp_header']);
$tmp_footer = stripslashes($options['tmp_footer']);
$validate = intval($options['validate']);
//load the language
include ("$ROOT_DIR/lang/$language.php");
//global function for checkig whethar user is logged in or not.
//you will notice we will use it everwhere in the script.
function is_logged_in($user) {
global $db,$prefix;
$read_cookie = explode("|", base64_decode($user));
$userid = addslashes($read_cookie[0]);
$passwd = $read_cookie[2];
$userid = intval($userid);
if ($userid != "" AND $passwd != "") {
$result = $db->sql_query("SELECT password FROM ".$prefix."_users WHERE userid='$userid'");
$row = $db->sql_fetchrow($result);
$pass = $row['password'];
if($pass == $passwd && $pass != "") {
return 1;
}
}
return 0;
}
function is_logged_in_admin($admin) {
global $db,$prefix;
$read_cookie = explode("|", base64_decode($admin));
$adminid = addslashes($read_cookie[0]);
$passwd = $read_cookie[2];
$adminid = intval($adminid);
if ($adminid != "" AND $passwd != "") {
$result = $db->sql_query("SELECT password FROM ".$prefix."_admin WHERE adminid='$adminid'");
$row = $db->sql_fetchrow($result);
$pass = $row['password'];
if($pass == $passwd && $pass != "") {
return 1;
}
}
return 0;
}
function msg_redirect($msg,$url,$seconds){
global $site_name, $site_url;
echo "<html dir=\""._LTR_RTL."\">\n"
."<head>\n"
."<title>$site_name</title>\n"
."<meta http-equiv=\"Refresh\" content=\"$seconds; URL=$url\">\n"
."<meta http-equiv=\"Content-Type\" content=\"text/html; charset="._CHARSET."\">\n"
."<link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\">\n"
."</head>\n\n"
."<body>\n"
."
\n"
."
\n"
."
\n"
."
\n\n\n"
."<div align=\"center\">\n"
."<table cellpadding=\"6\" cellspacing=\"1\" border=\"0\" width=\"70%\" bgcolor=\"#E1E1E1\">"
."<tr>"
."<td bordercolor=\"#808080\">"._REDIRECTING."</td>"
."</tr> "
."<tr> "
."<td align=\"center\" bgcolor=\"#FFFFFF\">"
."<blockquote> "
."
</p>"
."
<h3>$msg</h3></p>"
."
<a href=\"$url\" style=\"color: black;\"> "
.""._CLICK_HERE_BROWSER_REDIRECT."</a></p>
"
."</blockquote>"
."</div>\n"
."</td>\n"
."</tr>\n"
."</table>\n\n\n"
."</body>\n"
."</html>";
}
?>
Mi aiutate? GRAZIE MILLE!!!!!!!!!!!!