phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Problema logout

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Rispondi
Avatar utente
SHowSTop
Utente
Utente
Messaggi: 13
Iscritto il: 07/04/2012, 12:23
Sesso: Maschio
Server: UNIX/Linux

Problema logout

Messaggio da SHowSTop » 05/08/2012, 14:52

Salve di nuovo ragazzi!



Ho un piccolo problema,quando vado a cliccare il bottone logout mi porta in questa pagina esci.php con il link per uscire.


Codice: Seleziona tutto

 

<?php

 

define("IN_LOGIN", true);

define('IN_PHPBB', true);

$phpbb_root_path = './';

include($phpbb_root_path . 'extension.inc');

include($phpbb_root_path . 'common.'.$phpEx);

//

// Set page ID for session management

//

$userdata = session_pagestart($user_ip, PAGE_SHOP);

init_userprefs($userdata);

//

// End session management

//

// session id check

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 = '';

}

 

?>

<head><center>

<body bgcolor="#000000" >

<table width=100% height=50%><td style="vertical-align:center">

<center>

<?php

echo '<br /><a href="'.append_sid('login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id'], true).'" class="gensmall" target="_parent"><img src="images/logout1.png" style="border-style:none" /></a>';

 

?>

</td></table>

</head>



Io invece vorrei che quando clicco quel bottone deve disconettere senza far vedere un altra pagina!



O al massimo mettere disconessione in corso...e poi portarlo alla pagina accedi che gia lo fa in automatico premendo il link logout.



questa è la pagina login.php


Codice: Seleziona tutto

 

//

// Allow people to reach login page if

// board is shut down

//

define("IN_LOGIN", true);

define('IN_PHPBB', true);

$phpbb_root_path = './';

include($phpbb_root_path . 'extension.inc');

include($phpbb_root_path . 'common.'.$phpEx);

//

// Set page ID for session management

//

$userdata = session_pagestart($user_ip, PAGE_LOGIN);

init_userprefs($userdata);

//

// End session management

//

// session id check

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']) || isset($HTTP_POST_VARS['logout']) || isset($HTTP_GET_VARS['logout']) )

{

 if( ( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) ) && (!$userdata['session_logged_in'] || isset($HTTP_POST_VARS['admin'])) )

 {

  $username = isset($HTTP_POST_VARS['username']) ? phpbb_clean_username($HTTP_POST_VARS['username']) : '';

  $password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : '';

  $sql = "SELECT user_id, username, user_password, user_active, user_level

   FROM " . USERS_TABLE . "

   WHERE username = '" . str_replace("\\'", "''", $username) . "'";

  if ( !($result = $db->sql_query($sql)) )

  {

   message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql);

  }

  if( $row = $db->sql_fetchrow($result) )

  {

   if( $row['user_level'] != ADMIN && $board_config['board_disable'] )

   {

    redirect(append_sid("index.$phpEx", true));

   }

   else

   {

    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 )

     {

      $url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "test.$phpEx";

      redirect(append_sid($url, true));

     }

     else

     {

      message_die(CRITICAL_ERROR, "Couldn't start session : login", "", __LINE__, __FILE__);

     }

    }

    else

    {

     $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : '';

     $redirect = str_replace('?', '&', $redirect);

     if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r"))

     {

      message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.');

     }

     $template->assign_vars(array(

      'META' => "<meta http-equiv=\"refresh\" content=\"3;url=login.$phpEx?redirect=$redirect\">")

     );

     $message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], "<a href=\"login.$phpEx?redirect=$redirect\">", '</a>') . '<br /><br />' .  sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');

     message_die(GENERAL_MESSAGE, $message);

    }

   }

  }

  else

  {

   $redirect = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "";

   $redirect = str_replace("?", "&", $redirect);

   if (strstr(urldecode($redirect), "\n") || strstr(urldecode($redirect), "\r"))

   {

    message_die(GENERAL_ERROR, 'Tried to redirect to potentially insecure url.');

   }

   $template->assign_vars(array(

    'META' => "<meta http-equiv=\"refresh\" content=\"3;url=login.$phpEx?redirect=$redirect\">")

   );

   $message = $lang['Error_login'] . '<br /><br />' . sprintf($lang['Click_return_login'], "<a href=\"login.$phpEx?redirect=$redirect\">", '</a>') . '<br /><br />' .  sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');

   message_die(GENERAL_MESSAGE, $message);

  }

 }

 else if( ( isset($HTTP_GET_VARS['logout']) || isset($HTTP_POST_VARS['logout']) ) && $userdata['session_logged_in'] )

 {

  // session id check

  if ($sid == '' || $sid != $userdata['session_id'])

  {

   message_die(GENERAL_ERROR, 'Invalid_session');

  }

  if( $userdata['session_logged_in'] )

  {

   session_end($userdata['session_id'], $userdata['user_id']);

  }

  if (!empty($HTTP_POST_VARS['redirect']) || !empty($HTTP_GET_VARS['redirect']))

  {

   $url = (!empty($HTTP_POST_VARS['redirect'])) ? htmlspecialchars($HTTP_POST_VARS['redirect']) : htmlspecialchars($HTTP_GET_VARS['redirect']);

   $url = str_replace('&', '&', $url);

   redirect(append_sid($url, true));

  }

  else

  {

   redirect(append_sid("testout.$phpEx", true));

  }

 }

 else

 {

  $url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx";

  redirect(append_sid($url, true));

 }

}

else

{

 //

 // Do a full login page dohickey if

 // user not already logged in

 //

  include_once($phpbb_root_path . 'includes/functions_jr_admin.' . $phpEx);

   $jr_admin_userdata = jr_admin_get_user_info($userdata['user_id']);

   if( !$userdata['session_logged_in'] || (isset($HTTP_GET_VARS['admin']) && $userdata['session_logged_in'] && (!empty($jr_admin_userdata['user_jr_admin']) || $userdata['user_level'] == ADMIN)))

 {

  $page_title = $lang['Login'];

  include($phpbb_root_path . 'includes/page_header.'.$phpEx);

  $template->set_filenames(array(

   'body' => 'login_body.tpl')

  );

  $forward_page = '';

  if( isset($HTTP_POST_VARS['redirect']) || isset($HTTP_GET_VARS['redirect']) )

  {

   $forward_to = $HTTP_SERVER_VARS['QUERY_STRING'];

   if( preg_match("/^redirect=([a-z0-9\.#\/\?&=\+\-_]+)/si", $forward_to, $forward_matches) )

   {

    $forward_to = ( !empty($forward_matches[3]) ) ? $forward_matches[3] : $forward_matches[1];

    $forward_match = explode('&', $forward_to);

    if(count($forward_match) > 1)

    {

     for($i = 1; $i < count($forward_match); $i++)

     {

      if( !ereg("sid=", $forward_match[$i]) )

      {

       if( $forward_page != '' )

       {

        $forward_page .= '&';

       }

       $forward_page .= $forward_match[$i];

      }

     }

     $forward_page = $forward_match[0] . '?' . $forward_page;

    }

    else

    {

     $forward_page = $forward_match[0];

    }

   }

  }

  $username = ( $userdata['user_id'] != ANONYMOUS ) ? $userdata['username'] : '';

  $s_hidden_fields = '<input type="hidden" name="redirect" value="' . $forward_page . '" />';

  $s_hidden_fields .= (isset($HTTP_GET_VARS['admin'])) ? '<input type="hidden" name="admin" value="1" />' : '';

  make_jumpbox('viewforum.'.$phpEx);

  $template->assign_vars(array(

   'USERNAME' => $username,

   'L_ENTER_PASSWORD' => (isset($HTTP_GET_VARS['admin'])) ? $lang['Admin_reauthenticate'] : $lang['Enter_password'],

   'L_SEND_PASSWORD' => $lang['Forgotten_password'],

   'U_SEND_PASSWORD' => append_sid("profile.$phpEx?mode=sendpassword"),

   'S_HIDDEN_FIELDS' => $s_hidden_fields)

  );

  $template->pparse('body');

  include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

 }

 else

 {

  redirect(append_sid("test.$phpEx", true));

 }

}

 

?>



Grazie ragazzi spero che qualcuno mi riesca da aiutare.



Showstop
Versione phpBB2

2.018

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti