kontakt formular

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
Laust
Rutineret
Rutineret
Indlæg:59
Tilmeldt:5. nov 2011, 13:23
kontakt formular

Indlæg af Laust » 7. dec 2011, 18:02

Hej.

Jeg har lavet en kontakt formular på min hjemmeside, og den fungerer også ganske glimrende.

Jeg kunne godt tænkte mig at finpudse den, så den mail JEG modtager når nogen benytter sig at min kontakt formular kommer til at se lidt pænere ud.
Er det noget der kan lade sig gøre??
Og hvordan kan man gøre så flere email adresser modtager samme mail når nogen benytter sig af formularen?? :D

Mine koder:
HTML:

Kode: Vælg alt

<form method="post" action="kontakt.php" id="Bookingformular"> 
                 <table bgcolor=#ffffcc align=center> 
                 <tr><td colspan=2><strong>Booking formular</strong></td></tr> 
                 <tr><td><font color=red>*</font> Angående:</td><td><select name="sendto"> <option value="xxx@xxx.dk">Tidsbestilling</option> <option value="xxxx@xxx.com' , 'xxx@xxx.dk'">Ris & ros</option> <option value="xxx@xx.com">Webmaster</option> </select></td></tr> 
                 <tr><td><font color=red>*</font> Navn:</td><td><input size=25 name="Navn"/></td></tr> 
                 <tr><td><font color=red>*</font> Efternavn:</td><td><input size=25 name="Efternavn"/></td></tr> 
                 <tr><td><font color=red>*</font> E-mail:</td><td><input size=25 name="E-mail"/></td></tr>
                 <tr><td><font color=red>*</font> Måned:</td><td>
                         <select name="Måned"> 
                             <option value="#">               </option>
                             <option value="Januar">    Januar</option>
                             <option value="Februar">   Februar</option> 
                             <option value="Marts">     Marts</option> 
                             <option value="April">     April</option>
                             <option value="Maj">       Maj</option>
                             <option value="Juni">      Juni</option>
                             <option value="Juli">      Juli</option>
                             <option value="August">    August</option> 
                             <option value="September"> September</option> 
                             <option value="Oktober">   Oktober</option>
                             <option value="November">  November</option>
                             <option value="December">  December</option>

                         </select></td></tr>
                         
                 <tr><td><font color=red>*</font> Dag:</td><td>
                         <select name="Dag"> 
                             <option value="#">      </option>
                             <option value="1">     1</option>
                             <option value="2">     2</option> 
                             <option value="3">     3</option> 
                             <option value="4">     4</option>
                             <option value="5">     5</option>
                             <option value="6">     6</option>
                             <option value="7">     7</option>
                             <option value="8">     8</option> 
                             <option value="9">     9</option> 
                             <option value="10">    10</option>
                             <option value="11">    11</option>
                             <option value="12">    12</option>
                             <option value="13">    13</option>
                             <option value="14">    14</option> 
                             <option value="15">    15</option> 
                             <option value="16">    16</option>
                             <option value="17">    17</option>
                             <option value="18">    18</option>
                             <option value="19">    19</option>
                             <option value="20">    20</option> 
                             <option value="21">    21</option> 
                             <option value="22">    22</option>
                             <option value="23">    23</option>
                             <option value="24">    24</option>
                             <option value="25">    25</option>
                             <option value="26">    26</option>
                             <option value="27">    27</option>
                             <option value="28">    28</option>
                             <option value="29">    29</option>
                             <option value="30">    30</option>
                             <option value="31">    31</option>

                         </select></td></tr>
                         
                 <tr><td><font color=red>*</font> År:</td><td>
                         <select name="År"> 
                             <option value="#">            </option>
                             <option value="2011">     2011</option>
                             <option value="2012">     2012</option> 
                             <option value="2013">     2013</option> 
                             <option value="2014">     2014</option>
                             <option value="2015">     2015</option>
                             <option value="2016">     2016</option>

                         </select></td></tr>
                 <tr><td>Brug af ridehallen:</td></tr>
                 <tr><td>Fra klokken:</td><td><input size=25 name="Fra"/></td></tr> 
                 <tr><td>Til klokken:</td><td><input size=25 name="Til"/></td></tr> 
                 <tr><td>Postnummer:</td><td><input size=25 name="Postnummer"/></td></tr> 
                 <tr><td>Mobil:</td><td><input size=25 name="Mobil"/></td></tr> 
                 <tr><td>Telefon:</td><td><input size=25 name="Telefon"/></td></tr>
                 <tr><td>Tilmeld <br/> nyhedsbrev :</td><td><input type="radio" name="liste" value="Nej"/> Nej tak <br/> <input type="radio" name="liste" value="Ja" checked/> Ja tak <br/></td></tr> 
                 <tr><td colspan=2>Besked:</td></tr> 
                 <tr><td colspan=2 align=center><textarea name="Besked" rows=5 cols=35></textarea></td></tr> 
                 <tr><td colspan=2 align=center><input type=submit name="send" value="Submit"/></td></tr> 
                 <tr><td colspan=2 align=center><small>Et <font color=red>*</font> indikerer at feltet SKAL udfyldes</small></td></tr> 
                 </table> 
           </form> 
PHP:

Kode: Vælg alt

<?php 
 $to = $_REQUEST['sendto'] ; 
 $from = $_REQUEST['E-mail'] ; 
 $name = $_REQUEST['Navn'] ; 
 $month = $_REQUEST['Måned'];
 $day = $_REQUEST['Dag'];
 $year = $_REQUEST['År'];
 $message = $_REQUEST['Besked'];
 $headers = "From: $from"; 
 $subject = "Karlslund ridehal"; 
 
 $fields = array(); 
 $fields{"Navn"} = "Navn"; 
 $fields{"Efternavn"} = "Efternavn"; 
 $fields{"Postnummer"} = "Postnummer"; 
 $fields{"E-mail"} = "E-mail";  
 $fields{"Måned"} = "Maaned";
 $fields{"Dag"} = "Dag"; 
 $fields{"År"} = "Aar";
 $fields{"Brug af ridehallen"} = "Brug af ridehallen";
 $fields{"Fra"} = "Fra";
 $fields{"Til"} = "Til";
 $fields{"Mobil"} = "Mobil"; 
 $fields{"Telefon"} = "Telefon";
 $fields{"liste"} = "Mail liste";
 $fields{"Besked"} = "Besked";
 
 $body = "Vi har modtaget foelgende information:\n\n"; foreach($fields as $a => $b){ 	$body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); } 
 
 $headers2 = "From: noreply@Karlslund-ridehal.dk"; 
 $subject2 = "Tak for din henvendelse"; 
 $autoreply = 
        "Tak for din henvendelse, vi vender tilbage til dig hurtigst muligt med svar.
        Har du nogen spoergsmål er du velkommen til at kontakte os.
        Telefonnummer og e-mail er til at finde under kontakt i menuen på hjemmesiden. 
        
        Fortsat god dag.

        Mvh.
        Karlslund ridehal";
 
 if($from == '') {print "Du har ikke indtastet nogen e-mail, gå venligst tilbage og prøv igen.";} 
 else { 
 if($name == '') {print "Du har ikke indtastet noget navn, gå venligst tilbage og prøv igen.";} 
 else { 
 if($month == '') {print "Du har ikke valgt måned, gå venligst tilbage og prøv igen.";} 
 else { 
 if($day == '') {print "Du har ikke valgt dag, gå venligst tilbage og prøv igen.";} 
 else { 
 if($year == '') {print "Du har ikke valgt år, gå venligst tilbage og prøv igen.";} 
 else { 
 $send = mail($to, $subject, $body, $headers); 
 $send2 = mail($from, $subject2, $autoreply, $headers2); 
 if($send) 
 {header( "Location: Din_mail_blev_sendt.php" );} 
 else 
 {print "Der opstod en fejl under afsendelsen af din mail. <br/>
    Gå tilbage og prøv igen eller kontakt os vedhjælp af de oplyste kontakt data som du finder i menuen til venstre."; } 
 } } } } }
 ?> 
Hvis man ikke skriver en email adresse skriver browseren:
Notice: Undefined index: Brug af ridehallen in C:\xampp\htdocs\PhpProject_Karlslund_ridehal\kontakt.php on line 28
Du har ikke indtastet nogen e-mail, gå venligst tilbage og prøv igen.
Hvordan får jeg den til at nøjes med at skrive:
Du har ikke indtastet nogen e-mail, gå venligst tilbage og prøv igen.
?????

MVH.
Laust...

Brugeravatar
Daniel
Admin
Admin
Indlæg:625
Tilmeldt:14. jun 2011, 09:27
Geografisk sted:Danmark, Fyn, Nørre Aaby
Kontakt:

Re: kontakt formular

Indlæg af Daniel » 7. dec 2011, 18:42

Hej Laust.

Jeg kan måske hjælpe dig med en del af dit problem. :)
Om du kan ændre noget i mailen må du ikke spørge mig om, du kan sikkert nok, men jeg er ikke ekspert der.
Men jeg tror dog at jeg kan hjælpe dig med den fejlmeddelelse du får.
Prøv at indsætte koden nedenunder her først i din PHP fil.

Kode: Vælg alt

ini_set("display_errors","Off");
Det skulle meget gerne hjælpe på det problem.
Samtidig med så kan jeg se en lille skrøbelighed i dine HTML koder, og det er at man kan sætte 31 dage i alle måneder, og i nogle måneder er der jo kun 30 dage.
Jeg ved godt at det ikke virker som noget større, men det kan være sådan en ting der gør at kunder vælger at finde et andet sted og købe/leje, når man taler om web-programmering så skal det altid være helt tip top i orden, og gerne se lidt mere professionelt ud end hvad det er. :)
Men ellers så er det godt lavet.

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: kontakt formular

Indlæg af ThomasI » 7. dec 2011, 19:39

Hej!

Den fejl meddelse skulle du gerne få lige meget hvad du mangler at udfylde.

Det har som der står noget at gøre med :

Kode: Vælg alt

$fields{"Brug af ridehallen"} = "Brug af ridehallen";
Er heller ikke sikker på at du kan bruge sætninger i arrays... prøv evt at lav det om til:

Kode: Vælg alt

$fields{"Brug_af_ridehallen"} = "Brug af ridehallen";
Kan ikke lige se hvor den bruges i din formular?

Med hensyn til at få sendt mailen til 2 personer, så laver du bare en mail funktion mere som sender de samme oplsyninger til en adresse mere...

Kan se du allerede har 2 hvor den ene sender et autoreply.... :D

Laust
Rutineret
Rutineret
Indlæg:59
Tilmeldt:5. nov 2011, 13:23

Re: kontakt formular

Indlæg af Laust » 8. dec 2011, 16:58

Lækkert Daniel, det løste det problem. :D Mange tak.

Den skrøbelighed du nævner har jeg godt nok selv tænkt over:
Samtidig med så kan jeg se en lille skrøbelighed i dine HTML koder, og det er at man kan sætte 31 dage i alle måneder, og i nogle måneder er der jo kun 30 dage.
Men kan du fortælle mig hvordan man ændre så man kan vælge dato op det antal dage, der nu er i den måned som man har valgt??
Så hvis man vælger januar kan man vælge op til 31 dage. Men hvis man vælger februar så kan man kun vælge op til 28. ?? :)

Mange tak for hjælpen begge to. ;)

Brugeravatar
Daniel
Admin
Admin
Indlæg:625
Tilmeldt:14. jun 2011, 09:27
Geografisk sted:Danmark, Fyn, Nørre Aaby
Kontakt:

Re: kontakt formular

Indlæg af Daniel » 8. dec 2011, 23:03

Nu skal jeg lige være sikker på at jeg forstår dig ret i at det var det med fejlmeddelelsen at der virkede ikke? :)
Jeg har ikke selv nået at teste det, men det stod i en af mine hæfter fra Libris af, så regner med at det har virket.

Ja jeg kan godt se hvad du mener med det, jeg har selv tænkt over det, og det jeg måske kunne forestille mig bliver noget rigtig langt og rigtig avanceret, men jeg tror det er mugligt ved at gå ind og sætte nogle links på hver enkel måned, altså sådan at man får en side til januar, en til februar, osv.
Men det ville blive en rigtig lang og håbløs proces, så den skal nok ikke ligefrem anbefales.
Så tænker jeg på at man måske kunne bruge noget if og else i PHP, men det har jo ikke så meget at gøre med formerne i HTML, så jeg må svare skyldigt jeg ved det ikke. :/
Men måske Thomas eller en anden ved det. :)

Laust
Rutineret
Rutineret
Indlæg:59
Tilmeldt:5. nov 2011, 13:23

Re: kontakt formular

Indlæg af Laust » 9. dec 2011, 18:46

Jo Daniel.

Det var fejlmeddelelsen der virkede efter din hjælp. :) -Endnu engang tak. ;)

Mvh.
Laust

Laust
Rutineret
Rutineret
Indlæg:59
Tilmeldt:5. nov 2011, 13:23

Re: kontakt formular

Indlæg af Laust » 27. dec 2011, 10:27

Så vender jeg lige tilbage med det spørgsmål som lidt er blevet glemt i løbet af tråden.

Er der nogen, der ved noget om hvordan man ændre opsætningen i den meddelelse
der bliver sendt til MIG når nogen bruger min kontakt formular???
-Jeg ville rigtig gerne have det lavet sådan at de data der bliver sendt i mailen til mig bliver sat ind i en tabel.

Mvh.
Laust

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: kontakt formular

Indlæg af ThomasI » 27. dec 2011, 13:43

Hej Laust :D

For at du kan sende html kode i en mail, så det også bliver læst som html kode i selve mailen, Så skal du hen og definere en header i din mail således:

Kode: Vælg alt

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: bla bla' . "\r\n";
Og din mail funktion skal se således ud:

Kode: Vælg alt

mail($til, $emne, $besked, $headers);
Prøv så at gemme nogle html koder i din $besked, f.eks en tabel med noget indhold...

HUSK at escape alle "

På denne måde skulle du gerne modtage en HTML tabel med dit indhold ;)

Laust
Rutineret
Rutineret
Indlæg:59
Tilmeldt:5. nov 2011, 13:23

Re: kontakt formular

Indlæg af Laust » 30. dec 2011, 17:56

Hej Thomas, tak for det.

Sætter jeg det bare ind i mit php dokument (som du kan se længere oppe)?
-Eller skal jeg slette noget i det nu jeg sætter det her ind??

Jeg spørger fordi jeg min kontakt formular viker som den er nu, men jeg synes
ikke at jeg kan finde noget som matcher de koder du skriver der, med de
tre gange "headers"..

Mvh.
Laust

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: kontakt formular

Indlæg af ThomasI » 30. dec 2011, 18:38

Hej Laust,

Altså du skal jo skifte dine gamle header variabler ud med dem jeg har vist ovenfor.

Du skal selfølgelig ændre i "fra"/"from" så det passer til dig.

Kan også se at du bruger header 1 og 2, og du skal derfor bruge min header i begge din variabler, hvis du skal skal sende html med begge mail funktioner i dit script ;) .

Prøv at se den her guide for hjælp:

www.kavoir.com/2009/04/php-send-html-email-mail.html

Besvar