是在主页的修改后在加了一句<a href="modify.php?id=<? echo $i;?>">而$i则是当前留言的数目。

解决方案 »

  1.   

    <?
    $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>
      

  2.   

    $data[5]为什么是个固定?$data[6];$data[7];不行吗?
      

  3.   

    不行的因为在写文件时是用$name."##"."email"."##"........"$text"写进去的。$data[5]就是$text.
      

  4.   

    如果form action="board.php" 修改不成内容。
      

  5.   

    $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>
                                                       ----这个值是从哪里来的?
      

  6.   

    $id传递过来的记录号。
    $modify是修改后的内容。
    header("location:board.php"); 是修改后回到留言显示的页面。
    $str  是我想得到要被修改的内容,我想让被修改的内容显示在文本框里。
      

  7.   

    下面的html代码在哪个文件里?
    若与上面的php代码在同一文件中,那么已经转向了。自然看不见了。
    若在board.php里,你并没有赋值呀。
      

  8.   

    下面的html代码和上面的php代码是存在modify.php中。form表单的action=""应该是调用本身。
      

  9.   

    前面已经
    header("location:board.php"); 
    了,你得到的是board.php的输出页面。竟管下面的部分也输出了,但很快就被board.php的输出覆盖了。
      

  10.   

    你这段代码有点绞在一起,逻辑有点混乱,
    首先你这段代码如果第一次进入,就象你说的通过<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>
      

  11.   

    我的修改页面的思想是,想通过密码验证可以看到原来的留言存放在文本框里,也就是打开文件后得到的$str=$data[5];然后再将文本框的内容进行修改,最后将新的内容存放在文件中。