[PHP] Wat is de beste manier om opties door te sturen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben momenteel bezig om vanuit een overzicht, dat gegenereerd is vanuit een selectiescherm, door te laten verwijzen naar weer een dieper liggend scherm, zo dus:

- selectie
- overzicht
- suboverzicht


Het suboverzicht heeft dus de variabelen nodig die vanuit de selectie verstuurd zijn, hoe kan ik dit het beste oplossen, ik zat te denken aan de volgende mogelijkheden:

1) Hidden fields in het overzicht gebruiken en deze doorposten naar het suboverzicht, echter wanneer ik een selectie toevoeg moet die overal worden aangepast
2) Serverside cookie gebruiken en daar de selectie in opslaan en deze in beide overzichten gebruiken
3) de queriestring kopieren van selectie naar overzicht naar suboverzicht...

Maar, welke methode is het handigst en waarom? Ik baal er namelijk een beetje van om dezelfde acties weer uit te moeten voeren in het suboverzicht....(het is onder php 4.3)

[ Voor 8% gewijzigd door Verwijderd op 18-01-2006 16:54 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

ik zou die info een een sessie zetten :)

Acties:
  • 0 Henk 'm!

  • Metalman
  • Registratie: December 2003
  • Laatst online: 20:25
Een beetje afhankelijk van de toepassing zou het via de URL handiger kunnen zijn. Op die manier kan een gebruiker ook een 'diepere' pagina bookmarken/doorsturen naar een ander. Natuurlijk zijn er toepassingen waar dit niet nodig is, maar ik kan niet ruiken wat je hier precies mee wil ;)

Uiteraard is dit ook afhankelijk van de hoeveelheid parameters/data.

[ Voor 14% gewijzigd door Metalman op 18-01-2006 14:13 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
T_Metalman_ZF schreef op woensdag 18 januari 2006 @ 14:12:
Een beetje afhankelijk van de toepassing zou het via de URL handiger kunnen zijn. Op die manier kan een gebruiker ook een 'diepere' pagina bookmarken/doorsturen naar een ander. Natuurlijk zijn er toepassingen waar dit niet nodig is, maar ik kan niet ruiken wat je hier precies mee wil ;)
Ik wil graag de selectie toepassen op een suboverzicht...in de selectie worden een 10 tal keuzes gemaakt en die keuzes heb ik nodig voor queries in het suboverzicht...

Maar met een sessie blijft die toch ook tot je em distroyed?

[ Voor 7% gewijzigd door Verwijderd op 18-01-2006 14:55 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op woensdag 18 januari 2006 @ 14:13:
Maar met een sessie blijft die toch ook tot je em distroyed?
ja, of totdat de sessie is afgelopen (meestal wanneer je je browser sluit)
maar als je sessie variabelen niet meer nodig hebt kan je ze gewoon verwijderen ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nu heb ik de vars in een sessie gegooid, maar nu leest de aangeroepen pagina ze niet uit...

PHP:
1
$_SESSION['variabelenaam']=$_POST['variabelenaam'];


en voor de output
PHP:
1
2
query = "
...WHERE kolom LIKE '".$_SESSION['variabelenaam']."...."


Maar de where voorwaarden zijn nu dus leeg...ik zie vast weer iets stoms over het hoofd....

[ Voor 11% gewijzigd door Verwijderd op 18-01-2006 16:31 ]


Acties:
  • 0 Henk 'm!

  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
Heb je wel je session gestart (session_start bovenaan je pagina plaatsen).

If you can't beat them, try harder


Acties:
  • 0 Henk 'm!

  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 15-09 21:49

CodeIT

Code IT

Heb je session_start(); gebruikt?

[ Voor 0% gewijzigd door CodeIT op 18-01-2006 16:34 . Reden: Spuit 11 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dingstje schreef op woensdag 18 januari 2006 @ 16:32:
Heb je wel je session gestart (session_start bovenaan je pagina plaatsen).
Hmmm...zit met twee verschillende PHP versie te werken zie ik nu, ik zal dit er maar even impliciet expliciet inzitten, wat je hier aangeeft....

edit: Hij doet het nu af en toe, das helemaal raar...

[ Voor 10% gewijzigd door Verwijderd op 18-01-2006 16:36 ]


Acties:
  • 0 Henk 'm!

  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 15-09 21:49

CodeIT

Code IT

Verwijderd schreef op woensdag 18 januari 2006 @ 16:33:
[...]

edit: Hij doet het nu af en toe, das helemaal raar...
Als je de variablen die je gebruikt registreert ook?
PHP:
1
2
3
4
5
6
7
8
<?php
if (!session_is_registered('count')) {
   session_register('count');
   $count = 1;
} else {
   $count++;
}
?>

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
JanTenHove schreef op woensdag 18 januari 2006 @ 16:45:
[...]

Als je de variablen die je gebruikt registreert ook?
PHP:
1
2
3
4
5
6
7
8
<?php
if (!session_is_registered('count')) {
   session_register('count');
   $count = 1;
} else {
   $count++;
}
?>
Dat hoeft toch niet meer vanaf PHP 4.1? (ow jah dat had ik nog niet gezegd ik gebruik 4.3)

Acties:
  • 0 Henk 'm!

  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 15-09 21:49

CodeIT

Code IT

Before PHP 4.3, if you are using $_SESSION and you have disabled register_globals, don't use session_register(), session_is_registered() or session_unregister(). Disabling register_globals is recommended for both security and performance reasons.
Lijkt er dus op dat je het juist wel moet gebruiken als je de variabelen die je in je sessie gebruikt ook in de rest van je script "gewoon" wilt gebruiken.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Nee het lijkt er juist op dat je session_register en vergelijkbare functies dus absoluut niet wil gebruiken, aangezien die mateloos uit de tijd zijn, en bovendien erg foutgevoelig. :X

@blaatkoetje: je hebt session_start toch wel boven elke pagina staan he?

offtopic:
Lees meteen even na wat SQL-injectie is. Je code is daar gevoelig voor. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Atari Paul
  • Registratie: November 2002
  • Laatst online: 22:54
Check ook meteen even of je register_globals op off hebt staan, anders kunnen sessievariabelen worden overschreven.

Stability ?? My Atari still has it :)


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
-NMe- schreef op woensdag 18 januari 2006 @ 17:12:
Nee het lijkt er juist op dat je session_register en vergelijkbare functies dus absoluut niet wil gebruiken, aangezien die mateloos uit de tijd zijn, en bovendien erg foutgevoelig. :X

@blaatkoetje: je hebt session_start toch wel boven elke pagina staan he?

offtopic:
Lees meteen even na wat SQL-injectie is. Je code is daar gevoelig voor. ;)
Jah, ik heb overal de sessie gestart, op een of andere manier verdwijnt op sommige momenten de data uit de sessie variabelen...

Info daarover in de comments van de uitleg op php.net

http://nl2.php.net/function.session-register

Hier wordt dus gesuggereerd dat de session_register() functie het probleem oplost...

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Euh...ik hoop niet dat je comments belangrijker vindt dan de manual zelf? Van diezelfde pagina:
Caution
If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1