webForumDet fria alternativet

Får inget mail [KONTAKTFORMULÄR]

PHP

5 svar · 462 visningar · startad av Guldstrand

Medlem sedan juli 20041 271 inlägg
Frågan#1

Får inga fel och inget mail till min epost, varför? :q

<?php 

   $error_msg .= '<p id="fel_meddelande"><b> Du har inte fyllt i alla obligatoriska fält</b></p>'; 
   $error = false; 
 
   $submit = $_POST['submit']; 
 
   if(empty($submit)) 
      $form_sent = false; 
   else 
      $form_sent = true; 
 
   if ($form_sent) 
   { 
      $to .= 'min@mail.nu'; 
 
      $name = $_POST['name']; 
      $email = $_POST['email']; 
      $subject = $_POST['subject']; 
      $IP = $_SERVER['REMOTE_ADDR']; 
      $message = $_POST['message']; 
 
      if(!$name) { $error_msg .= '<p id="fel_meddelande_error"><i>• Du måste skriva ditt namn</i><br /></p>'; $error = true;} 
      if(!$email) { $error_msg .= '<p id="fel_meddelande_error"><i>• Du måste skriva din e-mail</i><br /></p>'; $error = true;} 
      if(!$subject) { $error_msg .= '<p id="fel_meddelande_error"><i>• Du måste skriva ett ämne</i><br /></p>'; $error = true;} 
      if(!$message) { $error_msg .= '<p id="fel_meddelande_error"><i>• Du måste skriva ett meddelande</i><br /></p>'; $error = true;} 
 
      if($email) { if(!eregi("^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-\.]+$", $email)){ $error_msg .= "<p id=\"pprojin\"><i>• Felaktig E-postadress</i></p>"; $error = true; }} 
 
      if(!$error) 
      { 
         $msg  = "Namn: \t $name \n"; 
         $msg .= "E-mail: \t $email \n"; 
         $msg .= "Meddelande: \n $message \n"; 
         $msg .= "IP: \n {$_SERVER['REMOTE_ADDR']}\n"; 
         $mailheaders  = "MIME-Version: 1.0\r\n"; 
         $mailheaders .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
         $mailheaders .= "Från: $name <$email>\r\n"; 
         $mailheaders .= "Svara: $name <$email>\r\n"; 
 
         mail($to, $subject ,stripslashes($msg), $mailheaders); 
      } 
   } 
 
   if (($form_sent) && (!$error)) 
   { 
      echo '<p id="about_motion_top">Tack för ditt mail ' . $name .'.</p>'; 
      echo '<p id="about_motion_top">Ditt mail skickades utan problem och vi kommer att svara så fort vi kan.</p>'; 
   } 
   else 
   { 
      if ($error) 
      { 
         echo $error_msg; 
      } 
 
      ?> 
         <form action="" method="post" name="contact"> 
            <p id="kontakt_text">Namn:<span style="color: #C53A09;">*<br> 
            </span> <input name="name" type="text" value=""></p> 
 
            <p id="kontakt_text" size="30"> 
 
            E-mail:<span style="color: #C53A09;">*<br> 
            </span> <input name="email" type="text" value=""></p> 
 
            <p id="kontakt_text" size="30"> 
            Ämne:<span style="color: #C53A09;">*</span><br> 
            <input name="subject" type="text" value="" size="30"> 
            <p id="kontakt_text">Meddelande<span style="color: #C53A09;">*</span> 
            <br /> 
            <textarea name="message" cols="30" rows="5"></textarea> 
            <br /> <br />
            <input name="submit" type="submit" id="submit" value="Skicka"> 
            <input name="reset" type="reset" id="reset" value="Rensa Formul&auml;r"> 
           </p> 
           </form> 
      <?php 
} 
?>
Medlem sedan aug. 20039 340 inlägg
#2

Får du något femeddelande om du gör något fel med flit?

Medlem sedan juli 20041 271 inlägg
#3

nitro2k01 skrev:

Får du något femeddelande om du gör något fel med flit?

Jo...
Jag får de meddelandena som står angivna i koden.

Medlem sedan juni 2002256 inlägg
#4

Skriv ut en textsnutt på raden under mejl-utskicket, så du vet att den delen verkligen körs.

mail($to, $subject ,stripslashes($msg), $mailheaders); 
echo '<p>Mejlet bör ha skickats!</p>';
Medlem sedan juni 20001 251 inlägg
#5

Hur kommer det sig att frågor, relaterade samma problem, postats av två olika användare?

http://www.webforum.nu/showthread.php?t=146521

Precis som @nders skriver i tråden, skall dessa headers utbytas:

$mailheaders .= "Från: $name <$email>\r\n"; 
$mailheaders .= "Svara: $name <$email>\r\n";

till:

$mailheaders .= "From: $name <$email>\r\n"; 
$mailheaders .= "Reply-To: $name <$email>\r\n";

På den här raden har en onödig punkt smygit sig in:

$to .= 'min@mail.nu';

Ska vara:

$to = 'min@mail.nu';
Medlem sedan juli 20041 271 inlägg
#6

Yes! Nu fungerar det. Tack!
Men ip-adressen kommer inte med i mailet...

<?php 

   $error_msg .= '<p id="fel_meddelande"><b> Du har inte fyllt i alla obligatoriska fält</b></p>'; 
   $error = false; 
 
   $submit = $_POST['submit']; 
 
   if(empty($submit)) 
      $form_sent = false; 
   else 
      $form_sent = true; 
 
   if ($form_sent) 
   { 
      $to = 'min@mail.nu'; 
 
      $IP = $_SERVER['REMOTE_ADDR'];
	  $name = $_POST['name']; 
      $email = $_POST['email']; 
      $subject = $_POST['subject'];  
      $message = $_POST['message']; 
 
      if(!$name) { $error_msg .= '<p id="fel_meddelande_error"><i>• Du måste skriva ditt namn</i><br /></p>'; $error = true;} 
      if(!$email) { $error_msg .= '<p id="fel_meddelande_error"><i>• Du måste skriva din e-mail</i><br /></p>'; $error = true;} 
      if(!$subject) { $error_msg .= '<p id="fel_meddelande_error"><i>• Du måste skriva ett ämne</i><br /></p>'; $error = true;} 
      if(!$message) { $error_msg .= '<p id="fel_meddelande_error"><i>• Du måste skriva ett meddelande</i><br /></p>'; $error = true;} 
 
      if($email) { if(!eregi("^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-\.]+$", $email)){ $error_msg .= "<p id=\"pprojin\"><i>• Felaktig E-postadress</i></p>"; $error = true; }} 
 
      if(!$error) 
      { 
         $msg .= "IP: \n {$_SERVER['REMOTE_ADDR']}\n\n";
		 $msg  = "Namn: \t $name \n"; 
         $msg .= "E-mail: \t $email \n"; 
         $msg .= "Meddelande: \n $message \n"; 
          
         $mailheaders  = "MIME-Version: 1.0\r\n"; 
         $mailheaders .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
         $mailheaders .= "From: $name <$email>\r\n"; 
         $mailheaders .= "Reply-To: $name <$email>\r\n"; 
 
         mail($to, $subject ,stripslashes($msg), $mailheaders); 
      } 
   } 
 
   if (($form_sent) && (!$error)) 
   { 
      echo '<p id="about_motion_top">Tack för ditt mail ' . $name .'.</p>'; 
      echo '<p id="about_motion_top">Ditt mail skickades utan problem och vi kommer att svara så fort vi kan.</p>'; 
   } 
   else 
   { 
      if ($error) 
      { 
         echo $error_msg; 
      } 
 
      ?>
468 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
331 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
329 ms — ändringar (db)