Avatar billede oleoldhoj Nybegynder
11. februar 2006 - 19:42 Der er 10 kommentarer og
1 løsning

Tickbox på site

Jeg sidder med et script som skal godkende nogle oplysninger før man kan sende en mail til mig -

Tickboxen er oprettet, men mangler sin funktion,

--------------sendMail.php--------------------------------------


<?php
// Your e-mail adress:
$mailto = "Ole.Oldhoj@gmail.com";

# Maximum size of attachment in bytes:
$max_attach_size = 500000;

?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Formmailer</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
<!--
body                { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; color: #000000; background: #ffff3; margin: 20px; padding: 0px; border: 0px; }
.caution            { color: red; font-weight: bold; }
-->
</style>
</head>
<body><?php
/*if (empty($_POST['form_submitted']))
{
  ?><p>Please fill out the form:</p><?php
}
*/
if (isset($_POST["form_submitted"]))
{
  $name = trim(preg_replace("/\r/", "", $_POST['name']));
  $name = preg_replace("/\n/", "", $name);
  $name = stripslashes($name);
  $email = trim(preg_replace("/\r/", "", $_POST['email']));
  $email = preg_replace("/\n/", "", $email);
  $subject = trim(stripslashes($_POST['subject']));
  $text = trim(stripslashes($_POST['text']));

  unset($errors);
  if($email == "") $errors[] = "no e-mail address entered";
  elseif($email != "" and !preg_match("/^[^@]+@.+\.\D{2,5}$/", $email)) $errors[] = "e-mail address seems to be invalid";
  if($text == "") $errors[] = "no message entered";
  if($_FILES['probe']['size'] > $max_attach_size) $errors[] = "attachment too large (".number_format($_FILES['probe']['size']/1000,0,",","")." KB) - maximum size: ".number_format($max_attach_size/1000,0,",","")." KB";

  if (empty($errors))
  {
    #if ($name != "") $mail_name=$name; else $mail_name="Unknown";
    if ($subject != "") $mail_subject = $subject; else $mail_subject = "No subject";
    #if ($email != "") $mail_email = $email; else $mail_email = "email@unknown.xyz";
    $ip = $_SERVER["REMOTE_ADDR"];

    // if attachment, MIME-Mail:
    if (isset($_FILES['probe']['name']) && trim($_FILES['probe']['name']) != "")
    {
      // read and encode file:
      $datei_content = fread(fopen($_FILES['probe']['tmp_name'],"r"),filesize($_FILES['probe']['tmp_name']));
      $datei_content = chunk_split(base64_encode($datei_content),76,"\n");
      // Boundary:
      $boundary = md5(uniqid(rand()));
      // Mail-Header:
      $mail_header = "From: ".$name." <".$email.">\n";
      $mail_header .= "X-Sender-IP: ".$ip."\n";
      $mail_header .= "MIME-Version: 1.0\n";
      $mail_header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
      $mail_header .= "This is a multi-part message in MIME format.\n";
      // Mail-Text:
      $mail_header .= "--".$boundary;
      $mail_header .= "\nContent-Type: text/plain";
      $mail_header .= "\nContent-Transfer-Encoding: 8bit";
      $mail_header .= "\n\n".$text;
      // Attachment:
      $mail_header .= "\n--".$boundary;
      $mail_header .= "\nContent-Type: ".$_FILES['probe']['type']."; name=\"".$_FILES['probe']['name']."\"";
      $mail_header .= "\nContent-Transfer-Encoding: base64";
      $mail_header .= "\nContent-Disposition: attachment; filename=\"".$_FILES['probe']['name']."\"";
      $mail_header .= "\n\n".$datei_content;
      // End:
      $mail_header .= "\n--".$boundary."--";
      // Sende E-Mail und gebe Fehler bzw. Bestaetigung aus
      if (@mail($mailto,$mail_subject,"",$mail_header)) $sent = true; else $errors[] = "no connection to the mailserver - please try again later";
    }
    // no attachment, normal E-mail:
    else
    {
      $mail_header = "From: ".$name." <".$email.">\n";
      $mail_header .= "X-Sender-IP: $ip\n";
      $mail_header .= "Content-Type: text/plain";
      if (@mail($mailto,$mail_subject,$text,$mail_header)) $sent = true; else $errors[] = "no connection to the mailserver - please try again later";
    }

    // copy to sender:
    if (isset($sent))
    {
      $copy_subject = strip_tags($mail_subject);
      $copy_subject = str_replace('http://','',$copy_subject);
      $copy_subject = str_replace('www.','www. ',$copy_subject);
      $copy_text = strip_tags($text);
      $copy_text = str_replace('http://','',$copy_text);
      $copy_text = str_replace('www.','www. ',$copy_text);
      if (isset($_FILES['probe']['name']) && trim($_FILES['probe']['name']) != "") $copy_text = "Subject: ".$copy_subject."\n\n".$copy_text."\n\nAttachment: ".$_FILES['probe']['name']; else $copy_mail_text = "Subject: ".$mail_subject."\n\n".$copy_text;
      $header= "From: ".$mailto."\n";
      $header .= "X-Sender-IP: ".$ip."\n";
      $header .= "Content-Type: text/plain";
      @mail($email, "Copy of sent e-mail", $copy_text, $header);
    }
  }
}

if (empty($sent))
{
  if(isset($errors))
  {
    ?><p class="caution">Error:</p><ul><?php foreach($errors as $f) { ?><li><?php echo $f; ?></li><?php } ?></ul><br /><?php
  }

  ?><form method="post" action="<?php echo basename($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data"><div>
  <p><b>Name:</b><br /><input type="text" name="name" value="<?php if (isset($name)) echo htmlentities(stripslashes($name)); else echo ""; ?>" size="35" /></p>
  <p><b>E-mail:</b><br /><input type="text" name="email" value="<?php if (isset($email)) echo htmlentities(stripslashes($email)); else echo ""; ?>" size="35" /></p>
  <p><b>Subject:</b><br /><input type="text" name="subject" value="<?php if (isset($subject)) echo htmlentities(stripslashes($subject)); else echo ""; ?>" size="35" /></p>
  <p><b>Message:</b><br /><textarea name="text" cols="55" rows="12"><?php if (isset($text)) echo htmlentities(stripslashes($text)); else echo ""; ?></textarea></p>
    <p><b>Attachment:</b><br />
      <input type="file" name="probe" value="<?php if (isset($_POST['probe'])) echo htmlentities(stripslashes($_POST['probe'])); else echo ""; ?>" size="20"/></p>
      <br />
    </p>
    <p><input name="godkendt" type="checkbox" onMouseOver="Jeg har l&aelig;st og kan overholde f&oslash;lgende regler
1.    Jeg tager ikke euforiserende stoffer
2.    Jeg s&aelig;lger eller omdeler ikke euforiserende stoffer
3.    Jeg kan more mig uden at v&aelig;re fuld
" value="false" /><a href="#" title="Betingelser" target="_popop">Jeg er inforstået med disse
      betingelser</a><br />
    </p>
    <p><input type="submit" name="form_submitted" value="OK - Submit" /></p>
  </div></form><?php
}
else
{
  if (empty($email)) { ?><p><b>Thank you!</b><br />The message has been sent successfully but you didn't specify your e-mail address so I can't reply.</p><?php }
  else { ?><p><b>Thank you!</b><br />The message has been sent successfully.</p><?php }
}
?>
</body>
</html>
Avatar billede jaw Nybegynder
11. februar 2006 - 21:04 #1
Tjekket om, hvorvidt den er checket bør bare være nedenstående, da den ikke vil være sat hvis den ikke er checked.

if(isset($_POST['godkendt'])) {
Avatar billede oleoldhoj Nybegynder
11. februar 2006 - 21:25 #2
dvs, i hvert tjeck laver man en

&& (isset($_POST['godkendt']) ....    -- ala
if (isset($_POST["form_submitted"]))  -- bliver til
if (isset($_POST["form_submitted"]) && (isset($_POST['godkendt']))

og nede i bunden skal man vel lave en ... Du har ikke godkendt ?

hvordan laver man så det ....
???
Avatar billede jaw Nybegynder
11. februar 2006 - 21:29 #3
Nah, jeg ville nok gøre det en lille smule anderledes for også at få fejlmeddelelsen på:
if(!isset($_POST['godkendt'])) {
  echo "Du skal godkende!";
} elseif (isset($_POST["form_submitted"])) {
Avatar billede oleoldhoj Nybegynder
11. februar 2006 - 21:32 #4
smart ... jeg tænkte nok man kunne lave noget smart ... :D

og den sætter man i toppen

men så sender den jo alligvel ikke ?
Avatar billede jaw Nybegynder
11. februar 2006 - 21:34 #5
Nej, altså din:
if(isset($_POST['form_submittet']))
udskifter du blot med mine 3 linier, så burde det nu altså virke.
Avatar billede oleoldhoj Nybegynder
11. februar 2006 - 22:24 #6
fra default er godkendt jo false ... sååå beskeden "Du skal godkende!";" kommer altid ???
Avatar billede oleoldhoj Nybegynder
11. februar 2006 - 22:29 #7
Jeg tænker noget ala

if (isset($_POST["form_submitted"]) && !isset($_POST['godkendt'])){
if(!isset($_POST['godkendt'])){
  echo "Du skal godkende!";
}elseif{
Avatar billede jaw Nybegynder
11. februar 2006 - 22:32 #8
Ja okey, det vil den selvfølgelig gøre. Men så ville jeg gøre:
if(isset($_POST['form_submitted']) && !isset($_POST['godkendt'])) {
  echo "Du skal godkende!";
} elseif (isset($_POST["form_submitted"])) {

i stedet for mit sidste.
Avatar billede oleoldhoj Nybegynder
12. februar 2006 - 01:14 #9
skulle du ikke have 60 point for supporten ?
Avatar billede jaw Nybegynder
12. februar 2006 - 01:16 #10
Hvis du synes supporten har været tilfredsstillende ?! :)
Avatar billede oleoldhoj Nybegynder
12. februar 2006 - 15:15 #11
Jepper
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