2016-11-19 160 views
0

我有一个通过php文件向电子邮件发送信息的表单。如何将数据从HTML/PHP表单保存到文本文件

我的HTML形式如下:

<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代码如下:

<?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

您可以将数据追加到一个文本文件:

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

php.net链接

1

如果使用fopen()函数在一个不存在的文件上,它会创建一个文件它,

$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); 
相关问题