我在 Wordpress 中使用自定义页面模板。我按照以下步骤制作它:
- 将 /wp-content/themes/themename/ 目录中的 page.php 文件复制到另一个名为 submit.php 的文件中
在开始时在 PHP 代码中插入模板名称。我无法在此处发布代码段,stackoverflow 没有显示它。
现在它显示在页面模板下的 wp-admin 面板中。
我在 Wordpress 的自定义页面上有一个 HTML 表单。PHP 将读取最终用户在文本区域中输入的数据并将其写入存储在服务器上的文件中。
只要我以这种方式将此数据写入文件,一切都会顺利:
$fp=fopen("filename.txt","w") or die("Can't open the file");
但是,由于此文件将在路径中可用:
http://sitename.com/wordpress/wp-content/themes/themename/filename.txt
因此,它将从 HTML 表单中读取的数据存储在当前目录中。相反,我想将其写入存储在另一个位置的文件中。比方说:
http://sitename.com/wordpress/files/filename.txt
为此,我以这种方式修改了代码:
$fp=fopen("../../../files/filename.txt","w") or die("Can't open the file");
PHP 脚本因错误消息而死,无法打开文件。
我尝试将输出写入wp-content/uploads目录,如下所示。
$filename="../../uploads/".$cartype.".txt";
$fp=fopen($filename,"w") or die("can't open the file");
它给出了错误:无法打开文件。
$cartype 只是一个通过 HTML 表单输入读取的值。
我已经将上传文件夹的权限设置为 777。
我也试过这个:
$filename="/wp-content/uploads/".$cartype.".txt";
$fp=fopen(ABSPATH.$filename,"w") or die("can't open the file");
它再次给出错误:无法打开文件。
请注意,我稍后以这种方式将数据写入文件:
fwrite($fp,$data)
此外,一旦我能够做到这一点,我想限制对“文件”目录的权限,以便只有 wordpress 管理员可以使用 FTP 或类似替代方法读取该目录中的文件。
谢谢。