[PHP] session_start

Pagina: 1
Acties:
  • 662 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • g4wx3
  • Registratie: April 2007
  • Laatst online: 20-05 11:59
Goedemorgen beste tweakertjes,

Ik heb een probleem met PHP-sessions, hij vergeet telkens alle informatie opgeslaan in de sessie;
Dus ook inlog informatie.
Kan iemand me zeggen wat ik fout doe?

Dit is mijn script: de include bevat slechts een inlog script, alles lijkt te werken, ik heb ook mijn session_id gecheckt en deze word niet vernieuwd zoals het hoort.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
session_start();
if( !empty($_POST['logout']) )
    {
    session_destroy(); //destroy session
    session_start();
    }
if(    isset(  $_POST['login']   )     &&    (    $_POST['user'] == xxxx   &&   $_POST['password'] == xxxxx    )    )
    {
     $_SESSION['user'] = $_POST['user'] ; // start admin-session
     $_SESSION['admin'] = 'true'; // start admin-session
     $_SESSION['session'] = 'true'; // session started
    }
$_SESSION['time'] = time(); //timout

$files[0] = 'home'; // beschikbare pagina's
$files[1] = 'admin';
if ( $_SESSION['admin'] )
    {
    // Beveiligde pagina's
    }
$qfile = 'home';    // Standaard waarde voor include $file
if( isset($_GET['q']) )
    {
    for ( $i = 0;$i < count( $files ); $i++ )
        {
        if ($files[$i] ==  $_GET['q'])
            $qfile = $files[$i];
        }
    }

$server = $_SERVER["SERVER_ADDR"];  //security: check for server.
$index = true;                      //security: checkfor index=true
?><!--hehe-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Voerentv</title>
<script type="text/javascript" src="app/jbase.js"></script>
<script type="text/javascript" src="web/dhtml.js"></script>
<script type="text/javascript">
</script>
<link type="text/css" href="web/site.css" rel="stylesheet">
<?php
 if ( $qfile == 'home' )
    echo '<style type="text/css">@import url(\'web/home.css\');</style>';
if ( $qfile == 'admin' )
    echo '<style type="text/css">@import url(\'web/admin.css\');</style>';
?>
</head>
<body onload="load()">
<div id="bdiv">
    <div id="header"></div>

    <div id="wrapper">
        <div id="menu">
        <ul id="menua" class="menu">
            <li><a href="?q=show">Show</a></li>
            <li><a href="?q=admin">Beheer</a></li>
        </ul>
        <ul id="menur" class="menu">
            <li></li>
        </ul>
        <div id="JS_menuResize"></div>
        </div>
        <div id="main">
            <?php
                include('web/' . $qfile . '.php');
            ?>      
        </div>
    </div>
</div>
<div style="clear:both"></div>
<div id="JS_log"><div>php:<br><?PHP echo  $_SESSION['user']; ?><br><?php echo date('Y m d H:i:s', $_SESSION['time']); ?><br><?php echo session_id(); ?><br></div></div>
</body>
</html>


voor de compleetheid: hier het inlog-script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php if (!$index && $server != $_SERVER["SERVER_ADDR"]) die("Toegang geweigerd!"); ?>
<?php
if (  isset( $_SESSION['user'] )  ) //doorverwijzen bij ingelogd
    {
//  include( 'web/adminmenu.php' )
    include( 'web/lichtkrant.php' );
    }
else
    {
?>
<form method="POST" action="index.php?q=admin" id="sessionmanager">
<img src="img/keys.gif" alt="keys" id="keys">

<ul>
<li><dl><dt><label for="user">Gebruiker:</label></dt><dd><input type="text" name="user" id="user"  value=""></dd></dl></li>
<li><dl><dt><label for="password">Paswoord:</label></dt><dd><input type="password" name="password" id="password" value=""></dd></dl></li>
<li><br><button type="submit" name="login"><img src="img/goed.gif" alt="login"> Aanmelden</button></li>
</ul>
<div style="clear:both"></div><!-- clear both-->
</form>
<?php } ?>

[ Voor 14% gewijzigd door g4wx3 op 06-07-2007 08:22 ]

http://www.softfocus.be/


Acties:
  • 0 Henk 'm!

  • storeman
  • Registratie: April 2004
  • Laatst online: 23:02
Misschien dat je het beter zo kan doen:

HTML:
1
<input type="submit" name="login" value="inloggen" />


Volgens mij krijgt je submit button op dit moment geen waarde mee, daardoor lijkt ie leeg.
Voor de rest werkt je script volgens mij wel, ik heb die voorwaarde er eens uitgeknikkerd, refresh en er weer in gezet, ik blijf netjes ingelogd als admin.

[mieren******]
Overigens heb je autoregistr globals aan staan, niet heel netjes. Onderaan je pagina kreeg ik de fout dat $_SESSION['admin'] niet bestaat, toch probeer je m te echoen.
[/mieren******]

"Chaos kan niet uit de hand lopen"


Acties:
  • 0 Henk 'm!

  • g4wx3
  • Registratie: April 2007
  • Laatst online: 20-05 11:59
Bedankt storeman
Bij mij wilde het nog steeds niet lukken, ik had ondertussen ook al vanalles eruit gegooid en een value meegegeven aan login, maar nog steeds wilde het niet werken.

Nu heb ik het geuploaded naar de server, en nu werkt het daar wel.


Van de php.ini ken ik echter niks, ik heb daarom een standaard instalatie gedaan, het enige wat ik heb veranderd is MySQL toegevoegd, zou ik mijn config hier mogen posten om te vragen wat er fout is?

Je kunt alvast mijn php.ini hier checken.

[ Voor 10% gewijzigd door g4wx3 op 06-07-2007 08:48 ]

http://www.softfocus.be/


Acties:
  • 0 Henk 'm!

  • g4wx3
  • Registratie: April 2007
  • Laatst online: 20-05 11:59
Hier verder gaan over php.ini is een beetje fout, ik heb hier een ander topic geopend:
[php] php.ini & sessions

http://www.softfocus.be/


Acties:
  • 0 Henk 'm!

  • koekiemonster
  • Registratie: Maart 2001
  • Laatst online: 24-04 08:35

koekiemonster

want a cookie

In IE 6 [als je frames gebruikt] werken sessies alleen als je gebruik maakt van een P3P header

[webhero.nl]


Acties:
  • 0 Henk 'm!

  • g4wx3
  • Registratie: April 2007
  • Laatst online: 20-05 11:59
Ok ik heb de ftou ondekt!
Ik heb een dualboot systeem, op de "eerste" HD staat mijn oudste windows, en server apps geinstaleerd, op mijn 2de HD staat ook windows, maarheb ik geen serverapps geinstalleerd, in plaats daarvan had ik ze allemaal op mijn exterene hd gezet.
Die externe hd is nu even bij een vriend, en toen werkte PHP niet meer, ik mijn HTTP-server (KeyFocus) stopnd dus eigenaardig genoeg de nieuwste PHP map aangewezen.

Nu heb ik de oude map weer aangewezen en werkt alles weer goed

http://www.softfocus.be/

Pagina: 1