[php] ENTER-toets gebruiken als SUBMIT geeft geen $_POST

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • DPLuS
  • Registratie: April 2000
  • Niet online
Hoi,

Ik ben vanwege een update van php al mijn scripts aan het aanpassen aan de nieuwe superglobals structuur van php.
Nu ben ik achter het volgende gekomen:

ik heb een pagina met de volgende inhoud:

PHP:
1
2
3
4
<form name=form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type=text name=user maxlength=100>
<input type="submit" name="submit" value="Submit!">
</form>


In datzelfde scriptje wordt deze data ook opgevangen bij een evt. SUBMIT:

PHP:
1
if (isset($_POST['submit'])) { echo $_POST['user']; }


Als ik nu in het tekstvak een naampje invul en dan met mijn linkermuistoets op submit! duw, gaat alles naar behoren, in het volgende scherm krijg ik netjes de value van $_POST['user'].

Maar nu komt het:
Als ik i.p.v. mijn linkermuistoets gewoon een ENTER geef in dat form, dan krijg ik GEEN OUTPUT!

Ik heb al het e.e.a. getest en nu blijkt het volgende:
Als ik op SUBMIT duw met de muis, dan is $_POST['submit'] WEL ge-'set'.
Maar als ik gewoon een ENTER geef, is $_POST['submit'] NIET ge-'set'.
Maar de variabele $user is dan WEL ge-'set'.
M.a.w. als je een ENTER geeft, hanteert de browser niet de methode POST (en ook niet GET, want isset($_GET['user'] leverde ook FALSE op), terwijl ik die wel gedefinieerd heb in <form method=post (...) >.

Weet iemand hoe dit kan?
Aangezien ik vaak het toetsenbord gebruik ipv de muis vind ik dit zeer hinderlijk.
Is dit misschien een bug in php? (ik heb nu versie 4.1.2)
Heeft iemand een oplossing?

BTW: mijn browser is IE v6.0.2.

Acties:
  • 0 Henk 'm!

Verwijderd

denk dat ie wel een post doet, maar de parameter submit leeg blijft omdat je die knop niet gebruikt? :)

Acties:
  • 0 Henk 'm!

  • DPLuS
  • Registratie: April 2000
  • Niet online
Ik heb trouwens nog iets gevonden op bugs.php.net:

http://bugs.php.net/bug.php?id=17463
[27 May 3:18pm] derick@php.net
This is not a bug in PHP, but more a browser issue. Some browsers (IE5
being one) simply don't set the sumbit field if you press enter.
And you are already giving the solution, add a hidden field and check
for that on submission.

Derick
Dus oplossing is een hidden field toe te voegen....

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 06 December 2002 @ 14:48:
denk dat ie wel een post doet, maar de parameter submit leeg blijft omdat je die knop niet gebruikt? :)

Dat gebeurt idd.

Acties:
  • 0 Henk 'm!

  • Psychokiller
  • Registratie: Oktober 2001
  • Niet online
Hmmz merkte echt precies hetzelfde pas hiero bij iets wat ik in php was aan het doen.
Vind het ook zéér irritant, dus hoop eigenlijk ook wel dat iemand met een oplossing hiervoor komt :D
Majah voor mij is php best wel erg nieuw, dus zou zelf niet weten hoe wat te doen :)

Edit :
tss, beetje oplossing typen als ik wat reply he ;)

[ Voor 11% gewijzigd door Psychokiller op 06-12-2002 14:52 ]


Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 17-09 21:27

pistole

Frutter

is "standaard" behaviour (in IE iig) en heeft niets met php te maken maar meer je browser.

Als je hierdoor vastloopt dan euh.... moet je maar even na gaan denken over andere mogelijkheden

[ Voor 72% gewijzigd door pistole op 06-12-2002 14:53 ]

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

Verwijderd

oplossing staat paar posts hoger al -> hidden field waarin je aangeeft dat je een submit doet.
of checken of de aanroep een post is of whatever :)

Acties:
  • 0 Henk 'm!

  • DPLuS
  • Registratie: April 2000
  • Niet online
Nogmaals: Deze 'bug' is alleen van toepassing als je maar één form-field hebt en een submit button.
Bij meerdere form-velden doet dit probleem zich niet voor!

Acties:
  • 0 Henk 'm!

  • Squall-sX
  • Registratie: April 2002
  • Laatst online: 26-05 19:35
als je eens gewoon in je PHP.ini bij 'DATA HANDLING' dit intypt:
'register_globals = On'
dan werkt je PHP zoals vroeger en kun je gewoon werken met de link?var&var2 en kun je je vars ook gewoon aanroepen.

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

DPLuS schreef op 06 December 2002 @ 14:57:
Nogmaals: Deze 'bug' is alleen van toepassing als je maar één form-field hebt en een submit button.
Bij meerdere form-velden doet dit probleem zich niet voor!

Wel hoor, IE stuurt gewoon geen waarde voor de submit mee, omdat je niet op die knop gedrukt hebt.

En dat mag ook helemaal niet, want als je bijv 5 submitknoppen geeft, welke moet IE dan kiezen :?

Acties:
  • 0 Henk 'm!

  • DPLuS
  • Registratie: April 2000
  • Niet online
Welke browser gebruik jij dan? Bij mij werkt 't nl. WEL als ik een 2e tekstvak toevoeg...

Acties:
  • 0 Henk 'm!

  • oVRoM
  • Registratie: Juli 2000
  • Niet online
Heb het zelfde probleem gehad:
Formulier posten via "Enter" knop in IE

Acties:
  • 0 Henk 'm!

  • oVRoM
  • Registratie: Juli 2000
  • Niet online
ACM schreef op 06 December 2002 @ 15:19:

[...]

Wel hoor, IE stuurt gewoon geen waarde voor de submit mee, omdat je niet op die knop gedrukt hebt.

En dat mag ook helemaal niet, want als je bijv 5 submitknoppen geeft, welke moet IE dan kiezen :?
Kijk eens op http://www.christinaricci.info/cgi-dodger/knop.cgi , en verklaar dat eens dan? :)

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

waarom check je ook op $_POST['submit'] :? en niet op (!empty($_POST)) :?

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14:14

Crazy D

I think we should take a look.

Waarom vang je niet af of de request_method "post" is, en kijk je daarna of de form-velden die je verwacht, ook geset zijn?

Exact expert nodig?

Pagina: 1