Link aan phpbb3

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robin

Robin

25/09/2009 12:48:00
Quote Anchor link
Beste phpers,

Ik heb sinds kort een nieuwe webhost. Nu heb ik alle scripts die ik had geupload hierheen, maar wat blijkt nu, het werkt (na de instellingen voor de nieuwe server te hebben gebruikt) heel anders dan mijn oude vertrouwde XAMPP servertje.
Ik heb onderstaande code uit de tutorial van superwauwie en die vervolgens uitgebreid. Dit script controleert de logins die je invoert met de phpBB3 database. Ik heb nu de simpele versie van het script, zie onderstaand, geupload naar www.jckomeet.nl/inlog.php . Je kunt inloggen met username: test, password: test123.

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
53
54
55
56
57
58
59
60
61
62
<?php
define('IN_PHPBB', true);
$phpbb_root_path = "forum/"; //pad naar PHPBB3
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session
$user->session_begin();
$auth->acl($user->data);
$user->setup();

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', "inlog.$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>";
}

?>

Wat blijkt nu, als ik inlog zegt ie eerst dat ik ben ingelogd, maar daarna lijkt het net of mijn sessie wordt beëindigt. Hoe kan dit?

Grt,
Robin
Gewijzigd op 01/01/1970 01:00:00 door Robin
 
PHP hulp

PHP hulp

29/11/2024 10:24:19
 
Justin S

Justin S

25/09/2009 15:52:00
Quote Anchor link
Ik heb het idee dat het hiermee te maken heeft

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
    $url = redirect($redirect, true);
    $time = 3;    //Seconden redirect


Verander de time eens naar 10 bijv, duurt het dan langer voordat je doorgestuurd wordt?
 
Robin

Robin

25/09/2009 15:59:00
Quote Anchor link
Uiteraard duurt het dan langer, 10 seconden, maar dan word ik opnieuw teruggestuurd naar het loginscherm..., terwijl dit zou moeten worden aangeroepen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
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>";
}

?>
 
Justin S

Justin S

26/09/2009 09:43:00
Quote Anchor link
Dat geef je zelf toch niet aan dus ik probeer mee te denken ;)..!

dit stuk eens weg:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    $redirect
= request_var('redirect', "inlog.$phpEx");
    $url = redirect($redirect, true);
    $time = 3;    //Seconden redirect
?>


En schrijf daar eens een Session waarin je username wordt opgeslagen, een session ID, en bijv ingelogd wordt geset naar 1. En geef vervolgens een header() naar inlog.php en check hier vervolgens bovenaan ofdat er een session is geset die overeenkomt met de username o.i.d.

En anders, gebruik een ander script. Er zijn er genoeg op internet..
 
Robin

Robin

26/09/2009 20:49:00
Quote Anchor link
Ik heb het ietsje anders gedaan, ik heb aan de links overal append_sid(); toegevoegd, een functie in phpbb3.
Dus bij een link bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$afmelden
= append_sid("index.php?p=afmelden");
echo '<p align="center"><a href="'.$afmelden.'">Afmeldsysteem</a></p>';
?>

Het probleem is dat er nu een session id in de link moet zitten, anders herkent het systeem de user niet. Zijn er alternatieven te bedenken?

Groet,
Robin

Edit:Ook heb ik geprobeerd om de SID in een $_SESSION['sid'] te zetten, wat ook niet werkt.
Gewijzigd op 01/01/1970 01:00:00 door Robin
 
Robin

Robin

02/10/2009 22:13:00
Quote Anchor link
Ik heb van iemand gehoord dat ik blijkbaar dubbele cookies verstuur:

Het vreemde is dat dit de verzonden headers zijn van mijn script draaiend op localhost XAMPP:
Quote:
HTTP/1.x 200 OK
Date: Wed, 30 Sep 2009 18:32:12 GMT
Server: Apache/2.2.12 (Win32) DAV/2 mod_ssl/2.2.12 OpenSSL/0.9.8k mod_autoindex_color PHP/5.3.0 mod_perl/2.0.4 Perl/v5.10.0
X-Powered-By: PHP/5.3.0
Set-Cookie: phpbb3_7rogb_u=2; expires=Thu, 30-Sep-2010 18:32:12 GMT; path=/; HttpOnly
Set-Cookie: phpbb3_7rogb_k=; expires=Thu, 30-Sep-2010 18:32:12 GMT; path=/; HttpOnly
Set-Cookie: phpbb3_7rogb_sid=383291617ca75bd7a73df43f67bfad77; expires=Thu, 30-Sep-2010 18:32:12 GMT; path=/; HttpOnly
Content-Length: 320
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

Hierna, als de pagina wordt doorgestuurd naar index.php, worden deze cookies gebruikt en dus niet opnieuw aangemaakt.

en dit van de 'echte' site (http://jckomeet.nl):
Quote:
HTTP/1.x 200 OK
Date: Wed, 30 Sep 2009 18:33:22 GMT
Server: Apache/2
X-Powered-By: PHP/5.2.10
Set-Cookie: phpbb3_jvspm_u=1; expires=Thu, 30-Sep-2010 18:33:22 GMT; path=/; domain=forum.jckomeet.nl; HttpOnly
Set-Cookie: phpbb3_jvspm_k=; expires=Thu, 30-Sep-2010 18:33:22 GMT; path=/; domain=forum.jckomeet.nl; HttpOnly
Set-Cookie: phpbb3_jvspm_sid=5972b7a64**********; expires=Thu, 30-Sep-2010 18:33:22 GMT; path=/; domain=forum.jckomeet.nl; HttpOnly
Set-Cookie: phpbb3_jvspm_u=2; expires=Thu, 30-Sep-2010 18:33:22 GMT; path=/; domain=forum.jckomeet.nl; HttpOnly
Set-Cookie: phpbb3_jvspm_k=; expires=Thu, 30-Sep-2010 18:33:22 GMT; path=/; domain=forum.jckomeet.nl; HttpOnly
Set-Cookie: phpbb3_jvspm_sid=5f2f91*********; expires=Thu, 30-Sep-2010 18:33:22 GMT; path=/; domain=forum.jckomeet.nl; HttpOnly
Vary: Accept-Encoding,User-Agent
Content-Encoding: gzip
Content-Length: 234
Keep-Alive: timeout=1, max=10000
Connection: Keep-Alive
Content-Type: text/html
----------------------------------------------------------

En vervolgens worden bij het doorsturen nieuwe cookies aangemaakt.

Dit terwijl het precies hetzelfde script is. Dit is overigens de output van het hele script, die in de root is te zien. (http://jckomeet.nl)
Hoe zou dit kunnen komen? Het enige wat ik doe is de common.php van phpBB3 includen en daarmee inloggen met de volgende code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
    $username
= request_var('username', '', true);
    $password = request_var('password', '', true);
    $autologin = (!empty($_POST['autologin'])) ? true : false;

    $result = $auth->login($username, $password, $autologin);
?>


Groet,
Robin
Gewijzigd op 01/01/1970 01:00:00 door Robin
 
Robin

Robin

04/10/2009 19:06:00
Quote Anchor link
Heeft iemand een idee? Ik snap echt niet hoe het kan dat hij op de server 2x meer cookies set dan mijn xampp servertje.....
Gewijzigd op 01/01/1970 01:00:00 door Robin
 
Robin

Robin

08/10/2009 19:47:00
Quote Anchor link
[bump na >48 u]Weet iemand het antwoord? Ik zou er echt veel mee geholpen zijn[/bump]
 



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.