login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Session controleren

Offline UpLink - 08/08/2010 13:36 (laatste wijziging 08/08/2010 13:54)
Avatar van UpLink... Ik zou graag willen controleren of een session al bestaat of niet.
Als deze nog niet bestaat, dan moet de redirect in werking treden.

Ik heb het volgende al, maar dat doet niets.

  1. <?php
  2.  
  3. if(isset($SESSION['security_session'])){
  4. echo "<script language=JavaScript>alert('Je bent nog niet ingelogd.\nLog je eerst in op de site aub.');</script>";
  5. header('Location: http://www.chat2me.be/');
  6. exit();
  7. }
  8.  
  9. ?>


Dit is de volledige pagina:


  1. <?php
  2.  
  3. if(isset($SESSION['security_session'])){
  4. echo "<script language=JavaScript>alert('Je bent nog niet ingelogd.\nLog je eerst in op de site aub.');</script>";
  5. header('Location: http://www.chat2me.be/');
  6. exit();
  7. }
  8.  
  9. ?>
  10. <?php
  11.  
  12. require_once '../../../common/server/php/settings.php';
  13. require_once '../../../common/server/php/core/core.php';
  14.  
  15. $roomId = (isset($_GET["roomId"])) ? $_GET["roomId"] : "";
  16. $uid = (isset($_GET["uid"])) ? $_GET["uid"] : "";
  17. $langId = (isset($_GET["langId"])) ? $_GET["langId"] : "";
  18.  
  19. ?>
  20. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  21. <html>
  22. <head>
  23. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  24. <title>CHAT2ME - De Nederlandstalige Community</title>
  25. <script language="javascript" src="<?php echo FLASHCOMS_HTTP_ROOT; ?>common/js/flashcoms.js"></script>
  26. </head>
  27. <body style="margin:0px;">
  28. <?php
  29. renderApplication("videochat", array("roomId"=> $roomId, "uid" => $uid, "langId" => $langId));
  30. ?>
  31. </body>
  32. </html>

16 antwoorden

Gesponsorde links
Offline Martijn - 08/08/2010 13:54
Avatar van Martijn Crew PHP Heb je session start? En ten tweede, je kan een header() niet gebruiken na output (in dit geval de echo dus). Er mag niets naar de browser zijn verstuurd
Offline UpLink - 08/08/2010 13:56
Avatar van UpLink ... Gewoon ob_start; bovenaan de pagina zetten?

En hoe moet ik dan redirecten als de sessie nog niet bestaat?
Offline ArieMedia - 08/08/2010 16:27
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Wat dacht je van
  1. if(isset($_SESSION['hupplepup'])) {
  2.  
  3. }


Dus met een underscore 
Offline Martijn - 08/08/2010 18:25
Avatar van Martijn Crew PHP en ob_start() = slecht. Tenzij je weet wat je doet.
Offline UpLink - 08/08/2010 18:56 (laatste wijziging 09/08/2010 17:22)
Avatar van UpLink ...
ArieMedia schreef:
Wat dacht je van
[..code..]

Dus met een underscore 


Dat was ik dus vergeten 


// EDIT:

Nu heb ik dus dit staan:

  1. <?php
  2.  
  3. if(isset($_SESSION['security_session'])){
  4. header('Location: http://www.chat2me.be/');
  5. exit();
  6. }
  7. ?>


Maar hij doet nog steeds niks...  

Het is dus de bedoeling dat er op de site word ingelogd, dan word die session aangemaakt en dat men dan pas toengang kan krijgen tot de chatapplicatie.
Als de session niet bestaat, moet er een redirect zijn (eventueel met melding) naar de site.

Ik heb al vanalles geprobeerd. Of het werkt niet, of ik krijg een foutmelding dat de headers al verstuurd zijn...

Ik kom er niet uit...
Offline jarah - 10/08/2010 01:15
Avatar van jarah Nieuw lid Boven je check van je sessie moet je altijd starten met session_start();
Offline urqbz - 10/08/2010 09:59 (laatste wijziging 10/08/2010 10:00)
Avatar van urqbz PHP interesse en ob_start() = slecht. Tenzij je weet wat je doet.
Zou je dat uit willen leggen, ik ben erg benieuwd waarom... (vanuit geïnteresseerd oogpunt, mocht ik ironisch klinken)
Offline Maarten - 10/08/2010 10:46
Avatar van Maarten Erelid
Citaat:
Het is dus de bedoeling dat er op de site word ingelogd, dan word die session aangemaakt en dat men dan pas toengang kan krijgen tot de chatapplicatie.

Misschien is !isset dan een betere keuze?
Offline Martijn - 10/08/2010 11:12
Avatar van Martijn Crew PHP omdat OB een buffer is die alle output opvangt, en dan onderaan de php pagina pas naar de browser stuurt. Op die manier kun je header() bv halverwege de pagina gebruiken. Maar als je correct programmeerd, is dat totaal overbodig.
Offline UpLink - 10/08/2010 11:54 (laatste wijziging 10/08/2010 12:03)
Avatar van UpLink ... Leuk,

Nu werkt het wel...

Maar ik zou graag een melding weergeven dat ze nog niet ingelogd zijn als de sessie niet bestaat...

Maar Martijn zei me:

Martijn schreef:
En ten tweede, je kan een header() niet gebruiken na output (in dit geval de echo dus). Er mag niets naar de browser zijn verstuurd


Hij had het op dit:

  1. <?php
  2.  
  3. if(isset($SESSION['security_session'])){
  4. echo "<script language=JavaScript>alert('Je bent nog niet ingelogd.\nLog je eerst in op de site aub.');</script>";
  5. header('Location: http://www.chat2me.be/');
  6. exit();
  7. }
  8.  
  9. ?>


Hoe kan ik het dan wel doen?
Offline urqbz - 10/08/2010 12:46 (laatste wijziging 10/08/2010 12:48)
Avatar van urqbz PHP interesse
Martijn schreef:
omdat OB een buffer is die alle output opvangt, en dan onderaan de php pagina pas naar de browser stuurt. Op die manier kun je header() bv halverwege de pagina gebruiken. Maar als je correct programmeerd, is dat totaal overbodig.


Aha, hoe zou je in het geval van UpLink die
  1. <?php // kleur
  2. header("location:blaat"); ?>
in de if van hierboven dan correct moeten doen? Ik ben erg benieuwd, want ik gebruik zelf vaak dit soort constructies.
Offline Maarten - 11/08/2010 10:59
Avatar van Maarten Erelid Eerst de header zetten, dan de echo?

dus in die volgorde:
headert('Location: x');
echo 'blaablabla';
Offline gnotrgnotr - 11/08/2010 13:40
Avatar van gnotrgnotr Nieuw lid session_start();
en
ob_start();
bovenaan
Offline UpLink - 11/08/2010 22:39 (laatste wijziging 11/08/2010 22:39)
Avatar van UpLink ... session_start(); mag niet bovenaan staan bij mij want als de sessie eerst niet bestaat word je naar de site doorgestuurd.
Als je dan de boel aflsuit en weer opstart kan je wel gewoon naar de chat gaan want er is een sessie aangemaakt... (heb ik zo getest zonder de sessie van de site zelf)

Het is de bedoeling dat de sessie aangemaakt word als je inlogt op de site (en dat werkt al correct, vandaar de controle op security_session) en als die niet bestaat kan je ook iet inloggen op de chat.

Ik heb nu al wel iets werkend gekregen, maar die melding krijg ik niet gedaan.
Ik moet een redirect instellen naar een andere pagina op de site, zo de melding geven en dan weer laten redirecten naar de correcte pagina.

Het is een omweg, maar anders wil het niet werken...
Offline gnotrgnotr - 20/08/2010 17:22
Avatar van gnotrgnotr Nieuw lid ja das nie slim waar je een sessie wil op de pagina zet je bovenaan op de pagina ja anders sluit dit topic nooit
Offline Martijn - 20/08/2010 19:34
Avatar van Martijn Crew PHP je kunt de header() ook een tijd meegeven, die zet je bv op 5 en dan 'je bent niet ingelogd' met een 'klik hier om snel te gaan'
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.244s