从插件菜单编辑文本文件

时间:2016-12-05 作者:Brent


这是我第一次设计插件,所以我非常感谢你们能提供的任何帮助

我的插件有一个包含datetime对象的txt文件。目标是从插件管理页面读取txt文件,允许用户编辑它,然后再次保存该文件

我读取文件没有问题,但我无法保存它。当我单击按钮保存它时,浏览器会将我重定向到其他地方,而不会保存我的文件。

编辑:我应该补充一下-这段代码在wordpress之外运行得很好(作为它自己的PHP页面)。我似乎无法让它与wordpress一起工作。

这是我的密码。如有任何建议,我将不胜感激:

if($_POST[\'addition\']){ 
    $file_open = fopen("dates.txt","w+");
    fwrite($file_open, $_POST[\'addition\']);
    fclose($file_open);
    }

echo \'<form action="<?=$PHP_SELF?>" method="POST">
    <textarea name="addition" COLS=50 ROWS=20>\';
    $datalines = file ("dates.txt");
        foreach ($datalines as $zz) {
            echo $zz;
        }                   
echo \'</textarea><input type="submit" name="button" value="Save Evenings Before Solemnities File"></form>\';
            echo \'</td>\';

1 个回复
最合适的回答,由SO网友:GKS 整理而成

首先,将这些代码放入init hook中,并使用plugin_dir_path() func获取插件目录路径。

add_action(\'init\',function(){

    $plugindir = plugin_dir_path( __FILE__ );

    if(isset($_POST[\'addition\'])){ 

        $file_open = fopen($plugindir."dates.txt","w+");
        fwrite($file_open, $_POST[\'addition\']);
        fclose($file_open);
    }
        echo \'<form action="\'.$_SERVER[\'PHP_SELF\'].\'" method="POST">
        <textarea name="addition" COLS=50 ROWS=20>\';

        $datalines = file ($plugindir."dates.txt");

        foreach ($datalines as $zz) {
            echo $zz;
        }                   
        echo \'</textarea><input type="submit" name="button" value="Save Evenings Before Solemnities File"></form>\';
        echo \'</td>\';
        exit;

});
请尝试上述代码。

相关推荐

How to secure my php forms

请告诉我如何使用php创建和显示表单的安全建议,我想从安全角度了解我的以下代码是否不受交叉脚本攻击或sql注入或任何形式的攻击或黑客攻击。$form = \'<div class=demessage>\' . esc_html__($message, \"gold\") . \'</div>\' ; $form .= \'<form action=\"\" method=\"post\" name=\"base\">\'; $form .= e