[PHP] onunload uitschakelen

Pagina: 1
Acties:

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
In de <BODY> tag staat deze onunload:
code:
1
<?php if(!$noonunload) { echo"onunload=\"window.open('index.php?logout=1','popup', 'toolbar=no, location=no, status=no ,menubar=no ,directories=no, scrollbars=no, resizable=no ,width=550 ,height=150');\""; } ?>

Zoals je ziet, staat er php in de BODY tag.
Dan heb je een link op die pagina:
code:
1
<A href="gegevenswijzigen.php" onclick="<?php $noonunload = "yes"; ?>">Gegevens Wijzigen</A>

Mu was het de bedoeling, dat als je op de link klikt, dat hij den de onunload in de body tag over slaat. Maar om de een of andere reden, gebeurd dit niet.

Weet iemand waarom niet? En zou je dan ook een verbetering kunnen geven?

Alvast bedankt ;),
Bart

  • rickmans
  • Registratie: Juli 2001
  • Niet online

rickmans

twittert

Wat wil je met deze code bereiken? Misschien dat je doel ook op een andere manier bereikt kan worden?

Don't mind Rick


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 23:47

Pelle

🚴‍♂️

Je loopt hier op een gruwelijke manier javascript en php door elkaar te halen.

Denk in termen als
code:
1
<a href="gegevenswijzigen.php?noonunload=yes">blaat</a>

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Ja, dat d8 ik ook al, dat ika lles door elkaar aan het halen was.
Even uitleggen waarvoor het is:
Dit is een klein stukje van een membersysteem. Als je de pagina sluit, dan meld je je automatisch af, door de onunload. De pagina waar die naar linkt, wordt je uitgelogd. Stel je voor, je wilt naar een andere pagina van het membersysteem, wordt je automatisch uitgelogd. Er moet dus een manier zijn om die onunload te omzeilen. Dat heb ik gedaan door de $noonunload. Als die een waarde bevat, wordt de onunload overgeslagen.
Nu moet, als je op die link klikt die $noonunload gemaakt worden, anders log je automatisch uit. Maar die $noonunload mag niet vóór dat je op de link klikt gemaakt worden, want anders is er geen auto uitlog meer...

Om een lang verhaal kort te maken, als je op een link klikt, moet er een $noonunload variable gemaakt worden. Hoe dat moet weet ik niet. Misschien in javascript?

in de link ...?noonunload=yes te zetten werkt niet, omdat je dat nog op de ACTIEVE pagina moet hebben. Als je het zo in de link zet, heeft alleen de volgende pagina dat niet meer.

Bart

  • Norjee
  • Registratie: April 2000
  • Niet online
grappig.. hier ben ik afgelopen zondag mee bezig geweest..

ik heb het met javascript opgelost...

kijk maar wat je ermee kan..

wat er gebeurd is dat zodra de pagina geladen wordt elke link een onclick event erbij krijgt die de de functie disableExit aanroept die de globale variabele doDisableExit false geeft...

hiervoor gebruik ik de functie add_ads.. deze doet verder nog wat meer, maar jij hebt alleen het onclick gedeelte nodig.

onuload word de functie openExit aangeroepen...
deze functie controleerd of er doDisableExit waar is.

Om het goed te doen moet je ook alle forms nog een onsubmit event geven die ook disableExit() aanroept.

btw onunload is niet een goede manier om uit te loggen... onuload werkt pas als de pagina helemaal geladen is.. sluit iemand de pagina nadat deze half geladen is loopt jou systeempje in de soep
code:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
function add_ads()
    {
    newCode = new String;
    i = new Number(0);
    
    
    for(i=0 ; i < document.links.length ; i++)
        {
        aap = new String(document.links[i].onclick);
        if(aap.toLowerCase().indexOf('function')==-1);  
            {   
            document.links[i].onclick = function () {disableExit()};
            if (i > 4)
                {
                eval("document.links[i].onmouseover = function () {do_ad("+i+" , 1)}");
                eval("document.links[i].onmouseout = function () {do_ad("+i+" , 0)}");
                }
            }
        
        if(aap.toLowerCase().indexOf('function')!=-1)
            {   
            p1 = aap.substr(0 , aap.toLowerCase().indexOf('{')+1);
            p2 = aap.substr(aap.toLowerCase().indexOf('{')+1);
            
            eval("document.links[i].onclick = "+p1+"disableExit(); "+p2);
            //alert(p1 +"\n----\n"+ p2);
            //document.links[i].onclick = function () {disableExit()};
            }
            
        
        
        }
        
    //alert(getRealTop(document.links[12]));    
    }
    
var doDisableExit = false;
//exitUrl = "http://127.0.0.1/"; 

function disableExit()
    {
    //alert(doDisableExit);
    doDisableExit = true;   
    return true;
    }

function openExit()
    {   
    if (!doDisableExit)
        {
        today = new Date;
        lexit = Get_Cookie('lexit');
        if (lexit != null)
            {
            if ((today.getTime() - lexit) < 1000*60*60*12)
                return;
            }
        Set_Cookie('lexit',today.getTime(),'/', d_naam ,0); 
           window.open(exitUrl, '' , '');
        }
    }

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Ik zal je script bekijken, en hardstikke bedankt.
Over dat onunload nog, het script is php, dus het wordt binnen lutteloze sec geladen. En dan moet je toch wel héél snel zijn, om de server voor te zijn! :P

Bart ;)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

oikoyama:
lutteloze sec
lol :D

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • RRX
  • Registratie: Mei 2000
  • Laatst online: 25-08 23:43

RRX

@life-

Op dinsdag 07 mei 2002 21:57 schreef oikoyama het volgende:
Ik zal je script bekijken, en hardstikke bedankt.
Over dat onunload nog, het script is php, dus het wordt binnen lutteloze sec geladen. En dan moet je toch wel héél snel zijn, om de server voor te zijn! :P

Bart ;)
Ik hoop voor je dat je niet serieus bent, maar ik zou me toch echt even zwaar gaan verdiepen in het verschil tussen server-side en client-side scripting :D

mijn T.net systeemspecspagina


  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
|:( Hoe stom! Ik zie m'n fout al, groot gelijk, nee was ff verkeerd bezig, sorry! Was een beetje :z

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:28

crisp

Devver

Pixelated

De vraag is ook wat er in een <A href="pagina.html" onClick="nounload=false"> het eerste wordt uitgevoerd; ik gok de href.
Dit zou moeten werken:
code:
1
2
3
4
5
6
7
8
9
10
11
<html>
<head>
<title>Unload</title>
<script type="text/javascript">
var nounload = false;
</script>
<head>
<body onUnload="if (!nounload) alert('gaat u nu al weg?')">
<a href="javascript://" onClick="nounload=true;window.location='volgendepagina.html'">Volgende Pagina</a>
</body>
</html>

Intentionally left blank

Pagina: 1