PHP fopen() 和 fwrite() 不起作用?

PHP fopen() and fwrite() dont work?

我想要一个 php 脚本在用户按下按钮时执行。在我的 html 文件中,我使用了 jquery 脚本

<script>
        $(document).ready(function(){
            $(".btn").click(function(){

                var firstname = $("#firstname").val();
                var lasname = $("#lastname").val();
                var dataNames = { 'firstnameVal' : firstname};
                $.post("SaveNames.php",dataNames,function()
                       {
                    alert("hi");
                });
            });   
        });                
    </script>

<input type="text" id="firstname" name="firstname">
<input type="text" id="lastname" name="lastname">

在我的 php 文件中,我使用了这里的一些帮助

<?php

if (isset($_POST["fistname"]))
{
        $firstname = $_POST["firstname"];
        $SavedNames = fopen("Names.txt","w");

        $NamesText = "Its Work!";

        fwrite($SavedNames,$NamesText);
        fclose($SavedNames);
}
?>

问题是 fopen() 不工作(不创建文件),我尝试创建文件来检查 fwrite() 是否工作,但它也没有工作。

我使用本地主机 wamp 服务器。

尝试一下是否可行:

if (isset($_POST["firstname"]))
{
        $firstname = $_POST["firstname"];
        if(file_put_contents("Names.txt", $firstname) !== false)
            echo "It works!\n";
}

首先,isset($_POST["fistname"]),你拼错了"firstname"。

其次,在 php 一侧使用 $_POST['firstname']。但是在javascript中,你有

var dataNames = { 'firstnameVal' : firstname};

试试

var dataNames = { 'firstname' : firstname};

如前所述,请尝试检查您要写入的文件夹是否存在以及是否具有写入权限。但首先要清除拼写错误和变量名。下面的代码将使用您在括号中声明的名称 post 值。所以在你的例子中 firstnameVal。所以你需要检查这个 POST 值是否存在。

var dataNames = { 'firstnameVal' : firstname};

如果这不起作用,请使用 php 函数 var_dump['variableName'];在 post 方法之后显示数据。这样您就可以处理文件中的数据流。

尝试设置文件的完整路径:

fopen("c:\folder\Names.txt", "w");

确保文件权限设置正确(可写)为 c:\folder\。注意lower-/uppercase命名。

问题出在 wampserver 上,我重新安装了它,有效