uitlog probleempje

Status
Niet open voor verdere reacties.

JB'tje

Gebruiker
Lid geworden
31 mei 2004
Berichten
556
hallo weer...

ik heb een 'aanbieding' van lycos gebruikt om mijn site te testen. dus, die is nu onlone te vinden... maar, er is nog een probleempje (niet dat er nog 6 sites ontbreken hoor...) als je ingelogd bent op de site, en daarna het venster dichtgooit, en na 10 min weer opend, dan ben je nog steeds ingelogd... ik zou graag iets willen dat zodra je het window dichtgooit dat de session unset wordt. kan dat??? en zo ja hoe (normaal doet de server dat, maar bij mij dus niet...???)

alvast bedankt,

JB'tje :thumb:

p.s. de site is www.battlesoftime.com, nog niet echt voor gebuik beschrikbaar.
p.p.s. weet iemand waarom lycos een gratis host weggeeft??? of zit er nog een addertje onder het gras (die ik niet heb kunnen vinden :o)
 
Laatst bewerkt:
Je gebruikt toch wel sessies he ? :p

De sessie blijft bestaan zolang je je browser open hebt staan (dus maakt niet uit welk venster)... volgens mij.

Je kan ook cookies gebruiken met een geldigheid van 10 minuten, maar ja als mensen dan langer dan 10 minuten op de site zitten ist ook weer zo lastig..
 
jep, ik weet het heel zeker... ik gebruik (nog) geen coocies...

JB'tje
 
Geplaatst door JB'tje
[...] als je ingelogd bent op de site, en daarna het venster dichtgooit, en na 10 min weer opend, dan ben je nog steeds ingelogd...
Staat de site in de cache ? Werkt je login check wel goed ?
Voer anders eens een print_r($_SESSION); uit om te kijken welke data er in de sessie staat.
ik zou graag iets willen dat zodra je het window dichtgooit dat de session unset wordt. kan dat??? en zo ja hoe (normaal doet de server dat, maar bij mij dus niet...???)
Lees anders wat documentatie over sessies :)
 
Geplaatst door JPeetje
Staat de site in de cache ? Werkt je login check wel goed ?
chace??? wat is dat???, verder wertk mijn login wel goed, tenminste, je vult de gegevens in en daarna (indien die goed zijn) wordt $_session['unserid'] het ID dat uit de database is opgehaald...

Voer anders eens een print_r($_SESSION); uit om te kijken welke data er in de sessie staat.Lees anders wat documentatie over sessies :)
ik ga nu een print_r uitvoeren, resultaat: '1' dit staat ook in de database.

ik ga ook de documentatie lezen... :D Ik zeg het wel als ik er niet uitkom.

JB'tje
 
Geplaatst door JB'tje
chace??? wat is dat???
Cache
De cache van een browser is een gedeelte van de harddisk waar gegevens opgeslagen worden die van het internet opgehaald worden ( zoals webpagina's).
Bron.
Deze kun je legen door naar je browseropties te gaan en daar de hele mikmak te wissen.
ik ga nu een print_r uitvoeren, resultaat: '1' dit staat ook in de database.
En als je het venster afsluit en vervolgens weer opent ? Staat er dan weer '1' ?


// Edit:
Laatst aangepast door JPeetje op 16-12-2004 om 22:39
Ja, laad dan eens wat sneller man ! Één klein typfoutje verbeteren ... 6 minuten werk ... Hmpf ...
 
Laatst bewerkt:
Geplaatst door JPeetje
En als je het venster afsluit en vervolgens weer opent ? Staat er dan weer '1' ?
jep, er staat weer: 1
ik heb net gekeken of dit ook voor andere ID numers geld, inloggen met ID = 10 en dan de site weer opstarten, maar dan blijft het ID gewoon 10

dus, ik vat het niet meer...
verder zou ik graag willen weten hoe ik ALLE $_sessions['bla'] die ik heb aangemaakt in een kaar kan verweideren.

unset($_SESSION); werkt niet echt.

JB'tje :)
 
Geplaatst door JB'tje
jep, er staat weer: 1
Maak je op de pagina de sessie weer opnieuw aan met dezelfde waarde ? Check dit zorgvuldig na, want ik zou geen andere redenen weten waardoor hij dit gedrag vertoont.
verder zou ik graag willen weten hoe ik ALLE $_sessions['bla'] die ik heb aangemaakt in een kaar kan verweideren.

unset($_SESSION); werkt niet echt.
Let op
Do NOT unset the whole $_SESSION with unset($_SESSION) as this will disable the registering of session variables through the $_SESSION superglobal.
Bron.
 
Laatst bewerkt:
zoals ik het doe: eerst kom je op een site, willekeurig en log je in. de invulgegevens voor het login staan allemaal op een pagina: login.php (deze word geincludeerd DUS NIET DE GEGEVENS DOORVERWEZEN door action="login.php")
vervolgens word je ID opgezocht bij de gebruikersnaam, e-mail en passpoort (indien ze allen overeen komen met wat in de database staat!!!) je hebt dus nu een ID.

vervolgens word er ook gekeken of 'action' 1 is. zo niet, dan ga je naar de personalizepassword site. daar word action 1 gemaakt en heb je je eigen password.

als je helemaal ingelogd bent word de session $_SESSION['userid'] alleen nog maar uitgelezen!! en NIET meer naar geschrefen.
dus, ik zou het ook niet weten...

Let op
Do NOT unset the whole $_SESSION with unset($_SESSION) as this will disable the registering of session variables through the $_SESSION superglobal.
ja, ik was een beetje gemakzuchtig... ik had beter zelf ff kunnen kijken op php.net maar heel erg bedankt.:o

JB'tje
 
't probleem met die session op lycos.nl is nog steeds niet opgelosd, maarja.... dan blijven de accounts maar ingelogd.

ik ben nu bezig met de pagina waar je berichten kunt lezen maar ik heb een probleem met de gegevens uit de database helan.
de tabel:

CREATE TABLE berichten (
messageID int(20) unsigned not null auto_increment primary key,
ontvangerID varchar(10) NOT NULL,
verzenderID varchar(10) NOT NULL,
ontvangernaam varchar(30) NOT NULL,
verzendernaam varchar(30) NOT NULL,
subject varchar(40) NOT NULL,
time varchar(10) NOT NULL,
message TEXT NOT NULL,
FULLTEXT (message)
);

nu moet er eerst gekeken worden welk messageID hoort bij jou inloggegevens, dit lukt wel, maar ik krijg maar een getal... ik wil graag een array vol hebben met ALLE messageID's waar ontvangerID = 1
hoe kan ik dat doen???

vervolgens kan ik de gegevens eruit halen met een foreach() en dan al die messageID afgaan...
maar, is er ook een manier dat alle gegevens er in een keer uitkomen?

JB'tje
 
Voorbeeldje:

PHP:
$array = array();

while($get = mysql_fetch_object($sql))
{
        $array[] = $get->veldnaam;
}
Zoeits, geloof ik.
 
Vaak als je gebruikt maakt van sessies zie je dingen over het hoofd (zo ik ook). Daar hebben ze een uitstekende functie voor.

Zet bovenin de 'eerste' pagina (dus als ALLER eerste wat geladen word) :
PHP:
<?php
error_reporting(E_ALL);
?>

Dit is een manier om énorm streng naar de code te kijken en alles wat maar in de buurt van fout komt aan te geven. Ik programmeer persoonlijk altijd met deze regel in het systeem, dat zorgt er voor dat je concequent heel netjes gaat scripten.

PHP:
<?php

$q = mysql_qeuery("SELECT * FROM tabel WHERE id = '1'");

$array = array();
$i = 0;

while($f = mysql_fetch_assoc($q)) {

     $array[$i] = $f;
     $i++;
}

?>
 
Geplaatst door acid007
Vaak als je gebruikt maakt van sessies zie je dingen over het hoofd (zo ik ook). Daar hebben ze een uitstekende functie voor.

Zet bovenin de 'eerste' pagina (dus als ALLER eerste wat geladen word) :
PHP:
<?php
error_reporting(E_ALL);
?>

Dit is een manier om énorm streng naar de code te kijken en alles wat maar in de buurt van fout komt aan te geven. Ik programmeer persoonlijk altijd met deze regel in het systeem

Op standaard systemen staat dit aan. op Lycos staat het echter uit (Wie gebruikt er dan ook lycos..)

Geplaatst door acid007 dat zorgt er voor dat je concequent heel netjes gaat scripten.

PHP:
<?php

$q = mysql_qeuery("SELECT * FROM tabel WHERE id = '1'");

$array = array();
$i = 0;

while($f = mysql_fetch_assoc($q)) {

     $array[$i] = $f;
     $i++;
}

?>
[/B]
Concequent en netjes ? Sjees, dis geen PHP Golf. Je mag er best wat overzicht in stoppen. Verder, dit script werkt niet..

:thumb:
 
Geplaatst door masterprut

....(Wie gebruikt er dan ook lycos..)
@masterprut Grrr... ik gebruik het :evil:, als je er een gratis host kunt krijgen is het echt niet zo slecht hoor.... :)
op Lycos staat het echter uit
ooh ja??? dus niet... het is zelfs met rooode lettertjes aangegeven.... (tenminste, indien je er een betaalt host hebt!!!)

@BrEeZeR
Dank je voor de code, het deed mijn geheugen weer opfrisssen... het probleem is weer opgelosd...

@acid007
<?php
error_reporting(E_ALL);
?>
wat masterprut al zei...

<?php

$q = mysql_qeuery("SELECT * FROM tabel WHERE id = '1'");

$array = array();
$i = 0;

while($f = mysql_fetch_assoc($q)) {

$array[$i] = $f;
$i++;
}

?>
persoonlijk vind ik het een gaotiesche code... aangezien je maar 26 letters in het alfabet hebt kun je maar 26 $ aanmaken.... ik zou de $ een naam geven....

Alvast prettige kerstdagen voor ieder indien ik hier niet meer vraag in de komende dagen...

Greetz, JB'tje :D
 
Ik vind het prima werken, net even getest en inderdaad het werkt prima.

Dat het zo raar er uit komt hier op de site (extra lijnen e.d.) kan ik ook weinig aan doen, Het is in elk geval erg duidelijk als je naar de code kijkt.

Op standaard systemen staat dit aan. op Lycos staat het echter uit (Wie gebruikt er dan ook lycos..)

Dat is onzin, 90% van de webhosters zet het expres uit omdat klanten gaan zeuren (zo bij ons ook). Die hebben geen idee waarom ze ineens(?) fouten krijgen.
 
Lekker veilig allemaal dan, gelukkig staat op mijn host alles mbt fouten aan dus zijn mijn scripts veilig en foutloos.

Mensen die niet veilig kunnen PHPen moeten ook geen PHP website beginnen..
 
Geplaatst door acid007
Ik vind het prima werken, net even getest en inderdaad het werkt prima.

Dat het zo raar er uit komt hier op de site (extra lijnen e.d.) kan ik ook weinig aan doen, Het is in elk geval erg duidelijk als je naar de code kijkt.



Dat is onzin, 90% van de webhosters zet het expres uit omdat klanten gaan zeuren (zo bij ons ook). Die hebben geen idee waarom ze ineens(?) fouten krijgen.

Nonsens..

Kopieer de eens exact en je zult zien dat het niet werkt. Eerst je code testen voordat je het online zet.. Anders hebben anderen er geen barst aan.

:thumb:
 
Geplaatst door acid007
Vaak als je gebruikt maakt van sessies zie je dingen over het hoofd (zo ik ook).
Uh, zelden last van ? :)
Dit is een manier om énorm streng naar de code te kijken en alles wat maar in de buurt van fout komt aan te geven.
Enorm streng ? Was het maar zo'n feest. Dan zouden beginners wellicht meteen fatsoenlijk leren programmeren. Het enige verschil is dat deze error_reporting() notices laat weergeven.

Dat is onzin, 90% van de webhosters zet het expres uit omdat klanten gaan zeuren (zo bij ons ook).
Ik begon pas met zeuren bij m'n webhost toen ze 't uitzetten. En dan beweren zij ook nog eens dat ze niets aan de server hebben veranderd ... Nee nee ...

Overigens, ook ik ben van mening dat dat stukje code van je niet echt super is :)
Argumenten:
  • mysql_qeuery is geen functie. Misschien zelfgemaakt, maar dan zou je 'm niet zo noemen denk ik :p
  • Geen errorhandling voor het geval de query fout gaat.
  • Je fetched meteen, je checkt niet of er wel rijen zijn opgehaald met de query (de tabel kán tenslotte leeg zijn).
  • Die $i is overbodig, aangezien PHP diezelfde numerieke sleutels aanwijst. Wellicht gaat het met de $i wel ietsjes sneller, maar die $i claimed wel weer geheugen van de server in.
@JB: Die $i is tegenwoordig een soort van standaard, hij wordt ook vaak gebruikt i.c.m. een for-lus :)
 
@JB: Die $i is tegenwoordig een soort van standaard, hij wordt ook vaak gebruikt i.c.m. een for-lus :)
ja, ik gebruik gewoon $var dan is het ook duidelijk wat het betekend, een varriabele.... :D

Greetz.. JB'tje
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan