Βοήθεια σε mailform???

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Βοήθεια σε mailform???

Δημοσίευση από vassilism » 01 Οκτ 2007 15:00

Καλησπέρα σε όλους.
Έχω φτιάξει μια απλή φόρμα, για αποστολή email με php, αλλά δεν δουλεύει.
Κάτι κάνω λάθος στην function attachmentfile του send_mail.php.
Μπορεί κάποιος να βοηθήσει?
Ευχαριστώ εκ των προτέρων.


mail.php

Κώδικας: Επιλογή όλων

<html>
<title>Επικοινωνία</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<Head>
</Head>
 <body>
            <form method="post" id="form1" action="send_email.php">
              <table align="center" cellpadding="2" cellspacing="0">
                <tr>
                  <td width="109">Όνομα&#58;</td>
                  <td width="245"><div align="left"><input type="text" name="name" id="name" size="32" /></div>                  </td>
                </tr>
                <tr>
                  <td><font class="frequency">Διεύθυνση email&#58;</font></td>
                  <td><div align="left"><input type="text" name="email" id="email" size="32" /></div>                  </td>
                </tr>
                <tr>
                  <td valign="top">Μήνυμα&#58;</td>
                  <td><textarea name="message" cols="34" rows="5" id="message"></textarea></td>
                </tr>
                <tr>
                  <td height="35" valign="top">Επισύναψη&#58;</td>
                  <td valign="top">
                    <div align="left">
                      <input type="file" name="attachment" size="20"/>
                  </div></td>
                </tr>
                <tr>
                  <td colspan="2"><div align="right"> 
          <p> 
 
<input name="Send message" type="submit" id="Send message" value="Αποστολή μηνύματος"/>
<input name="reset" type="reset" id="Send message" value="Καθαρισμός"/>
          </p>
              <p align="left">&nbsp;

		  
<?php

$status = $_GET&#91;'status'&#93;;

if&#40;$status=="1"&#41; &#123;

   echo 'Το μήνυμα στάλθηκε επιτυχώς!';
   
   &#125; elseif &#40;$status=="0"&#41; &#123;
   
   echo 'Το μήνυμα δεν στάλθηκε. Ελέγξτε τα πεδία της φόρμας!';
   
   &#125; else &#123;
   
   echo"";
   
   &#125;

?>
</p>
</div>                  </td>
                </tr>
              </table>
</form>
     </div>
  </div>
  </body>
 
  </html>
send_mail.php

Κώδικας: Επιλογή όλων

<?php 

$site_name = "www.mysite.com";
$admin_email = "info@mymail.gr";



function check_email_address&#40;$email&#41; &#123;
  // First, we check that there's one @ symbol, and that the lengths are right
  if &#40;!ereg&#40;"^&#91;^@&#93;&#123;1,64&#125;@&#91;^@&#93;&#123;1,255&#125;$", $email&#41;&#41; &#123;
    // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
    header&#40;"Location&#58; mail.php?status=0"&#41;;
  &#125;
  // Split it into sections to make life easier
  $email_array = explode&#40;"@", $email&#41;;
  $local_array = explode&#40;".", $email_array&#91;0&#93;&#41;;
  for &#40;$i = 0; $i < sizeof&#40;$local_array&#41;; $i++&#41; &#123;
     if &#40;!ereg&#40;"^&#40;&#40;&#91;A-Za-z0-9!#$%&'*+/=?^_`&#123;|&#125;~-&#93;&#91;A-Za-z0-9!#$%&'*+/=?^_`&#123;|&#125;~\.-&#93;&#123;0,63&#125;&#41;|&#40;\"&#91;^&#40;\\|\"&#41;&#93;&#123;0,62&#125;\"&#41;&#41;$", $local_array&#91;$i&#93;&#41;&#41; &#123;
       header&#40;"Location&#58; mail.php?status=0"&#41;;
    &#125;
  &#125;  
  if &#40;!ereg&#40;"^\&#91;?&#91;0-9\.&#93;+\&#93;?$", $email_array&#91;1&#93;&#41;&#41; &#123; // Check if domain is IP. If not, it should be valid domain name
    $domain_array = explode&#40;".", $email_array&#91;1&#93;&#41;;
    if &#40;sizeof&#40;$domain_array&#41; < 2&#41; &#123;
         die &#40;"Invalid email address"&#41;;// Not enough parts to domain
    &#125;
    for &#40;$i = 0; $i < sizeof&#40;$domain_array&#41;; $i++&#41; &#123;
      if &#40;!ereg&#40;"^&#40;&#40;&#91;A-Za-z0-9&#93;&#91;A-Za-z0-9-&#93;&#123;0,61&#125;&#91;A-Za-z0-9&#93;&#41;|&#40;&#91;A-Za-z0-9&#93;+&#41;&#41;$", $domain_array&#91;$i&#93;&#41;&#41; &#123;
         header&#40;"Location&#58; mail.php?status=0"&#41;;
      &#125;
    &#125;
  &#125;
  return $email;
&#125;

function escape_val&#40;$string&#41; &#123;
	$string = str_replace&#40;array&#40;'"',"<",">"&#41;, array&#40;"&quot;","&lt;","&gt;"&#41;, $string&#41;;	
	return $string;
&#125;

function attachmentfile&#40;$file&#41; &#123;
  if &#40;isset &#40;$attachment&#41; && $attachment != "" && count &#40;$attachment&#41; >= 1&#41; 
        &#123; 
            for &#40;$i=0; $i<count &#40;$attachment&#41;; $i++&#41; 
            &#123; 
                $attfile = $attachment&#91;$i&#93;; 
                $file_name = basename &#40;$attfile&#41;; 
                $fp = fopen &#40;$attfile, "r"&#41;; 
                $fcontent = ""; 
                while &#40;!feof &#40;$fp&#41;&#41; 
                &#123; 
                    $fcontent .= fgets &#40;$fp, 1024&#41;; 
                &#125; 
				     $fcontent = chunk_split &#40;base64_encode&#40;$fcontent&#41;&#41;; 
                @fclose &#40;$fp&#41;; 
                $message .= "n--$html_boundaryn"; 
                $message .= "Content-Type&#58; application/octetstreamn"; 
                $message .= "Content-Transfer-Encoding&#58; base64n"; 
                $message .= "Content-Disposition&#58; inline; filename="$file_name"n"; 
                $message .= "Content-ID&#58; <$file_name>nn"; 
                $message .= $fcontent; 
            &#125; 
        &#125; 
				

$check_email = check_email_address&#40;$_REQUEST&#91;'email'&#93;&#41;;           
$name = escape_val&#40;$_REQUEST&#91;'name'&#93;&#41;;
$message = escape_val&#40;$_REQUEST&#91;'message'&#93;&#41;;
$attachment = attachmentfile&#40;$_REQUEST&#91;'attachment'&#93;&#41;;
$time = date&#40;'l dS \of F Y h&#58;i&#58;s A'&#41;;
$email_subject = "New contact message from ".$site_name."";




if&#40;mail&#40;$admin_email,$email_subject,$message,$attachment,"From&#58;$check_email,Reply-to&#58;$check_email"&#41;&#41; &#123;
header&#40;"Location&#58; mail.php?status=1"&#41;;
exit;
&#125; else &#123;
header&#40;"Location&#58; mail.php?status=0"&#41;;
&#125;
?>

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες