麻烦老手给个 PHP 写入文件的实例 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lverea
V2EX    PHP

麻烦老手给个 PHP 写入文件的实例

  •  
  •   lverea 2018-01-31 19:13:40 +08:00 via Android 3252 次点击
    这是一个创建于 2861 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想要实现表单提交内容,写入 config.php 对应位置
    14 条回复    2018-02-13 10:50:43 +08:00
    xubeiyan
        1
    xubeiyan  
       2018-01-31 21:44:09 +08:00 via Android
    这样是不安全的,因为 php 文件是可解释执行的,不怕别人插入恶意代码吗?应该使用 php 去读写某个不可执行的文件,或者使用数据库,大概是这样 write_config.php 写入-> config_file ->被 read_config.php 读取
    lverea
        2
    lverea  
    OP
       2018-02-01 01:52:26 +08:00 via Android
    @xubeiyan 也就是说,config.ini.php 文件不是直接写入文件生成的,都是数据入库后生成的?
    to2false
        3
    to2false  
       2018-02-01 09:24:08 +08:00
    config 一般存储一些不经改动的配置项,如果是动态的存数据库,至于表单提交做好过滤
    zarte
        4
    zarte  
       2018-02-01 10:09:31 +08:00
    file_put_contents(var_export($_POST),'config.php');
    xubeiyan
        5
    xubeiyan  
       2018-02-01 14:37:31 +08:00
    @lverea 你楼下的那位说得对……这种有修改需求的最好是写入数据库……就算你要写入文件,也要用不可以被解释执行的文件来保障安全
    lverea
        6
    lverea  
    OP
       2018-02-02 04:36:10 +08:00 via Android
    @zarte 大概是这意思,感谢你的回答,相比其他切合实际点。
    lverea
        7
    lverea  
    OP
       2018-02-02 04:38:31 +08:00 via Android
    首先感谢大家的回答,但这些都有点答非所问的感觉。也许是我的提问不对。我重新换个问法。
    lverea
        8
    lverea  
    OP
       2018-02-02 04:54:49 +08:00 via Android
    我打算用 php 做一个自己的 blog,blog 的数据链接我已经手动配置到 config.php 文件里了,我想把 blog 名称,描述等几个常量也写在里面,方便调用。现在问题来了,我希望通过网站后台直接修改 blog 名称,而不是每次都 FTP 修改 config 文件。现在大致知道需要用到的 php 函数,但问题是没有一个实际的例子可学习,所以到此发问。结果回答的都是专家级的解答也是醉了。愿意花时间帮解答的,愿意支付酬金,可直接加我 QQ81525260
    lslqtz
        9
    lslqtz  
       2018-02-02 10:16:45 +08:00
    以上并不是专家级的回答,而是基本的安全常识。。。。
    lverea
        10
    lverea  
    OP
       2018-02-02 19:56:59 +08:00 via Android
    @lslqtz 对啊都是些基本常识,却说的好像多牛逼似的。总之都是些口水话,没有任何意义。
    lverea
        11
    lverea  
    OP
       2018-02-02 19:57:45 +08:00 via Android
    越是谦虚越是跟你显摆
    vishun
        12
    vishun  
       2018-02-10 10:26:17 +08:00
    博客名称,描述这种可以修改的配置,放到数据库里就是了,没必要修改配置文件。
    abusizhishen
        13
    abusizhishen  
       2018-02-11 13:26:53 +08:00 via Android
    为什么不存到数据库里呢?
    phpok
        14
    phpok  
       2018-02-13 10:50:43 +08:00
    代码如下:
    $dbcOnfig= array();
    $dbconfig['host'] = $_POST['host'];
    $dbconfig['port'] = $_POST['port'];
    $dbconfig['user'] = $_POST['user'];
    $dbconfig['pass'] = $_POST['pass'];
    $dbconfig['data'] = $_POST['data'];
    $dbconfig['prefix'] = $_POST['prefix'];
    $cOntent= file_get_contents('config.php');
    $cOntent= preg_replace('/host\s*=.*/i','host = "'.$dbconfig['host'].'"',$content);
    $cOntent= preg_replace('/port\s*=.*/i','port = "'.$dbconfig['port'].'"',$content);
    $cOntent= preg_replace('/user\s*=.*/i','user = "'.$dbconfig['user'].'"',$content);
    $cOntent= preg_replace('/pass\s*=.*/i','pass = "'.$dbconfig['pass'].'"',$content);
    $cOntent= preg_replace('/data\s*=.*/i','data = "'.$dbconfig['data'].'"',$content);
    $cOntent= preg_replace('/prefix\s*=.*/i','prefix = "'.$dbconfig['prefix'].'"',$content);
    file_put_contents('config.php',$content);

    特别说明下,上面代码没有任何过滤,也就是很容易出现安全问题。
    建议您可以对 $_POST 进行安全封装下。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     907 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 20:10 PVG 04:10 LAX 12:10 JFK 15:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86