Sida 1 av 1
Ändra dir vid login
Postat: 2007-02-11 12:45
av skinkan
Då drar vi en till fråga då
När man loggar in på forumet kommer man ju automatiskt till index, men om man vill att man ska hamna någon annan stans, hur gör man då? Eller går det över huvud taget?
//Skinkan
Postat: 2007-02-12 07:26
av Marcus
Ja, du kan ju ändra i filen login.php. Där finns något som styr vart man hamnar om det går bra att logga in.
/marcus
Postat: 2007-03-03 12:35
av Rehn
Jag svarar åt skinkan:
Visst finns det grejer man kan ändra där, exempelvis...
Kod: Markera allt
if( $session_id )
{
$url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx";
redirect(append_sid($url, true));
}
eller...
Kod: Markera allt
$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>');
Det finns mycket redirect i de raderna, men ingen av oss fattar ju någonting av detta. Några mer konkreta tips?
Postat: 2007-03-03 13:20
av Kail
Den andra delen av koden rör redirects som sker när man tex försöker svara på en tråd och uppmanas logga in, och sedan tas tillbaka till tråden efter att man gjort det.
Ändra detta:
Kod: Markera allt
if( $session_id )
{
$url = ( !empty($HTTP_POST_VARS['redirect']) ) ? str_replace('&', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx";
redirect(append_sid($url, true));
}
Ersätt index.$phpEx med t ex faq.$phpEx, $phpEx ersätts med den filändelse som används. PHP-filer kan nämligen heta både php, phtml eller html beroende på hur webbservern är konfigurerad.
Postat: 2007-03-03 14:10
av Rehn
Det fungerade utmärkt, tack så mycket.
En fråga till:
När jag nu kommit till min andra sida, som inte riktigt tillhör forumet, och vill få fram user_id för den som loggat in, hur gör jag då? Finns det gömt någonstans i en cookie? Om så är fallet, hur får jag fram värdet därifrån?
Postat: 2007-03-03 18:42
av Kail
Det finns lagrat i en sessionsvariabel. Vet inte exakt vilken men prova söka på phpbb.com.
Postat: 2007-03-03 18:44
av Kail
Hittade den:
http://www.phpbb.com/phpBB/viewtopic.ph ... 82#2872782
På samma sätt borde antingen detta:
eller detta:
plocka fram UID för dig. Infoga med:
{USERID}
Postat: 2007-03-05 20:13
av Rehn
Nu ligger dessvärre vår sida nere tillfälligt så jag kan inte testa, men om jag har fattat det hela rätt fungerar det alltså såhär:
När man loggat in på forumet och redirectats till inte_forumet.php räcker det där med att jag skriver..
Kod: Markera allt
$authid->assign_vars(array('USERID' => $userdata['userid']));
..för att $authid ska innehålla userid för den som just loggade in.
Har jag fattat det hela rätt?
Postat: 2007-03-06 03:58
av Kail
Nej, du måste lägga till det i template-arrayen, det är den som används för att bygga sidan. Den ska finnas i slutet av din PHP-fil.
Postat: 2007-03-07 20:02
av Rehn
Det kanske bara är jag som är dum nu, men fungerar template-grejer till mer än att bara skriva ut saker? Jag vill att userid för den som just har loggat in ska sparas i variabeln $authid, och jag fattar inte alls hur det ska gå till.
Kanske har du just förklarat hur det ska gå till, men i så fall har jag inte fattat det.