无法使用PHP将表单写入txt文件

时间:2016-12-13 12:01:12

标签: php forms file

目前我有一个包含以下代码的表单。

<form action="/wp-content/themes/wallstreet/welcome.php" method="post" class="basic-grey">
<h1>BasicForm 
    <span>Please fill all the texts in the fields.</span>
</h1>
<label>
    <span>Your Nickname* :</span>
    <input id="name" type="text" name="name" placeholder="It will appear in the file" />
</label>

<label>
    <span>Your Email* :</span>
    <input id="email" type="email" name="email" placeholder="Valid Email Address" />
</label>

<label>
    <span>Message* :</span>
    <textarea id="message" name="message" placeholder="The text that will appear in the file"></textarea>
</label> 
 <label>
    <span>Code* :</span>
    <input id="code" type="text" name="email" placeholder="The Code That we sent to your email" />
</label>    
 <label>
    <span>&nbsp;</span> 
    <input type="submit" class="button" value="Send" /> 
</label>    
</form>

并在同一目录中我有一个php文件welcome.php,代码如下(我希望这个表单写下&#34;消息&#34; ..

<?php
   $var = $_POST['message'];
   file_put_contents("/wp-content/themes/wallstreet/data.txt", $var . "\n", FILE_APPEND);
    exit();
?>

是的,我在同一目录中有一个名为data.txt的文件。 所有这些文件都在同一个目录中,我真的不知道这个问题是什么,因为它什么也没写。我已经获得了data.txt的所有权限 也许我写错了路?一切都在主机中分配..

2 个答案:

答案 0 :(得分:0)

问题似乎与data.txt文件的路径有关。

改变
file_put_contents("/wp-content/themes/wallstreet/data.txt", $var . "\n", FILE_APPEND);

file_put_contents("data.txt", $var . "\n", FILE_APPEND);

注意:您必须拥有写入文件的权限。

更新1

您可以放置​​文件的绝对路径。

file_put_contents( $_SERVER['DOCUMENT_ROOT']."/wp-content/themes/wallstreet/data.txt", $var . "\n", FILE_APPEND);

您还可以添加检查文件是否存在。

if( file_exists($_SERVER['DOCUMENT_ROOT']."/wp-content/themes/wallstreet/data.txt") )
{
    file_put_contents( $_SERVER['DOCUMENT_ROOT']."/wp-content/themes/wallstreet/data.txt", $var . "\n", FILE_APPEND);
}
else
    echo 'file does not exits';

答案 1 :(得分:0)

已解决,最后我使用了主帖中给出的相同代码,但是php中的目录是错误的,所以工作的php是

    <?php
   $var = $_POST['message'];
    file_put_contents("/var/www/wordpress/wp-content/themes/wallstreet/data.txt", $var . "\n", FILE_APPEND);
    exit();
?>