2016-11-25 5 views
-4

少しhtml/phpスクリプトを書こうとしています。しかし、HTML形式の入力から任意の電子メールアドレスまたはテキストファイルにデータを送信することはできません。私はすでに解決策を探していたが、何も私のために働いた。ブラウザはPHPスクリプトを再生しました。しかし、メールは送信されていません。どんな助けもありがとう。ありがとうございました。私はあなたがPHPMailer彼の使用を使用することをお勧めしHtml/php email send

+0

メールを送信しようとしていますか? – BoeNoe

+0

ローカルサーバーにいますか? – BoeNoe

+4

あなたのコードはどこですか? –

答えて

0

は、私はあなたの問題は、いくつかのコードでフォームデータを処理する方法であるので、あなたは、ファイルへのフォームデータを電子メールを送信したり、書くことができるかもしれないと思う

0

非常に簡単です。ここでは、クライアント側サーバー側の違いがわかります。 HTMLは文書を記述するための言語です。ここにフォームがあります。nameは、名前を記述するためのフォームで、フォームはPOSTメソッド内でデータを送信します。 HTMLを記述するファイルは、ブラウザで処理されます。あなたのブラウザは電子メールを送信したり、データを書き込んだりしません。そのため、サーバー側の言語、PHPなどを使用して処理を行う必要があります。 PHPは、データを処理し、異なるイベントで動作するのに役立ちます。あなたのケースでは、データを受信し、データを分析し、メールでデータを送信したり、データをファイルに保存するのに最適です。

これで、あなたはそのようにすることができます。メールサーバ、認証などの設定が必要な場合があるので、メールはややこしいです。たぶん、良い解決策では、Googleアカウントまたはそのような何かでメールを試してみることです...それが行われる場合には、そのようにあなたは、単に電子メールを送信することがあります。

<?php 

$to  = '[email protected]'; 
$subject = 'Mail test'; 
$data = $_POST['name']; // if a `name` field exist and your form send its data through POST method 
mail($to, $subject, $data); 

ファイルに物事を書くことは簡単ですが、それをファイルを読み書きするためのアクセス権のみを要求します。

<?php 

$file = 'path/to/file'; 
file_put_contents($file, $_POST['name'] . ' for example'); 

だから、これは世界的にすべてです:

index.html HTMLファイル:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8" /> 
     <title>Form</title> 
    </head> 
    <body> 
     <form action="process.php" method="post"> 
      <input name="name" type="text" placeholder="Name" /> 
      <input type="submit" value="Process"> 
     </form> 
    </body> 
</html> 

process.php PHPファイル

<?php 

/** 
* Testing data 
*/ 

if (!isset($_POST['name'])) { 
    die('No value `name` found'); 
} 

/** 
* Configuring process 
*/ 

$to  = '[email protected]'; 
$subject = 'Mail test'; 
$data = $_POST['name']; 

/** 
* Saving data 
*/ 

$res = file_put_contents(
    'data.txt', 
    $data."\r\n" 
); 

if ($res !== false) { 
    echo 'data saved'.PHP_EOL; 
} else { 
    echo 'error while saving data'.PHP_EOL; 
} 

/** 
* Sending email 
*/ 

$res = mail(
    $to, 
    $subject, 
    $data 
); 

if ($res === true) { 
    echo 'mail sent'; 
} else { 
    echo 'error while sending mail'.PHP_EOL; 
} 

私はあなたがを読むことをお勧め場合の彼らの行動を理解するとfile_put_contents()ドキュメンテーションエラーがある... :)

0

<form>タグにactionmethod属性を忘れないでください。 htmlファイルの

コンテンツsend.php

<? 
if(isset($_POST)) { 
    $name = $_POST['name']; 
    $message = $_POST['message']; 
    $from = $_POSST['from']; 

    if(!empty($name) && !empty($message) { 
     $subject = 'message from '.$name; 

     $headers = "From: " . strip_tags($from) . "\r\n"; 
     $headers .= "Reply-To: ". strip_tags($from) . "\r\n"; 
     //$headers .= "CC: [email protected]\r\n"; 
     $headers .= "MIME-Version: 1.0\r\n"; 
     $headers .= "Content-Type: text/html; charset=UTF-8\r\n"; 

     // @SEE: http://php.net/manual/en/function.mail.php 
     if(mail('[YOUR-ADDRESS]', $subject, $message, $headers)) { 
      echo 'Thx 4 msg!'; 
     } 
     else { 
      echo 'Oh nooos, The msg was not send.'; 
     } 
    } 
    else { 
     echo 'You should provide the fields with some data..'; 
    } 
} 
?> 

一つの

<form action="send.php" method="POST"> 
    <input type="text" name="name" placeholder="Typ your name..." /> 
    <input type="email" name="from" placeholder="Typ your e-mailaddress..." /> 
    <textarea name="message" placeholder="Typ your message..."></textarea> 
    <button type="submit">Send E-mail</button> 
</form> 

コンテンツが最初明らかにユーザ入力を消毒すべきです。