PDA

Bekijk Volledige Versie : Mailform zonder gegevens ...



frans
30/11/03, 21:45
Beste Mensen,

Heb wat goeie raad nodig.

Ben pas begonnen met PHP en wat uitgeprobeerd met een mailform. Tot dusver
ging alles aardig op 1 punt na... Nadat op verzenden wordt gedrukt komt er
wel een mailtje aan, alleen zonder gegevens. Dwz dat de "legende" zoals
"Naam", "E-mailadres" en "Vraag" wel wordt weergegeven maar de gegevens van
de aanvrager zijn nergens te vinden.

Ik heb me lam gekeken naar de codes, maar zie natuurlijk weer iets onnozels
over het hoofd.

Kan iemand met een heldere blik over mijn schouders meekijken en eventueel
mij op het goede spoor brengen?

mvrgr,
Frans --> zie code -->

ps niet alke actie is opgenomen en het retormailtje omdat het om een test
gaat

++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++

<form action="iframe_evaluatie.php" method="post">
<?php
$recipient = "info@adwebsign.nl";
$subject = "Een vraag via internet";
$header ="From: " . $email . "\n";
$mail_body = "Het contactformulier werd op " . date("d-m-y") . " om " .
date("H:i") . " uur uitgevoerd. \n";
$mail_body .= "De volgende gegevens werden ingevoerd:\n\n";
$mail_body .= "Naam: " . $naam . "\n";
$mail_body .= "E-mailadres: " . $email . "\n";
$mail_body .= "Vraag:\n";
$mail_body .= $Vraag . "\n\n -- Einde van het automatisch gegenereerde
bericht -- ";
mail($recipient, $subject, $mail_body, $header);

?>
<table width="410" border="0" align="center" cellpadding="0"
cellspacing="0">
<tr>
<td width="186">Naam:</td>
<td colspan="3"><input type="text" name="naam"></td>
</tr>
<tr>
<td>Straat en no: </td>
<td colspan="3"><input type="text" name="Straat_en_nummer"></td>
</tr>
<tr>
<td>Postcode:</td>
<td colspan="3"><input name="Postcode" type="text" size="7"
maxlength="7"></td>
</tr>
<tr>
<td>Woonplaats:</td>
<td colspan="3"><input type="text" name="Woonplaats"></td>
</tr>
<tr>
<td>Email:</td>
<td colspan="3"><input type="text" name="email"></td>
</tr>
<tr>
<td>Opmerkingen:</td>
<td colspan="3"><textarea name="Opmerkingen"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="32">Ja</td>
<td width="31">Nee</td>
<td width="176">&nbsp;</td>
</tr>
<tr>
<td> Thema-nieuws ontvangen: </td>
<td><input name="Ja" type="radio" value="radiobutton"></td>
<td><input name="Neen" type="radio" value="radiobutton"></td>
<td>&nbsp;</td>
</tr>
<tr>
<td height="35" valign="bottom"> <div align="right">
<p>
<input type="submit" name="Submit" value="Sturen">
</p>
</div></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td valign="bottom"><input type="reset" name="Reset"
value="Wissen"></td>
</tr>
</table>
</form>
<?php
}
?>
</div>
++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++

Maarten Wierda
30/11/03, 22:00
frans wrote:

> Ben pas begonnen met PHP en wat uitgeprobeerd met een mailform. Tot dusver
> ging alles aardig op 1 punt na... Nadat op verzenden wordt gedrukt komt er
> wel een mailtje aan, alleen zonder gegevens. Dwz dat de "legende" zoals
> "Naam", "E-mailadres" en "Vraag" wel wordt weergegeven maar de gegevens van
> de aanvrager zijn nergens te vinden.

Gokje, je probleem heet /superglobals/, tsjek
<http://www.phpfreakz.nl/artikelen.php?aid=88>.

Succes.

--
Cheers, Maarten Wierda

"Teenage angst has paid off well, now I'm bored and old"

Reinoud Horstink
30/11/03, 22:00
frans wrote:

> Beste Mensen,
>
> Heb wat goeie raad nodig.
>
> Ben pas begonnen met PHP en wat uitgeprobeerd met een mailform. Tot dusver
> ging alles aardig op 1 punt na... Nadat op verzenden wordt gedrukt komt er
> wel een mailtje aan, alleen zonder gegevens. Dwz dat de "legende" zoals
> "Naam", "E-mailadres" en "Vraag" wel wordt weergegeven maar de gegevens van
> de aanvrager zijn nergens te vinden.
>
> <form action="iframe_evaluatie.php" method="post">
> <?php
> $recipient = "info@adwebsign.nl";
> $subject = "Een vraag via internet";
> $header ="From: " . $email . "\n";
> $mail_body = "Het contactformulier werd op " . date("d-m-y") . " om " .
> date("H:i") . " uur uitgevoerd. \n";
> $mail_body .= "De volgende gegevens werden ingevoerd:\n\n";
> $mail_body .= "Naam: " . $naam . "\n";
> $mail_body .= "E-mailadres: " . $email . "\n";
> $mail_body .= "Vraag:\n";
> $mail_body .= $Vraag . "\n\n -- Einde van het automatisch gegenereerde
> bericht -- ";
> mail($recipient, $subject, $mail_body, $header);
>
> ?>

Naast het probleem dat Maarten noemde, heb je nog een denkfout gemaakt.
Als je deze pagina oproept, wordt bovenstaande PHP-code uitgevoerd.
Ofwel: er wordt een mailtje gestuurd naar jouw adres, maar alle
variabelen zijn nog leeg. Resultaat is dus een leeg mailtje. Vervolgens
zie je een (leeg) reactieformulier. Het is netter om bovenstaande
PHP-code in een apart bestandje te gooien of om er een if-conditie
omheen te formuleren, opdat de mailcode alleen wordt uitgevoerd als er
daadwerkelijk gesubmit wordt.

Wat gebeurt er als je dit formulier submit? Waarschijnlijk zal je
daarvoor de oplossing van Maarten moeten gebruiken.

Reinoud.

Luc Cardinaels | k o m m u n i k 8 | www.k8.be
21/06/04, 17:45
Volgens mij kunnen er 2 dingen misgaan in het script dat je hier hebt
laten zien :

1) Volgens mij staat op de je PHP-server de setting Register Globals op
Off. Zoek er maar iets over op. Een (onveilige) oplossing om te checken
of dit zo is om volgende code bovenaan je script in te voegen :

while(list($key,$value)=each($_POST))
{
$$key=$value;}
}

2) Zorg altijd dat je veldnamen EXACT overeenkomen met de naam van de
variabelen in je verwerkingsscript : je veld "Opmerkingen" in het
formulier zal nooit verwerkt worden omdat je in je script gaat kijken
naar $Vraag ipv $Opmerkingen.

Succes alvast,

Luc

frans wrote:
> Beste Mensen,
>
> Heb wat goeie raad nodig.



--

Luc Cardinaels
web communication consultant

----------------------------------------------------------
kommunik8 | concept, communication and design collective
----------------------------------------------------------
[mail] s3000xl@hotmail.com
[tel_] +32 497 51 51 13
[loc_] zegestraat 41 bus 2 - 3500 hasselt belgium
[www_] http://www.k8.be
----------------------------------------------------------