[PHP] Probleem met URL variabelen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • jopiek
  • Registratie: September 2000
  • Laatst online: 08-09 07:26

jopiek

Tja... 'ns ff denken.

Topicstarter
Ik heb een paar url's uit een database en wil aan de hand van op welke url geklikt is besluiten wat te doen in de volgende pagina... Hoe kan ik dat doen ZONDER dat ze in de url zichtbaar zijn

dus het idee van index.php?uid=1 maar dan via post of zo... Ik gebruik dus php en liefst zo weinig mogelijk javascript en zo

mooiste zou dus zijn als ik het zaakje vervolgens dmv een $_POST['uid'] call of zo weer kan uitlezen...

[ Voor 19% gewijzigd door jopiek op 09-07-2003 21:19 ]

Cogito Ergo Credo


Acties:
  • 0 Henk 'm!

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Je kan de variabele in een hidden form plaatsen en deze vervolgens met javascript submitten ;)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Acties:
  • 0 Henk 'm!

  • jopiek
  • Registratie: September 2000
  • Laatst online: 08-09 07:26

jopiek

Tja... 'ns ff denken.

Topicstarter
moet ik dan dus per url een form aanmaken? of kan het gewoon in 1 form...
en waarom hidden form? form is toch altijd 'hidden' of gedoel je hidden text?

idee is dus:

Hoi, ben je een jongen of een meisje?
Ik ben een jongen
Ik ben een meisje

waarbij het script weet welke gedrukt is, maar de gebruiker dat niet op z'n url balkje zodra ie gedrukt heeft ziet i.v.m. fraude ;) en liefst ook niet op statusbalk maar dat boeit niet zo erg daar vind ik wel weer wat op...
[en ja, ik wil het zo doen, radiobuttons zijn out of the question vanwege specifieke requirements...]

[ Voor 73% gewijzigd door jopiek op 09-07-2003 21:35 ]

Cogito Ergo Credo


Acties:
  • 0 Henk 'm!

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Het is op deze manier nog steeds mogelijk te frauderen hoor. Daarnaast is het een redelijk omslachtige manier om variabelen te posten.
Ik vraag me af waarom je geen gebruik kan maken van radiobuttons :?

Maar je kan inderdaad per keuze een aparte form maken, en door het onClick event de submit te laten plaatsvinden.

[ Voor 4% gewijzigd door DeverauX op 09-07-2003 21:41 ]

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Acties:
  • 0 Henk 'm!

  • jopiek
  • Registratie: September 2000
  • Laatst online: 08-09 07:26

jopiek

Tja... 'ns ff denken.

Topicstarter
DeverauX schreef op 09 July 2003 @ 21:40:
Het is op deze manier nog steeds mogelijk te frauderen hoor. Daarnaast is het een redelijk omslachtige manier om variabelen te posten.
Ik vraag me af waarom je geen gebruik kan maken van radiobuttons :?

Maar je kan inderdaad per keuze een aparte form maken, en door het onClick event de submit te laten plaatsvinden.
Daar heb ik zo mijn redenen voor zei ik al dus vragen daarnaar is vrij retorisch ;) De eigenlijke reden is dat het niet mooi is en het niet generiek genoeg werkt voor het doel dat ik gebruik. Op zich is frauderen idd nog wel mogelijk maar dat vang ik ergens anders wel weer af... niets is zo irri als dat n00bs gewoon in de url balk een nummertje veranderen... Is nl. voor een educatief vraag en antwoord spelletje...

Cogito Ergo Credo


Acties:
  • 0 Henk 'm!

  • jopiek
  • Registratie: September 2000
  • Laatst online: 08-09 07:26

jopiek

Tja... 'ns ff denken.

Topicstarter
Dit zou dus ongeveer de trick moeten doen?!

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<p><?php echo $row_Initiatieven['Initiative_text']; ?> </p>
<hr>
  <?php $i = 0; ?>
  <?php do { ?>
  <form name="Option<?php echo $i; ?>" method="post" action="">
  <?php
    $i++; 
    if ($row_Responsen['RespInitId'] > 0) {
      echo "<A href=index.php onClick='Javascript:document.forms['Option" . $i . "'].submit();'>" . $row_Responsen['Response_text'] . "</A>"; 
      echo '<input name="id" type="hidden" value="' . $row_Responsen['RespInitId'] . '">';
    } else {
      echo $row_Responsen['Response_text']; 
    }
  ?> 
  </form>
  <?php } while ($row_Initiatieven = mysql_fetch_assoc($Initiatieven)); ?>
<p>&nbsp;</p>


ik krijg dan helaas wel een lege $_POST['id'] terug :( want tja hoe kan ik die id uitlezen voor het juiste form? of geef ik in de url wel gewoon een id mee die dan gewoon het nummer van het form (dus i) is???

[ Voor 58% gewijzigd door jopiek op 09-07-2003 22:05 ]

Cogito Ergo Credo


Acties:
  • 0 Henk 'm!

  • Bananeman
  • Registratie: Juli 2000
  • Niet online
Kun je niet gewoon bijhouden (in een sessie of cookie) welke vragen al zijn beantwoord? Als iemand dan het nummertje in de URL verandert na een fout antwoord krijgt ie gewoon de melding dat voor die vraag al een antwoord is ingevuld.

Motor-forum.nl


Acties:
  • 0 Henk 'm!

  • jopiek
  • Registratie: September 2000
  • Laatst online: 08-09 07:26

jopiek

Tja... 'ns ff denken.

Topicstarter
ja, da's de volgende stap, maar dat sluit dit probleem niet uit... ik wil nl. exact weten op welk antwoord gedrukt is...

en is sowieso lelijk in url balk...

het eigenlijke irritante is dat ik dus met behulp van die id eigenlijk direct de volgende lading op het scherm wil tonen :(

[ Voor 47% gewijzigd door jopiek op 09-07-2003 22:33 ]

Cogito Ergo Credo


Acties:
  • 0 Henk 'm!

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 08-09 09:36
Misschien is een frame ook wel een oplossing? Dat je dus een index.html maakt, en in die html maak je dan 1 frame die de php aanroept. Op deze manier ziet de gebruiker alleen de index.html in hun balkje.

...


Acties:
  • 0 Henk 'm!

  • jopiek
  • Registratie: September 2000
  • Laatst online: 08-09 07:26

jopiek

Tja... 'ns ff denken.

Topicstarter
da's idd waar ik ook al over nadacht, misschien wel aardige oplossing, feit is dat ik eerste versie in ASP maakte (2 jaar terug) en nu eik vergeten ben wat exact de problemen toen waren, weet ze iig nog wel ongeveer gelukkig...

Hier staat iig testje:
http://213.46.36.137/kompas/SIC_test/

Cogito Ergo Credo


Acties:
  • 0 Henk 'm!

  • Bananeman
  • Registratie: Juli 2000
  • Niet online
jopiek schreef op 09 July 2003 @ 22:27:
ja, da's de volgende stap, maar dat sluit dit probleem niet uit... ik wil nl. exact weten op welk antwoord gedrukt is...

en is sowieso lelijk in url balk...
Wat boeit het dan dat mensen in de URL het nummertje kunnen veranderen? Wat voor fraude wil je eigenlijk voorkomen? Want uiteindelijk kun je toch niks voorkomen, het is en blijft allemaal zeer eenvoudig te hacken.

Motor-forum.nl


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:05

crisp

Devver

Pixelated

je kan met javascript idd een hidden form submitten. Je kan zelfs de action van je form wijzigen, de inhoud van formelementen wijzigen, hell je kan zelfs als je wilt on the fly een compleet form met elementen vanuit het niets genereren en dan submitten; kortom: veel mogelijkheden, maar allemaal client-side en dus een forumpje hoger (of lager als je naar het nummertje kijkt) ;)

[ Voor 7% gewijzigd door crisp op 09-07-2003 22:52 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • jopiek
  • Registratie: September 2000
  • Laatst online: 08-09 07:26

jopiek

Tja... 'ns ff denken.

Topicstarter
Er zijn gevallen waarvoor ik de SIC wil gebruiken om bijvoorbeeld een toets af te laten leggen, en als je dus ergens kunt afleiden wat het juiste antwoord is aan de hand van het nummertje uit de url is dat erg irritant ;) Het kan bijvoorbeeld voorkomen dat ik dan in een meerkeuze voorbeeld 3 keer naar numero 20 (helaas dat is fout) springen laat en 1 keer naar numero 10. Ik heb dit iig net ff opgelost door een extra Query te doen... nu zie je alleen het nummer van het antwoord zelf en niet het nummer van waar ie heen springt...

Cogito Ergo Credo


Acties:
  • 0 Henk 'm!

  • Bananeman
  • Registratie: Juli 2000
  • Niet online
jopiek schreef op 09 July 2003 @ 22:55:
Er zijn gevallen waarvoor ik de SIC wil gebruiken om bijvoorbeeld een toets af te laten leggen, en als je dus ergens kunt afleiden wat het juiste antwoord is aan de hand van het nummertje uit de url is dat erg irritant ;) Het kan bijvoorbeeld voorkomen dat ik dan in een meerkeuze voorbeeld 3 keer naar numero 20 (helaas dat is fout) springen laat en 1 keer naar numero 10. Ik heb dit iig net ff opgelost door een extra Query te doen... nu zie je alleen het nummer van het antwoord zelf en niet het nummer van waar ie heen springt...
Nou dan is de oplossing makkelijk: in plaats van één fout antwoord (in jouw voorbeeld nr. 20) gewoon 3 foute antwoorden maken :) Of nog beter: het nummer van de vraag meegeven, plus het nummer van het antwoord (altijd 1 t/m aantal antwoorden). Kun je dus ook niks meer afleiden.

* Bananeman vindt dat je het jezelf veel te moeilijk maakt allemaal...

Motor-forum.nl


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 22:13

pietje63

RTFM

ik zou het in een frame zetten + rechtermuisknap beveiliging + beveiliging dat hij met javascript controleert of het frame erboven wel bestaat (if. top.frames.location != index.html top.frames.location=index.html)

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

  • Yo-han
  • Registratie: December 2001
  • Laatst online: 18-08 20:16

Yo-han

nope.

Bananeman2002 schreef op 09 July 2003 @ 22:24:
Kun je niet gewoon bijhouden (in een sessie of cookie) welke vragen al zijn beantwoord? Als iemand dan het nummertje in de URL verandert na een fout antwoord krijgt ie gewoon de melding dat voor die vraag al een antwoord is ingevuld.
Ik zou idd een sessie gebruiken. Die is server-side en niet zichtbaar (als je je sessie id niet via de url meegeeft). Dus een stuk veiliger dan een hidden field, frame of cookie.
jopiek schreef op 09 juli 2003 @ 22:27:
ja, da's de volgende stap, maar dat sluit dit probleem niet uit... ik wil nl. exact weten op welk antwoord gedrukt is...
:? eeeh een array? met radio buttons even het juiste antwoord opslaan in een array en een flag zetten dat die vraag beantwoord is...
jopiek schreef op 09 juli 2003 @ 22:27:

en is sowieso lelijk in url balk...
:? Welke url... met een sessie niet hoor :*)

offtopic:
[quote]pietje63 schreef op 09 juli 2003 @ 23:28:
.... + rechtermuisknap beveiliging + .... [/quote]

Kijk en das nog es beveiliging...!

* Yo-han gaat het gelijk proberen :+

[ Voor 2% gewijzigd door Yo-han op 10-07-2003 00:13 . Reden: TypoMaster ]


Acties:
  • 0 Henk 'm!

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 20:07
Anti-javascript scenario:

Je kunt met sessievariabelen werken. Ken aan elke vraag voor elk antwoord andere random random strings toe, dat alleen voor die user werkt. Een generate- en lookupfunctie maken en je bent klaar. Als ze dan answer.php?vraagid=2&antwid=hj484jfj34ud78l zien komen ze niet ver :)

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


Acties:
  • 0 Henk 'm!

  • jopiek
  • Registratie: September 2000
  • Laatst online: 08-09 07:26

jopiek

Tja... 'ns ff denken.

Topicstarter
hmmm, ik denk dat ik zo al wel een aardig eind kom... de test werkt trouwens nu al vrij aardig: http://213.46.36.137/kompas/SIC_test/

Cogito Ergo Credo


Acties:
  • 0 Henk 'm!

  • js303
  • Registratie: April 2003
  • Laatst online: 01-06 10:17
als je geen url balk wilt zou je ook je pagina in een popupwindow kunnen openen waar geen url balk staat. voor echte sites is dit misschien frustrerend voor de user, maar als het om spelletjes of mini-apps gaat zou je daarvoor kunnen kiezen.

Acties:
  • 0 Henk 'm!

  • jopiek
  • Registratie: September 2000
  • Laatst online: 08-09 07:26

jopiek

Tja... 'ns ff denken.

Topicstarter
js303 schreef op 10 July 2003 @ 09:56:
als je geen url balk wilt zou je ook je pagina in een popupwindow kunnen openen waar geen url balk staat. voor echte sites is dit misschien frustrerend voor de user, maar als het om spelletjes of mini-apps gaat zou je daarvoor kunnen kiezen.
zoals vermeld is het een educatief doel, lijkt me niet erg profi....

Cogito Ergo Credo

Pagina: 1