/ 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
Kan ikke for denne kode til at virke
Fra : Kim Schmidt Wind


Dato : 21-06-09 21:26

Hej NG
kan ikke få dette til at virke på
http://juxwebdesign.oz1jux.dk/kontakt.html
har brugt kontaktformular fra Ludvigs hjørne

/* Her hentes oplysningerne fra de udfyldte felter */
$navn = $_REQUEST['navn'] ;
$email = $_REQUEST['email'] ;
$epost = $_REQUEST['epost'] ;
$besked = $_REQUEST['besked'];
$spamfaelde = $_REQUEST['spamfaelde'];
$kopi = $_REQUEST['kopi'];
$emne = $_REQUEST['emne'];

/* Her tjekkes, om det skjulte spamfælde-felt er udfyldt */
if ($email > '') {
echo "Du er havnet i formularens spamfælde. Det burde ikke være
muligt at havne her ved et uheld, så skam dig!";
exit ();
}

/* Her tjekkes, om der er forbudte tegn i felterne */
if (eregi("[\]",$navn) || eregi("[\]",$epost) ||
eregi("[\]",$emne) || eregi("",$navn)){
echo "Formularen er ikke udfyldt korrekt, tryk på
tilbage-knappen og prøv igen. Tjek, at du har skrevet din
mail-adresse korrekt, og at du har skrevet den i det rigtige
felt.";
exit();
}

/* Her tjekkes, om afsenderen har indtastet sin mail-adresse, og
i så fald bruges den som afsendeeradresse, så der kan svares på
mailen */
if (epost > '') {
$headers="From: $navn <$epost>\r\n";
}
else {
$headers="From: Kontaktformular <$afsendermail>\r\n";
}

/* Her indsættes din mailadresse, så afsenderen kan svare på
kopimailen */
$formularheaders="From: $hjemmeside <$afsendermail>\r\n";

/* Her samles afsenderens navn, mailadresse og besked i en enkelt
variabel */
$oplysninger="Følgende er sendt via kontaktformularen på
$hjemmeside:\r\n\r\nNavn: $navn\r\nE-mail:
$epost\r\nBesked:\r\n$besked";

/* Her samles oplysningerne til afsenderens kopi af mailen */
$kopimail="Hej $navn\r\nDu har sendt følgende via
kontaktformularen på $hjemmeside:\r\n$besked";

if ($kopi > '') {
/* Her sendes til modtageradressen */
mail($mail, $emne, $oplysninger, $headers);

/* Her sendes en kopimail til afsenderen */
mail($epost, $emne, $kopimail, $formularheaders);
}

else {
/* Her sendes mailen til modtageradressen */
mail($mail, $emne, $oplysninger, $headers);
}

/* Når mailen er sendt, viderestilles til denne hjemmeside */
header( "Location: $viderestil" );

kan ikke lige gennemskue hvad der mangler

med venlig hilsen

Kim



--
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

 
 
Kim Ludvigsen (21-06-2009)
Kommentar
Fra : Kim Ludvigsen


Dato : 21-06-09 21:57

Kim Schmidt Wind skrev:
> Hej NG
> kan ikke få dette til at virke på
> http://juxwebdesign.oz1jux.dk/kontakt.html
> har brugt kontaktformular fra Ludvigs hjørne
>
> kan ikke lige gennemskue hvad der mangler

Prøv at omdøbe filen "kontakt.html" til "kontakt.php".

--
Mvh. Kim Ludvigsen
http://ordforklaring.dk

Kim Schmidt Wind (21-06-2009)
Kommentar
Fra : Kim Schmidt Wind


Dato : 21-06-09 22:31

Kim Ludvigsen wrote in dk.edb.internet.webdesign.serverside.php:
> Kim Schmidt Wind skrev:
> > Hej NG
> > kan ikke få dette til at virke på
> > http://juxwebdesign.oz1jux.dk/kontakt.html
> > har brugt kontaktformular fra Ludvigs hjørne
> >
> > kan ikke lige gennemskue hvad der mangler
>
> Prøv at omdøbe filen "kontakt.html" til "kontakt.php".
>
> --
> Mvh. Kim Ludvigsen
> http://ordforklaring.dk

Hej

Det sker dette at når der bliver trykt på send så skulle den ikke
hoppe til forsiden, når der ikke udfyldt noget i nogen af
felterne.
Så der må mangle noget i filen kontaktformular

mvh.

KiM

--
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

Kim Ludvigsen (21-06-2009)
Kommentar
Fra : Kim Ludvigsen


Dato : 21-06-09 23:13

Kim Schmidt Wind skrev:

> Det sker dette at når der bliver trykt på send så skulle den ikke
> hoppe til forsiden, når der ikke udfyldt noget i nogen af
> felterne.

Scriptet indeholder ikke et tjek for, om felterne er
udfyldt. Det er med vilje, fordi det ikke er sikkert,
afsenderen har lyst til at oplyse sit navn, sin mail-adresse
osv. Det er nemt at tilføje et tjek.

Hvis du fx vil forlange, at navnefeltet skal være udfyldt,
kan du tilføje denne kode:

/* Her tjekkes, om navnefeltet er udfyldt */
if ($navn == '') {
echo "Du skal udfylde navnefeltet med dit navn, tryk på
tilbage-knappen og udfyld feltet.";
exit ();
}

Tilsvarende, hvis du vil forlange, at der udfyldes med en
e-mail-adresse:

/* Her tjekkes, om der er angivet en e-mail-adresse */
if ($epost == '') {
echo "Du skal angive din e-mail-adresse, tryk på
tilbage-knappen og udfyld feltet.";
exit ();
}

Koderne kan fx indsættes efter linjen:
$emne = $_REQUEST['emne'];

--
Mvh. Kim Ludvigsen
http://kimludvigsen.dk

Kim Schmidt Wind (22-06-2009)
Kommentar
Fra : Kim Schmidt Wind


Dato : 22-06-09 10:15

Kim Ludvigsen wrote in dk.edb.internet.webdesign.serverside.php:
> Kim Schmidt Wind skrev:

> /* Her tjekkes, om der er angivet en e-mail-adresse */
> if ($epost == '') {
> echo "Du skal angive din e-mail-adresse, tryk på
> tilbage-knappen og udfyld feltet.";
> exit ();
> }
>
> Koderne kan fx indsættes efter linjen:
> $emne = $_REQUEST['emne'];
>
> --
> Mvh. Kim Ludvigsen
> http://kimludvigsen.dk

Hej

Disse felt var også tilføjet, men i det som var i den zipfil stod der
andet end nu, der stod if ($epost > '')
men nu virker det

Mvh.

Kim

--
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

Kim Ludvigsen (22-06-2009)
Kommentar
Fra : Kim Ludvigsen


Dato : 22-06-09 11:19

Kim Schmidt Wind skrev:
> Kim Ludvigsen wrote in dk.edb.internet.webdesign.serverside.php:
>
>> /* Her tjekkes, om der er angivet en e-mail-adresse */
>> if ($epost == '') {

> Disse felt var også tilføjet, men i det som var i den zipfil stod der
> andet end nu, der stod if ($epost > '')

Nej, der stod:
if ($email > '') {
Det er en spamfælde, der tjekker, om feltet email er
udfyldt. Feltet email er et skjult felt, så hvis det er
udfyldt, så tyder det på, at en spambot har været på spil.
Det rigtige e-mail-felt epost.

--
Mvh. Kim Ludvigsen
Lidt om php og nogle praktiske scripts:
http://kimludvigsen.dk/programmer-internet-kompozer-trin-php.php

Kim Schmidt Wind (22-06-2009)
Kommentar
Fra : Kim Schmidt Wind


Dato : 22-06-09 13:28

Kim Ludvigsen wrote in dk.edb.internet.webdesign.serverside.php:
> Kim Schmidt Wind skrev:
> > Kim Ludvigsen wrote in dk.edb.internet.webdesign.serverside.php:
>
> Nej, der stod:
> if ($email > '') {
> Det er en spamfælde, der tjekker, om feltet email er
> udfyldt. Feltet email er et skjult felt, så hvis det er
> udfyldt, så tyder det på, at en spambot har været på spil.
> Det rigtige e-mail-felt epost.
>
> --
> Mvh. Kim Ludvigsen
> Lidt om php og nogle praktiske scripts:
> http://kimludvigsen.dk/programmer-internet-kompozer-trin-php.php

Hej

Det virker, men jeg kan godt skrive noget og undlade at skrive noget i
feltet hvor man afsenderen indtaster sin Email adresse så forsætter den
alligevel hvis der er sat et flueben i felt send mig en mail.

Mvh.

Kim

--
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

Kim Ludvigsen (22-06-2009)
Kommentar
Fra : Kim Ludvigsen


Dato : 22-06-09 13:53

Kim Schmidt Wind skrev:

> jeg kan godt skrive noget og undlade at skrive noget i
> feltet hvor man afsenderen indtaster sin Email adresse så forsætter den
> alligevel hvis der er sat et flueben i felt send mig en mail.

Jeg forstår ikke, hvad du mener.

--
Mvh. Kim Ludvigsen
http://kimludvigsen.dk

Johan Holst Nielsen (22-06-2009)
Kommentar
Fra : Johan Holst Nielsen


Dato : 22-06-09 15:19

Kim Ludvigsen wrote:
> Kim Schmidt Wind skrev:
>> Kim Ludvigsen wrote in dk.edb.internet.webdesign.serverside.php:
>>
>>> /* Her tjekkes, om der er angivet en e-mail-adresse */ if ($epost ==
>>> '') {
>
>> Disse felt var også tilføjet, men i det som var i den zipfil stod der
>> andet end nu, der stod if ($epost > '')
>
> Nej, der stod:
> if ($email > '') {
> Det er en spamfælde, der tjekker, om feltet email er udfyldt. Feltet
> email er et skjult felt, så hvis det er udfyldt, så tyder det på, at en
> spambot har været på spil. Det rigtige e-mail-felt epost.

Hvad er årsagen til du bruger > i stedet for != ?

Jeg har gennem mine - en hel del år - set en god slat linjer kode, men
har aldrig (læs: meget sjældent) set greater/less than brugt på den måde.

Enten ville jeg skrive den linje som

if($email != '') {
eller måske mere "læsvenligt"
if(!empty($email)) {

/Johan

Kim Ludvigsen (22-06-2009)
Kommentar
Fra : Kim Ludvigsen


Dato : 22-06-09 16:06

Johan Holst Nielsen skrev:
> Kim Ludvigsen wrote:

>> if ($email > '') {
> Hvad er årsagen til du bruger > i stedet for != ?

Jeg tror, jeg har set det et eller andet sted, men jeg
husker ikke hvor. Mine scripts er oftest sammensat af
stumper, jeg finder andre steder, eftersom jeg ikke selv er
særlig skrap til php.

> eller måske mere "læsvenligt"
> if(!empty($email)) {

Jeg vil prøve at få opdateret scriptet ved lejlighed.

--
Mvh. Kim Ludvigsen
http://kimludvigsen.dk

Johan Holst Nielsen (22-06-2009)
Kommentar
Fra : Johan Holst Nielsen


Dato : 22-06-09 15:48

Kim Ludvigsen wrote:
> Kim Schmidt Wind skrev:
>> Kim Ludvigsen wrote in dk.edb.internet.webdesign.serverside.php:
>>
>>> /* Her tjekkes, om der er angivet en e-mail-adresse */ if ($epost ==
>>> '') {
>
>> Disse felt var også tilføjet, men i det som var i den zipfil stod der
>> andet end nu, der stod if ($epost > '')
>
> Nej, der stod:
> if ($email > '') {
> Det er en spamfælde, der tjekker, om feltet email er udfyldt. Feltet
> email er et skjult felt, så hvis det er udfyldt, så tyder det på, at en
> spambot har været på spil. Det rigtige e-mail-felt epost.

Nu når jeg er i gang med at brokke mig over dine scripts (eller komme
med forbedringer om man vil...). Så er det altså ikke pænt at bruge
eregi til at test for \ og @.

- Det er fuldstændig ligegyldigt om du bruger ereg eller eregi - da case
insensitive er ligegyldig når der er tale om tegn som disse.

- Det er ikke best practice, at bruge eregi, som er en regular
expression funktion, til at teste om et tegn eksisterer i en streng.

Brug i stedet strpos med noget ala

if(strpos($navn,'@')!==false || ...)

--
Johan Holst Nielsen
www.phpgeek.dk

Kim Ludvigsen (22-06-2009)
Kommentar
Fra : Kim Ludvigsen


Dato : 22-06-09 16:02

Johan Holst Nielsen skrev:

> Nu når jeg er i gang med at brokke mig over dine scripts (eller komme
> med forbedringer om man vil...). Så er det altså ikke pænt at bruge
> eregi til at test for \ og @.

Jeg er altid glad for forslag til forbedringer. Jeg er ikke
særlig skrap til php, og mine script er da også henvendt til
dem, der ved mindre end jeg gør.

> - Det er fuldstændig ligegyldigt om du bruger ereg eller eregi - da case
> insensitive er ligegyldig når der er tale om tegn som disse.

Jeg anede ikke, at der findes både ereg og eregi.

> - Det er ikke best practice, at bruge eregi, som er en regular
> expression funktion, til at teste om et tegn eksisterer i en streng.
>
> Brug i stedet strpos med noget ala
> if(strpos($navn,'@')!==false || ...)

Det vil jeg prøve at kigge lidt nærmere på, tak!

--
Mvh. Kim Ludvigsen
http://kimludvigsen.dk

Johan Holst Nielsen (22-06-2009)
Kommentar
Fra : Johan Holst Nielsen


Dato : 22-06-09 16:17

Kim Ludvigsen wrote:
> Johan Holst Nielsen skrev:
>
>> Nu når jeg er i gang med at brokke mig over dine scripts (eller komme
>> med forbedringer om man vil...). Så er det altså ikke pænt at bruge
>> eregi til at test for \ og @.
>
> Jeg er altid glad for forslag til forbedringer. Jeg er ikke særlig skrap
> til php, og mine script er da også henvendt til dem, der ved mindre end
> jeg gør.

;) Helt fint.

>> - Det er fuldstændig ligegyldigt om du bruger ereg eller eregi - da case
>> insensitive er ligegyldig når der er tale om tegn som disse.
>
> Jeg anede ikke, at der findes både ereg og eregi.

Både ereg(_*) og eregi(_*) er reelt "outdated" for bedre performance bør
man bruge pcre funktionerne (preg_*). www.php.net/pcre - som giver flere
muligheder :)

>> - Det er ikke best practice, at bruge eregi, som er en regular
>> expression funktion, til at teste om et tegn eksisterer i en streng.
>>
>> Brug i stedet strpos med noget ala
>> if(strpos($navn,'@')!==false || ...)
>
> Det vil jeg prøve at kigge lidt nærmere på, tak!

Igen - det er primært små ting der ikke giver en funktionsmæssig forskel
- men en fordel i performance (som ingen kan mærke ;)) og så at det er
korrekt rent "best-practice".

/Johan

Kim Schmidt Wind (22-06-2009)
Kommentar
Fra : Kim Schmidt Wind


Dato : 22-06-09 18:03

Johan Holst Nielsen wrote in dk.edb.internet.webdesign.serverside.php:
> Kim Ludvigsen wrote:
> > Johan Holst Nielsen skrev:
> >
> >> Nu når jeg er i gang med at brokke mig over dine scripts (eller komme
> >> med forbedringer om man vil...). Så er det altså ikke pænt at bruge
> >> eregi til at test for \ og @.
> >
> > Jeg er altid glad for forslag til forbedringer. Jeg er ikke særlig skrap
> > til php, og mine script er da også henvendt til dem, der ved mindre end
> > jeg gør.
>
> ;) Helt fint.
>
> >> - Det er fuldstændig ligegyldigt om du bruger ereg eller eregi - da case
> >> insensitive er ligegyldig når der er tale om tegn som disse.
> >
> > Jeg anede ikke, at der findes både ereg og eregi.
>
> Både ereg(_*) og eregi(_*) er reelt "outdated" for bedre performance bør
> man bruge pcre funktionerne (preg_*). www.php.net/pcre - som giver flere
> muligheder :)
>
> >> - Det er ikke best practice, at bruge eregi, som er en regular
> >> expression funktion, til at teste om et tegn eksisterer i en streng.
> >>
> >> Brug i stedet strpos med noget ala
> >> if(strpos($navn,'@')!==false ...)
> >
> > Det vil jeg prøve at kigge lidt nærmere på, tak!
>
> Igen - det er primært små ting der ikke giver en funktionsmæssig forskel
> - men en fordel i performance (som ingen kan mærke ;)) og så at det er
> korrekt rent "best-practice".
>
> /Johan


Jeg takker for input. Dog lige et spørgsmål til kan man indsætter et charset i
formularen så man ikke skal ændre æ,ø og å til koder.

Mvh.

Kim

--
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

Johan Holst Nielsen (22-06-2009)
Kommentar
Fra : Johan Holst Nielsen


Dato : 22-06-09 20:37

Kim Schmidt Wind wrote:
> Jeg takker for input. Dog lige et spørgsmål til kan man indsætter et charset i
> formularen så man ikke skal ændre æ,ø og å til koder.

Det gør man helt oppe i <head> sektionen. Det virker også i formularen.

Alt efter hvorledes dine data er encoded skal du enten indsætte:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
eller
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

(Og måske en helt trejde, men vil være lidt underligt).

/Johan

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

Månedens bedste
Årets bedste
Sidste års bedste