PHP
<?php
if ($changefile) {
$savedEdit = stripslashes($_POST['filetest']);
$filetochange = "../dashboard/list.ini";
$filetochangeOpen = fopen($filetochange,"w") or die ("Error editing.");
fputs($filetochangeOpen,$savedEdit);
fclose($filetochangeOpen) or die ("Error Closing File!");
}
?>
HTML表单
<form method=post action="mmtst.php">
<textarea rows="40" cols="60" name="filetest">
<?
// Implode CSS
$filetochange = "../dashboard/list.ini";
print (implode("",file($filetochange)));
?>
</textarea><br/><br/>
<input type="submit" value="Save Changes" name="changefile">
</form>
这里我有一个页面,在文本框中显示INI文件。应该发生的是,当我单击提交按钮时,将打开原始文件,并且fputs会使用txtbox中显示的任何内容写入原始文件。 (原始文件设置为权限777)。但是,单击提交按钮时没有任何反应,我不知道我做错了什么,任何建议都会很棒。
答案 0 :(得分:1)
您正在检查
if ($changefile) {
你需要检查变量的$ _POST版本,就像你对“filetest”变量所做的那样,所以你应该举例......
if (isset($_POST["changefile"])) {
否则条件永远不会返回true,并且代码块不会被执行
答案 1 :(得分:1)
问题很简单,您已禁用register_globals并且您正在尝试使用它,此设置允许PHP根据GET和POST数据中的接收参数自动定义变量,但它被视为<强>不安全并且已被弃用。
要访问帖子中传递的值以使用$_POST变量,请使用$_GET
if( isset( $_POST["changefile"] ) ) {
如果您只是想检查提交的帖子表单是否可以!empty($_POST)
并保留提交按钮没有名称:
<?php //...
if( !empty($_POST) ) {
//...
?>
<input type="submit" value="Save Changes">