Bekijk Volledige Versie : problemen met e-mail formulier
van parys andy
31/08/03, 21:30
ik heb dringend hulp nodig met volgend e-mailformulier
want het werkt niet..wie weet raad???
<?php
if($Submit) {
$recipient= "mijn e-mail";
$subject ="Een vraag via de website";
$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\n";
$mail_body .= "woonplaats: " . $woonplaats . "\n\n";
$mail_body .= "telefoon: " . $telefoon . "\n\n";
$mail_body .= "vraag:\n";
$mail_body .= $vraag . "\n\n -einde van het automatisch gegenereerde
bericht-";
$mail ($recipient, $subject, $mail_body, $header);
//formulier uitgevoerd: melding weergeven
echo "Hartelijk bedankt voor uw reaktie.";
}else {
//formulier nog niet uitgevoerd: formulier weergeven
?>
<form action="<?php echo $PHP_SELF ?>"method="POST">
<table width="100%" height="300">
<tr id=table6><td height="50"colspan="2">Gebruik onderstaand formulier om
contact met ons op te nemen.</td></tr>
<tr id=table6><td>naam:</td><td><input type="text" name="naam"
size="35"></td></tr>
<tr id=table6><td>e-mailadres:</td><td><input type="text" name="email"
size="35"></td></tr>
<tr id=table6><td>woonplaats:</td><td><input type="text" name="woonplaats"
size="35"></td></tr>
<tr id=table6><td>telefoon:</td><td><input type="text" name="telefoon"
size="35"></td></tr>
<tr id=table6><td>uw bericht:</td><td><textarea name="vraag" cols="30"
rows="5"></textarea></td></tr>
<tr id=table6><td></td><td><input type="submit" name="submit"
value="verzenden"></td></tr></table>
</form>
<?php
}
?>
Rene Pijlman
31/08/03, 21:45
van parys andy:
>het werkt niet..
Wat is het probleem precies?
><?php
>if($Submit)
$Submit is true neem ik aan.
>$recipient= "mijn e-mail";
Dat lijkt me geen geldig e-mail adres :-)
>$header= "From: " . $email . "\n";
Ik heb de ervaring dat \r\n op een Linux-server wel werkt, ook al zegt de
PHP-documentatie dat je dat niet moet gebruiken. Maar of het in dit geval
een rol speelt weet ik niet.
>$mail ($recipient, $subject, $mail_body, $header);
^
?
En mail() (dus niet $mail() ) heeft een return code die je behoort op te
vangen en interpreteren.
--
René Pijlman
Wat wil jij leren? http://www.leren.nl
Toni Van Remortel
01/09/03, 11:15
Op Sun, 31 Aug 2003 19:23:32 +0000, schreef van parys andy :
> ik heb dringend hulp nodig met volgend e-mailformulier
> want het werkt niet..wie weet raad???
>
> <?php
> if($Submit) {
Afhankelijk van 'register_globals' in je php.ini, moet je $_POST["submit"]
gebruiken.
> $header= "From: " . $email . "\n";
"\r\n"; ipv "\n";
> $mail ($recipient, $subject, $mail_body, $header);
Je moet de functie mail() aanroepen, niet de variabele.
Normaal doe je:
if ( mail(...) )
alles_ok();
else
dikke_problemen();
> <form action="<?php echo $PHP_SELF ?>"method="POST">
1) $PHP_SELF bestaat niet als 'register_globals=off' staat.
2) <?=$PHP_SELF?> is korter ;)
3) <?=$_SERVER[PHP_SELF]?> is beter (want werkt altijd).
4) een spatie tussen je action="" en method="post" zetten.
--
Groeten, Toni Van Remortel
Wetenschappelijk medewerker, LinEmb, D-science lab, Hogeschool Antwerpen
Daniel Tryba
01/09/03, 13:30
In nl.internet.www.server-side Toni Van Remortel <t.vanremortel@ha.be.invalid> wrote:
> 1) $PHP_SELF bestaat niet als 'register_globals=off' staat.
> 2) <?=$PHP_SELF?> is korter ;)
Werkt niet altijd. Is net als register_globals een configratie optie.
> 3) <?=$_SERVER[PHP_SELF]?> is beter (want werkt altijd).
Dit is gewoon hardstikke fout:
http://nl2.php.net/manual/en/language.types.array.php#language.types.array.dont s
--
Daniel Tryba
Toni Van Remortel
01/09/03, 14:30
Op Mon, 01 Sep 2003 11:16:34 +0000, schreef Daniel Tryba :
> In nl.internet.www.server-side Toni Van Remortel
> <t.vanremortel@ha.be.invalid> wrote:
>> 1) $PHP_SELF bestaat niet als 'register_globals=off' staat. 2)
>> <?=$PHP_SELF?> is korter ;)
> Werkt niet altijd. Is net als register_globals een configratie optie.
De short-tags. Idd. My mistake.
>> 3) <?=$_SERVER[PHP_SELF]?> is beter (want werkt altijd).
> Dit is gewoon hardstikke fout:
> http://nl2.php.net/manual/en/language.types.array.php#language.types.array.dont s
Dit is 'hardstikke' juist. PHP_SELF is een variabele die door PHP is
gedefinieerd. Waar ze voor waarschuwen, is dat je je eigen variabelen best
niet zo gebruikt, daar PHP zelf variabalen kan declareren die hetzelfde
van naam zijn. En dan zit je in de rats. Dus is het voorbeeld perfect
juist.
PS: de pagina die je aanwijst, geeft exact hetzelfde antwoord:
The reason is that this code has an undefined constant (bar) rather than a
string ('bar' - notice the quotes), and PHP may in future define constants
which, unfortunately for your code, have the same name.
En PHP_SELF is al een gedefinieerde constante.
--
Groeten, Toni Van Remortel
Wetenschappelijk medewerker, LinEmb, D-science lab, Hogeschool Antwerpen
Daniel Tryba
01/09/03, 14:45
In nl.internet.www.server-side Toni Van Remortel <t.vanremortel@ha.be.invalid> wrote:
>>> 3) <?=$_SERVER[PHP_SELF]?> is beter (want werkt altijd).
>> Dit is gewoon hardstikke fout:
>> http://nl2.php.net/manual/en/language.types.array.php#language.types.array.dont s
>
> Dit is 'hardstikke' juist. PHP_SELF is een variabele die door PHP is
> gedefinieerd. Waar ze voor waarschuwen, is dat je je eigen variabelen best
> niet zo gebruikt, daar PHP zelf variabalen kan declareren die hetzelfde
> van naam zijn. En dan zit je in de rats. Dus is het voorbeeld perfect
> juist.
Iets zonder $ ervoor is in princip een constante en geen variabele.
> PS: de pagina die je aanwijst, geeft exact hetzelfde antwoord:
>
> The reason is that this code has an undefined constant (bar) rather than a
> string ('bar' - notice the quotes), and PHP may in future define constants
> which, unfortunately for your code, have the same name.
>
> En PHP_SELF is al een gedefinieerde constante.
Probeer het nu gewoon maar eens en je zult zien dat PHP_SELF een
variabele is geen constante. Dus $_SERVER[PHP_SELF] is gewoon fout. Dat
perongeluk wel werkt is nog fouter :)
<?php
error_reporting(E_ALL);
echo $_SERVER[PHP_SELF];
echo "\nIs defined? ";
if(defined('PHP_SELF'))
{
echo "true";
}
else
{
echo "false";
}
echo "\n";
?>
Levert bij mij op:
<br />
<b>Notice</b>: Use of undefined constant PHP_SELF - assumed 'PHP_SELF'
in <b>/var/ilsemail/test/array.php</b> on line <b>4</b><br />
/test/array.php
Is defined? false
--
Daniel Tryba
Toni Van Remortel
01/09/03, 15:00
Op Mon, 01 Sep 2003 12:40:31 +0000, schreef Daniel Tryba :
> In nl.internet.www.server-side Toni Van Remortel
> <t.vanremortel@ha.be.invalid> wrote:
>>>> 3) <?=$_SERVER[PHP_SELF]?> is beter (want werkt altijd).
>>> Dit is gewoon hardstikke fout:
>>> http://nl2.php.net/manual/en/language.types.array.php#language.types.array.dont s
>>
>> Dit is 'hardstikke' juist. PHP_SELF is een variabele die door PHP is
>> gedefinieerd. Waar ze voor waarschuwen, is dat je je eigen variabelen
>> best niet zo gebruikt, daar PHP zelf variabalen kan declareren die
>> hetzelfde van naam zijn. En dan zit je in de rats. Dus is het voorbeeld
>> perfect juist.
>
> Iets zonder $ ervoor is in princip een constante en geen variabele.
>
>> PS: de pagina die je aanwijst, geeft exact hetzelfde antwoord:
>>
>> The reason is that this code has an undefined constant (bar) rather
>> than a string ('bar' - notice the quotes), and PHP may in future define
>> constants which, unfortunately for your code, have the same name.
>>
>> En PHP_SELF is al een gedefinieerde constante.
>
> Probeer het nu gewoon maar eens en je zult zien dat PHP_SELF een
> variabele is geen constante. Dus $_SERVER[PHP_SELF] is gewoon fout. Dat
> perongeluk wel werkt is nog fouter :)
>
> <?php
> error_reporting(E_ALL);
> echo $_SERVER[PHP_SELF];
>
> echo "\nIs defined? ";
> if(defined('PHP_SELF'))
> {
> echo "true";
> }
> else
> {
> echo "false";
> }
> echo "\n";
> ?>
>
> Levert bij mij op:
> <br />
> <b>Notice</b>: Use of undefined constant PHP_SELF - assumed 'PHP_SELF'
> in <b>/var/ilsemail/test/array.php</b> on line <b>4</b><br />
> /test/array.php
> Is defined? false
Hmm. Blijkbaar klopt mijn logica dus niet. Je hebt gelijk.
--
Groeten, Toni Van Remortel
Wetenschappelijk medewerker, LinEmb, D-science lab, Hogeschool Antwerpen
Daniel Tryba
03/09/03, 00:30
In nl.internet.www.server-side Toni Van Remortel <t.vanremortel@ha.be.invalid> wrote:
>>> En PHP_SELF is al een gedefinieerde constante.
>>
>> Probeer het nu gewoon maar eens en je zult zien dat PHP_SELF een
>> variabele is geen constante. Dus $_SERVER[PHP_SELF] is gewoon fout. Dat
>> perongeluk wel werkt is nog fouter :)
>
> Hmm. Blijkbaar klopt mijn logica dus niet. Je hebt gelijk.
Tsja, je zou eigenlijk verwachten dat zulke dingen constante zijn,
$_POST, $_GET, $_SERVER en de rest van de superglobals welke per request
"vast liggen". Wellicht dat het ooit zo word indien het OO gebeuren
evolueert (maar dat zou stukken van mijn code breken aangezien ik bv
$_GET/POST gewoon als variabelen gebruiken en vaak rechtstreeks
userinput hierin "corrigeer"), nu kunnen alleen "primitieven" constante
zijn.
--
Daniel Tryba