2017-08-12 9 views
1

私はこのコードをオンラインで見つけましたが、それは魅力的なものです...私も電話番号を追加しようとしていましたが、私は体にそれを追加すると思いますが、私が試すたびに失敗します。私は間違って何をしているのか分かりません。私はPHPにかなり新しいので、誰かが私になぜこれが起こっているか説明することができれば、それは非常に高く評価されるでしょう。 ...コンテンツをフォルダに保存されているが、電子メールが送信された後、そのフォルダが更新されるように見えるdoes notの:私のページをリフレッシュすると私のメールが再送されます

<?php 
$msg = ""; 

if (isset($_POST['submit'])) { 

    require 'phpmailer/PHPMailerAutoload.php'; 

    function sendemail($to, $from, $fromName, $body, $attachment = "") { 
     $mail = new PHPMailer(); 
     $mail->setFrom($from, $fromName); 
     $mail->addAddress($to); 
     $mail->addAttachment($attachment); 
     $mail->Subject = 'Contact Form - Email'; 
     $mail->Body = $body; 
     $mail->isHTML(false); 

     return $mail->send(); 
    } 

    $name = $_POST['username']; 
    $email = $_POST['email']; 
    $body = $_POST['body']; 

    $file = "attachment/" . basename($_FILES['attachment']['name']); 
    if (move_uploaded_file($_FILES['attachment']['tmp_name'], $file)) { 
     if (sendemail('[email protected]', $email, $name, $body, $file)) { 
      $msg = 'Email sent!'; 

     } else 
      $msg = 'Email failed!'; 
    } else 
     $msg = "Please check your attachment!"; 
} 
?> 
<html> 
<head> 
    <title>Contact</title> 
</head> 
<style type="text/css"> 
    input, textarea { 
     width:250px; 
     height: 27px; 
     margin-bottom: 10px; 
    } 

    textarea { 
     height: 200px; 
     width: 100%; 
     resize: vertical; 
    } 

    body { 
     text-align: center; 
     margin-top: 250px; 
    } 
</style> 
<body> 
    <img src="images/logo.png"><br><br> 
    <form method="post" action="index.php" enctype="multipart/form-data"> 
     <input type="text" name="username" placeholder="Name..." required><br> 
     <input type="email" name="email" placeholder="Email..." required><br> 
     <textarea name="body" placeholder="Message..." required></textarea><br> 
     <input type="file" name="attachment" required><br> 
     <input type="submit" name="submit" value="Send Email"> 
    </form> 
    <br><br> 
    <?php echo $msg; ?> 
</body> 

+0

が成功したら、ページをリダイレクトする必要があります。 –

+0

フォームを送信した後、リフレッシュボタンまたは 'F5'キーでページをリフレッシュすると、送信されたフォームによって提供されるポスト値がそのタイムページにあるため、フォームは再び送信されます。 – GYaN

+1

あなたの質問のタイトルとあなたがテキストに書いていることの関係はどこですか? – arkascha

答えて

1

\あなたが現在のページにあなたのページをリダイレクトする必要がメール送信されたメッセージの後、あなたの問題は解決されます。

使用

header('Location: '.$_SERVER['REQUEST_URI']); 
+0

タイムリーな返信をありがとう。私はまだ問題を抱えています。私はこのコードを実装しようとし、私は同じ問題を受けています。 :(私はリンクを張ってみた( "attachment /"。$ _FILES ["tmp_name"] ["name"]);しかし、それはetherを動かすことはない。ファイルはまだ私の添付ファイルフォルダにある:\ – Whatwhat

+0

ヘッダのような他のページにリダイレクトしようとする( 'Location:abc.php'); –

0
header("Location: http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"); 
exit; 
+0

私もこれを試しましたが、フォルダには添付ファイルが残っていますので、フォルダに添付ファイルがある限り、ページが更新されると電子メールが生成されます... :(ivはそれを削除しようとしましたが、私はそれを働かせるように思えますD: – Whatwhat

+0

OK!私はこの方法がうまくいきました!ありがとうございました!私はヘッダー( '位置:blahblahblah.php');まあまあ!:D !!!! – Whatwhat

関連する問題