Login Script met PhpBB2

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander Spijk

Sander Spijk

21/10/2006 12:10:00
Quote Anchor link
Hallo,

Ik heb een login script gocimbineerd met een inlog Class voor het phpBB2 forum. Dit bestaat globaal uit 4 delen:

1. De Class:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
class PHPBB_Login {
    function
PHPBB_Login() {
    }
    function
login( $phpbb_user_id ) {
        global $db, $board_config;
        global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
        require_once( './phpBB2/config.php' );
        define('IN_PHPBB',true);
        $phpbb_root_path = "./phpBB2/";
        require_once( $phpbb_root_path . "extension.inc" );
        require_once( $phpbb_root_path . "common.php" );
        return session_begin( $phpbb_user_id, $user_ip, PAGE_INDEX, FALSE, TRUE );
    }
    function
logout( $session_id, $phpbb_user_id ) {
        global $db, $lang, $board_config;
        global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
        require_once( './phpBB2/config.php' );
        define('IN_PHPBB',true);
        $phpbb_root_path = "./phpBB2/";
        require_once( $phpbb_root_path . "extension.inc" );
        require_once( $phpbb_root_path . "common.php" );
        session_end( $session_id, $phpbb_user_id );
        setcookie( $board_config[ "cookie_name" ] . "_sid", "", time() - 3600, " " );
        setcookie( $board_config[ "cookie_name" ] . "_mysql", "", time() - 3600, " " );
    }
}
?>


2. De database connecion

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
session_id();
$dbhost = 'localhost';
$dbuser = 'xxx';
$pass = 'xxx';
$dbname = 'xxx';
$domein = 'http://www.swordsandale.nl/';
$db = mysql_connect("$dbhost","$dbuser","$pass") or die ("Sorry geen sql connectie:".mysql_error());
mysql_select_db("$dbname", $db) or die ("Database kan niet aangesporken worden:".mysql_error());
?>


3. Het logout script;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if(isset($_GET["logout"]) && !isset($_POST["loginusername"])){
$loginquery = "SELECT user_id FROM phpbb_users WHERE username='" .$_SESSION["loginuser"]."'";
$loginresult = mysql_query($loginquery) or die ("FOUT: " .mysql_error());
while (list($loginid) = mysql_fetch_row($loginresult)){
$phpbb = new PHPBB_Login();
$phpbb->logout( session_id(), $loginid) ;}
session_unset();
session_destroy();
}

?>


4. Het loginscript:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if(isset($_POST["loginusername"])&& isset($_POST["loginpassword"])){
$loginquery = "SELECT user_id,username,user_password FROM phpbb_users WHERE username='" .$_POST["loginusername"]."'";
$loginresult = mysql_query($loginquery) or die ("FOUT: " .mysql_error());
while (list($loginid, $loginusername, $loginpassword) =
mysql_fetch_row($loginresult)){
$passmd5 = md5($_POST["loginpassword"]);
if($loginusername.$loginpassword == $_POST["loginusername"].$passmd5){
$_SESSION['loginid'] = $loginid;
$_SESSION['loginuser'] = $loginuser;
$phpbb = new PHPBB_Login();
$phpbb->login( $loginid );
}}}

?>


In het verleden werkte het, maar nu krijg ik een foutmeldign die ik niet kan plaatsen:

Warning: Cannot modify header information - headers already sent by (output started at /home/swords/domains/swordsandale.nl/public_html/index.php:39) in /home/swords/domains/swordsandale.nl/public_html/phpBB2/includes/sessions.php on line 254

Warning: Cannot modify header information - headers already sent by (output started at /home/swords/domains/swordsandale.nl/public_html/index.php:39) in /home/swords/domains/swordsandale.nl/public_html/phpBB2/includes/sessions.php on line 255

De regeles in sessions.php van het phpBB2 forum zijn:

setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);

Iemand een idee wat er aan de hand is en wat deze foutmelding betekent?
 
PHP hulp

PHP hulp

27/04/2024 03:54:01
 
Joren de Wit

Joren de Wit

21/10/2006 12:26:00
Quote Anchor link
Voor functies als header(), session_start() en setcookie() mag er nog geen output naar de browser hebben plaatsgevonden. Dat is blijkbaar bij jou wel het geval.

Zie ook de FAQ over dit onderwerp.
 
Sander Spijk

Sander Spijk

21/10/2006 12:37:00
Quote Anchor link
Het hele inlogverhaal staat nog voor de <head>- tag in mijn pagina em volgens mij is er nog niets verzonden naar de browser... nog andere oplossingen?
 
Joren de Wit

Joren de Wit

21/10/2006 12:49:00
Quote Anchor link
Ook een spatie op de verkeerde plaats kan al zorgen voor problemen. In de foutmeldingen wordt aangegeven waar de output gestart is, dus daar zul je het probleem moeten zoeken.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.