/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
php formmail
Fra : Erling Nielsen


Dato : 15-01-07 13:14

Hejsa.
Vil lige starte med at sige, jeg har overhovedet ikke forstand på det her,
men jeg har et lille problem med php.
Jeg hentede et eksempel på "hjemmesideskolen" : Formular til php-formmail
hvor php filen "fortæller" at alle felter skal være udfyldte.
Men kan man ikke indsætte et "afslutningstegn" så det f.eks kun er navn og
email der skal være udfyldt for at kunne sende mailen,
hvis jeg nu vil lave flere felter i min formmail ?




<?php
if (isset($_POST['submit']))
{
if (!empty($_POST['name']) && // tjek, at der er skrevet et navn
!empty($_POST['email']) && // tjek, at der er skrevet en e-mail-adresse
!empty($_POST['subject']) && // tjek, at der er skrevet et subject
!empty($_POST['message']) && // tjek, at der er skrevet en besked


// her følger sikringen mod spambotter
!strpos($_POST['name'], "dit_domain.dk") && // tjek, at dit domæne ikke er
skrevet i feltet "navn"
!strpos($_POST['email'], "dit_domain.dk") && // tjek, at dit domæne ikke er
skrevet i feltet "email"
!strpos($_POST['name'], "@") && // tjek, at der ikke er et @ i "navn"
!eregi("\r",$_POST['name']) && // tjek, at der ikke er "vogn-retur" i
"navn"
!eregi("\n",$_POST['name']) && // tjek, at der ikke er "linjeskift" i
"navn"
!eregi("\r",$_POST['email']) && // tjek, at der ikke er "vogn-retur" i
"email"
!eregi("\n",$_POST['email'])) // tjek, at der ikke er "linjeskift" i
"email"

// er alt ok, fortsættes med afsendelse af mailen
{
$headers="From: ".$_POST['name']."<".$_POST['email'].">";
if (@$_POST['customer_copy'])
{
$headers .= "\r\nBcc: ".$_POST['email'];
}
if (@mail("dit.navn@dit_domain.dk", strip_tags($_POST['subject']),
stripslashes(strip_tags($_POST['message'])), $headers))
{
echo "<p>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</p>";
}
else
{
echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
}
}
else
{
echo "<p>Mailen kunne ikke sendes, alle felter skal udfyldes
korrekt!</p>";
}
}
?>

--
Med venlig hilsen
Erling Nielsen



 
 
mwthrane (15-01-2007)
Kommentar
Fra : mwthrane


Dato : 15-01-07 16:48

Hej,

Hvis du kun vil have den til at tjekke om navn og email er udfyldt fjerner du
bare disse 2 linier:
!empty($_POST['subject']) && // tjek, at der er skrevet et subject
!empty($_POST['message']) && // tjek, at der er skrevet en besked


Erling Nielsen wrote in dk.edb.internet.webdesign.serverside.php:
> Hejsa.
> Vil lige starte med at sige, jeg har overhovedet ikke forstand på det her,
> men jeg har et lille problem med php.
> Jeg hentede et eksempel på "hjemmesideskolen" : Formular til php-formmail
> hvor php filen "fortæller" at alle felter skal være udfyldte.
> Men kan man ikke indsætte et "afslutningstegn" så det f.eks kun er navn og
> email der skal være udfyldt for at kunne sende mailen,
> hvis jeg nu vil lave flere felter i min formmail ?
>
>
>
>
> <?php
> if (isset($_POST['submit']))
> {
> if (!empty($_POST['name']) && // tjek, at der er skrevet et navn
> !empty($_POST['email']) && // tjek, at der er skrevet en e-mail-adresse
> !empty($_POST['subject']) && // tjek, at der er skrevet et subject
> !empty($_POST['message']) && // tjek, at der er skrevet en besked
>
>
> // her følger sikringen mod spambotter
> !strpos($_POST['name'], "dit_domain.dk") && // tjek, at dit domæne ikke er
> skrevet i feltet "navn"
> !strpos($_POST['email'], "dit_domain.dk") && // tjek, at dit domæne ikke er
> skrevet i feltet "email"
> !strpos($_POST['name'], "@") && // tjek, at der ikke er et @ i "navn"
> !eregi("\r",$_POST['name']) && // tjek, at der ikke er "vogn-retur" i
> "navn"
> !eregi("\n",$_POST['name']) && // tjek, at der ikke er "linjeskift" i
> "navn"
> !eregi("\r",$_POST['email']) && // tjek, at der ikke er "vogn-retur" i
> "email"
> !eregi("\n",$_POST['email'])) // tjek, at der ikke er "linjeskift" i
> "email"
>
> // er alt ok, fortsættes med afsendelse af mailen
> {
> $headers="From: ".$_POST['name']."<".$_POST['email'].">";
> if (@$_POST['customer_copy'])
> {
> $headers .= "\r\nBcc: ".$_POST['email'];
> }
> if (@mail("dit.navn@dit_domain.dk", strip_tags($_POST['subject']),
> stripslashes(strip_tags($_POST['message'])), $headers))
> {
> echo "<p>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</p>";
> }
> else
> {
> echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
> }
> }
> else
> {
> echo "<p>Mailen kunne ikke sendes, alle felter skal udfyldes
> korrekt!</p>";
> }
> }
> ?>
>
> --
> Med venlig hilsen
> Erling Nielsen
>
>


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Erling Nielsen (15-01-2007)
Kommentar
Fra : Erling Nielsen


Dato : 15-01-07 19:25

"mwthrane" <michael@techcity.dk> skrev i en meddelelse
news:45aba238$0$49205$14726298@news.sunsite.dk...
> Hej,
>
> Hvis du kun vil have den til at tjekke om navn og email er udfyldt fjerner
> du
> bare disse 2 linier:
> !empty($_POST['subject']) && // tjek, at der er skrevet et subject
> !empty($_POST['message']) && // tjek, at der er skrevet en besked
Det virker ikke, den "siger" stadig alle felter skal udfyldes.
Og skal jeg også sætte de andre felter ind i php filen ?
Mit eksempel på formmail kan ses her: www.eahn.dk/sender2.htm
Har lige lavet phpfilen om til en tekstfil som kan ses her
www.eahn.dk/sender2.php.txt


--
Med venlig hilsen
Erling Nielsen
Torvevænget 28
8310 Tranbjerg
erling@eahn.dk
www.eahn.dk



"mwthrane" <michael@techcity.dk> skrev i en meddelelse
news:45aba238$0$49205$14726298@news.sunsite.dk...
> Hej,
>
> Hvis du kun vil have den til at tjekke om navn og email er udfyldt fjerner
> du
> bare disse 2 linier:
> !empty($_POST['subject']) && // tjek, at der er skrevet et subject
> !empty($_POST['message']) && // tjek, at der er skrevet en besked
>
>
> Erling Nielsen wrote in dk.edb.internet.webdesign.serverside.php:
>> Hejsa.
>> Vil lige starte med at sige, jeg har overhovedet ikke forstand på det
>> her,
>> men jeg har et lille problem med php.
>> Jeg hentede et eksempel på "hjemmesideskolen" : Formular til php-formmail
>> hvor php filen "fortæller" at alle felter skal være udfyldte.
>> Men kan man ikke indsætte et "afslutningstegn" så det f.eks kun er navn
>> og
>> email der skal være udfyldt for at kunne sende mailen,
>> hvis jeg nu vil lave flere felter i min formmail ?
>>
>>
>>
>>
>> <?php
>> if (isset($_POST['submit']))
>> {
>> if (!empty($_POST['name']) && // tjek, at der er skrevet et navn
>> !empty($_POST['email']) && // tjek, at der er skrevet en
>> e-mail-adresse
>> !empty($_POST['subject']) && // tjek, at der er skrevet et subject
>> !empty($_POST['message']) && // tjek, at der er skrevet en besked
>>
>>
>> // her følger sikringen mod spambotter
>> !strpos($_POST['name'], "dit_domain.dk") && // tjek, at dit domæne ikke
>> er
>> skrevet i feltet "navn"
>> !strpos($_POST['email'], "dit_domain.dk") && // tjek, at dit domæne ikke
>> er
>> skrevet i feltet "email"
>> !strpos($_POST['name'], "@") && // tjek, at der ikke er et @ i "navn"
>> !eregi("\r",$_POST['name']) && // tjek, at der ikke er "vogn-retur" i
>> "navn"
>> !eregi("\n",$_POST['name']) && // tjek, at der ikke er "linjeskift" i
>> "navn"
>> !eregi("\r",$_POST['email']) && // tjek, at der ikke er "vogn-retur" i
>> "email"
>> !eregi("\n",$_POST['email'])) // tjek, at der ikke er "linjeskift" i
>> "email"
>>
>> // er alt ok, fortsættes med afsendelse af mailen
>> {
>> $headers="From: ".$_POST['name']."<".$_POST['email'].">";
>> if (@$_POST['customer_copy'])
>> {
>> $headers .= "\r\nBcc: ".$_POST['email'];
>> }
>> if (@mail("dit.navn@dit_domain.dk", strip_tags($_POST['subject']),
>> stripslashes(strip_tags($_POST['message'])), $headers))
>> {
>> echo "<p>Tak for din henvendelse. Jeg svarer så hurtigt som
>> muligt.</p>";
>> }
>> else
>> {
>> echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
>> }
>> }
>> else
>> {
>> echo "<p>Mailen kunne ikke sendes, alle felter skal udfyldes
>> korrekt!</p>";
>> }
>> }
>> ?>
>>
>> --
>> Med venlig hilsen
>> Erling Nielsen
>>
>>
>
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials



Erik Ginnerskov (15-01-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 15-01-07 23:51

Erling Nielsen wrote:

> Men kan man ikke indsætte et "afslutningstegn" så det f.eks kun er
> navn og email der skal være udfyldt for at kunne sende mailen,
> hvis jeg nu vil lave flere felter i min formmail ?

Jo, du skal omskrive disse fire linjer:


if (!empty($_POST['name']) && // tjek, .. et navn
!empty($_POST['email']) && // tjek, .. en e-mail-adresse
!empty($_POST['subject']) && // tjek, .. et subject
!empty($_POST['message']) && // tjek, .. en besked

til disse to:

if (!empty($_POST['name']) && // tjek, .. et navn
!empty($_POST['email'])) // tjek, .. en e-mail-adresse

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Erik Ginnerskov (15-01-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 15-01-07 23:55

Erik Ginnerskov wrote:

> if (!empty($_POST['name']) && // tjek, .. et navn
> !empty($_POST['email'])) // tjek, .. en e-mail-adresse

Hov, det gik vist lidt for hurtigt. Den her skulle være bedre:

if (!empty($_POST['name']) && // tjek, .. et navn
!empty($_POST['email']) // tjek, .. en e-mail-adresse

.... der køres flere tjeks, så den afsluttende parentes kommer først længere
nede.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Erik Ginnerskov (16-01-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 16-01-07 00:31

Erik Ginnerskov wrote:

> Hov, det gik vist lidt for hurtigt. Den her skulle være bedre:
>
> if (!empty($_POST['name']) && // tjek, .. et navn
> !empty($_POST['email']) // tjek, .. en e-mail-adresse

Øv, heller ikke rigtig. De to &'er skal med i anden linje, da der følger
flere tjeks. Så thranes forslag var det rigtige (kommentarerne slettet her
af pladshensyn):

<?php
if (isset($_POST['submit']))
{
if (!empty($_POST['name']) &&
!empty($_POST['email']) &&

!strpos($_POST['name'], "dit_domain.dk") &&
!strpos($_POST['email'], "dit_domain.dk") &&
!strpos($_POST['name'], "@") &&
!eregi("\r",$_POST['name']) &&
!eregi("\n",$_POST['name']) &&
!eregi("\r",$_POST['email']) &&
!eregi("\n",$_POST['email']))

{
$headers="From: ".$_POST['name']."<".$_POST['email'].">";
if (@$_POST['customer_copy'])
{
$headers .= "\r\nBcc: ".$_POST['email'];
}
if (@mail("dit.navn@dit_domain.dk", strip_tags($_POST['subject']),
stripslashes(strip_tags($_POST['message'])), $headers))
{
echo "<p>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</p>";
}
else
{
echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
}
}
else
{
echo "<p>Mailen kunne ikke sendes, alle felter skal udfyldes
korrekt!</p>";
}
}
?>

Så skal du bare indsætte den email-adresse i linjen, der begynder med

if (@mail("...

.... og indsætte dit domæne i de to første linjer, der begynder med

!strpos($_POST['...

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Erling Nielsen (16-01-2007)
Kommentar
Fra : Erling Nielsen


Dato : 16-01-07 11:56

Hej igen.
Tusind tak for svarene, nu kan den sende. Men kan jeg ikke få den til at
vise de forskellige punkter jeg har i min form ( www.eahn.dk/sender2.htm )
i den mail jeg modtager ?
F.eks.
Navn
Mor
Far osv..... (som den gør i en alm formmail) og hvordan indsætter jeg nye
"felter" i phpfilen ?
Det eneste der vises i den mail jeg modtager er det der er skrevet i
beskedfeltet.
Håber i kan hjælpe mig.

--
Med venlig hilsen
Erling Nielsen
Torvevænget 28
8310 Tranbjerg
erling@eahn.dk
www.eahn.dk

"Erik Ginnerskov" <erik@donotspammeplease.invalid> skrev i en meddelelse
news:45ac0e7e$0$49199$14726298@news.sunsite.dk...
> Erik Ginnerskov wrote:
>
>> Hov, det gik vist lidt for hurtigt. Den her skulle være bedre:
>>
>> if (!empty($_POST['name']) && // tjek, .. et navn
>> !empty($_POST['email']) // tjek, .. en e-mail-adresse
>
> Øv, heller ikke rigtig. De to &'er skal med i anden linje, da der følger
> flere tjeks. Så thranes forslag var det rigtige (kommentarerne slettet her
> af pladshensyn):
>
> <?php
> if (isset($_POST['submit']))
> {
> if (!empty($_POST['name']) &&
> !empty($_POST['email']) &&
>
> !strpos($_POST['name'], "dit_domain.dk") &&
> !strpos($_POST['email'], "dit_domain.dk") &&
> !strpos($_POST['name'], "@") &&
> !eregi("\r",$_POST['name']) &&
> !eregi("\n",$_POST['name']) &&
> !eregi("\r",$_POST['email']) &&
> !eregi("\n",$_POST['email']))
>
> {
> $headers="From: ".$_POST['name']."<".$_POST['email'].">";
> if (@$_POST['customer_copy'])
> {
> $headers .= "\r\nBcc: ".$_POST['email'];
> }
> if (@mail("dit.navn@dit_domain.dk", strip_tags($_POST['subject']),
> stripslashes(strip_tags($_POST['message'])), $headers))
> {
> echo "<p>Tak for din henvendelse. Jeg svarer så hurtigt som
> muligt.</p>";
> }
> else
> {
> echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
> }
> }
> else
> {
> echo "<p>Mailen kunne ikke sendes, alle felter skal udfyldes
> korrekt!</p>";
> }
> }
> ?>
>
> Så skal du bare indsætte den email-adresse i linjen, der begynder med
>
> if (@mail("...
>
> ... og indsætte dit domæne i de to første linjer, der begynder med
>
> !strpos($_POST['...
>
> --
> Med venlig hilsen
> Erik Ginnerskov
> http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
> http://html-faq.dk
>



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste