[PHP/Sessies] Sessie slechts bekend op 1 pagina?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Op de inlogpagina van mijn cms'je heb ik o.a. de volgende 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
if ($_POST) {
        
  $data = $_POST['data'];
  $result = db_query("SELECT name, pass FROM users WHERE email = '%s'", $data['email']);
        
  if (db_num_rows($result) != 0) {
    $name = db_result($result, 0);
    $_SESSION['user'] = $name;
                    
    //COM_refresh('meta', $_BASE_URL);
    $body .= 'ingelogd!';
  }
  else {
    $body.= 'Fout tijdens inloggen<br>'.loginform();
  }
}
else {
  $body.= loginform();
}


function loginform() {
  $output = '<form method="post" action="admin">
             Email: <input type="text" name="data[email]" size="20"> 
             Password: <input type="password" name="data[password]" size="20">
             <input type="submit" value="Submit" name="login"></form>';
  
  return $output;
}


Om te controleren of alles goed ga, doe ik onderaan de pagina een print_r($_SESSION).

Als ik inlog met een goede email / password combinatie, zie ik onderaan de pagina Array ( [user] => Ted Raket) , maar zodra ik naar een andere pagina binnen de site ga, wordt de sessie leeg gegooid: er staat dan Array( ). Het bizarre is alleen dat ik geen foutmelding krijg (bij error_reporting(E_ALL)). Mijn browser accepteert gewoon (session)cookies - anders zou ik ook niet op dit forum ingelogd zijn :+ En ook mijn Apache staat 'normaal' ingesteld; andere applicaties werken wel gewoon.

Heeft iemand een idee waar het mee te maken zou kunnen hebben? Ik heb mijn code al meerdere keren doorlopen, maar heb geen idee meer :'(

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Acties:
  • 0 Henk 'm!

  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 05-09 21:19

Wacky

Dr. Lektroluv \o/

Ik zie in je code nergens dat je gebruikt maakt van sessies :?

Misschien is het raadzaam om eerst eens dit door de lezen.

He shit, is php.net down :?


Edit #2:
Deze tutorial ziet er zo op het eerste gezicht ook wel handig uit:
http://www.oxyscripts.com/php/tutorials/22/0.php

[ Voor 37% gewijzigd door Wacky op 03-08-2004 00:10 ]

Nu ook met Flickr account


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

waar staat je start_session() ?

offtopic:
traag...

[ Voor 26% gewijzigd door crisp op 03-08-2004 00:08 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

idd nog handiger is

http://www.php.net/session_start - een session starten...... hmm idd handig :P

Acties:
  • 0 Henk 'm!

  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 05-09 21:19

Wacky

Dr. Lektroluv \o/

Verwijderd schreef op 03 augustus 2004 @ 00:12:
idd nog handiger is

http://www.php.net/session_start - een session starten...... hmm idd handig :P
php.net == plat; :/

Nu ook met Flickr account


Acties:
  • 0 Henk 'm!

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Reveller schreef op 03 augustus 2004 @ 00:03:
Op de inlogpagina van mijn cms'je heb ik >> o.a. << de volgende code:
Met andere woorden:
citnetx schreef op 03 augustus 2004 @ 00:12
een session starten...... hmm idd handig :P
Is wat voorbarig en misschien een beetje bijdehand :( . Natuurlijk start ik eerst een sessie.

Voor wat meer inzicht:
• ik maak gebruik van mod_rewrite en alle URL's worden herschreven naar de vorm www.website.com/index.php?q=...
• ik begin index.php met session_start(); en include vervolgens wat bestanden: config.inc, mysql.inc (database library) en module.inc.
• module.inc kijkt welke modules er in de /modules map staan en include deze
• vervolgens lees ik q uit en kijk welke handler ik moet aanroepen
• in dit geval is dat admin.module; waarvan je hierboven een deel van de code ziet staan
• ik echo slechts op 1 plek: onderaan index.php, waar in de .module bestanden opgebouwde variabelen in een template worden geplet.

BTW - php.net is idd plat, vandaar mijn post - anders had ik daar misschien een antwoord gevonden :)

[ Voor 3% gewijzigd door Reveller op 03-08-2004 00:29 . Reden: wel nette zinnen schrijven... ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Je zegt dat je browser gewoon session cookies accepteert. Heb je ook gechecked of php wel een setcookie naar je browser toe stuurt?

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
OK - niet lachen iedereen: het was m'n firewall... :D
Ik ben vanmiddag wat aan het prullen geweest met rechten van andere computers in mijn thuis netwerkje en ben blijkbaar iets te gretig geweest.

Hopelijk leert in ieder geval iemand hier iets van...over een jaar ofzo...via de search :D

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

omg :X firewalls die cookies blokkeren moeten verboden worden :X

Naja suc6 met je script iig :P

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

Verwijderd

nee hoor B)

Modbreak:
Zullen we de discussie of iets wel of niet plat ligt maar achterwege laten? :)

[ Voor 30% gewijzigd door gorgi_19 op 03-08-2004 10:49 ]

Pagina: 1