大家帮我看看。 是在主页的修改后在加了一句<a href="modify.php?id=<? echo $i;?>">而$i则是当前留言的数目。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?$psd="123456";if($password==$psd){ $array=file("board.txt"); $result=count($array); $fp=fopen("board.txt","w+"); $id--; for($i=0;$i<$result;$i++){ if(!($i==$id)){ fwrite($fp,$array[$i]); } else{ $data=explode("##",$array[$i]); $str=$data[5]; $modify=str_replace("\r","",$modify); $modify=str_replace("\n",'<br>',$modify); $data[5]=$modify; $newstr=implode("##",$data); fwrite($fp,$newstr); } } fclose($fp); header("location:board.php?str=$modify"); } ?><html><head><title>modify</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body><form method="post" action="board.php">.....<br><textarea name="modify" cols="45" rows="6"><? echo $str;?></textarea><br><input type="password" name="password" size="10" value="123456"><input type="submit" name="submit1" value="提交"></body></form></html> $data[5]为什么是个固定?$data[6];$data[7];不行吗? 不行的因为在写文件时是用$name."##"."email"."##"........"$text"写进去的。$data[5]就是$text. 如果form action="board.php" 修改不成内容。 $psd="123456";if($password==$psd){ // 有修改权 $array=file("board.txt"); $result=count($array); $fp=fopen("board.txt","w+"); // "w" $id--; // $id 是什么?记录号? for($i=0;$i<$result;$i++){ if(!($i==$id)){ // $i != $id fwrite($fp,$array[$i]); } else{ $data=explode("##",$array[$i]); $str=$data[5]; $modify=str_replace("\r","",$modify); // $modify 是什么?新串? $modify=str_replace("\n",'<br>',$modify); $data[5]=$modify; $newstr=implode("##",$data); fwrite($fp,$newstr); } } fclose($fp); header("location:board.php"); // 为什么要转向?board.php是干什么的? } ?><html><head><title>modify</title></head><body><form="post" action="">.....<textarea name="modify" cols="45" rows="6"><? echo $str;?></textarea> ----这个值是从哪里来的? $id传递过来的记录号。$modify是修改后的内容。header("location:board.php"); 是修改后回到留言显示的页面。$str 是我想得到要被修改的内容,我想让被修改的内容显示在文本框里。 下面的html代码在哪个文件里?若与上面的php代码在同一文件中,那么已经转向了。自然看不见了。若在board.php里,你并没有赋值呀。 下面的html代码和上面的php代码是存在modify.php中。form表单的action=""应该是调用本身。 前面已经header("location:board.php"); 了,你得到的是board.php的输出页面。竟管下面的部分也输出了,但很快就被board.php的输出覆盖了。 你这段代码有点绞在一起,逻辑有点混乱,首先你这段代码如果第一次进入,就象你说的通过<a href="modify.php?id=<? echo $i;?>">注意这里你只得到$id变量,那么$modify变量就为空,那么就会修改该留言为空,然后header()转向board.php显示,你觉得会显示内容吗?其次假设这段代码是你通过modify.php提交,那么新留言取代旧留言,但是你的$str保留的还是$data[5]还是旧留言,而且修改过后都会转向board.php那么怎么看的到文本框?建议你写程序之前画个流程图,PHP编程别忘了未定义变量的情况。一般都是通过:// ----------------------------------------------------------------------------// 基本思想供参考if(isset($modify) && !empty($modify)){ $bModify = false; //定义修改标志 并初始化为false //编写修改留言 if($i==$id) { // 写入修改的新留言 并set $bModify =true; }else {} // 其他留言不变 if($bModify) { header("board.php");} // 如果修改成功转向board.php}// -----------------------------------------------------------------------------{ //编写显示留言,赋值 $str 如果想在上面赋值,加上if(!issset($str)) { ... }}<html>...</html> 我的修改页面的思想是,想通过密码验证可以看到原来的留言存放在文本框里,也就是打开文件后得到的$str=$data[5];然后再将文本框的内容进行修改,最后将新的内容存放在文件中。 求救!感謝!如何用SQLMYADMIN修改欄位名稱後 網頁自動跟著修改 shopex后台增加图片上传功能 请教高人ajax 的问题 如何去除某标签之间的内容 PHP的If语法问题! PHP向VB的DLL传递参数的问题:为什么不能传递中文汉字? 一般情况下,使用$PHP_SELF好还是$_SERVER['PHP_SELF']好,在自己做的公开代码里面? 求两个下载地址!先谢了~ session问题 【求思路】APP发布信息的接口 php ip显示问题 调用不存在的图片,如何不显示“X”?
$psd="123456";
if($password==$psd){
$array=file("board.txt");
$result=count($array);
$fp=fopen("board.txt","w+");
$id--;
for($i=0;$i<$result;$i++){
if(!($i==$id)){
fwrite($fp,$array[$i]);
}
else{
$data=explode("##",$array[$i]);
$str=$data[5];
$modify=str_replace("\r","",$modify);
$modify=str_replace("\n",'<br>',$modify);
$data[5]=$modify;
$newstr=implode("##",$data);
fwrite($fp,$newstr);
}
}
fclose($fp);
header("location:board.php?str=$modify");
}
?>
<html>
<head>
<title>modify</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<form method="post" action="board.php">
.....<br>
<textarea name="modify" cols="45" rows="6"><? echo $str;?></textarea>
<br><input type="password" name="password" size="10" value="123456">
<input type="submit" name="submit1" value="提交">
</body>
</form>
</html>
if($password==$psd){ // 有修改权
$array=file("board.txt");
$result=count($array);
$fp=fopen("board.txt","w+"); // "w"
$id--; // $id 是什么?记录号?
for($i=0;$i<$result;$i++){
if(!($i==$id)){ // $i != $id
fwrite($fp,$array[$i]);
}
else{
$data=explode("##",$array[$i]);
$str=$data[5];
$modify=str_replace("\r","",$modify); // $modify 是什么?新串?
$modify=str_replace("\n",'<br>',$modify);
$data[5]=$modify;
$newstr=implode("##",$data);
fwrite($fp,$newstr);
}
}
fclose($fp);
header("location:board.php"); // 为什么要转向?board.php是干什么的?
}
?>
<html>
<head>
<title>modify</title>
</head>
<body>
<form="post" action="">
.....
<textarea name="modify" cols="45" rows="6"><? echo $str;?></textarea>
----这个值是从哪里来的?
$modify是修改后的内容。
header("location:board.php"); 是修改后回到留言显示的页面。
$str 是我想得到要被修改的内容,我想让被修改的内容显示在文本框里。
若与上面的php代码在同一文件中,那么已经转向了。自然看不见了。
若在board.php里,你并没有赋值呀。
header("location:board.php");
了,你得到的是board.php的输出页面。竟管下面的部分也输出了,但很快就被board.php的输出覆盖了。
首先你这段代码如果第一次进入,就象你说的通过<a href="modify.php?id=<? echo $i;?>">
注意这里你只得到$id变量,那么$modify变量就为空,那么就会修改该留言为空,然后header()转向board.php显示,你觉得会显示内容吗?其次假设这段代码是你通过modify.php提交,那么新留言取代旧留言,但是你的$str保留的还是$data[5]还是旧留言,而且修改过后都会转向board.php那么怎么看的到文本框?建议你写程序之前画个流程图,PHP编程别忘了未定义变量的情况。一般都是通过:// ----------------------------------------------------------------------------
// 基本思想供参考
if(isset($modify) && !empty($modify))
{
$bModify = false; //定义修改标志 并初始化为false
//编写修改留言
if($i==$id)
{
// 写入修改的新留言 并set $bModify =true;
}else {} // 其他留言不变
if($bModify) { header("board.php");} // 如果修改成功转向board.php
}
// -----------------------------------------------------------------------------
{
//编写显示留言,赋值 $str 如果想在上面赋值,加上if(!issset($str)) { ... }
}<html>
...
</html>