php fopen()不会创建该文件

时间:2014-02-26 20:54:27

标签: php fopen

感谢您的帮助。 程序的对象。
file.php有一个表单和以下代码。 names.txt是将填充文本字段中输入的名称以及用户点击提交时的文件。

某人将其姓名输入表单字段并单击“提交”。 该名称输入名为names.txt

的文件中

问题。 file.php程序有效 表单显示在浏览器中,测试“回声”显示在浏览器中。 但即使我输入,names.txt字段也没有任何数据 在文本字段中输入名称,然后单击“提交”。

file.php
if (isset($_POST['name'])) {

    $name = $_POST['name'];
    if (!empty($name)) {
        //echo 'okay';

        $handle = fopen('names.txt', 'w');
        fwrite($handle, $'alex');
        fwrite($handle, $'kyle');
        fclose($handle); 

    }else{
        echo 'please type a name';

?>

<form input type ="text" name ="file.php" method ="POST" >
    Name: <br><input type ="text"  name ="name"><br><br>
    <input type="submit" name ="submit" value ="Submit">   
</form>

3 个答案:

答案 0 :(得分:1)

$'alex'

并不意味着“其中包含名称alex的变量”。如果你想写字符串'alex',你需要。

fwrite($handle, 'alex');

答案 1 :(得分:1)

变量$'alex'$'kyle'不存在。试试这个:

$handle = fopen('names.txt', 'w');
fwrite($handle, $name . "\n");
fclose($handle); 

答案 2 :(得分:1)

这里有几个问题,你在模式w中使用fopen打开文件,这基本上以写模式打开文件,将指针放在文件的开头然后截断ifile。 / p>

您应该使用a+,这将打开文件,根据需要创建它并将指针放在文件的末尾。

下一个重大问题是你使用以下几行

fwrite($handle, $'alex');
fwrite($handle, $'kyle');

根据您的描述,您应该使用

fwrite($handle, $name);

另一个小问题是你使用isset和empty,你可以使用empty,因为它也会进行内部isset检查

尝试以下方法:

if (!empty($_POST['name']))
{
    $handle = fopen('names.txt', 'a+');
    fwrite($handle, $_POST['name']);
    fclose($handle);
}
else
{
    echo 'please type a name';
    ?>
    <form input type ="text" name ="file.php" method ="POST" >
        Name: <br><input type ="text"  name ="name"><br><br>
       <input type="submit" name ="submit" value ="Submit">   
    </form>