更新:所有值现在返回" A"当他们都应该是不同的价值观。 我想要做的是,通过邮寄请求发送一个值表到我的网站,网站将表数据保存到文本文件。我终于拥有它所以整个表打印到文本文档但所有的值都是A.我做错了什么?顺便说一句,我已经尝试了很多方法和许多其他类似问题"没有人为我工作过。提前谢谢。
CODE:
<?php
$foo = file_get_contents("php://input");
$stuff = json_decode($foo, true);
function createtxt($cttext, $location,$stuff)
{
$ccontent = $cttext;
if (file_exists($location)) {
echo "The file $ffilename exists";
} else {
$fp = fopen($location, "wb");
fclose($fp);
$formdata = array(
'user'=> $cttext['user'],
'secretkey'=> $cttext['secretkey'],
'isanadmin'=> $cttext['isa'],
'firsttime'=> $cttext['firsttime'],
'display'=> $cttext['dis'],
'test'=> $cttext['test'],
'test2'=> $cttext['test2'],
'type'=> $cttext['type']
);
$jsondata = json_encode($formdata);
file_put_contents($location, $jsondata);
echo 'Created User Text File Named "data.txt" ';
}
}
function lookforuser($NAME,$stuff)
{
if (!file_exists('users/' . $NAME))
mkdir('users/' . $NAME);
echo 'User Folder Created ';
createtxt($NAME, 'users/' . $NAME . '/data.txt',$stuff);
}
lookforuser($stuff['user'],$stuff);
?>
输入文本文件:
{"user":"A","secretkey":"A","isanadmin":"A","firsttime":"A","display":"A","test":"A","test2":"A","type":"A"}
答案 0 :(得分:0)
$stuff
永远不会在您的函数中定义。它是一个全局变量,但是你没有把它传递给你的函数;该函数只知道它的参数,内部初始化的变量,以及通过global
显式引用的变量。您确实将$stuff
的内容传递给createtxt
,因为您调用lookforuser
然后createtxt
的方式。
所以,解决此问题的最佳方法:每次在函数$stuff
中使用$cttext
时,将$stuff
替换为createtxt
。由于您编写代码的方式,您已将$stuff
的值传递给createtxt
,因此可以使用。
完整代码:
function createtxt($cttext, $location)
{
$ccontent = $cttext;
if (file_exists($location)) {
echo "The file $ffilename exists";
} else {
$fp = fopen($location, "wb");
fclose($fp);
$formdata = array(
'user'=> $cttext['user'],
'secretkey'=> $cttext['secretkey'],
'isanadmin'=> $cttext['isa'],
'firsttime'=> $cttext['firsttime'],
'display'=> $cttext['dis'],
'test'=> $cttext['test'],
'test2'=> $cttext['test2'],
'type'=> $cttext['type']
);
$jsondata = json_encode($formdata);
file_put_contents($location, $jsondata);
echo 'Created User Text File Named "data.txt" ';
}
}
function lookforuser($NAME)
{
if (!file_exists('users/' . $NAME))
mkdir('users/' . $NAME);
echo 'User Folder Created ';
createtxt($NAME, 'users/' . $NAME . '/data.txt');
}
lookforuser($stuff['user']);
?>
答案 1 :(得分:0)
您传递$cttext
,但访问$stuff
。
由于未定义$stuff
,因此数组解除引用也为空。
您可能希望将$stuff
作为第三个参数传递。