Login Script met PhpBB2
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)
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
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, " " );
}
} ?>
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)
1
2
3
4
5
6
7
8
9
10
11
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());
?>
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)
1
2
3
4
5
6
7
8
9
10
11
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();
}
?>
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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 );
}}}
?>
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?
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?
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.