Beste mensen, vandaag geknutseld aan een webwinkelachtig PHP formulier. Met klantennummer dat gegenereerd wordt. Gewoon geinclude met:

###################################

<form action="verzenden_index.php" method="post" name=bestelform onsubmit="return checkData()" onSubmit="return defaultagree(this)">

###################################

Rest daarin is gewoon check. Verzenden_index.php ziet er als volgt uit:

###################################

<?
if(isset($_POST[Submit])){
$headers = "Content-Type: text/html; charset=windows-1252\n";
$headers .= "MIME-Version: 1.0\r\n";

$message =
"<b>FORMULIER ZELF WETEN</b><table>
<tr><td>Voornaam:</td><td><b>$_POST[voornaam]</b></td></tr><br>
<tr><td>Achternaam:</td><td>$_POST[achternaam]</td></tr>
<tr><td>Adres:</td><td>$_POST[adres]</td></tr>
<tr><td>Postcode:</td><td>$_POST[postcode]</td></tr>
<tr><td>Telefoonnummer:</td><td>$_POST[telefoonnummer]</td></tr>
<tr><td>Plaats:</td><td>$_POST[plaats]</td></tr>
<tr><td>Land:</td><td>$_POST[land]</td></tr>
<tr><td>Email:</td><td>$_POST[email]</td></tr>
<tr><td>Klantennummer:</td><td>$code</td></tr>
</table>";

$file = "code.txt";
$code = file_get_contents("$file");

$handle = fopen($file, "w");
++$code;
fwrite($handle, $code);
fclose($handle);

mail("[email protected],$email","formulier","$message", "$headers");

?>
<html>
<head>
<meta http-equiv="Content-Language" content="nl">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<link href="../css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<td class="menutd">
<ul id="menu">
<li><a href="../indextext.html">terug naar home</a></li>
</td>
</table>
<table class="tekst" cellspacing="0" cellpadding="0">
<tr>
<td>Bedankt!<br><br>
Het formulier is succesvol verzonden en bij ons aangekomen.<br>
We zullen proberen zo spoedig mogelijk te reageren.</td>
</tr>
</table>
</body>
</html>
<?
}
?>

###################################

Wat gaat er mis? Voor m'n gevoel ben ik er echt BIJNA! Bij voorbaat dank voor jullie hulp en snel reageren. Groeten,

Michiel
Die check staat in een .js bestand. Kan hier wel alles meteen op zetten maar dat vind ik zo onhanding. Ik heb dus maar een .zip file online gezet. Alle files die ik ervoor gebruik zitten erin:

http://www.bogeyonline.nl/shop.zip

Alvast bedankt voor al jullie hulp! Top!
Ik zou de check niet met JS doen, die kan namelijk uitgeschakeld staan. PHP heeft daar prima oplossingen voor...

Er word in jou form niks gechecked op input en is dus ook gruwelijk onveilig. Ik kan leuk allemaal gare shit via jou mailen naar mensen enzo. Niet echt handig. Verder kan je ipv $_POST[aanhef] beter $_POST['aanhef'] gebruikern.

Verder gebruik jij een:

<input type="Submit" value="Verzenden" disabled>

Deze zou ik vervangen door:

<input type="submit" value="Verzenden" name="blabla">

Jou verzenden.php kan dan beginnen met:

if(isset($_POST['blabla']))
{

Verder vind ik het een nogal ranzig script, niks word gecontrolleerd, geen checks, geen issets/emptys en geen fout afhandeling (als het emailen mislukt krijg je toch een venster met 'emailen is geslaagd').

Ik zou persoonlijk dit niet uit een testomgeving in een productie omgeving kunnen zetten...
Haha wow. Relaxt. Ik heb 't script ook maar van een vrind. Na die aanpassingen is ie wel te doen of ook niet? Hmpf. Wat moet ik nu doen want 't script wordt wel heel erg die grond in geboord. Doorgaan of opnieuw beginnen? *snik* Uhm. Ik ga eerst maar eens even die dingen aanpassen die je tipt. Alvast bedankt!
Arjan Kapteijn schreef op 17.01.2006 19:13
Ik zou de check niet met JS doen, die kan namelijk uitgeschakeld staan. PHP heeft daar prima oplossingen voor...

Er word in jou form niks gechecked op input en is dus ook gruwelijk onveilig. Ik kan leuk allemaal gare shit via jou mailen naar mensen enzo. Niet echt handig. Verder kan je ipv $_POST[aanhef] beter $_POST['aanhef'] gebruikern.

Verder gebruik jij een:

<input type="Submit" value="Verzenden" disabled>

Deze zou ik vervangen door:

<input type="submit" value="Verzenden" name="blabla">

Jou verzenden.php kan dan beginnen met:

if(isset($_POST['blabla']))
{

Verder vind ik het een nogal ranzig script, niks word gecontrolleerd, geen checks, geen issets/emptys en geen fout afhandeling (als het emailen mislukt krijg je toch een venster met 'emailen is geslaagd').

Ik zou persoonlijk dit niet uit een testomgeving in een productie omgeving kunnen zetten...


Maar heb je dan misschien een beter script voor me?

Reageren