嘉兴会计继续教育考试:PHP中变量传递的问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 13:05:07
if ($_GET['action'] == "editfile"){
$filename="$dir/$editfile";
$fp=@fopen($filename,"r");
$contents=@fread($fp, filesize($filename));
$contents=htmlspecialchars($contents);
echo "<p><hr width=\"775\" align=\"left\"><font color=red>如果该文件不存在,将创建这个文件名的文件!</font>";
echo '<form action=\"?savefile&dir=".rawurlencode($dir)."&savefile=".rawurlencode($file)."\" method=\"post\">';
echo "<textarea cols=\"100\" rows=\"20\" name=\"contents\">";
echo "$contents";
echo "</textarea><br>";
echo "<input type=\"submit\" value=\"确定保存\">";
echo "</form><hr width=\"775\" align=\"left\">";
@fclose($fp);
}
//保存文件
if ($_POST['do'] == 'savefile') {
if (!empty($_POST['editfilename'])) {
$filename="$editfilename";
@$fp=fopen("$filename","w");
if($_POST['change']=="yes"){
// $filecontent = "?".">".$_POST['contents']."<?";
$filecontent = htmlspecialchars($contents);
$filecontent = gzdeflate($filecontent);
}else{
$filecontent = $_POST['contents'];
}
echo $msg=@fwrite($fp,$filecontent) ? "写入文件成功!" : "写入失败!";
@fclose($fp);
}
else {
echo "您想编辑的文件好像不存在!或者内容没写!!";
}
}
---------------------------------------------------------
echo '<form action=\"?savefile&dir=".rawurlencode($dir)."&savefile=".rawurlencode($file)."\" method=\"post\">';
中的提交地址好象写错了`保存不了`只能编辑时候的把文件内容传到TEXTAREA中但是保存的时候不能把TEXTAREA保存到文件中! 我想肯定是我把程序写错了` 请高手指点~~

改为:echo '<form action=\"?savefile&dir='.rawurlencode($dir)."&savefile=".rawurlencode($file).'\" method=\"post\">';
试试
两部分没分开,您的"."不是把两部分连在一起了
还有一个办法:
$a=rawurlencode($dir)
$b=rawurlencode($file)
echo '<form action=\"?savefile&dir='.$a."&savefile=".$b.'\" method=\"post\">';

把你的错提示贴出来
把您的抑错符全去掉,才可以看哪出的错

你这段
echo "<p><hr width=\"775\" align=\"left\"><font color=red>如果该文件不存在,将创建这个文件名的文件!</font>";
echo '<form action=\"?savefile&dir=".rawurlencode($dir)."&savefile=".rawurlencode($file)."\" method=\"post\">';
echo "<textarea cols=\"100\" rows=\"20\" name=\"contents\">";
echo "$contents";
echo "</textarea><br>";
echo "<input type=\"submit\" value=\"确定保存\">";
echo "</form><hr width=\"775\" align=\"left\">";
可以用HTML直接写,不用php输出,这样会简单很多

我是发贴的` 上面的老兄说的不对~~
如果照你说的改`` 那
echo '<form action=\"?savefile&dir='



.rawurlencode($dir)."&savefile=".rawurlencode($file).'\" method=\"post\">';

分开了!!
------------------------------------------------------
俺不重新注册帐号了`就直接这样说~
就是点修复` 提交的时候`
比如TEXTAREA里面添上 111222 那点提交的时候URL 就变成
localhost/index.php?connect=111222 了!!!!
不知道这样该如何解决`望大哥们指点!!!

改为:echo '<form action="?savefile&dir='.rawurlencode($dir)."&savefile=".rawurlencode($file)."' method='post'>";
试试

两部分没分开,您的"."不是把两部分连在一起了
还有一个办法:
$a=rawurlencode($dir)
$b=rawurlencode($file)
echo '<form action=\"?savefile&dir='.$a."&savefile=".$b.'\" method=\"post\">';

很简单,PHP里单引号内的字符串不会去解析,也就是说
echo '<form action=\"?savefile&dir=".rawurlencode($dir)."&savefile=".rawurlencode($file)."\" method=\"post\">';
里的rawurlencode($dir)等不会执行,你可以像zwb001或其它几位老兄说的那样,把 rawurlencode 提到单引号外面去。

你确实写错了 这样
echo '<form action=\"?savefile&dir=".rawurlencode($dir)."&savefile=".rawurlencode($file)."\" method=\"post\">';
改为:
echo '<form action=\"?savefile&dir='.rawurlencode($dir)."&savefile=".rawurlencode($file).'\" method=\"post\">';
还有 试试
$a=rawurlencode($dir)
$b=rawurlencode($file)
echo '<form action=\"?savefile&dir='.$a."&savefile=".$b.'\" method=\"post\">';

象zwb001说的一样
echo "<p><hr width=\"775\" align=\"left\"><font color=red>如果该文件不存在,将创建这个文件名的文件!</font>";
echo '<form action=\"?savefile&dir=".rawurlencode($dir)."&savefile=".rawurlencode($file)."\" method=\"post\">';
echo "<textarea cols=\"100\" rows=\"20\" name=\"contents\">";
echo "$contents";
echo "</textarea><br>";
echo "<input type=\"submit\" value=\"确定保存\">";
echo "</form><hr width=\"775\" align=\"left\">";
可以用HTML直接写,不用php输出,这样会简单很多