2012-04-21 6 views
0

私のウェブサイトには[連絡先]タブの連絡フォームがあり、submit.phpファイルで宣言したメールにメッセージを送信することになっています。残念ながら、私はメールやメッセージを受け取ることはありません。連絡先フォームのメッセージを特定のメールにリンクする方法はありますか?このウェブサイトはeagleview.itですお問い合わせフォームメールを送信しない

さらなるコードが必要な場合は教えてください。あまり前もってありがとう!

これはsubmit.phpです:

<?php 

/* config start */ 

$emailAddress = '[email protected]'; 

/* config end */ 


require "../php/class.phpmailer.php"; 

session_name("fancyform"); 
session_start(); 


foreach($_POST as $k=>$v) 
{ 
if(ini_get('magic_quotes_gpc')) 
$_POST[$k]=stripslashes($_POST[$k]); 

$_POST[$k]=htmlspecialchars(strip_tags($_POST[$k])); 
} 


$err = array(); 

if(!checkLen('name')) 
$err[]='The name field is too short or empty!'; 

if(!checkLen('email')) 
$err[]='The email field is too short or empty!'; 
else if(!checkEmail($_POST['email'])) 
$err[]='Your email is not valid!'; 

if(!checkLen('subject')) 
$err[]='You have not selected a subject!'; 

if(!checkLen('message')) 
$err[]='The message field is too short or empty!'; 

if((int)$_POST['captcha'] != $_SESSION['expect']) 
$err[]='The captcha code is wrong!'; 


if(count($err)) 
{ 
if($_POST['ajax']) 
{ 
    echo '-1'; 
} 

else if($_SERVER['HTTP_REFERER']) 
{ 
    $_SESSION['errStr'] = implode('<br />',$err); 
    $_SESSION['post']=$_POST; 

    header('Location: '.$_SERVER['HTTP_REFERER']); 
} 

exit; 
} 


$msg= 
'Name: '.$_POST['name'].'<br /> 
Email: '.$_POST['email'].'<br /> 
IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br /> 

Message:<br /><br /> 

'.nl2br($_POST['message']).' 

'; 


$mail = new PHPMailer(); 
$mail->IsMail(); 

$mail->AddReplyTo($_POST['email'], $_POST['name']); 
$mail->AddAddress($emailAddress); 
$mail->SetFrom($_POST['email'], $_POST['name']); 
$mail->Subject = "A new ".mb_strtolower($_POST['subject'])." from ".$_POST['name']." | contact form feedback"; 

$mail->MsgHTML($msg); 

$mail->Send(); 


unset($_SESSION['post']); 

if($_POST['ajax']) 
{ 
echo '1'; 
    } 
else 
{ 
$_SESSION['sent']=1; 

if($_SERVER['HTTP_REFERER']) 
    header('Location: '.$_SERVER['HTTP_REFERER']); 

exit; 
} 

function checkLen($str,$len=2) 
{ 
return isset($_POST[$str]) && mb_strlen(strip_tags($_POST[$str]),"utf-8") > $len; 
} 

function checkEmail($str) 
{ 
return preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $str); 
} 

?> 
+0

私はあなたが '' タグを忘れてしまったからだと思います。 (いくつかのコードを追加してください。私たちは霊能者ではありません) – xbonez

+0

ああ、神...帽子!コードはどこにも表示されません – xbonez

+0

どうすればわかりやすく表示できますか – user1165861

答えて

0

メッセージを一緒に入れている方法についてはオフに何かがあるようです。このようなsprintf()を使用してみてください:

$msg = sprintf("Name : %s <br/> Email : %s <br/>IP : %s <br/><br/> Message : %s" 
       , $_POST['name'], $_POST['email'], $_SERVER['REMOTE_ADDR'], nl2br($_POST['message'])); 
+0

O ok ...この権利の代わりにそれを入れますか? '名前:\t'。$ _ POST ['名前']。 '
メールアドレス:\t '$ _ POST [' email ']。'
IP:\t '。$ _ SERVER [' REMOTE_ADDR ']。'

メッセージ:

'.nl2br($ _ POST [ 'メッセージ'])。' '; – user1165861

+0

ええ、それを試してみてください。 – xbonez

+0

まだまだ – user1165861

関連する問題