Ändra dir vid login

Detta är ett arkiv för phpBB2 Support, Diskussion, MODar, Stilar och översättningar. Den tillhandahålls endast för referensändamål.

Moderatorer: Moderatorgrupp, Supportgrupp

skinkan
Medlem
Medlem
Inlägg: 19
Blev medlem: 2006-11-25 11:41
Svar: 0

Ändra dir vid login

Inlägg 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
Användarens profilbild
Marcus
Hedersmedlem
Hedersmedlem
Inlägg: 4321
Blev medlem: 2004-01-07 22:12
Svar: 0

Inlägg 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
Marcus Farrington - Administratör på phpBB Sverige
OBS! På förekommen anledning ges ingen support via PM.

Webb- & Drupalutvecklare på Webbyrå Grebban.
Rehn
Medlem
Medlem
Inlägg: 18
Blev medlem: 2007-02-08 20:12
Svar: 0

Inlägg 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?
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2937
Blev medlem: 2003-06-03 14:53
Svar: 0

Inlägg 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.
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide (phpBB 2.x): http://archive.jakob-persson.com/articl ... index.html
Rehn
Medlem
Medlem
Inlägg: 18
Blev medlem: 2007-02-08 20:12
Svar: 0

Inlägg 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?
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2937
Blev medlem: 2003-06-03 14:53
Svar: 0

Inlägg av Kail »

Det finns lagrat i en sessionsvariabel. Vet inte exakt vilken men prova söka på phpbb.com.
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide (phpBB 2.x): http://archive.jakob-persson.com/articl ... index.html
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2937
Blev medlem: 2003-06-03 14:53
Svar: 0

Inlägg av Kail »

Hittade den:
http://www.phpbb.com/phpBB/viewtopic.ph ... 82#2872782

På samma sätt borde antingen detta:

Kod: Markera allt

   'USERID' => $userdata['userid'], 
eller detta:

Kod: Markera allt

   'USERID' => $userdata['uid'], 
plocka fram UID för dig. Infoga med:
{USERID}
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide (phpBB 2.x): http://archive.jakob-persson.com/articl ... index.html
Rehn
Medlem
Medlem
Inlägg: 18
Blev medlem: 2007-02-08 20:12
Svar: 0

Inlägg 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?
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2937
Blev medlem: 2003-06-03 14:53
Svar: 0

Inlägg 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.
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide (phpBB 2.x): http://archive.jakob-persson.com/articl ... index.html
Rehn
Medlem
Medlem
Inlägg: 18
Blev medlem: 2007-02-08 20:12
Svar: 0

Inlägg 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.
Skriv svar

Vilka är online

Användare som besöker denna kategori: 6 och 0 gäster