[php] Sessions, of Variabelen in URL?

Pagina: 1
Acties:

  • Dr.Bob
  • Registratie: November 1999
  • Laatst online: 14-08 10:48

Dr.Bob

Dr.Bob says: HEAL!

Topicstarter
Hey allen,

Ik vraag mij af, nu ik steeds wat verder kom met PHP, en de fun ontdek op aldoor een zooitje variabelen in de URL mee te zenden om een soepele navigatie te bieden (zeg maar dat ie de categorie en de huidige pagina in de URL meezendt voor wanneer je een bep. actie doet, dat ie weer in de juiste categorie + pagina terug komt.

Maar zoals gezegd, dat doe ik nu dus op een index.php?cat=aanvragen&page=company1 manier. Zou ik dit beter/slimmer/sneller met sessions kunnen doen, dat ik daarin, alleen wanneer er een verandering is, de variabelen $cat en $page update?

Wat is jullie ervaring?

TIA,
Dr.B

NERDCORE FOR LIFE


  • vinnux
  • Registratie: Maart 2001
  • Niet online
Kwa snelheid zal het niet veel uitmaken, maar het is wel mooier om niet alles achter een URL aan te tikken.
Je kunt bijvoorbeeld alles is een forum zetten en dat dan posten naar jouw index.php. Het is dan moeilijker om erachter te komen welke variabelen er ingevuld moeten worden. Hierdoor heb je minder kans dat mensen je pagina proberen te hacken door zomaar wat waarden voor die variable in te vullen.

Om het helemaal veilig te maken vraag je dan de variabelen op uit $HTTP_POST_VARS. Dan zitten alleen de geposten variable in en niet de variable die achet een url aangetypt zijn. b.v $HTTP_POST_VARS["naam"]

Het is inderdaad handig om zulke variabele in de session te zetten, dit omdat je op die manier de pagina vanaf elke locatie kunt aanroepen zonder telkens variabele achter de url te tikken. Bijvoorbeeld wanneer je een error messag geeft en dan een history(-1) opgeeft.

Zo dat was het.

Verwijderd

En als je sessionmanagement van PHP4+ gebruikt, dan worden alle variabelen voor je in elke context opnieuw ingevuld.

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op maandag 17 december 2001 14:14 schreef vgouw het volgende:
Je kunt bijvoorbeeld alles is een forum zetten en dat dan posten naar jouw index.php. Het is dan moeilijker om erachter te komen welke variabelen er ingevuld moeten worden. Hierdoor heb je minder kans dat mensen je pagina proberen te hacken door zomaar wat waarden voor die variable in te vullen.
Mwah, gewoon de source bekijken hoor :)

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

drm

f0pc0dert

Op maandag 17 december 2001 14:03 schreef Dr.Bob het volgende:
Hey allen,
zie onderaan mijn post :)
Ik vraag mij af, nu ik steeds wat verder kom met PHP, en de fun ontdek op aldoor een zooitje variabelen in de URL mee te zenden om een soepele navigatie te bieden (zeg maar dat ie de categorie en de huidige pagina in de URL meezendt voor wanneer je een bep. actie doet, dat ie weer in de juiste categorie + pagina terug komt.

Maar zoals gezegd, dat doe ik nu dus op een index.php?cat=aanvragen&page=company1 manier. Zou ik dit beter/slimmer/sneller met sessions kunnen doen, dat ik daarin, alleen wanneer er een verandering is, de variabelen $cat en $page update?

Wat is jullie ervaring?
Dat kan dus niet, want de informatie die in een link staat kun je niet in een sessie opslaan. Misschien klinkt het raar, maar de verhouding van sessie staat tot links is 1 tot N :z

Daarnaast is mijn ervaring met sessies niet zo geweldig. Het geeft alleen maar een grote hoop met codemeuk. Dan heb ik liever een grote <a href="meuk"> ;)
TIA,
Dr.B
dit dus:
Uit de FAQ
Wij tweakers doen elkaar permanent de groeten. Het is dus niet nodig om steeds ruimteverspillende "greetz [user]" of iets dergelijks onder je post te plakken. Als je perse zoiets wilt kun je daar je signature voor gebruiken.

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


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Niks mis met sessies. Ik gebruik altijd (een) sessie object(en). dus bv iets als:
code:
1
2
3
4
5
session_register('login');
if (!isSet($HTTP_SESSION_VARS['login'])) {
   $HTTP_SESSION_VARS['login'] = new CLogin(blah blah);
}
$CLogin = &$HTTP_SESSION_VARS['login'];

en dan later bv
code:
1
2
3
if ($CLogin->isloggedon()) {
   print('Welkom ' . $CLogin->getname());
}

Werkt erg handig, omdat je objecten zo blijven bestaan, en je dus ook in het object zelf status informatie kan zetten. Sessies worden zo volledig transparant (is dat nederlands?)

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

drm

f0pc0dert

Op maandag 17 december 2001 16:43 schreef Zoijar het volgende:
Niks mis met sessies. Ik gebruik altijd (een) sessie object(en). dus bv iets als:
code:
1
2
3
4
5
session_register('login');
if (!isSet($HTTP_SESSION_VARS['login'])) {
   $HTTP_SESSION_VARS['login'] = new CLogin(blah blah);
}
$CLogin = &$HTTP_SESSION_VARS['login'];

en dan later bv
code:
1
2
3
if ($CLogin->isloggedon()) {
   print('Welkom ' . $CLogin->getname());
}

Werkt erg handig, omdat je objecten zo blijven bestaan, en je dus ook in het object zelf status informatie kan zetten. Sessies worden zo volledig transparant (is dat nederlands?)
Ja, bij logins kom je d'r ook soort van niet onderuit.
Maar als je het over navigeren heb, nahhh dan ga ik toch voor de query string.

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


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16:30

Janoz

Moderator Devschuur®

!litemod

Op dinsdag 18 december 2001 09:31 schreef drm het volgende:

[..]

Ja, bij logins kom je d'r ook soort van niet onderuit.
Maar als je het over navigeren heb, nahhh dan ga ik toch voor de query string.
Ik sluit me helemaal bij drm aan.. Persoonlijk vind ik het ook een beetje overdone om de gebruiker een cookie te laten zetten om aleen maar over je site te kunnen laten surfen. Daarnaast is het erg lastig om de bepaalde pagina's van je site te bookmarken.. Stel ik vind een leuk stukje op je site en wil de link ff sturen naar een maat. Dat lukt niet met sessions.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • vinnux
  • Registratie: Maart 2001
  • Niet online
Je wil toch niet zeggen dat je altijd met querie strings gaat werken, dat is absoluut geen doen en zorgt vor heel heel heel erg veel overhead.

Stel je deze situatie voor :
Je hebt een pagina waarop je selecteerd welke categorie je wilt bekijken. Deze wordt altijd via een query string doorgestuurd.
Stel aan deze categorie pagina hangen weer n pagina's met elke weer n pagina's.
Op al die pagina's staat een directe link terug naar de category pagina waar je als laatste was.
Dat betekent dat je aan elke pagina dus een heleboel altijd al je variabele mee MOET geven. DAT IS GEEN DOEN.
Daar word je code een rotzooi van. En op een gegeven momenent weet je niet meer wat je door moet geven.
Plus je kunt geen OBJECTEN met querystrings doorgeven.

Als je nou na de selecteerdpagina de waarde 1 keer in de sessie zet en je leest die telkens op de categorie pagina uit ben je van al die zooi af.

DUS gebruik SESSIONS
Pagina: 1