[PHP] 2x zelfde naam POST var

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Is het bijzonder ranzig als je 2x dezelfde postnaam hebt op 1 page, in 2 verschillende forms? In principe, wordt maar 1 van de twee gepost lijkt me, namelijk die van het form waarvan de button wordt ingedrukt.

Heeft iemand hier ervaring mee, heeft dit negatieve gevolgen die ik verder niet overzie? (Behalve dat het misschien verwarrend is voor eventuele derden die mijn code zien/gebruiken.)

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • majornono
  • Registratie: Juni 2002
  • Laatst online: 10-03-2023
Het is idd. niet erg netjes programmeren, vooral als je de post in hetzelfde php bestand afhandeld. Wanneer is het nou de ene input en wanneer de andere.

Daarnaast kan het ook problemen opleveren als je bijv. de eerste form vergeet af te sluiten. Dan staat de tekst van beide inputs in de post data

Problem Exists Between Chair And Keyboard


Acties:
  • 0 Henk 'm!

  • bouvrie
  • Registratie: Augustus 2002
  • Laatst online: 21-05 11:17

bouvrie

Interior demolisher

Kan prima ... maar je moet er, zoals je zelf ook al aangeeft, wel rekening mee houden dat je de gelijknamige input fields in verschillende FORMS knalt.

edit:
Handel de POSTS wel in een ander php scriptje af, anders is de kans op vouten groter...

[ Voor 26% gewijzigd door bouvrie op 06-01-2004 16:01 ]

01010100011010000110010100100000010011110100111001000101001000000011101000101001


Acties:
  • 0 Henk 'm!

  • Rac-On
  • Registratie: November 2003
  • Niet online
nee dat kan geen kwaad zolang ze idd niet allebei worden gepost.
De naam van je variablen kan je het besten kiezen op zo'n manier dat ze zinvol zijn. Als er op 1 pagina 2 forms zijn die gepost kunnen worden, is er niks mis mee op bij allebei bijvoorbeeld het veld "formaction" te hebben oid.

En met goed commenten is alle code leesbaas

doet niet aan icons, usertitels of signatures


Acties:
  • 0 Henk 'm!

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 12:50

Altaphista

1. check manual, 2. ask

Het kan ook heel handig zijn, met bijvoorbeeld een artikellijst waar je meerdere moet selecteren. Het wordt dan gepost met een , als scheidingsteken. Maar dat wordt lastig als het tekst kan zijn...

Je gaat het pas zien als je het doorhebt.


Acties:
  • 0 Henk 'm!

  • pjonk
  • Registratie: November 2000
  • Laatst online: 20-09 21:53
Ik zou de vars van de verschillende forms gewoon hun eigen prefixes geven, zodat je precies kunt zien welke var bij welk form hoort.

It’s nice to be important but it’s more important to be nice


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Ik gebruik dat best vaak. Stel dat je een soort van vragen serie maakt, waar verschillende opties mogelijk zijn. Je zou dan kunnen kiezen om de vorige antwoorden steeds in hidden input's te zetten in de verschillende formulieren die allen naar een andere weg leiden. Je zou dan bijvoorbeeld 3 verschillende form's kunnen hebben die allen dezelfde elementen bevatten. (het gaat hier even niet om het doel zoiets, maar even alleen om de mogelijkheid (en in ben bewust van sessies overigens voordat iemand er over begint :P)).

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Altaphista:
Het kan ook heel handig zijn, met bijvoorbeeld een artikellijst waar je meerdere moet selecteren. Het wordt dan gepost met een , als scheidingsteken. Maar dat wordt lastig als het tekst kan zijn...
Kletskoek. Ze komen allemaal gewoon als naam=waarde1&naam=waarde2&naam=waarde3 binnen. Allesbehalve convenient dus.

Als je echt artikellijsten oid. wilt gebruiken moet je naam[] gebruiken, dan stopt PHP 't voor je in een array.

Verder kan het imho geen enkel kwaad om meerdere velden met dezelfde naam in een pagina te gebruiken, zeker niet als het 2 verschillende forms zijn.

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


Acties:
  • 0 Henk 'm!

  • SPee
  • Registratie: Oktober 2001
  • Laatst online: 12:56
Kletskoek. Ze komen allemaal gewoon als naam=waarde1&naam=waarde2&naam=waarde3 binnen. Allesbehalve convenient dus.
Volgens mij bedoelt de topic starter dit niet.
Maar dit:
code:
1
2
3
4
5
6
7
8
9
<form name="hallo" action="hallo.php">
<input type="" ><input type=submit>
</form>

met

<form name="hallo1" action="hallo.php">
<input type=""><input type=submit>
</form>


Die jij bedoelt is meerdere input types met dezelfde naam definieren. Dit is geen slechte code, aangezien je niet anders kan doen als je een group checkboxen of radiobuttons gebruikt :)

Ik denk dat als je het echt nodig hebt, je dat gewoon kan doen. Het is niet netjes, maar de code is alleen voor de ontwikkelaar. De bezoekers hebben (bijna) niets met de code te maken, dus die maken het niets uit wat je nou codeert.

let the past be the past.


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

SPee:
Die jij bedoelt is meerdere input types met dezelfde naam definieren. Dit is geen slechte code, aangezien je niet anders kan doen als je een group checkboxen of radiobuttons gebruikt :)
Lees ajb mijn post en de quote die erbij staat nog een keer.

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


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:29

crisp

Devver

Pixelated

Het heeft absoluut geen zin je form een name attribuut te geven - die wordt toch niet meegestuurd in je request. Sterker nog: in XHTML is het name attribuut voor het form-element niet eens meer geldig. Als het je gaat om het met JS kunnen aanspreken van een form, dan geef je je form een id...

[ Voor 26% gewijzigd door crisp op 06-01-2004 16:37 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
het gaat in dit geval om een hidden input field. Bovenin staat je username, en een knopje om uit te loggen. In dat hidden field daarboven staat een "kickback" url in dat hidden field. Om de user terug te schoppen naar de juiste page, als ie uitgelogd is.

Echter, omdat de user de optie heeft om de huidige sessie, of alle sessies van hem af te sluiten, gaat ie naar een nieuwe page eerst, waar ik dus in dat form, wat ie daar moet kiezen, ook weer die kickback in wordt gezet. Echter op deze page, staat bovenin natuurlijk weer datzelfde uitlogknopje, ook met dat "kickback" field.
Daarnaast kan het ook problemen opleveren als je bijv. de eerste form vergeet af te sluiten. Dan staat de tekst van beide inputs in de post data
Dit is natuurlijk een beetje krom redeneren, ik ga ervanuit dat mn HTML correct in elkaar steekt. Verder, gebruik ik een PHP-functie om mijn form te genereren, dus incorrect afsluiten is er sowieso niet bij.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
crisp schreef op 06 januari 2004 @ 16:35:
Het heeft absoluut geen zin je form een name attribuut te geven - die wordt toch niet meegestuurd in je request. Sterker nog: in XHTML is het name attribuut voor het form-element niet eens meer geldig. Als het je gaat om het met JS kunnen aanspreken van een form, dan geef je je form een id...
Hmz, goed dat ik dat weet, ik zag er ook nooit echt het nut van, van die names ;) Ga ik die er maar eens binnenkort uitpleuren..

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Grijze Vos:
Verder, gebruik ik een PHP-functie om mijn form te genereren, dus incorrect afsluiten is er sowieso niet bij.
Whehe, over krom redeneren gesproken ;)
PHP:
1
2
3
4
5
6
7
8
function greyFoxForm ( $values ) {
   echo '<form>';
   echo '<label for="ff_name">Name: </label>';
   printf ( 
      '<input type="text" id="ff_name" name="name" value="%s" />',
      htmlentities ( $values [ 'name' ] )
   );
}
8)7 :+

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


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
drm, ik heb in een array mn form-fields gedefinieerd, en vervolgens roep ik via een functie, noem hem print_content_form(), het formulier aan.

je krijgt iets als
code:
1
2
3
4
$data[0] = form_input(name, value, bla, bla);
$data[1] = form_submit("text", bla, bla);

print_content_form($data);


Die functie doet vervolgens <form> en </form> ervoor en erachter zetten. Ik redeneerde niet krom, ik deed het misschien niet genoeg uitleggen ;)

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info

Pagina: 1