04. august 2007 - 15:28Der er
26 kommentarer og 1 løsning
extern login til phpbb
hej. Jeg har et problem med min login funktion som ligger på min start side. Næsten alt virker. Jeg kan logge ind, men når jeg prøver at logge ud hopper den over på mit forum og kommer med følgende fejl. Invalid_session
jeg har arbejdet videre med scriptet og fået logout til at virke. Jeg kan også logge ind. Problemet ligger i at hvis man prøver at logge ind, kommer login formen frem igen. 2. gang man prøver virker det. hvad skal jeg ændre for at koden bare virker, første gang. <?php define('IN_PHPBB', true); $phpbb_root_path = './phpBB2/'; include($phpbb_root_path . 'extension.inc'); include($phpbb_root_path . 'common.'.$phpEx);
<?php if($userdata['session_logged_in']) { $appendLogout = $u_login_logout = $phpbb_root_path.'login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id']; // Add the session ID to the logout link echo "<p>Welcome,</p> <a href=\"phpBB2/profile.php?mode=viewprofile&u=".$userdata['user_id']."\" title=\"".$userdata['username']."\">".$userdata['username']."</a>!<br />"; // Show a welcome message echo "<a href=\"phpBB2/privmsg.php?folder=inbox\" title=\"You have ".$userdata['user_unread_privmsg']." new messages\">(".$userdata['user_unread_privmsg'].") New Messages</a><br />"; // Any new PMs? echo "<a href=\"phpBB2/profile.php?mode=editprofile\" title=\"My Profile\">My Profile</a><br />"; // Edit your profile link echo "<a href=\"".$appendLogout."\" title=\"Logout\">Logout</a><br />"; // Logout link
jeg er nu ved at have sporet mig ind på hvor problemet ligger. Ved simpelthen at sætte mit website op igen, bid for bid. Lige så snart jeg har tilføjet følgende script, begynder problemet med at skulle logge ind 2 gange
johansrk> jeg kan se at du har kommenteret autologin ud, er det fordi du ikke ønsker dette? eller er det svært at få til at virke? Jeg står selv i en situation hvor jeg ønsker at udskifte forum på mit community til phpbb, og skal det samme igennem.
ja. Det session jeg fjernede var i en ekstern phpfil, hvor jeg brugte topics_anywhere til at vise content på mit website det var i denne topics_anywhere.PHP fil at jeg fjernede noget sessions. Problemet er dog vendt tilbage, og jeg kan ikke lige gennemskue hvad problemet er. Jeg kan godt logge ind, men først anden gang lykkes det 100%
Denne mod er noget der virker. Nu logger den på lige med det samme. Men jeg tror at jeg har en anden fejl i min kode, for hvis jeg derefter går over på mit phpBB forum, så er jeg logget ind. Men går jeg i stedet ind på en hvilken som helst anden side, på mit website, fx forsiden, så er jeg logget af igen.
jeg har denne kode på alle mine sider, og selv hvis jeg er på min startside, logger ind, og går ind på min start side igen, altså jeg har på intet tidspunkt været på andre sider end forsiden, så logger den af. Jeg bliver logget på fint, men bliver logget af så snart jeg går ind på en ny eller samme side.
nu fik jeg det sørme til at fungere min kode er som følger. Jeg opdagede at grunden til at den loggede brugeren af bare ved at gå ind på en anden side med samme kode var en lidt forkert cookie opsætningen inde i mit phpBB2 admin panel.
Jeg ændrede min cookie path til / istedet for /phpBB2 og jeg ændrede mit cookie navn til phpbb2mysql i stedet for det jeg havde før
<?php if($userdata['session_logged_in']){ $appendLogout = $u_login_logout = $phpbb_root_path.'login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id']; // Add the session ID to the logout link echo "<p>Welcome,</p> <a href=\"phpBB2/profile.php?mode=viewprofile&u=".$userdata['user_id']."\" title=\"".$userdata['username']."\">".$userdata['username']."</a>!<br />"; // Show a welcome message echo "<a href=\"phpBB2/privmsg.php?folder=inbox\" title=\"You have ".$userdata['user_unread_privmsg']." new messages\">(".$userdata['user_unread_privmsg'].") New Messages</a><br />"; // Any new PMs? echo "<a href=\"phpBB2/profile.php?mode=editprofile\" title=\"My Profile\">My Profile</a><br />"; // Edit your profile link echo "<a href=\"".$appendLogout."\" title=\"Logout\">Logout</a><br />"; // Logout link } else{ ?> <form action="<?php echo($phpbb_root_path); ?>login.php" method="post" enctype="multipart/form-data"> <p>Username:</p> <input type="text" name="username"><br /> <p>Password:</p> <input type="password" name="password"> <input type="hidden" name="redirect" value="../"> <p><input type="submit" value="login" name="login"> </p> </form> <?php } ?>
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.
Det er blevet kaldt ”det største it-nedbrud i historien” og omkostningerne kan nemt løbe op i syv milliarder kroner: Men hvem skal betale for Crowdstrikes fejl?