login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Session wil niet werken

Offline valles10 - 22/07/2010 14:56 (laatste wijziging 01/08/2010 22:24)
Avatar van valles10HTML interesse Ik ben bezig met een login systeem, ik heb er al meerdere gemaakt, maar deze wil maar niet werken!

--config.php--
  1.  
  2. ini_set("display_errors", 1);
  3. /*
  4. verborgen db gegevens...
  5. */
  6.  
  7.  
  8. mysql_connect($dbhost, $dbuser, $dbpass);
  9. mysql_select_db($dbname);
  10.  
  11. include('includes/functions.php');
  12. include('includes/classes/highscores.class.php');
  13. include('includes/classes/user.class.php');
  14. include('includes/classes/item.class.php');


--login.php--
  1. <h6><span>I</span>nloggen</h6>
  2. <?
  3. if(isLogged() == false){
  4. $_SESSION['user_id'] = 1;
  5. echo "Je bent nu ingelogd!";
  6. }else{
  7. echo "Je bent al ingelogd!";
  8. }
  9. ?>
  10. <script>
  11. gaNaar('index');
  12. </script>


--functions.php--
  1. <?
  2. function isLogged(){
  3. if(isset($_SESSION['user_id'])){
  4. return true;
  5. }else{
  6. return false;
  7. }
  8. }
  9. ?>


--menu.php--
  1. <div class="header" onClick="menu('gebruiker');">
  2. <h1>Leden</h1>
  3. </div>
  4. <div class="sidebarboxGebruiker" id="gebruiker">
  5. <?
  6. if(isLogged() == false){
  7. ?>
  8. <form action="?p=login" method="post">
  9. Gebruikersnaam:<br />
  10. <input name="username" class="field" type="text" /><br />
  11. Wachtwoord:<br />
  12. <input name="pass" class="field" type="password" /><br />
  13. <input name="submit" type="submit" value="login" /></form><br />
  14. <a href="javascript:alert('Deze login feature is tijdelijk alleen beschikbaar voor de crew');">Nog geen account?</a><br />
  15. <a href="javascript:alert('Je hebt nog geen account, je hebt dus nog geen account.');">Wachtwoord vergeten?</a><br />
  16. <?
  17. }else{
  18. $user = new Users($_SESSION['user_id']);
  19. ?>
  20. <?=momentOfDay(); ?>, <?=$user->username(); ?>!<br />
  21. <a href="?p=logout">Uitloggen</a>
  22.  
  23. <?
  24. }
  25. ?>
  26. </div>


Al de bovenste files worden geincluded op mijn index.php want ik werk met $_GET voor mijn pagina's.

Wat doe ik toch verkeerd :S
Bedankt alvast!

EDIT:
Na lang wachten op tips/ideeen en antwoorden van jullie, mezelf en andere die ik spijtig genoeg niet heb gekregen/gevonden ben ik maar mijn eigen session syteem beginnen ontwerpen.

ik heb m.b.v functions de gegevens in de db gezet en zo een loginsysteem gemaakt ZONDER sessions en cookies. Ik hoop er ooit nog eens achter te komen waarom dit script niet werkte maar ja, das niet voor nu...

Misschien dat ik ooit mijn script van login zonder session en mét mysql een spost in scripts section. Bedankt allemaal ;)

17 antwoorden

Gesponsorde links
Offline xSc - 22/07/2010 16:10
Avatar van xSc Onbekend Gebruik geen ob_start(), maar werk met een template systeem (bijv. Smarty). Nu ga je sessies gebruiken waar het niet mag. Met templates stuur je op het laatst de output naar het scherm. Je hoeft dan ook niet te knoeien met JavaScript redirects.
Offline valles10 - 22/07/2010 16:14
Avatar van valles10 HTML interesse
xSc schreef:
Gebruik geen ob_start(), maar werk met een template systeem (bijv. Smarty). Nu ga je sessies gebruiken waar het niet mag. Met templates stuur je op het laatst de output naar het scherm. Je hoeft dan ook niet te knoeien met JavaScript redirects.

Dat vroeg ik niet, ik vroeg waar ik fout was... ik maak niet graag gebruik van die dwaze template systemen, maar bedankt voor de reactie. Toevallig nog enig idee? 
Offline xSc - 22/07/2010 16:29 (laatste wijziging 22/07/2010 16:29)
Avatar van xSc Onbekend Lol 

Maar wat je doet, druist in tegen de regels. Ik zou zeggen: leer het goed en scheid output van je PHP. Je zult zien dat het 100x makkelijker werkt. Met ob_start() onderdruk je terechte foutmeldingen. Not done 

En heel serieus: je werkwijze is zo fout dat ik zo niet kan zien wat jouw probleem is.
Offline TotempaaltJ - 22/07/2010 20:58
Avatar van TotempaaltJ PHP interesse
xSc schreef:
Gebruik geen ob_start(), maar werk met een template systeem (bijv. Smarty). Nu ga je sessies gebruiken waar het niet mag. Met templates stuur je op het laatst de output naar het scherm. Je hoeft dan ook niet te knoeien met JavaScript redirects.

Voor zover ik weet mag en kan je Sessions overal in je script aanpassen.

xSc schreef:
Maar wat je doet, druist in tegen de regels. Ik zou zeggen: leer het goed en scheid output van je PHP. Je zult zien dat het 100x makkelijker werkt. Met ob_start() onderdruk je terechte foutmeldingen. Not done 

En heel serieus: je werkwijze is zo fout dat ik zo niet kan zien wat jouw probleem is.

Zijn werkwijze ziet er prima uit. Ik ben het niet met je eens dat het 100x makkelijker werkt. Het is gewoon een kwestie van smaak. ob_start() is inderdaad not done, behalve als je het gebruikt waar het voor is bedoelt 

Ontopic: Geeft hij een error, of doet hij gewoon helemaal niks? In geval van het tweede: staan sessies wel aan in je htaccess of phpini ofzo?
Offline valles10 - 22/07/2010 23:08 (laatste wijziging 22/07/2010 23:08)
Avatar van valles10 HTML interesse
TotempaaltJ schreef:
[..quote..]
Voor zover ik weet mag en kan je Sessions overal in je script aanpassen.

[..quote..]
Zijn werkwijze ziet er prima uit. Ik ben het niet met je eens dat het 100x makkelijker werkt. Het is gewoon een kwestie van smaak. ob_start() is inderdaad not done, behalve als je het gebruikt waar het voor is bedoelt 

Ontopic: Geeft hij een error, of doet hij gewoon helemaal niks? In geval van het tweede: staan sessies wel aan in je htaccess of phpini ofzo?

neen, geen errors. Behalve als ik die sessie die ik heb aangemaakt wil echoen dus 'echo $_SESSION['user_id']; dan krijg ik error dat die niet bestaat.

Sessies staan aan in mijn php.ini.
Wat ik gewoon niet begrijp, is waarom hij die sessie niet maakt! ik ga morgen op een aparte pagina proberen of het lukt om een sessie te maken, anders ligt het misschien aan een van mijn classes of functions waar ik fouten heb waardoor die de sessies afbreekt.

edit: deze code is miss wel wat 'slordig' enz maar dat is omdat ik nog aan het testen ben.
Offline xSc - 23/07/2010 09:31
Avatar van xSc Onbekend ob_start() gebruiken waar het voor is bedoeld. Maar dit gebruik (van valles10 e.v.a.) is een teken van onmacht.  
Offline ArieMedia - 26/07/2010 13:18
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Zet eerst eens in de functie isLogged echo '<pre>'.print_r($_SESSION,1).'</pre>';

Krijg je een lege array, dan komt de sessie niet aan.
Weet je in ieder geval dat daar het probleem niet zit (of juist wel)
Offline Raze - 26/07/2010 14:12
Avatar van Raze PHP beginner wat is je code van users.class.php? hoogstwaarschijnlijk wordt je sessie gewoon niet geset.
Offline gnotrgnotr - 27/07/2010 15:35
Avatar van gnotrgnotr Nieuw lid op de pagina's van config.php die bestanden die geincludeded worden staat daar ook session_start(); in?
Offline ArieMedia - 27/07/2010 16:51
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
gnotrgnotr schreef:
op de pagina's van config.php die bestanden die geincludeded worden staat daar ook session_start(); in?
Mag hopen van niet, want dat is fout
Offline gnotrgnotr - 28/07/2010 22:35 (laatste wijziging 28/07/2010 22:36)
Avatar van gnotrgnotr Nieuw lid ja dat bedoel ik
Offline Esli - 29/07/2010 16:50
Avatar van Esli PHP interesse Kan je even voor de duidelijk je index.php laten zien? Knip de stukjes code maar uit die we niet mogen zien .
Offline valles10 - 29/07/2010 17:42
Avatar van valles10 HTML interesse hier zijn de files:
http://www.randscape.nl/layout/muzzle/rar.rar
Offline gnotrgnotr - 30/07/2010 11:35 (laatste wijziging 30/07/2010 11:36)
Avatar van gnotrgnotr Nieuw lid zie niks fouts
Offline valles10 - 30/07/2010 11:48
Avatar van valles10 HTML interesse Het is dat dat ik ook neit snap 
Offline Martijn - 30/07/2010 12:22
Avatar van Martijn Crew PHP als het online staat, ben jij de enige die er last van heeft, of iedereen? Anders kan het een cookie probleem zijn (sessies worden opgeslagen in een soort veredelde cookie)
Offline valles10 - 30/07/2010 12:24
Avatar van valles10 HTML interesse
Martijn schreef:
als het online staat, ben jij de enige die er last van heeft, of iedereen? Anders kan het een cookie probleem zijn (sessies worden opgeslagen in een soort veredelde cookie)

Ja weet ik, andere hebben er ook last van. Maar hoe dan ook, dan zou IK op andere websites ook problemen hebben met inloggen. Ik heb gehad dat ik lang zat te prutsen aan dit stukje code en dat het dan plots werkte, en bleef werken. En dan volgende dag, zonder iets te veranderen werkte het niet meer 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.455s