2016-11-19 6 views
0

私は、PHPファイルを介して電子メールに情報を送信するフォームを持っています。HTML/PHPフォームからテキストファイルにデータを保存する方法

<form method="post" action="start-project.php"> 
<fieldset> 
<span><input type="text" name="name" id="name" placeholder="Your Name" required/></span> 
<span><input type="email" name="email" id="email" placeholder="Email Address" required/></span> 
<span><input type="text" name="phone" id="phone" placeholder="Phone Number" required/></span> 
<span><input type="text" name="website" id="website" placeholder="Website (Optional)" /></span> 
</fieldset> 
<span><input type="submit" name="submit" value="GET STARTED"></span> 
</form> 

と私のPHPコードは以下の通りです::

私のHTMLフォームは以下の通りである私は、サーバー上のテキストファイルに保存するエントリのデータを持つことができますどのように

<?php 

$EmailFrom = "[email protected]"; 
$EmailTo = "[email protected]"; 
$Subject = "Submission: Start a Project"; 
$name = Trim(stripslashes($_POST['name'])); 
$phone = Trim(stripslashes($_POST['phone'])); 
$email = Trim(stripslashes($_POST['email'])); 
$website = Trim(stripslashes($_POST['website'])); 

// validation 
$validationOK=true; 
if (!$validationOK) { 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; 
    exit; 
} 

// prepare email body text 
$Body = ""; 
$Body .= "Name: "; 
$Body .= $name; 
$Body .= "\n"; 
$Body .= "Tel: "; 
$Body .= $phone; 
$Body .= "\n"; 
$Body .= "Email: "; 
$Body .= $email; 
$Body .= "\n"; 
$Body .= "Website: "; 
$Body .= $website; 
$Body .= "\n"; 

// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>"); 

// redirect to success page 
if ($success){ 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=sent.php\">"; 
} 
else{ 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; 
} 
?> 

? 私はいくつかの記事を見たことがありますが、自分のコードで実装する方法はわかりません。

何か助けていただきありがとうございます。

+0

だけ言及し、それが動作し、電子メールを送信します。テキストファイルにエントリを保存するだけの追加オプションが必要です。 –

答えて

0

ありがとうございました。

私はこの解決策を見つけ、それは私とうまくいった。 誰かがそれを見つけたら、私はここに入れています。

は私がPHPタグの開放後、私のPHPコードに以下のコードを追加しました:

if(isset($_POST['name']) && isset($_POST['email']) && isset($_POST['phone']) && isset($_POST['website'])) { 
    $data = $_POST['name'] . ' - ' . $_POST['email'] . ' - ' . $_POST['phone'] . ' - ' . $_POST['website'] . "\n"; 
    $ret = file_put_contents('file.txt', $data, FILE_APPEND | LOCK_EX); 
    if($ret === false) { 
     die('There was an error writing this file'); 
    } 
    else { 
     echo "$ret bytes written to file"; 
    } 
} 
else { 
    die('no post data to process'); 
} 
3

あなたはテキストファイルにデータを追加することができますfile_put_contents()

$log = file_put_contents('logs.txt', $name.PHP_EOL , FILE_APPEND | LOCK_EX); 
+0

これを私と共有してくれてありがとう。私はPHPコードで進歩していません。私のPHPファイルのどこにこのコードを置くべきですか? –

+0

この行はあなたのテキストファイルに '$ name'を追加し、新しい行に移動します。あなたは、あなたが保持したいすべての変数を確実に保存するために、異なる変数を持つ複数の行が必要です。 – Qrchack

+0

'.PHP_EOL'はあなたの' $ name'の最後に新しい行を追加します、 'FILE_APPEND | LOCK_EX'は以前ファイルにあったものを削除していないことを確認し、ファイルをロックするので、一度に2人の人がメールを送信すると、スクリプトはクラッシュしません – Qrchack

0

を見てください:あなたは、関数fopenを(使用している場合

$myfile = fopen('files/file.txt', 'a'); 
fwrite($myfile, $data); 
fclose($myfile); 

php.netリンク

1

)存在しないファイルでは、それはcreaですそれは、

$file= "file.txt"; 
$fh = fopen($file, 'a') or die("can't open file"); 
$stringData = "new data 1\n"; 
fwrite($fh, $stringData); 
$stringData = "New data 2\n"; 
fwrite($fh, $stringData); 
fclose($fh); 
関連する問題