Toon posts:

[php] sessies en variabele vars.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb onderstaand script (heb hem iets aangepast)

PHP:
1
2
3
4
5
6
7
8
9
10
11
  $sessiename = "TEST";

  // DATABASE CHECK.
  // uitkomst: loginnaam = kees & id = 1

  session_start("$sessiename");
  session_register("$sessiename");
  $$sessiename["id"] = "$row[id]";
  $$sessiename["login"] = "$row[loginnaam]";
  $login_cmd_check = 1;
  echo $$sessiename[id];


Hier geeft hij het woord "kees" weer bij de echo.

Ik log in via een form, met als loginnaam kees en pass ook kees.
Er wordt gekeken bij de database check of hij voorkomt, zo ja moet hij de sessie variabelen vullen.

Aangezien ik met variabele variabelen werk wordt het ietsiepietsie moeilijker.
wat wel werkt is het volgende:

PHP:
1
2
3
4
5
6
7
8
9
10
11
  $sessiename = "TEST";

  // DATABASE CHECK.
  // uitkomst: loginnaam = kees & id = 1

  session_start("TEST");
  session_register("TEST");
  $TEST["id"] = "$row[id]";
  $TEST["login"] = "$row[loginnaam]";
  $login_cmd_check = 1;
  echo $TEST[id];


hier geeft die netjes "1" weer bij de echo.

Wat doe ik fout?, iemand suggesties?

[edit]
wat hij moet doen is de sessievariable vullen (in dit geval $TEST[id] met de waarde 1 en $TEST[login] de waarde "kees") oftewel ($$sessiename[id] met de waarde 1 krijgen en $$sessiename[login] de waarde "kees")

ps: waardes haalt hij juist uit de database.

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Wat je fout doet is onmogelijk te zeggen als je niet zegt wat het script nu doet en wat dat het script zou moeten doen.

Lees even de P&W Quickstart. Daar wordt uigelegd hoe je een duidelijk topic maakt.

https://fgheysels.github.io/


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

En hou alsjeblieft op met variabele variabelen te werken, hardstikke leuk dat het kan in php, maar ik zou het _niet_ gebruiken tenzij de omweg om het niet te gebruiken dusdanig veel lastiger is dat het de viezigheid van variabele variabelen kan verantwoorden.

Er is in jouw code waarschijnlijk geen enkele reden om ermee te werken.

Verwijderd

Topicstarter
ACM schreef op 28 augustus 2002 @ 11:46:
En hou alsjeblieft op met variabele variabelen te werken, hardstikke leuk dat het kan in php, maar ik zou het _niet_ gebruiken tenzij de omweg om het niet te gebruiken dusdanig veel lastiger is dat het de viezigheid van variabele variabelen kan verantwoorden.

Er is in jouw code waarschijnlijk geen enkele reden om ermee te werken.
jewel, dit is een script die gekoppeld kan worden aan een meerdere websites, deze module wordt maar 1 keer geschreven en wordt vanaf 1 lokatie aangeroepen, alleen de database gegevens zijn anders. Als ik die sessie naam variabel kan maken kan het makkelijker in meerdere websites gebruikt worden vanwege het sessie verhaal waar alle websites mee te maken hebben. Bij elke website heet die sessie weer anders. ik ga dit script niet 5 keer copy-pasten en dan elke script aanpassen aan de sessie als het ook op deze manier kan.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 28 augustus 2002 @ 11:55:
Als ik die sessie naam variabel kan maken kan het makkelijker in meerdere websites gebruikt worden vanwege het sessie verhaal waar alle websites mee te maken hebben. Bij elke website heet die sessie weer anders. ik ga dit script niet 5 keer copy-pasten en dan elke script aanpassen aan de sessie als het ook op deze manier kan.

Euh :?
Je kan toch ook gewoon elke keer dezelfde array-variabelen aanspreken :?
$sessie_vars['blaat'] ipv dat je $blaat aan "moet" spreken?

Verwijderd

I agree with ACM :*)
Bij toepassingen waarbij je variabele variabelen gebruikt ben jij eigenlijk al, op een omsachtige, inefficiente manier een principe bezig waar arrays voor bedoeld zijn. Helemaal met de mogelijkheden voor associatieve arrays in php is het gebruik van variabele variabelen dus absoluut onnodig en overbodig etc.

Verwijderd

Topicstarter
Verwijderd schreef op 28 augustus 2002 @ 13:28:
I agree with ACM :*)
Bij toepassingen waarbij je variabele variabelen gebruikt ben jij eigenlijk al, op een omsachtige, inefficiente manier een principe bezig waar arrays voor bedoeld zijn. Helemaal met de mogelijkheden voor associatieve arrays in php is het gebruik van variabele variabelen dus absoluut onnodig en overbodig etc.
okee, ik ben altijd in voor andere oplossingen, alleen snap ik die oplossing van ACM niet helemaal, misschien kunnen jullie een duidelijk voorbeeld geven, of een zoekwoord zodat ik het zelf wel even kan opzoeken in bijvoorbeeld de php manual..

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 28 augustus 2002 @ 13:35:
okee, ik ben altijd in voor andere oplossingen, alleen snap ik die oplossing van ACM niet helemaal, misschien kunnen jullie een duidelijk voorbeeld geven, of een zoekwoord zodat ik het zelf wel even kan opzoeken in bijvoorbeeld de php manual..

Je zult je denkwijze over sessies wat aan moeten passen gok ik en wat beter tonen hoe je je sessie variabelen in je code gebruikt.

Waarschijnlijk doe je nu ergens:
iets_met($sessiewaardeA);
die je verkreeg door iets als
$sessiesheten = "sessiewaardeA";
${$sessiesheten} = etc...

Waarom los je dat niet zo op:
iets_met($array_dat_uit_je_sessie_komt_en_altijd_hetzelfde_heet[$sessiesheten]);

of zelfs zo:
iets_met($_SESSION[$sessiesheten]);

Overigens snap ik jouw voorbeeld code niet en ook niet wat daar wel en niet de bedoeling is van alles, dus zal je daar wel een betere uitleg over moeten geven inclusief duidelijkere voorbeelden als je nog beter geholpen wilt worden.
Misschien dat je tijdens het tikken van die uitleg zelf al door hebt hoe en wat.
Pagina: 1