ho la pagina per il login in phpBB..
Codice PHP:
define('ZONE','1',true);
class page_login
{
var $variable = array();
function page(){
global $config, $db, $cache, $smarty;
require_once($config->sitedir.'/includes/php/captcha.class.php');
$captcha=new captcha();
$action = isset($_GET['action']) ? $_GET['action'] : false;
switch($action)
{
case 'login':
// Inclusioni
define('IN_PHPBB', true);
$phpbb_root_path = $config->forumdir.'/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'includes/constants.'.$phpEx);
include($phpbb_root_path . 'includes/sessions.'.$phpEx);
include($phpbb_root_path . 'includes/functions.'.$phpEx);
// Inizio sessione
$userdata = session_pagestart($user_ip, PAGE_LOGIN);
init_userprefs($userdata);
// Session ID
if (!empty($HTTP_POST_VARS['sid']) || !empty($HTTP_GET_VARS['sid']))
{
$sid = (!empty($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] : $HTTP_GET_VARS['sid'];
}
else
{
$sid = '';
}
if( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']))
{
$username = isset($HTTP_POST_VARS['username']) ? phpbb_clean_username($HTTP_POST_VARS['username']) : '';
$password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : '';
// Formulazione query
$sql = "SELECT *
FROM " . $config->prefix . "users
WHERE username = '".$username."'";
// Esecuzione query
if ( !($result = $db->sql_query($sql)) )
{
/* PARTE IN CUI NON E' POSSIBILE ESEGUIRE LA QUERY */
die("Impossibile eseguire la query sul database");
}
// Ricerca del Username nel database
if( $row = $db->sql_fetchrow($result) ) {
// Verifica dell'esattezza della password
if( md5($password) == $row['user_password'] && $row['user_active'] ) {
$autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0;
$admin = (isset($HTTP_POST_VARS['admin'])) ? 1 : 0;
$session_id = session_begin($row['user_id'], $user_ip, PAGE_INDEX, FALSE, $autologin, $admin);
if( $session_id ) {
/* PARTE IN CUI IL LOGIN E' STATO EFFETTUATO CON SUCCESSO */
echo "Log in avvenuto correttamente";
} else {
/* PARTE IN CUI LA SESSIONE NON E' COMINCIATA PER VARI MOTIVI */
echo "Errore: non riesco a cominciare la sessione";
}
} else {
/* PARTE IN CUI LA PASSWORD E' SBAGLIATA */
echo "La tua password è sbagliata";
}
} else {
/* PARTE IN CUI LO USERNAME NON è PRESENTE NEL DATABASE */
echo "Non riesco a trovare il nick nel database";
}
// Script per il logout
}
break;
case 'logout':
if(isset($HTTP_POST_VARS['logout']) || isset($HTTP_GET_VARS['logout']))
{
if( ( isset($HTTP_GET_VARS['logout']) || isset($HTTP_POST_VARS['logout']) ) && $userdata['session_logged_in'] )
{
if( $userdata['session_logged_in'] )
{
session_end($userdata['session_id'], $userdata['user_id']);
/* PARTE IN CUI IL LOGOUT E' STATO ESEGUITO CON SUCCESSO */
$smarty->assign("message",1);
}
else
{
/* PARTE IN CUI IL LOGOUT NON E' STATO ESEGUITO CON SUCCESSO PERCHE' LA SESSIONE NON ERA STATA COMINCIATA PRECEDENTEMENTE */
$smarty->assign("message", "La tua sessione non è cominciata quindi non puoi eseguire il logout");
}
// Condizioni che non soddisfa le altre
}
else
{
/* PARTE IN CUI I DATI SONO STATI TRAFERITI MALE */
$smarty->assign("message", "Errore di passaggio dati");
}
// Condizione che non porta nessuna variale con se! Questo è il caso di un link del tipo [url="login.php"]Esegui log in[/url]
}
else
{
if( $userdata['session_logged_in'] )
{
/* PARTE IN CUI NON VENGONO TRASFERITI I DATI. L'UTENTE ACCEDE ALLA PAGINA PER IL LOGIN MA IN REALTA' SI E' GIA' LOGGATO */
echo "Attenzione: sei già riconosciuto come utente registrato";
}
else
{
/* PARTE IN CUI NON VENGONO TRASFERITI I DATI. IN QUESTO SPAZIO SI POTREBBE METTERE UN'ALTRO FORM PE RIL LOGIN */
echo "Non hai eseguito il log in";
}
}
$smarty->assign("message", "
<a href=\"index.$phpEx\">Clicca qui</a> per andare alla pagina principale");
$db->sql_query('DELETE FROM '.$config->prefix.'useron WHERE sessionid = "'.$_SESSION['log']['sid'].'"');
session_unset();
session_destroy();
setcookie ('log', '', time()-5184000,'/');
if(!session_is_registered('log')&&(!isset($_COOKIE['log'])))
$smarty->assign('message',1);
break;
case 'myprofile':
$sql = "SELECT email FROM ".$config->prefix."user
WHERE username = '".$_SESSION['log']['username']."'";
$res = $db->sql_query($sql);
$query = $db->sql_fetchrow($res);
$user['username'] = $_SESSION['log']['username'];
$user['email'] = $query['email'];
foreach($user as $key=>$value){
$smarty->assign($key,$value);
}
break;
}
foreach($this->variable as $name => $value){
$smarty->assign($name, $value);
}
$smarty->display('index.body.tpl');
return;
}
}
vorrei sapere perchè mi dà questo errore, ed eventualmente correggerlo.
codice:
Fatal error: SQL ERROR [ mysql ]
Table 'file.users' doesn't exist [1146] in C:\Programmi\PAMPA\PAMPA\apache\htdocs\php3\includes\php\db\dbal.php on line 358
a prima vista sembrerebbe che non aggiunge il prefisso(phpbb_), ma anche se lo aggiungo a mano, non lo trova... che devo fare?
Premetto che come phpBB uso la 2.0.21
e come layer di astrazione, interno al sito(vedi $db), quello di phpBB3.
nelle altre pagine funziona tutto, mentre nella login no.
che devo fare???? :master: