[Safari] Array-veld in formulier wordt verkeerd verzonden*

Pagina: 1
Acties:

  • GekkeCoen
  • Registratie: September 2005
  • Laatst online: 20-02-2025
Goededag,

Ik heb een bestellingscript geprogrammeerd maar nu schijnt het dat hij niet met Safari werkt (browser van een Mac). Het gaat om het volgende gedeelte code:

PHP:
1
2
3
for ($i=0;$i<count($schilderij);$i++){
$bericht .= "Schilderij: <b>" . $schilderij[$i] . "</b><br />\n";
}


Mvg,
Coen

  • GlowMouse
  • Registratie: November 2002
  • Niet online
PHP kan nooit een browser-specifiek probleem opleveren. Daarbij gaat het altijd om de code die wellicht niet goed weergegeven wordt, maar dit heeft met HTML te maken. 'Werkt waarschijnlijk niet' is ook een tamelijk vage term. Waarom beschrijf je niet direct wat het probleem dan precies is, zodat niet iedereen die je wil helpen, deze code zelf uit moet draaien?
Wat betreft je code: waarom geen foreach loop?

[ Voor 31% gewijzigd door GlowMouse op 07-10-2006 19:26 ]


  • GekkeCoen
  • Registratie: September 2005
  • Laatst online: 20-02-2025
GlowMouse schreef op zaterdag 07 oktober 2006 @ 19:25:
PHP kan nooit een browser-specifiek probleem opleveren. Daarbij gaat het altijd om de code die wellicht niet goed weergegeven wordt, maar dit heeft met HTML te maken. 'Werkt waarschijnlijk niet' is ook een tamelijk vage term. Waarom beschrijf je niet direct wat het probleem dan precies is, zodat niet iedereen die je wil helpen, deze code zelf uit moet draaien?
Wat betreft je code: waarom geen foreach loop?
Nee dat kan ook niet, maar de code wordt in combinatie met dit gebruikt:

code:
1
2
<td><a href="images/schilderij.png"><img src="images/schilderij.png" /></a><br /><input type="checkbox" name="schilderij[]" value="Oude auto" />Oude auto</td>
<td><a href="images/schilderij.png"><img src="images/schilderij.png" /></a><br /><input type="checkbox" name="schilderij[]" value="Kastanjeboom" />Kastanjeboom</td>


Dan kan het misschien wel aan een browser liggen, dat het aanvinken via een andere manier verwerkt wordt ofzo. Alhoewel dit me sterk lijkt.

En wat en hoe is een foreach loop?

Edit: Even een beter uitleg van het probleem: bij mij (op mijn host, met mijn email adres en mijn browser) werkt het script wel. Maar bij iemand anders (bij een andere host, een ander email adres en een ander browser: Safari op een Mac) werkt het niet. Er wordt niet naar de email verstuurd welk checkbox aangevinkt is.

[ Voor 12% gewijzigd door GekkeCoen op 07-10-2006 19:31 ]


  • GlowMouse
  • Registratie: November 2002
  • Niet online
GekkeCoen schreef op zaterdag 07 oktober 2006 @ 19:28:
[...]
En wat en hoe is een foreach loop?
http://www.php.net/foreach, verhelpt je problemen niet, maar maakt je code stukken inzichtelijker.
Edit: Even een beter uitleg van het probleem: bij mij (op mijn host, met mijn email adres en mijn browser) werkt het script wel. Maar bij iemand anders (bij een andere host, een ander email adres en een ander browser: Safari op een Mac) werkt het niet. Er wordt niet naar de email verstuurd welk checkbox aangevinkt is.
Ligt het dan aan dit script of aan het verwerkingsscript? Heb je al geprobeerd dit probleem in een zeer klein stukje code samen te vatten? Heb je ergens een volledig voorbeeld?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Ten eerste is een browserspecifiek probleem zoals dit (bijna) altijd clientside, en zoals je al eens eerder is verteld horen dergelijke vragen in Webdesign, Markup & Clientside Scripting. Je had dat bovendien ook nog eens kunnen lezen in Waar hoort mijn topic?

Verder mag je wel iets meer moeite doen, iets wat je ook al eens eerder verteld is. Wat een foreach is had je makkelijk kunnen uitvinden als je even had geprobeerd te [google=php foreach]. ;)

PRG>>WEB

'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.


  • GekkeCoen
  • Registratie: September 2005
  • Laatst online: 20-02-2025
Ik ben erachter gekomen dat het niet door de browser safari komt. Maar door de host, op mijn site: http://www.linkstraat.nl/art/schilderijen.php doet hij het wel. Maar op site van de klant niet. Waar kan het dan allemaal aanliggen? Aan de php versie ofzo?

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

register_globals staat ws OFF, dus je moet $_GET of $_POST gebruiken om je get- en postvars te benaderen.

Intentionally left blank


  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 11-02 20:53

Kippenijzer

McFallafel, nu met paardevlees

register_globals (zoek maar op met google of in de php manual) waarschijnlijk.

  • GekkeCoen
  • Registratie: September 2005
  • Laatst online: 20-02-2025
crisp schreef op zondag 08 oktober 2006 @ 13:13:
register_globals staat ws OFF, dus je moet $_GET of $_POST gebruiken om je get- en postvars te benaderen.
Maar de rest van de velden naam, adres, postcode, email etc. wordt wel mee verzonden. Alleen de chechboxes niet.

  • Cartman!
  • Registratie: April 2000
  • Niet online
PHP:
1
2
3
echo '<pre>';
print_r($_POST);
echo '</pre>';


Als je dat boven de verwerking van je form zet, wat voor output krijg je dan te zien op een safari browser? Vergelijk dat met een IE of FF output. Dan kom je denk een stuk verder. Daarmee print je alle $_POST variabelen die er zijn, erg handig.

[ Voor 11% gewijzigd door Cartman! op 08-10-2006 13:33 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Vergeet ook niet dat een niet gecheckede checkbox niet wordt meegestuurd in je GET of POST:
HTML:
1
2
3
<input type="checkbox" name="foo[]" value="a">
<input type="checkbox" name="foo[]" value="b" checked>
<input type="checkbox" name="foo[]" value="c">

geeft in PHP:
PHP:
1
print_r($_POST['foo']); // Array( 0 => "b")

Intentionally left blank

Pagina: 1