Avatar billede kiwankow Nybegynder
30. september 2009 - 11:41 Der er 9 kommentarer og
1 løsning

indsætte tjeckbox i mailform..??

Hej

Er der nogen der kan hjælpe mig med at indsætte en tjekbox i min mailform. Jeg skal bruge det således at man ikke kan sende en mail medmindre man har accepteret vilkårerne:

Mit script ser således ud:

mail.php
-------------
<?php
include("variable.php")
?>
  <center>
  <table>
    <td>
    </td>
<td>
<div class="midterspacer"></div>
<div class="smallheadline"><?=$smalltitle?></div>
<div class="headline"><?=$bigtitle?></div>
<div class="menu"><a href="index.php">&nbsp;&nbsp;Forside&nbsp;&nbsp;</a>&nbsp;&nbsp;<a href="udstillinger.php">&nbsp;&nbsp;Udstillinger&nbsp;&nbsp;</a>&nbsp;&nbsp;<a href="galleri.php">&nbsp;&nbsp;Galleri&nbsp;&nbsp;</a>&nbsp;&nbsp;<a href="mail.php">&nbsp;&nbsp;Kontakt&nbsp;&nbsp;</a>&nbsp;&nbsp;<ahref="betingelser.php">&nbsp;&nbsp;Betingelser&nbsp;&nbsp;</a>&nbsp;&nbsp;<a href="links.php">&nbsp;&nbsp;Links&nbsp;&nbsp;</a>&nbsp;&nbsp;</div>
<div class="outsidemain">
<div class="maingallery" style="overflow:auto; scrollbar-base-color: #999999; scrollbar-arrow-color: #333333; scrollbar-3dlight-color: #cccccc; scrollbar-darkshadow-color: #999999; scrollbar-face-color: #ffffff; scrollbar-shadow-color: #cccccc;">
<center>
<br /><br /><br />
Udfyld nedenstående formular for at bestille dit privatgalleri.
<br /><br />
<div style="font-size:12px">Felter markeret med * <u>SKAL</u> udfyldes.</div>
</center>
<form name="contactform" method="post" action="send_form_email.php">
<center>
<table width="450px">
<tr><td></td></tr>
<tr>
<td valign="top">
  <label for="first_name">Fornavnavn *</label>
</td>
<td valign="top">
  <input  type="text" name="first_name" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top"">
  <label for="last_name">Efternavn *</label>
</td>
<td valign="top">
  <input  type="text" name="last_name" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top"">
  <label for="adress1">Adresse *</label>
</td>
<td valign="top">
  <input  type="text" name="adress1" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top"">
  <label for="adress2">Postnr. *</label>
</td>
<td valign="top">
  <input  type="text" name="adress2" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top"">
  <label for="adress3">By *</label>
</td>
<td valign="top">
  <input  type="text" name="adress3" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
  <label for="email">E-mail addresse *</label>
</td>
<td valign="top">
  <input  type="text" name="email" maxlength="80" size="30">
</td>
</tr>
<tr>
<td valign="top">
  <label for="telephone">Telefonnummer</label>
</td>
<td valign="top">
  <input  type="text" name="telephone" maxlength="30" size="30">
</td>
</tr>
<tr>
<td valign="top">
  <label for="comments">Evt. kommentarer</label>
</td>
<td valign="top">
  <textarea  name="comments" maxlength="1000" cols="25" rows="6"></textarea>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
  <input type="submit" value="Send besked">
</td>
</tr>
</table>
</center>
</form>
    </div>
    </div>
<div class="footer">
<div style="float:left"><a href="tilpas.php">Admin</a></div>
<div style="float:right"><a href="http://www.kunstzonen.dk">I samarbejde med Kunstzonen.dk</a></div>
</div>
</td>
    <td>
    </td>
  </table>
  </center>



send_form_email.php
---------------------
<?php
include("variable.php")
?>
<?php
if(isset($_POST['email'])) {
   
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = $mail ;
    $email_subject = "Du er blevet kontaktet via din hjemmeside";
    function died($error) {
        // your error code can go here
        echo "Vi beklager, men der blev fundet fejl i et af de udfyldte felter. ";
        echo "Du kan se hvilken fejl herunder.<br /><br />";
        echo $error."<br /><br />";
        echo "Venligst gå tilbage og ret fejlen.<br /><br />";
        die();
    }
    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['adress1']) ||
        !isset($_POST['adress2']) ||
        !isset($_POST['adress3']) ||
        !isset($_POST['email']) ||
        !isset($_POST['comments'])) {
        died('Vi beklager men der er opstået et problem med den mail du prøvede at sende.');       
    }
   
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $adress1 = $_POST['adress1']; // required
    $adress2 = $_POST['adress2']; // required
    $adress3 = $_POST['adress3']; // required
    $email_from = $_POST['email']; // required
    if (isset($_POST['telephone']) && strlen($_POST['telephone']) > 0)
    $telephone = $_POST['telephone'];
    else
    $telephone = false;
    if (isset($_POST['comments']) && strlen($_POST['comments']) > 0)
    $telephone = $_POST['comments'];
    else
    $telephone = false;
    $error_message = "";
    $email_exp = "^[A-Z0-9._%-æøå]+@[A-Z0-9.-æøå]+\.[A-Zæøå]{2,4}$";
  if(!eregi($email_exp,$email_from)) {
      $error_message .= 'Den indtastede E-mail adresse lader ikke til at være gyldig.<br />';
  }
    $string_exp = "^[a-z .'-æøå]+$";
  if(!eregi($string_exp,$first_name)) {
      $error_message .= 'Det indtastede fornavn lader ikke til at være gyldigt.<br />';
  }
  if(!eregi($string_exp,$last_name)) {
      $error_message .= 'Det indtastede efternavn lader ikke til at være gyldigt.<br />';
  }
    $string_exp = "^[A-Z0-9 ._%-æøå]+$";
  if(!eregi($string_exp,$adress1)) {
      $error_message .= 'Den indtastede adresse lader ikke til at være gyldig.<br />';
  }
    $string_exp = "^[A-Z0-9 ._%-æøå]+$";
  if(!eregi($string_exp,$adress2)) {
      $error_message .= 'Det indtastede postnr. lader ikke til at være gyldigt.<br />';
  }
    $string_exp = "^[A-Z0-9 ._%-æøå]+$";
  if(!eregi($string_exp,$adress3)) {
      $error_message .= 'Den indtastede by lader ikke til at være gyldig.<br />';
  }
  if(strlen($error_message) > 0) {
      died($error_message);
  }
    $email_message = "Du har modtaget følgende besked via din hjemmeside.\n\n";
    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }
    $email_message .= "Fornavn: ".clean_string($first_name)."\n";
    $email_message .= "Efternavn: ".clean_string($last_name)."\n";
    $email_message .= "Adresse: ".clean_string($adress1)."\n";
    $email_message .= "Postnr.: ".clean_string($adress2)."\n";
    $email_message .= "By: ".clean_string($adress3)."\n";
    $email_message .= "E-mail: ".clean_string($email_from)."\n";
    if ($telephone)
    $email_message .= "Telefon: ".clean_string($telephone)."\n";
    if ($comments)
    $email_message .= "Besked: ".clean_string($comments)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers); 
?>
<?php include("sendtmail.php"); ?>
<?
}
?>
Avatar billede majbom Novice
30. september 2009 - 12:21 #1
før:

<tr>
<td colspan="2" style="text-align:center">
  <input type="submit" value="Send besked">
</td>
</tr>

indsætter du:

<tr>
<td colspan="2" style="text-align:center">
  <input type="checkbox" name="accept" value="accept"> Jeg accepterer betingelserne
</td>
</tr>

og i din anden fil retter du:

if(isset($_POST['email'])) {

til:

if(isset($_POST['email']) AND $_POST['accept']=='accept') {
Avatar billede kiwankow Nybegynder
30. september 2009 - 13:04 #2
hmm det arbejder ikke rigtig sammen med resten af scriptet, hvis man ikke tjekker af bliver siden bare blank og den kommer ikke med fejlmeldinger for de andre felter
Avatar billede majbom Novice
30. september 2009 - 13:20 #3
prøv med:

if(isset($_POST['email'])) {

i stedet for

if(isset($_POST['email']) AND $_POST['accept']=='accept') {

igen

og sæt følgende ind, lige efter:

if($_POST['accept']!='accept') {
  died("Du skal acceptere betingelserne");
}
Avatar billede kiwankow Nybegynder
30. september 2009 - 13:32 #4
giver denne fejl:

Fatal error: Call to undefined function: died() in /send_form_email.php on line 8
Avatar billede kiwankow Nybegynder
30. september 2009 - 13:33 #5
kan man ikke lave den i stil med de felter der skal udfyldes for at mailen sendes, hvor den så også fortæller hvilket felt man mangler
Avatar billede majbom Novice
30. september 2009 - 13:37 #6
ja selvfølgelig - tror jeg skulle have taget en time mere på øjet til morgen :)

sæt if-sætningen ind lige før denne linje:

$first_name = $_POST['first_name']; // required
Avatar billede majbom Novice
30. september 2009 - 13:40 #7
jeg prøver en sidste gang inden jeg ligger mig til at sove på skrivebordet:

sæt denne:

if($_POST['accept']!='accept') {
      $error_message .= 'Du skal acceptere betingelserne.<br />';
}

ind før:

if(strlen($error_message) > 0) {
      died($error_message);
}

og glem #6...
Avatar billede kiwankow Nybegynder
30. september 2009 - 14:26 #8
Super nu virker det lige som jeg havde tænkt mig :-)

Tak for hjælpen og god lur

Husk at smide et svar..!!
Avatar billede majbom Novice
30. september 2009 - 14:58 #9
selv tak - og undskyld de mislykkede forsøg

godnat :)
Avatar billede majbom Novice
30. september 2009 - 15:18 #10
tak for point
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