2012-01-08 206 views
0

好的,我做了一个联系表。我需要一个PHP脚本来给我发送信息。以下是我迄今为止:电子邮件联系表格

<?php 
$emailSubject = 'Contact Form'; 
$webMaster = 'email-here'; 

$firstName = $_POST ['first_name']; 
$lastName = $_POST['last_name']; 
$emailAddress = $_POST ['email']; 
$uploadFile = $_POST ['datafile']; 
$questions = $_POST ['comments']; 

/* If e-mail is not valid show error message */ 
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email)) 
{ 
show_error("E-mail address not valid"); 
} 

好吧,我已经试了又试,使一个将提交上传的文件。我找不到任何东西。它要么很难,要么不行。请帮帮我。

而且,当它说:

['first_name']; 

的是,在这里我把我的名字输入?

此外,我有一个感谢页面。它被称为:thank_you.html我需要在表单发送后显示!

+0

你是什么意思是 “把我的名字输入” 多少? 如果某人在名为“first_name”的html形式字段中输入了他的名字,那么在提交表单时,将在$ _POST ['first_name']'中具有此值。 – fkerber 2012-01-08 20:45:09

+0

'是,我把我的输入名称?YES。确保清理用户输入。 – ZeroSuf3r 2012-01-08 20:45:12

+0

是的,对不起,我不善于解释。 – 2012-01-08 20:47:15

回答

0
$to_name = stripslashes($_POST['to_name']); 

$from_name = stripslashes($_POST['from_name']); 

$subject = stripslashes($_POST['subject']); 

$body = stripslashes($_POST['body']); 

$to_email = $_POST['to_email']; 

$attachment = $_FILES['attachment']['tmp_name']; 

$attachment_name = $_FILES['attachment']['name']; 

if (is_uploaded_file($attachment)) { //Do we have a file uploaded? 

    $fp = fopen($attachment, \"rb\"); //Open it 

    $data = fread($fp, filesize($attachment)); //Read it 

    $data = chunk_split(base64_encode($data)); //Chunk it up and encode it as base64 so it can emailed 

    fclose($fp); 

} 

//Let's start our headers 

$headers = \"From: $from_name<\" . $_POST['from_email'] . \">\n\"; 

$headers .= \"Reply-To: <\" . $_POST['from_email'] . \">\n\"; 

$headers .= \"MIME-Version: 1.0\n\"; 

$headers .= \"Content-Type: multipart/related; type=\\"multipart/alternative\\"; boundary=\\"----=MIME_BOUNDRY_main_message\\"\n\"; 

$headers .= \"X-Sender: $from_name<\" . $_POST['from_email'] . \">\n\"; 

$headers .= \"X-Mailer: PHP4\n\"; 

$headers .= \"X-Priority: 3\n\"; //1 = Urgent, 3 = Normal 

$headers .= \"Return-Path: <\" . $_POST['from_email'] . \">\n\"; 

$headers .= \"This is a multi-part message in MIME format.\n\"; 

$headers .= \"------=MIME_BOUNDRY_main_message \n\"; 

$headers .= \"Content-Type: multipart/alternative; boundary=\\"----=MIME_BOUNDRY_message_parts\\"\n\"; 



$message = \"------=MIME_BOUNDRY_message_parts\n\"; 

$message .= \"Content-Type: text/plain; charset=\\"iso-8859-1\\"\n\"; 

$message .= \"Content-Transfer-Encoding: quoted-printable\n\"; 

$message .= \"\n\"; 

/* Add our message, in this case it's plain text. You could also add HTML by changing the Content-Type to text/html */ 

$message .= \"$body\n\"; 

$message .= \"\n\"; 

$message .= \"------=MIME_BOUNDRY_message_parts--\n\"; 

$message .= \"\n\"; 

$message .= \"------=MIME_BOUNDRY_main_message\n\"; 

$message .= \"Content-Type: application/octet-stream;\n\tname=\\"\" . $attachment_name . \"\\"\n\"; 

$message .= \"Content-Transfer-Encoding: base64\n\"; 

$message .= \"Content-Disposition: attachment;\n\tfilename=\\"\" . $attachment_name . \"\\"\n\n\"; 

$message .= $data; //The base64 encoded message 

$message .= \"\n\"; 

$message .= \"------=MIME_BOUNDRY_main_message--\n\"; 



// send the message 

mail(\"$to_name<$to_email>\", $subject, $message, $headers); 

http://icrontic.com/discussion/7019/php-email-form-with-attachments

+0

我需要一个脚本添加到上面,将允许我接收一份文件。 – 2012-01-08 20:55:29

+0

您的意思是收到或发送附件? – 2012-01-08 21:04:55

+0

如果你正在尝试做的是发送附件: http://www.finalwebsites.com/forums/topic/php-e-mail-attachment-script – 2012-01-08 21:11:50

0
$em = $_POST ['email']; 
list($username,$domain)=split('@',$em); 
if(!checkdnsrr($domain,'MX')) echo 'please enter a proper e-mail address.'; 

这样的事情也将是有益的,这只是检查MX记录..