php中var不能用,为什么不能用PHP将信息写入/ tmp目录而不是/ var / www / html?

LAMP安装在我的本地电脑上,因为我知道字符串 xxxx 可以写入带有以下php功能的 /tmp/test .

file_put_contents("/tmp/test","xxxx")

ajax_get.html 和 ajax_get.php 都在我的本地目录 /var/www/html 中 .

cat ajax_get.html

function show(){

var formData = new FormData( document.querySelector("#myForm") );

var query_str = "ajax_get.php?";

for(var pair of formData.entries())

{

query_str += pair[0] + "=" + pair[1] + "&";

}

query_str = query_str.substr(0,query_str.length - 1);

var obj = new XMLHttpRequest();

obj.onreadystatechange = function(){

if(obj.readyState == 4 && obj.status == 200){

console.log(obj.responseText);

}

}

obj.open("get",query_str);

obj.send();

}

ob = document.getElementById("submit");

ob.addEventListener("click",show);

cat ajax_get.php

ini_set('display_errors', 1);

error_reporting(E_ALL);

$str = implode(" ",$_GET);

file_put_contents("/tmp/test",$str);

print($str);

?>

现在输入 127.0.0.1/ajax_get.html ,并输入 test1 和 test2 ,然后单击 submit 按钮, query_str 传入 ajax_get.php ,网页上没有显示错误信息,为什么没有字符串 test1 test2 写入 /tmp/test ?

在 ajax_get.html 的控制台的网页中显示 test1 test2 ,这意味着信息从 ajax_get.html 传递到 ajax_get.php 并进行了解析 .

为什么 ajax_get.php 中的命令 file_put_contents("/tmp/test",$str); 不起作用?

替换 file_put_contents 是没有用的

$handle=fopen("/tmp/test","w");

fwrite($handle,$str);

fclose($handle);

也许这是关于目录权限的问题,如果我在 ajax_get.php 中更改以下语句

file_put_contents("/tmp/test",$str);

file_put_contents("test",$str);

并运行上一个过程, ajax_get.php 在 /var/www/html/test 中创建一个文件

cat /var/www/html/test

test1 test2

显示 /tmp 目录的权限 .

ls -al /tmp

total 76

drwxrwxrwt 16 root root 12288 Dec 10 18:39 .

drwxr-xr-x 23 root root 4096 Dec 1 08:03 ..

. 是当前目录 /tmp ,其权限是777(rwxrwxrwx),为什么不能通过php将文件写入 /tmp 目录?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值