Als Login $_Session niet bestaat/expired is header location niet in div?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java developer met testervaring

Java developer met testervaring Functieomschrijving "De drempel tussen de burger en de Belastingdienst zo laag mogelijk houden: dat is de belangrijke taak van ons team. Dit doen we door het burgerportaal Mijn Belastingdienst continu te verbeteren." René, Java-specialist bij de Belastingdienst. De keten Interactie is een samenwerkingsverband van alle dienstonderdelen binnen de Belastingdienst. Samen zorgen we dat het contact met burgers en bedrijven goed kan plaatsvinden. Onze belangrijkste opgave? Zoveel mogelijk digitaliseren. Dat doen we binnen het onderdeel Informatievoorzieningen (IV), de ICT-organisatie van de Belastingdienst. Denk bij de producten die IV-Interactie ontwikkelt en onderhoudt aan portalen, formulieren en authenticatie- en

Bekijk vacature »

Full Stack Developer Industriële Automatiseri

Raster wordt continu betrokken bij complexe en baanbrekende projecten in industriële automatisering. Ons team is gespecialiseerd in productie automatisering en proces automatisering projecten waarin procesveiligheid een belangrijk aspect is. Ons compact en groeiend OX (Operational Excellence) team ontwikkelt, configureert en levert support op zelfontwikkelde applicaties waarmee onze klanten hun productieprocessen slimmer, sneller, goedkoper en veiliger maken. Operational Excellence wordt zichtbaar gemaakt in resultaten. Bij bedrijven met dezelfde strategie, zal een operationeel excellent bedrijf een lager operationeel risico, lagere operationele kosten hebben en relatief meer winst maken. Het Raster OX team laat haar klanten de resultaten behalen door hun eigen procesdata

Bekijk vacature »

Marvin H

Marvin H

03/10/2012 16:55:34
Quote Anchor link
Jullie kennen het probleem vast wel, je maakt een login systeem en controleert op elke php pagina waarvoor je ingelogd moet zijn of bepaalde sessies nog actief zijn, zo niet, dan redirecten header(location: ); naar de login pagina.

Nu is het zo dat als mijn sessie is verlopen, vanwege inactiviteit en iemand klikt een link aan wat een stukje AJAX aanroept en de resultaten in een DIV zet, dan verschijnt in deze DIV het login formulier, echter wil ik dat als de sessie is verlopen dat de gehele pagina redirect...

Hoe dit te doen?
 
PHP hulp

PHP hulp

17/10/2021 02:08:50
 
Cake Masher

Cake Masher

03/10/2012 18:03:07
Quote Anchor link
Kan je in dat geval niet beter kijken of je de verwachte resultaten kloppen? Zo niet, redirect je via javascript de pagina.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
window.href = '';

(als ik me niet vergis).
 
Nick Dijkstra

Nick Dijkstra

03/10/2012 18:50:05
Quote Anchor link
volgens mij is het:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
window.location = '';
 
Chris -

Chris -

03/10/2012 20:03:15
Quote Anchor link
Je kan er ook voor kiezen om een timer van een minuut ofzo te doen. Dan heb je twee mogelijkheden, de sessie levend houden, of juist kijken of de laatste actie meer dan xxx aantal seconden geleden is. Zoja, dan geef je dat als resultaat terug.

Da's handiger dan dat in de functie te doen die de pagina laad, omdat hij op deze manier kan redirecten wanneer die tijd lang geleden is.

Voor de duidelijkheid, bij het laden van een pagina moet je die timer weer resetten via de sessie he ;-)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

04/10/2012 01:06:32
Quote Anchor link
Als je je ajax pagina's alleen vanuit ajax benaderd en niet als 'gewone pagina' dan kun je voor de ajax pagina's het redirecten er uit laten en in plaats daar van een standaard foutmelding echo-en. Vervolgens is het niet moeilijk om in javascript dmv een if statement de xmlhttp.responseText te testen op die foutmelding.

voorbeeldje?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
  session_start();
  if(!isset($_SESSION['username'])) {
    echo "session timeout";
    exit();
  }

?>


javascript:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
function Posthttp(target, url, data) {
    var
xmlhttp;
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
      }
else {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }

    document.getElementById(target).innerHTML="loading...";
    xmlhttp.onreadystatechange=function() {
          if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            if(xmlhttp.responseText == 'session timeout')
                window.location = 'login.php';
            else
                document.getElementById(target).innerHTML=xmlhttp.responseText;
        }
      }

    xmlhttp.open('POST',url,false);
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send(data);
}


?>


groeten Frank
Gewijzigd op 04/10/2012 01:08:07 door Frank Nietbelangrijk
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.