checkbox mailer doet vreemd

Status
Niet open voor verdere reacties.

gast0659

Gebruiker
Lid geworden
27 dec 2009
Berichten
42
Ik heb nu dus een form gemaakt in html, met daarbij een php scriptje om de resultaten uit dat form te mailen. In dat form zitten ook checkboxes, en dat werkte allemaal, maar nu niet meer. Ik weet om eerlijk te zijn niet meer wat ik verandert heb, waardoor het niet meer werkt :o
Hier is de php:
PHP:
$aan =  $_POST['to']; 
$onderwerp =  "Bestelling"; 
$naam =  $_POST['naam']; 
$email =  $_POST['email']; 
$message =  "Producten:"; 
  
foreach($_POST['check'] as $value) { 
$check_msg .= "$value\n";
} 
  
$body =  "From: $naam\n E-Mail: $email\n Message:\n $message\n $check_msg"; 
  
echo  "Uw bestelling is succesvol verstuurd."; 
mail($aan,  $onderwerp, $body);

Ik begrijp om eerlijk te zijn totaal niet wat er fout aan is, en ook overal op internet staat dat dit zou moeten werken, maar ik krijg een "Warning: Invalid argument supplied for foreach() in /home/u513566323/public_html/test/mailer.php on line 8" melding, en geen mailtje.

Alvast bedankt voor de hulp,
Jan Thiemen
 
Hoe ziet je formulier eruit? De foutmelding die je krijgt betekent dat $_POST['check'] geen array is.
 
Dit is mijn form (beperkt tot het checkbox gedeelte):

[JS]if (window.XMLHttpRequest)
{// IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","dehoek.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
x=xmlDoc.getElementsByTagName("product");

for (var i=0;i<x.length;i++)
{
document.write('<input name="check[]" id="checkbox'+i+'" type="checkbox" value="'+(x.getElementsByTagName("naam")[0].childNodes[0].nodeValue)+'" /><label for="checkbox'+i+'">'+(x.getElementsByTagName("naam")[0].childNodes[0].nodeValue)+' &nbsp; €'+(x.getElementsByTagName("prijs")[0].childNodes[0].nodeValue)+' </label>');
}[/JS]

Zoals je ziet staat het in javascript en haalt het de info voor de checkboxes uit een xml bestand.
 
Dat is raar. $_POST['check'] zou zo een array moeten zijn (als er minimaal een checkbox op de pagina verschijnt). Zet eens ergens in je PHP-script
PHP:
print_r($_POST);
Dan kan je zien wat er allemaal in de $_POST-array zit.
 
Bedankt voor je hulp, ik heb het antwoord gevonden. In plaats van POST had ik GET moeten gebruiken, omdat ik in het aanroepen van het xml bestand ook GET gebruik. Ik heb alle POST's vervangen door GET's en het werkt. Dus in elk geval heel erg bedankt voor je hulp.
 
ik zou ook wel ff controleren of $_GET['check'] verzonden is
en of het ook een array is.
vooral nu je met $_GET werkt, want een beetje computergebruiker kan makkelijk de url aanpassen en zorgen dat je script in de soep loopt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan