Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Some people manage by the book, even though they don't know who wrote the book or even what book.
Uhm...Op dinsdag 18 juni 2002 15:26 schreef Steije het volgende:
[topic=512413/1/50]
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Wat helemaal nergens op slaat.Op dinsdag 18 juni 2002 15:44 schreef elviver het volgende:
[Persoonlijke mening]Sla sessies over en begin meteen met cookies. Kun je mensen ook ingelogd HOUDEN als de browser sluit[/Persoonlijke mening]
Sessies gebruik je voor heel andere dingen en kan je ook zo lang in leven laten als de cookies die er vaak voor gebruikt worden...
$_SESSION["sessietje->loginok"] is in ieder geval geen 1 bij mij
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Hoe bedoel je? Het idee van een sessie is toch dat de sessie eindigt zodra de browser sluit? Ja, je kan die levend houden door zelf een sessiesysteem te schrijven, maar dan heb je het volgens mij dus weer over cookies.Op dinsdag 18 juni 2002 16:00 schreef ACM het volgende:
[..]
Wat helemaal nergens op slaat.
Sessies gebruik je voor heel andere dingen en kan je ook zo lang in leven laten als de cookies die er vaak voor gebruikt worden...
Ik vind cookies zelf veel irritanter met inlogsystemen dan sessies. Verder vind ik het nou ook niet echt problematisch dat je niet meer ingelogd bent als je de browser sluit.Op dinsdag 18 juni 2002 16:06 schreef elviver het volgende:
[..]
Hoe bedoel je? Het idee van een sessie is toch dat de sessie eindigt zodra de browser sluit? Ja, je kan die levend houden door zelf een sessiesysteem te schrijven, maar dan heb je het volgens mij dus weer over cookies.
maar verder:
topicstarter -> Kun je niet wat meer source geven?
Die print levert "Array ()" op... Terwijl ie het wel goed doet als ik hetzelfde doe in het menutje. Verder vind ik het ook vaag dat wanneer ik de frameset refresh hij de variabelen ook kwijt is. Moet ik deze soms in iedere pagina opnieuw registreren of zo?Op dinsdag 18 juni 2002 16:02 schreef elviver het volgende:
Probeer es print_r ($_SESSION); ? Volgens mij moet je hebben: $_SESSION["sessietje"]->loginok
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Hoef je niet eens zelf een sessiesysteem voor te schrijven, sessies van php kunnen dat ook.Op dinsdag 18 juni 2002 16:06 schreef elviver het volgende:
Hoe bedoel je? Het idee van een sessie is toch dat de sessie eindigt zodra de browser sluit? Ja, je kan die levend houden door zelf een sessiesysteem te schrijven, maar dan heb je het volgens mij dus weer over cookies.
Maar dat je niet session_* van php gebruikt zegt nog niet dat je geen sessies gebruikt he??
En bovendien, ben jij na het sluiten van je browser uitgelogd op gathering.tweakers.net?
Lijkt me niet
Hé, dat ken ik nog niet? Sessies met een lange expire time.. Ff goed zoekenOp dinsdag 18 juni 2002 16:13 schreef ACM het volgende:
[..]
Hoef je niet eens zelf een sessiesysteem voor te schrijven, sessies van php kunnen dat ook.
Maar dat je niet session_* van php gebruikt zegt nog niet dat je geen sessies gebruikt he??
En bovendien, ben jij na het sluiten van je browser uitgelogd op gathering.tweakers.net?
Lijkt me niet
Die tweede alinea snap ik niet? session_* van PHP?
Ik ben indeed niet uitgelogd van tweakers.. Maar is dat een sessie dan? Ik zie er doodleuk 2 variabelen staan: sessid én user.. In een sessie zit normaal toch maar 1 variabele?
[php]<? session_start(); ?><html><head><title>Redactie Login</title></head><body bgcolor="#c0c0c0"><center><span valign="center"><table border=1 bordercolor="000000" cellpadding=10 cellspacing=0 bgcolor="#FFFFFF" valign="center"><tr><td><form action="<? $PHP_SELF ?>" method="post"><input type="hidden" name="submit" value="1"><font face="verdana" size=1 color="#000000">Redactie Naam: <input type="text" name="naam" size=25><br>Paswoord: <input type="password" name="pass" size=25><br><input type="submit" value="OK!"></form></td></tr></table></span></center></body></html><?php $dbcnx = @mysql_connect("***", "***", "***"); if (!$dbcnx) { echo ( "Er is iets fout gegaan. Probeer het aub later opnieuw. "); exit (); } if (! @mysql_select_db(***)) { echo ("Kan de database niet vinden."); exit (); }$naam = addslashes($naam);$pass = addslashes($pass);if ($submit=='1'){ if ($rec = mysql_query("SELECT aut, paswoord FROM auteur WHERE aut='$naam' AND paswoord = '$pass'")){ $bestaat = mysql_num_rows($rec); if ($bestaat==1){ $sessietje->loginok = 1; $sessietje->username = "$naam"; $sessietje->password = "$pass"; session_register("sessietje"); echo "<p><center><font face=\"verdana\" size=1 color=\"#000000\"><b>Je bent ingelogd. Klik <a href=\"systeempjuh.php\">hier</a> om verder te gaan.\n </b></font></center>"; } //if else { echo " <p><center><font face=\"verdana\" size=1 color=\"#000000\"><b>Je gebruikersnaam of paswoord klopt niet.\n </b></font></center>"; }//else }//if}//if ?>[php]systeempjuh.php --> de frameset waar de gebruiker heen wordt gestuurd na het inloggen.
1
| <?php session_start(); if ($sessietje->loginok == 1) { ?> <html><head><title>Redactie Systeempjuh :)</title><frameset cols="131,*"><frame name="menu" src="menu.php"><frame name="main" src="hoi.php"></frameset></head><body>blaat</body></html><?php}else { include ("http://www.rpganime.nl/redactie/notlogged.php");}?> |
menu.php... het menutje dus.
1
| <? session_start(); if ($sessietje->loginok == 1) { ?> <html><head><link rel="stylesheet" type="text/css" href="/cls/ie.css" title="RPG Anime Styles."><script language="JavaScript"> <!--function mOvr(src,clrOver){if (!src.contains(event.fromElement)){src.style.cursor = 'default'; src.bgColor = clrOver;}}function mOut(src,clrIn){if (!src.contains(event.toElement)){src.style.cursor = 'default';src.bgColor = clrIn;}}function mClk(src){if(event.srcElement.tagName=='TD'){src.children.tags('A')[0].click();}} var isIMG = document.images; var Arrowon; var Arrowoff; if (isIMG) { Arrowon = new Image(8,8); Arrowon.src = "/img/blokje_on.gif"; Arrowoff = new Image(8,8); Arrowoff.src = "/img/blokje.gif"; } function Arrow(Arrowname) { if (isIMG) { document[Arrowname].src = (document[Arrowname].src.indexOf('blokje_on.gif') != -1) ? 'img/blokje.gif' : 'img/blokje_on.gif'; } } //--> </script></head><body bgcolor="#494949" marginwidth=0 leftmargin=0><table border=0 cellpadding=0 cellspacing=0 marginleft=0><tr><td bgcolor="#494949" onmouseout="mOut(this,'#494949');" onmouseover="mOvr(this,'#454545');">[img]"/img/blokje.gif"[/img]&nbsp;&nbsp;<a href="toevoegen.php" target="main" onMouseOver="Arrow('add')" onMouseOut="Arrow('add')" class="mrpga">Review Toevoegen</a><br> [img]"/img/scheiding.gif"><br>[/img] </tr><tr><td bgcolor="#494949" onmouseout="mOut(this,'#494949');" onmouseover="mOvr(this,'#454545');">[img]"/img/blokje.gif"[/img]&nbsp;&nbsp;<a href="edit.php" onMouseOver="Arrow('edit')" target="main" onMouseOut="Arrow('edit')" class="mrpga">Review Wijzigen</a><br> [img]"/img/scheiding.gif"><br>[/img] </tr><tr><td bgcolor="#494949" onmouseout="mOut(this,'#494949');" onmouseover="mOvr(this,'#454545');">[img]"/img/blokje.gif"[/img]&nbsp;&nbsp;<a href="passwijzig.php" onMouseOver="Arrow('pwedit')" onMouseOut="Arrow('pwedit')" target="main" class="mrpga">Paswoord Wijzigen</a><br> [img]"/img/scheiding.gif"><br>[/img] </tr><tr><td bgcolor="#494949" onmouseout="mOut(this,'#494949');" onmouseover="mOvr(this,'#454545');">[img]"/img/blokje.gif"[/img]&nbsp;&nbsp;<a href="index.php" onclick=<? session_destroy(); ?> target="_parent" onMouseOver="Arrow('loguit')" onMouseOut="Arrow('loguit')" class="mrpga">Uitloggen</a><br> [img]"/img/scheiding.gif"><br>[/img] </tr></table></body></html><?php }?> |
toevoegen.php --> het toevoegen van een recensie in de database. Hier gaat het dus fout. Hij is hier de variabelen kwijt...
1
| <? session_start(); if ($sessietje->loginok == 1) { ?> <html><head><link rel="stylesheet" type="text/css" href="/cls/ie.css" title="RPG Anime Styles."></head><body bgcolor="#c0c0c0" marginwidth=0 leftmargin=0 class="reviewtxt"><center><table border=1 bordercolor="#ffffff" bgcolor="#000000" cellpadding=10 cellspacing=0 width=300 align=left"><tr><td valign="top"><?php if ($submit != '1'){?><form action="toevoegen.php" action="post"><span class="reviewtxt"><input type="hidden" name="submit" value="1"><b>Artikel </b>(Recencie/Volledig nieuwsstuk): <br><textarea name="artikel" rows="7" cols="40"></textarea><p><b>Datum: </b> <input type="text" size=11 name="datum" value=" <? $datum = date("Y-m-d",time()); echo $datum; ?>"><p><b>Nieuwsstuk</b> (klein previewtje voor op main page):<br><textarea name="nwsstuk" rows="7" cols="40"></textarea><p><b>Categorie: </b> <select name="cat"><option></option><option>review</option><option>preview</option><option>nieuws</option><option>artikel</option></select><br><b>Sectie </b>(rpg invullen als het over games gaat): <select name="sec"><option></option><option>rpg</option><option>anime</option></select><br><b>Naam van game/anime/artikel:</b> <input type="text" size=22 name="name"><br><b>Systeem: </b> <select name="systeem"><option></option><option>VHS</option><option>DVD</option><option>Manga</option><option>Gamecube</option><option>SNES</option><option>N64</option><option>NES</option><option>PC</option><option>PSX</option><option>PS2</option><option>Dreamcast</option><option>GBC</option><option>GBA</option><option>GB</option><option>Mega Drive</option></select><br><b>Rating: </b> <select name="rating"><option></option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option></select><br><b>Genre: </b> <input type="text" size=11 name="genre"><br><b>Uitgever: </b> <input type="text" size=11 name="publisher"><br><input type="submit" value="Toevoegen!"><input type="reset" value="Overnieuw"></span></form><?php }else{ switch ($systeem){ case 'VHS' : $systeem = 1 ; break; case 'DVD' : $systeem = 2 ; break; case 'Manga' : $systeem = 3 ; break; case 'Gamecube' : $systeem = 4 ; break; case 'SNES' : $systeem = 5 ; break; case 'N64' : $systeem = 6 ; break; case 'NES' : $systeem = 7 ; break; case 'PC' : $systeem = 9 ; break; case 'PSX' : $systeem = 10 ; break; case 'PS2' : $systeem = 11 ; break; case 'Dreamcast' : $systeem = 8 ; break; case 'GBC' : $systeem = 13 ; break; case 'GBA' : $systeem = 15 ; break; case 'Mega Drive' : $systeem = 16 ; break; }//switch $titel = $name; switch ($cat){ case 'review' : $titel.= ' '; $titel.= $cat; break; case 'preview' : $titel.= ' '; $titel.= $cat; break; }//switch $dbcnx = @mysql_connect("***", "***", "***"); if (!$dbcnx) { echo ( "Er is iets fout gegaan. Probeer het aub later opnieuw. "); exit (); } if (! @mysql_select_db(***)) { echo ("Kan de database niet vinden."); exit (); } echo ("blaat: " . $sessietje->username); $autkweerie = mysql_query("SELECT AID FROM auteur WHERE aut='$naam'"); if (!$autkweerie) { echo ("Er is iets mis gegaan met het ophalen van de informatie". "uit de database.<p>". mysql_error() ); exit(); }//ifecho($AID);echo(" : ");echo($naam); $kweerie = mysql_query("INSERT INTO tekst (ID, artikel, datum, titel, aut_ID, nwsstuk, smallpic, cat, sec, name, publisher, SID, rating, genre) VALUES ('' , '$artikel', '$datum', '$titel', '$AID' , '$nwsstuk','' , '$cat', '$sec', '$name', '$publisher', '$systeem','$rating', '$genre');"); if (!$kweerie) { echo ("Er is iets mis gegaan met het ophalen van de informatie". "uit de database.<p>". mysql_error() ); exit(); }//if ?><span class="reviewtxt"> Bedankt voor het toevoegen! </class><?php }//else?></td></tr></table></center></body></html><?php}else { include ("http://www.rpganime.nl/redactie/notlogged.php");}?> |
toevoegen.php wordt dus aangeroepen in menu.php waar alles het nog wel goed doet, en wordt geopend in het main gedeelte van de frameset...
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Je hebt een principe van sessies.Op dinsdag 18 juni 2002 16:17 schreef elviver het volgende:
Die tweede alinea snap ik niet? session_* van PHP?
En je hebt de sessie-functies van php.
Dat is niet hetzelfde, die sessie-functies van php zijn een implementatie voor sessies.
Maar in JSP heb je ook sessie-functies, in asp etc.
Dat zijn allemaal implementaties.
Je kan zelf ook dat principe implementeren natuurlijk.
Met session_* bedoel ik gewoon de sessie-functies van php.
Euhms?Ik ben indeed niet uitgelogd van tweakers.. Maar is dat een sessie dan? Ik zie er doodleuk 2 variabelen staan: sessid én user.. In een sessie zit normaal toch maar 1 variabele?
Dat er 2 waarden in je cookie van GoT zitten heeft helemaal niets te maken met de werking van de sessies.
Gooi die dingen als je blieft niet door elkaar, een site kan ook cookies zetten _naast_ de sessieid...
Die dingen staan, behalve voor het sessieid in veel gevallen, compleet los van elkaar.
Sorry, dit ga ik níét lezen omdat: 1/ het topiclayout naar de kl*te is en 2/ het héél ruim is. Niet alleen je probleem.Op dinsdag 18 juni 2002 16:20 schreef www.Goku.nl een HOOP zooi:
Je hebt gelijkOp dinsdag 18 juni 2002 16:21 schreef ACM het volgende:
[..]
Je hebt een principe van sessies.
En je hebt de sessie-functies van php.
Dat is niet hetzelfde, die sessie-functies van php zijn een implementatie voor sessies.
Maar in JSP heb je ook sessie-functies, in asp etc.
Dat zijn allemaal implementaties.
Je kan zelf ook dat principe implementeren natuurlijk.
Met session_* bedoel ik gewoon de sessie-functies van php.
[..]
Euhms?
Dat er 2 waarden in je cookie van GoT zitten heeft helemaal niets te maken met de werking van de sessies.
Gooi die dingen als je blieft niet door elkaar, een site kan ook cookies zetten _naast_ de sessieid...
Die dingen staan, behalve voor het sessieid in veel gevallen, compleet los van elkaar.
Oke, oke.. Misschien zijn sessies wel fijn.. Maar je kunt exact hetzelfde met cookies, al dan niet meer (toch
Er werdt om gevraagdOp dinsdag 18 juni 2002 16:27 schreef elviver het volgende:
Sorry, dit ga ik níét lezen omdat: 1/ het topiclayout naar de kl*te is en 2/ het héél ruim is. Niet alleen je probleem.
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
Op dinsdag 18 juni 2002 16:29 schreef www.Goku.nl het volgende:
[..]
Er werdt om gevraagdMaar uhm, enig idee wat er nu fout is?
Da's niet helemaal utzelfde hè?Op dinsdag 18 juni 2002 16:12 schreef Shagura het volgende:
[..]
topicstarter -> Kun je niet wat meer source geven?
1
| <a href="index.php" onclick=<? session_destroy(); ?> |
in menu.php
voert hij dan niet gewoon de query (session_destroy) uit? want volgens mij heeft die onclick daar niks mee te maken.
Dat ja (ik lees net de vorige reactie
*kuch*Op dinsdag 18 juni 2002 16:27 schreef elviver het volgende:
Je hebt gelijkMaar het geeft wel aan dat een sessie gewoon een cookie is.
Oke, oke.. Misschien zijn sessies wel fijn.. Maar je kunt exact hetzelfde met cookies, al dan niet meer (toch)?
Hetzelfde???
Absoluut niet, de inhoud van een sessie kan je in principe vertrouwen, de inhoud van een cookie niet.
Dit omdat de cookie bij de client opgeslagen is en de sessie op de server.
Vaak kan je dezelfde dingen ermee doen, maar een sessie kan veel meer data (en complexere structuren) bevatten.
Etc etc etc.
Je moet cookies en sessies dus absoluut niet zien als dingen die elkaar uitsluiten, meer als elementen die elkaar aanvullen en evt niet allebei (ok, bij sessies zijn cookies vaak nodig) nodig zijn.
Specs: NES | M82 | (T)FC | SNES | BS-X | VB | N64 | 64DD | NGC | Q | Q GBP | G&Ws | GB(L) | GB(A) (SP) | GBM | DS(L) | Wii
Mijn foto's op Flickr.
OkéOp dinsdag 18 juni 2002 16:40 schreef ACM het volgende:
*kuch*
In principe dus ook nietHetzelfde???
Absoluut niet, de inhoud van een sessie kan je in principe vertrouwen, de inhoud van een cookie niet.
Dit omdat de cookie bij de client opgeslagen is en de sessie op de server.
Ow? noem es wat? kan best hoor, maar kan ff nix verzinnenVaak kan je dezelfde dingen ermee doen, maar een sessie kan veel meer data (en complexere structuren) bevatten.
Etc etc etc.
*kuch*Je moet cookies en sessies dus absoluut niet zien als dingen die elkaar uitsluiten, meer als elementen die elkaar aanvullen en evt niet allebei (ok, bij sessies zijn cookies vaak nodig) nodig zijn.
Uhm als iemand op jouw server kan komen, dan is jouw website het minste probleem. Ik vrees dan veel meer aanvallen op de root en aanvallen op de databaseOp dinsdag 18 juni 2002 16:55 schreef elviver het volgende:
Als je een login hebt op een doos waar een site draait die sessies gebruikt en je naar de temp-dir van PHP toe kan gaan en daar de session_id overneemt (adhv de filename). "Da's dom!" Ja, maar hiermee heb ik wel een site ter demonstratie voor de eigenaar ervan!!! plat kunnen leggen!
Sinds waarneer kunnen we sessie_id's niet meer GET versturen dan. Dat is juist het sterke van PHPsessies. Als de client geen cookies accept, dan zorgt ie ervoor dat de id's telkens mee geGET worden*kuch*Sessies kunnen niet zónder koekies
Koekies wel zonder sessies
There are two methods to propagate a session id:
Cookies
URL parameter
The session module supports both methods. Cookies are optimal, but since they are not reliable (clients are not bound to accept them), we cannot rely on them. The second method embeds the session id directly into URLs.
PHP is capable of doing this transparently when compiled with --enable-trans-sid. If you enable this option, relative URIs will be changed to contain the session id automatically. Alternatively, you can use the constant SID which is defined, if the client did not send the appropriate cookie. SID is either of the form session_name=session_id or is an empty string.
Maar dus want. Dat die server niet goed beveiligd was is inderdaad niet 100% het probleem van de designer, maar het kán wel fout gaan, en mág je er dus niet principieel van uit gaan dat het veilig is. Maar then again, dat mag je van NIX (zie me hoe-heet-zon-ding-dat-niet-subtitle-heet-of-toch-wel?)