login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Sessie al gestart

Offline Frederic - 03/09/2005 12:48
Avatar van FredericPHP ver gevorderde Ik heb mijn eigen loginsysteem gemaakt op basis van dat van Murfy. Nu, alles goed en wel, je blijft netjes ingelogd, maar na bvb 10min van inactiviteit op de site krijg ik iedere keer volgende error:
Citaat:
A session had already been started - ignoring session_start()

Dit is nadat je correct ben ingelogd (de check gebeurt erboven nog maar daar zit de fout niet denk ik):
  1. <?php session_start();
  2. setcookie("gebruikersnaam","".$gebruikers_rij['gebruikersnaam']."",time()+32140760);
  3. setcookie("wachtwoord","".$gebruikers_rij['wachtwoord']."",time()+32140760);
  4. $_SESSION['gebruikersnaam'] = $gebruikers_rij['gebruikersnaam'];
  5. $_SESSION['gebruikersid'] = $gebruikers_rij['id']; ?>

Nu, dat werkt allemaal, ik log in en ik blijf onthouden. Na enkele minuten van inactiviteit krijg ik dus bovenstaande error op regel 8 van onderstaand script:
  1. <?php session_start(); // start een sessie of zet een sessie voort
  2. // als de gebruiker is ingelogd
  3. if(!isset($_SESSION['gebruikersnaam']) && isset($_COOKIE['gebruikersnaam']) && isset($_COOKIE['wachtwoord'])) {
  4. // Gegevens uit koekje halen
  5. $zoek = mysql_query("SELECT * FROM leden WHERE gebruikersnaam='".$_COOKIE['gebruikersnaam']."' AND wachtwoord='".$_COOKIE['wachtwoord']."'");
  6. if(mysql_num_rows($zoek) > 0) {
  7. while($gebruikers_rij = mysql_fetch_assoc($zoek)) {
  8. $_SESSION['gebruikersnaam'] = $gebruikers_rij['gebruikersnaam'];
  9. $_SESSION['gebruikersid'] = $gebruikers_rij['id'];
  10. header("Location: ".$_SERVER['REQUEST_URI']);
  11. }
  12. } else {
  13. $_SESSION = array();
  14.  
  15. // cookies deleten
  16. if(isset($_COOKIE['gebruikersnaam'])) {
  17. setcookie("gebruikersnaam", "", time(), "/");
  18. }
  19. if(isset($_COOKIE['wachtwoord'])) {
  20. setcookie("gebruikersnaam", "", time(), "/");
  21. }
  22. } ?>

Ik heb voor het gemak even de MD5 eruit gehaald, maar dat zal wss geen invloed hebben.

Nota: Na de fout (A session had already been started - ignoring session_start()) ben ik wel nog altijd ingelogd, dus het werkt eigenlijk zonder problemen, maar kan iemand me zeggen hoe dit op te lossen?

4 antwoorden

Gesponsorde links
Offline XenoX - 03/09/2005 12:52
Avatar van XenoX Gouden medailleGouden medaille

PHP expert
Haal de tweede en derde session_start()'s weg.
Offline Frederic - 03/09/2005 12:56
Avatar van Frederic PHP ver gevorderde En dan gaat het nog evenzeer werken?
Oh ja, ik werk ook met ob_start(); bovenaan de pagina, ik weet niet ofdat het iets uitmaakt?
Offline Thomas - 03/09/2005 13:15
Avatar van Thomas Moderator Haal het weg en zie het verschil ? 
Offline Stijn - 03/09/2005 16:11
Avatar van Stijn PHP expert :s je start in 1 script 4 keer een session :p dat is iets teveel van het goede volgens mij, gewoon op eerste rij na '<?' session_start() gebruiken of zoals je zegt:
  1. <?
  2. //hier ga je verder...
  3. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.189s