Het maken van extern loginsysteem
Nu beginnen we met het maken van het extern inlogsysteem die werkt met de sessions van phpbb3.
Zo kan je een loginform op je website zetten, zonder dat je wordt doorgelinkt.
En deze zet je ook gelijk online op je phpBB3 forum.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
if(!$user->data['is_registered'])
{
if($_POST['login'])
{
$username = request_var('username', '', true);
$password = request_var('password', '', true);
$autologin = (!empty($_POST['autologin'])) ? true : false;
$result = $auth->login($username, $password, $autologin);
if ($result['status'] == LOGIN_SUCCESS)
{
$redirect = request_var('redirect', "index.$phpEx");
$url = redirect($redirect, true);
$time = 3; //Seconden redirect
echo '<meta http-equiv="refresh" content="' . $time . ';url=' . str_replace('&', '&', $url) . '" />';
echo "<div class=\"news_title\"><h3> » Ingelogd!.</h3></div>";
echo "<p align=\"center\">Je bent ingelogd.</p>";
}
else
{
echo"FOUT! er is wat mis gegaan met het invullen van de gegevens. probeer het opnieuw";
}
}
else
{
?>
<form method="post" action="<?php $_SERVER['PHP_SELF'];?>"><!-- ?mode=login -->
<p>Username: <input name="username" type="text" id="username" /></p>
<p>Password: <input name="password" type="password" id="password" /></p>
<p><input name="login" class="mainoption" value="Log in" type="submit"></p>
</form>
<?
}
}
else //je bent dus ingelogd...
{
echo "<div class=\"news_title\"><h3> » User Menu.</h3></div>";
echo('<p align="center">Welcome '.$user->data['username'].'!</p>');
echo "<p align=\"center\"><a href=\"logout.php\">Log Out.</a></p>";
}
?>
if(!$user->data['is_registered'])
{
if($_POST['login'])
{
$username = request_var('username', '', true);
$password = request_var('password', '', true);
$autologin = (!empty($_POST['autologin'])) ? true : false;
$result = $auth->login($username, $password, $autologin);
if ($result['status'] == LOGIN_SUCCESS)
{
$redirect = request_var('redirect', "index.$phpEx");
$url = redirect($redirect, true);
$time = 3; //Seconden redirect
echo '<meta http-equiv="refresh" content="' . $time . ';url=' . str_replace('&', '&', $url) . '" />';
echo "<div class=\"news_title\"><h3> » Ingelogd!.</h3></div>";
echo "<p align=\"center\">Je bent ingelogd.</p>";
}
else
{
echo"FOUT! er is wat mis gegaan met het invullen van de gegevens. probeer het opnieuw";
}
}
else
{
?>
<form method="post" action="<?php $_SERVER['PHP_SELF'];?>"><!-- ?mode=login -->
<p>Username: <input name="username" type="text" id="username" /></p>
<p>Password: <input name="password" type="password" id="password" /></p>
<p><input name="login" class="mainoption" value="Log in" type="submit"></p>
</form>
<?
}
}
else //je bent dus ingelogd...
{
echo "<div class=\"news_title\"><h3> » User Menu.</h3></div>";
echo('<p align="center">Welcome '.$user->data['username'].'!</p>');
echo "<p align=\"center\"><a href=\"logout.php\">Log Out.</a></p>";
}
?>
Uitleg:
Code (php)
Met if(!$user->data['is_registered'])
Kijk hij of je niet bent inlogd.
Zoja.. Dan kijk hij of je het formulier hebt verstuurd.
Zoja.. haalt hij de data die jij hebt ingevuld, en trekt de gegevens na met de database.
($result = $auth->login($username, $password, $autologin);)
Nu het volgende stukje:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if ($result['status'] == LOGIN_SUCCESS)
$redirect = request_var('redirect', "index.$phpEx");
$url = redirect($redirect, true);
$time = 3; //Seconden redirect
echo '<meta http-equiv="refresh" content="' . $time . ';url=' . str_replace('&', '&', $url) . '" />';
echo "<div class=\"news_title\"><h3> » Ingelogd!.</h3></div>";
echo "<p align=\"center\">Je bent ingelogd.</p>";
}
else
{
echo"FOUT! er is wat mis gegaan met het invullen van de gegevens. probeer het opnieuw";
}
}
$redirect = request_var('redirect', "index.$phpEx");
$url = redirect($redirect, true);
$time = 3; //Seconden redirect
echo '<meta http-equiv="refresh" content="' . $time . ';url=' . str_replace('&', '&', $url) . '" />';
echo "<div class=\"news_title\"><h3> » Ingelogd!.</h3></div>";
echo "<p align=\"center\">Je bent ingelogd.</p>";
}
else
{
echo"FOUT! er is wat mis gegaan met het invullen van de gegevens. probeer het opnieuw";
}
}
Hier kijkt hij of de gegevens goed zijn...
zo ja,
Stuurd hij je door naar de index.php..
Zo nee,
Geeft hij een foutmelding. ;-)
Het laatste stukje:
<form method="post" action=""><!-- ?mode=login -->
<p>Username: <input name="username" type="text" id="username" /></p>
<p>Password: <input name="password" type="password" id="password" /></p>
<p><input name="login" class="mainoption" value="Log in" type="submit"></p>
</form>
In het laatste stukje laat hij het formulier zien. (als je niet verstuurd hebt)
En als je al ingelogd bent laat hij een tekst zien met: welkom, jounaam.
($user->data['username'])
Gefeliciteerd! Je hebt nu een inlogsysteem dat met jou eigen phpbb3 Forum werkt. =)
Edit:
Het uitloggen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './'; //Path to forum
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();
if($user->data['is_registered'])
{
$user->session_kill();
$user->session_begin();
}
else
{
//gebruiker is al uitgelogd
}
?>
define('IN_PHPBB', true);
$phpbb_root_path = './'; //Path to forum
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();
if($user->data['is_registered'])
{
$user->session_kill();
$user->session_begin();
}
else
{
//gebruiker is al uitgelogd
}
?>
« vorige pagina | volgende pagina »