Avatar billede itonly Nybegynder
19. juli 2007 - 19:13 Der er 24 kommentarer

Hjælp mig med at lave min FormMail

Hello

Jeg skal lave en formmail med php. Fandt lidt hjælp på nettet! Åbenbart ikke nok når jeg skal til at tilføje felter m.m.

Jeg har SLET ikke krudt og evner til at få det til at fungere. Jeg har ”bare” lavet formularen i Dreamweaver, smækket felterne ind og det ser vældig fint ud.

Hvordan kommer det til at virke sammen med PHP’en? Som det er nu, så får jeg svaret fra PHP’en: ”Mailen kunne ikke sendes, alle felter skal udfyldes korrekt”. Jeg vil jo selvfølgelig have, at alle de indtastede felter kommer overskueligt videre til min mail, så jeg kan se HVAD brugeren indtaster! Yes?

Er der nogen der gider at ”rydde op” i begge - formularens data samt PHP koden, så det bare spiller!!? Jeg er en klovn til det der tekniske så det vil jeg lade Jer genier om.

Help! Pretty pls!

KH Janne

PS: Jeg designer så gi'r gerne igen på den måde :)
Avatar billede leif Seniormester
19. juli 2007 - 19:43 #1
Det ville hjælpe enten at se det du allerede har eller fortælle os hvilke felter der skal være ?


PHPkoden afhænger lidt af hvor mange og hvad de hedder.
Avatar billede itonly Nybegynder
19. juli 2007 - 20:05 #2
Flot Janne!! Det glemte jeg sgudda!! :)

BEKLAGER RODET

FØRST FORMULAREN >>



<form method="post" action="booking_sender.php">               
<p>
  <strong>
  K¯ret¯jsoplysninger
  </strong>
  <label for="t1"><br>
  </label>
  <BR>
  Reg. nr eller stel nr.<br>
  <input name="regnr" type="text" id="regnr">
  <br>
  <BR>
  M&aelig;rke<br>
  <input name="maerke" type="text" id="maerke">
  <br>
  <br>
  Model<br>
  <input name="model" type="text" id="model">
  <br>
  <BR>
  Farve<br>
  <input name="farve" type="text" id="farve">
  <br>
  <BR>
  Defekt?
  Ja
  <input name="defekt_ja" type="radio" value="radiobutton">
  nej
  <input name="defekt_nej" type="radio" value="radiobutton">
  <br>
  <br>
  Hvis ja, hvilke defekter<br>
  <textarea name="defekt_ja_specs" rows="2" id="defekt_ja_specs"></textarea>
  <br>
  <BR>
  Evt. andre bem&aelig;rkninger <br> 
  <textarea name="andre_bemaerkninger" rows="2" id="andre_bemaerkninger"></textarea>
</p>
<p><strong><br>
  Afhentningsadresse<br>
</strong><BR>
  Firma / Navn <br>
  <input id="name" type="text" name="afh_navn" />
  <br>
  <BR>
  Att. og Tlf<br>
  <input id="name2" type="text" name="afh_att" />
  <br>
  <BR>
  Adresse<br>
  <input id="name3" type="text" name="afh_adresse" />
  <br>
  <BR>
  Postnummer og by<br>
  <input id="afh_poby" type="text" name="afh_poby" />
  <br>
  <BR>
  Kan afhentes fra (skriv dato) <br>
  <input id="name6" type="text" name="afh_dato" />
  <br>
</p>
<p>  <strong>Leveringsadresse<br>
          </strong><BR>
  Firma / Navn <br>
  <input id="lev_navn" type="text" name="lev_navn" />
  <br>
  <BR>
  Att. og Tlf<br>
  <input id="lev_att" type="text" name="lev_att" />
  <br>
  <BR>
  Adresse<br>
  <input id="lev_adresse" type="text" name="lev_adresse" />
  <br>
  <BR>
  Postnummer og by<br>
  <input id="lev_poby" type="text" name="lev_poby" />
  <br>
  <BR>
  Skal leveres senest (skriv dato) <br>
  <input id="name7" type="text" name="lev_dato" />
</p>
<p>&nbsp;</p>
<p><strong>Ordregiver</strong></p>
<p>
  <label></label>
      <input name="ordregiver_afh" type="radio" value="radiobutton">
  Afhentningsadresse</p>
<p>
  <input name="radiobutton" type="radio" value="radiobutton">
  Leveringsadresse</p>
<p>Ny adresse - venligst indtast her: <strong><br>
  </strong><BR>
  Firma / Navn <br>
  <input id="name222" type="text" name="name222" />
  <br>
  <BR>
  Att. og tlf<br>
  <input id="name322" type="text" name="name322" />
  <br>
  <BR>
  Adresse<br>
  <input id="name422" type="text" name="name422" />
  <br>
  <BR>
  Postnummer og by<br>
      <input id="name4223" type="text" name="name4223" />
</p>
<p>&nbsp;</p>
<p><strong>Faktureringsadresse</strong></p>
<p>
  <label></label>
  <input name="radiobutton" type="radio" value="radiobutton">
  Afhentningsadresse</p>
<p>
  <input name="radiobutton" type="radio" value="radiobutton">
  Leveringsadresse</p>
<p>
  <input name="radiobutton" type="radio" value="radiobutton">
  Ordregiver</p>
<p>Ny adresse - venligst indtast her: <strong><br>
  </strong><BR>
  Firma / Navn <br>
  <input id="name2222" type="text" name="name2222" />
  <br>
  <BR>
  Att. og tlf<br>
  <input id="name3222" type="text" name="name3222" />
  <br>
  <BR>
  Adresse<br>
  <input id="name4222" type="text" name="name4222" />
  <br>
  <BR>
  Postnummer og by<br>
  <input id="name4224" type="text" name="name4224" />
</p>
<p>
  <label for="t1"><strong><br>
    Andre bem&aelig;rkninger </strong><br>
    </label>
  <textarea id="t4" name="message" rows="5" cols="30"></textarea>
  <br />
 
  <label for="t5">ÿnskes kopi af henvendelsen?</label>
  <input type="checkbox" id="t5" name="customer_copy" checked="checked" />
</p>
<label for="t6">&nbsp;</label><input id="t6" type="submit" name="submit" value=" Send mail " />
&nbsp; &nbsp; <input type="reset" value=" Slet alt " />
       
</form>


OG HER KOMMER PHP’EN;


<?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("mail@domain.dk", strip_tags($_POST['subject']),
  stripslashes(strip_tags($_POST['message'])), $headers))
  {
  echo "<p>Tak for din henvendelse. Vi 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>";
}
}
?>
Avatar billede leif Seniormester
19. juli 2007 - 20:13 #3
Skal alle felter være udfyldt ?
Avatar billede leif Seniormester
19. juli 2007 - 21:25 #4
Jeg fik lige en ting til at virke, se det også på www.ljnet.dk/exp/788195/ :
<?
//Her fra må der ændres
$emailto = 'DIN@EMAIL.DK';
$emailfrom = 'DIN@EMAIL.DK';
$subject = 'Mail fra WWW';
//Her til må der ændres samt hele stykket fra <form> til </form> må ændres

if ($_SERVER["REQUEST_METHOD"] == 'POST')
{
  foreach ( $_POST as $key => $value )
  {
    $message .= $key . " " . "=" . " " . $value . "\n";

    if($value == "")
    {
    $fejl .= "Du glemte at udfylde: ".$key."<br>";
    }

  }

  if(!isset($fejl))
  {

    $message .= "IP = " . $_SERVER["REMOTE_ADDR"];

    $sendt = "Ja";
    mail($emailto, $subject, $message, "From: ".$emailfrom);
    echo "Mailen er sendt";
  }

}

if ($sendt == "Ja")
{
//Not show the form
}
else
{
  if ($fejl != "")
  {
  echo $fejl;
  echo '<br><br>';
  }
?>

<form action="kontakt.php" method="post" name="Sendmail" id="Sendmail">
    <table cellspacing="0" cellpadding="0" border="0" width="100%">
    <tr>
    <td height="5" colspan="2"></td>
    </tr>
    <tr>
    <td>Navn:<br />
      <input type="text" name="Navn" size="30" value="<? echo $_POST["Navn"]; ?>"></td>
    </tr>
    <tr>
    <td>Email:<br />
      <input type="text" name="Email" size="30" value="<? echo $_POST["Email"]; ?>"></td>
    </tr>
    <tr>
    <td>Emne:<br />
      <input type="text" name="Emne" size="30" value="<? echo $_POST["Emne"]; ?>"></td>
    </tr>
    <tr>
    <td height="132">Besked:<br />
      <textarea name="Besked"><? echo $_POST["Besked"]; ?></textarea></td>
    </tr>
    <tr>
    <td height="33">
    <input type="submit" name="Submit" value="Send mail" />
      &nbsp;
      <input type="reset" "name="Reset" value="Slet alt" /></td>
    <td height="33" align="left" valign="top">&nbsp;</td>
    </tr>
    <tr>
    <td colspan="2">&nbsp;</td>
    </tr>
    </table>
</form>

<?
}
?>
Avatar billede leif Seniormester
19. juli 2007 - 21:25 #5
Der er ikke noget særlig SPAM beskyttelse på det, men det kan naturligvis laves
Avatar billede leif Seniormester
19. juli 2007 - 21:27 #6
Bemærk det er lavet på en måde så ALLE felter skal være udfyldt !

Derfor ville jeg ændre dine radio_buttons til:
<SELECT name="defekt">
<OPTION value="Ja">Ja</OPTION>
<OPTION value="Nej">Nej</OPTION>
</SELECT>
Avatar billede itonly Nybegynder
19. juli 2007 - 22:26 #7
Hej Leif

Hvor er det storartet men jeg skal holdes i hånden! :)

Altså... vil du paste det ind jeg skal lave i selve formularen så jeg bare skal copy/paste og dernest den del der skal i min sender.php? Også hvor de der radiobtns er rettet til pls.

Er det omstændigt at lave SPAM filter??

KH Janne
Avatar billede leif Seniormester
19. juli 2007 - 22:46 #8
Der er nu lavet en med CAPTCHA, men husk at prøv at lær af noget af det du ser herfra.

www.ljnet.dk/exp/788195/kontakt3.php
Avatar billede leif Seniormester
19. juli 2007 - 22:47 #9
Du ser nemlig ikke at mine eksempler kun er lavet med 1 fil og ikke som sit eget med 2 filer
Avatar billede itonly Nybegynder
19. juli 2007 - 23:36 #10
ved altså ikke om jeg forstår det. Beklager hvis jeg virker en smule fatsvag, but this is NOT my field :)

Skal jeg bare kopiere hele koden ind i min side hvor formularen skal være? Og hvor skal jeg ændre de parametre hvor den sender mailen videre?? Og vil der komme en "tak for din mail" agtig side i dette script?

Og det øverste script, hvor skal det ind henne? Ikke i <body> vel? Eller?

Gid jeg kunne give dig 500 point - du er rar du gider hjælpe! TAK!

KH Janne
Avatar billede leif Seniormester
19. juli 2007 - 23:57 #11
Som der står:
//Her fra må der ændres
$emailto = 'DIN@EMAIL.DK';
$emailfrom = 'DIN@EMAIL.DK';
$subject = 'Mail fra WWW';
//Her til må der ændres samt hele stykket fra <form> til </form> må ændres

Men vil du have den version med Captcha så kig på http://www.ljnet.dk/exp/788195/kontakt3.phps
Avatar billede leif Seniormester
20. juli 2007 - 00:03 #12
itonly -> Nu giver hverken 200 eller 500 point mig mad på bordet ! Men det gør $$$ :-)
Avatar billede itonly Nybegynder
20. juli 2007 - 00:17 #13
Nej, men det giver en god fornemmelse i maven at hjælpe andre :) Jeg kigger på det imorgen! Det er jo bare svært når man ikke er så teknisk! Kigger på det og skriver igen!

:)
Avatar billede jakobdo Ekspert
20. juli 2007 - 07:06 #14
Haha - men det giver en god fornemmelse i maven at hjælpe andre :)
Den skal jeg prøve nede i Netto i morgen... :o)
Avatar billede itonly Nybegynder
20. juli 2007 - 07:51 #15
Ja gør du det - er sikker på der er gevinst .... eller noget!!

Anyways - jeg det er da pointsystem der binder konceptet sammen ik!? Hvis man ønsker betaing for sig arbejde, så er det jo blot at sige det og så er vi jo bare i en anden kategori! Simple as that! :) Så kan man jo sige ja eller nej!

Nå, men jeg har endnu ikke set på det. Gør det så snart jeg kommer hjem!

Tak for hjælpen so fare!
Avatar billede leif Seniormester
20. juli 2007 - 08:08 #16
itonly -> Det var kun fordi du fik det til at lyde som om at det gav mig så meget mere at du ville give 500 point i stedet for de max 200 point man kan give. Så var min mod kommentar reelt bare at det kan man ikke bruge til noget, da hverken 200 eller 500 point er noget jeg kan bruge i den virkelige verden.
Avatar billede jakobdo Ekspert
20. juli 2007 - 21:41 #17
itonly: Min mening var også ment som en joke.
Men hvis du reelt ønsker en færdig løsning, så skal du oprette det som en opgave.
php kategorien er jo ment som en hjælp til en løsning.
Men ikke, giv mig noget kode som kan ....
Avatar billede itonly Nybegynder
21. juli 2007 - 16:54 #18
Tak for lektionen!!

Smid venligst svar Leif, så jeg kan give dit point selvom jeg ikke lige er klar over hvor jeg skal smide hvad. Jeg finder nogen der kan gøre det lidt mere pædagogisk :) Beklager evt. ulejlighed!

>> Jakobdo: hvad er det for noget B.S! "Giv mig noget kode som kan...". Det har jeg da ikke sagt. Jeg har bedt om hjælp og starter med at smide den kode jeg selv har fundet frem til. Nevermind!

Well, tak for hjælpen Leif :)
Avatar billede leif Seniormester
21. juli 2007 - 19:04 #19
itonly -> Sorry, men du har faktisk fået en færdig kode, som sender en mail med de felter som du smed, men hvis det ikke er godt nok så ved jeg ikke hvad du vil have. Du smider det hele i 1 fil, kalder den hvad du vil, men skriver navnet ind i linien med <form action="">
Avatar billede itonly Nybegynder
23. juli 2007 - 09:23 #20
Det er i høj grad godt nok, men jeg synes jo ikke at jeg kan få det til at virke! Men jeg kæmper. Bare smid et svar så du kan få dine velfortjente point! Tak!
Avatar billede leif Seniormester
24. juli 2007 - 12:16 #21
Så kan du jo gøre opmærksom på at du ikke kan få det til at virke, så skal jeg da forsøge at hjælpe dig videre.

Har du lagt det op et sted vi kan kigge ?
Avatar billede itonly Nybegynder
24. juli 2007 - 12:39 #22
Ja det har jeg! Jeg har i mellemtiden også prøvet med noget andet, men det er svært at se logikken synes jeg! Det virker heller ikke!

Nå, men her kan det ses det som du har hjulpet mig med og jeg aner ikke hvor det går galt.

http://www.biltransporten.dk/booking_ny.php

Desuden så ved jeg heller ikke med det Captcha - det ser ikke ud som om at de billeder der burde være der?

Når jeg submitter kommer jeg blot til min "testing.php" side, som jeg includer i booking_ny.php? Jeg kunne tænke mig en "tak for din mail" side.

Nu har jeg lige prøvet at slette den Captcha del så jeg kunne prøve at teste men der sker ikke så meget!

Som sagt - jeg ved ikke hvad jeg gør galt! Har ikke forstand på det!
Avatar billede itonly Nybegynder
24. juli 2007 - 12:40 #23
booking_ny.php indeholder blot din: http://www.ljnet.dk/exp/788195/kontakt3.phps
Avatar billede leif Seniormester
24. juli 2007 - 13:21 #24
Hvis du har taget ALT koden fra kontakt3.phps skal du kalde: booking_ny.php da den del som sender mailen er inkluderet i kontakt3.phps
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester