我的 'Save File' php 代码有什么问题?
What is wrong with my 'Save File' php code?
问题很简单,但我会提供一些背景信息,希望能更容易回答。
因此,我正在使用 ELGG 框架并从表单和其中的文本框中获取信息,希望将该数据打印到一个简单的文本文件中。
不幸的是,出于某种原因,这给我带来了很多麻烦,无论我在哪里看,我似乎都无法弄清楚为什么。
代码如下
<?php
error_reporting(E_ALL);
//Get the page
$title = get_input('title');
$body = get_input('body');
$date = date("l jS F Y h:i A");
//remove any possible bad text characters
$FileName = $title . ' ' . $date;
//print to file
//get filename and location to save
$folderName = '/Reports/' . $FileName . '.txt';
$ReportContent = "| " . $body . " |";
//write to the file
file_put_contents($folderName, $ReportContent, 0);
//error check to see if the file now exists
if (file_put_contents($folderName, $ReportContent)) {
system_message("Report Created (" . basename($folderName) . ")");
forward(REFERER);
} else {
register_error("Report (" . basename($folderName) . ") was not saved!");
forward(REFERER);
}
所以上面应该做的是从标题和 body 框中获取文本(我可以至少从标题中确认它)然后将其保存在 /reports/ 文件夹下(完整路径如果需要,插件是 Automated_script_view/reports/)。然而我总是会收到注册错误,我似乎找不到原因。
我相信它与文件夹(/reports/)的声明有关,好像我把那部分拿走了,它通过并提交,虽然它似乎并没有真正保存在任何地方。
非常感谢任何和所有建议!
The Function file_put_contents(file,data,mode,context) returns成功写入文件的字符数,否则为FALSE失败。请注意以下更正,您的脚本将正常工作:
1 您的文件名有一个 'illegal' 字符“:”,来自您连接形成文件名的字符串的 $date 部分。
2 去掉 file_put_contents($folderName, $ReportContent, 0);
自函数returns一个整数,简单使用:
if( file_put_contents($folderName, $ReportContent) > 0 ){
//true
}else{
//false
}
问题很简单,但我会提供一些背景信息,希望能更容易回答。
因此,我正在使用 ELGG 框架并从表单和其中的文本框中获取信息,希望将该数据打印到一个简单的文本文件中。
不幸的是,出于某种原因,这给我带来了很多麻烦,无论我在哪里看,我似乎都无法弄清楚为什么。
代码如下
<?php
error_reporting(E_ALL);
//Get the page
$title = get_input('title');
$body = get_input('body');
$date = date("l jS F Y h:i A");
//remove any possible bad text characters
$FileName = $title . ' ' . $date;
//print to file
//get filename and location to save
$folderName = '/Reports/' . $FileName . '.txt';
$ReportContent = "| " . $body . " |";
//write to the file
file_put_contents($folderName, $ReportContent, 0);
//error check to see if the file now exists
if (file_put_contents($folderName, $ReportContent)) {
system_message("Report Created (" . basename($folderName) . ")");
forward(REFERER);
} else {
register_error("Report (" . basename($folderName) . ") was not saved!");
forward(REFERER);
}
所以上面应该做的是从标题和 body 框中获取文本(我可以至少从标题中确认它)然后将其保存在 /reports/ 文件夹下(完整路径如果需要,插件是 Automated_script_view/reports/)。然而我总是会收到注册错误,我似乎找不到原因。
我相信它与文件夹(/reports/)的声明有关,好像我把那部分拿走了,它通过并提交,虽然它似乎并没有真正保存在任何地方。
非常感谢任何和所有建议!
The Function file_put_contents(file,data,mode,context) returns成功写入文件的字符数,否则为FALSE失败。请注意以下更正,您的脚本将正常工作:
1 您的文件名有一个 'illegal' 字符“:”,来自您连接形成文件名的字符串的 $date 部分。
2 去掉 file_put_contents($folderName, $ReportContent, 0);
自函数returns一个整数,简单使用:
if( file_put_contents($folderName, $ReportContent) > 0 ){
//true
}else{
//false
}