javascript 逻辑错误中的 PHP fopen()

问题描述

我想创建一个窃取到 localhost 目录的文本文件。 下面是我的代码

在 app.PHP

            document.getElementById("save_button").addEventListener("click",function() {
          
              var content =  document.getElementById("final_span").value();

              var file_name =document.getElementById("filename").value();
              <?PHP
              $fn = strstr($file_name,'.',true);

              $dir = "../project/Record";

              $file = fopen($dir."/".$fn.".txt","w+");

              fwrite($file,$content);

              fclose($file);
              ?>
            });
      </script>```

解决方法

您的 js 将在浏览器中执行,而 php 是服务器端语言。你不能像你所做的那样在 js 中控制 php。你可以通过从你的 js 到 php 文件的 ajax 调用来完成它并创建一个文件。

    <script>  document.getElementById("save_button").addEventListener("click",function() {
              
                  var content =  document.getElementById("final_span").value;
    
                  var file_name =document.getElementById("filename").value;
    
    var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
          if (this.readyState == 4 && this.status == 200) {
            document.getElementById("txtHint").innerHTML = this.responseText;
          }
        };
        xmlhttp.open("GET","app.php?file_name=" + file_name,true);
        xmlhttp.send();
    
    </script>

app.php

<?php $file_name= $_GET['file_name'];
              $fn = strstr($file_name,'.',true);

              $dir = "../project/Record";

              $file = fopen($dir."/".$fn.".txt","w+");

              fwrite($file,$content);

              fclose($file);
              ?>