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)
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
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('&', '&amp;', $url) . '" />';
    echo "<div class=\"news_title\"><h3> &raquo; 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> &raquo; 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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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);
?>


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)
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
    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('&', '&amp;', $url) . '" />';
    echo "<div class=\"news_title\"><h3> &raquo; 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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
else
{
?>

<form method="post" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?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>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
}
}

else  //je bent dus ingelogd...
{
echo "Hallo, ".$user->data['username'];
}

?>



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)
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
    <?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
    }
    ?>

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Het maken van de session + Pagina's beveiligen.
  2. Het maken van extern loginsysteem
  3. Einde

PHP tutorial opties

 
 

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.