解决方案 »

  1.   

    本帖最后由 xuzuning 于 2014-05-16 10:38:19 编辑
      

  2.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript" src="../xheditor-1.2.1/jquery/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="../xheditor-1.2.1/xheditor-1.2.1.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="../xheditor-1.2.1/xheditor_lang/zh-cn.js"></script>
    <script type="text/jscript">
    $(pageInit);
    function pageInit()
    {
    //$.extend(XHEDITOR.settings,{shortcuts:{'ctrl+enter':submitForm}});
    $('#text_content').xheditor({upLinkUrl:"upload.php",upLinkExt:"zip,rar,txt",upImgUrl:"upload.php",upImgExt:"jpg,jpeg,gif,png",upFlashUrl:"upload.php",upFlashExt:"swf",upMediaUrl:"upload.php",upMediaExt:"wmv,avi,wma,mp3,mid"});

    }
    </script><style  type="text/css" >
     
      body{ font-size:12px; }
      .mytable{
          border-collapse:collapse;
      }
    .mytable td {
    border:1px solid black;
    padding:3px 3px 3px 3px;
    }  
    </style>
    </head>
    <body>
    <?php 
     include '../dbclass/dbclass.php';
     
     $access = new  access_db("hndb.#db");
     
     $edt_id = -1;  
     $s_title ="";
     $S_content = "";
     $s_imageurl = "";
     $s_ctime = date('Y-m-d H:i:s',time());
       if (!empty($_REQUEST["edit_id"]))
     {
     $edt_id = $_REQUEST["edit_id"];
     }
     
     if(!empty($_POST['btn_ok'])) 
     {
      if (!empty($_REQUEST["text_title"]))
     {
     //mysql_real_escape_string转换特殊符号
     //stripslashes还原函数
     $s_title = $_REQUEST["text_title"]; 
     }
     
    if (!empty($_REQUEST["text_content"]))  
    {
    $S_content = $_REQUEST["text_content"];
    }
    if (!empty($_REQUEST["text_imageurl"]))
    {
     $s_imageurl = $_REQUEST["text_imageurl"];
    }

    if (!empty($_REQUEST["text_time"]))
    {
    $s_ctime = $_REQUEST["text_time"];
    }

    $s_title = str_replace("'","''", $s_title);
    $s_imageurl = str_replace("'","''",$s_imageurl);
    $S_content= str_replace("'","''",$S_content); $sql="insert into news(title,imageurl,content,ctime) values ('$s_title','$s_imageurl','$S_content',#$s_ctime#) ";
    if ($edt_id !=-1 && $edt_id !="")
    {
    $sql="update news  set title='$s_title',imageurl='$s_imageurl',content='$S_content',ctime=#$s_ctime# where id=$edt_id  ";
    }
    if(! $access->exec_sql($sql))  //插入数据
    {
    echo("<script>alert('保存失败');</script>");
    }
    else
    {
    if ($edt_id ==-1 or $edt_id =="")
         {
    $rs = $access->get_recordset("select max(id) from news");
    if ($tmprow = $rs->fetch())
    {
              $edt_id = $tmprow[0];
    }
     }
    echo("<script>alert('保存成功');</script>");
    };

    else
    {
    if ($edt_id !=-1 && $edt_id !="")
    {
    $sql="select id,title,imageurl,content,ctime from  news where id=$edt_id ";
           $rs =$access->get_recordset($sql);  
           if ($rs){
        if ($row = $rs->fetch())
      {
         $s_title  = $row[1];
     $s_imageurl = $row[2];
                            $S_content =  $row[3];
     $s_ctime = $row[4];  };
       };
     

       }
    }   
    $s_title = str_replace("''","'", $s_title);
    $s_imageurl = str_replace("''","'",$s_imageurl);
    $S_content= str_replace("''","'",$S_content);

    echo($sql . "<br/>");
    echo($S_content . "<br/>");

    /*
    $s_title  = iconv('gbk','utf-8',$s_title );
    $s_imageurl = iconv('gbk','utf-8',$s_imageurl);
    $S_content = iconv('gbk','utf-8',$S_content);
    */
    ?>
    <form id="form1" name="form1" method="post" action="newsedit.php">
       <div style="width:850px;height:100%; border:1px solid black" >
           <table  class="mytable" style="width:100%;" >
             <tr style="height:24px; background-color:#BEDCD8" >
               <td style="width:100px;" >&nbsp;</td>
               <td style="width:750px; text-align:center; height:26px; "><strong>新闻管理</strong></td>
             </tr>
             <tr style="height:24px;" >
               <td>标题:</td>
               <td><label for="text_title"></label>
               <input type="text" name="text_title" value="<?php echo($s_title) ?>"  style="width:98%; line-height:20px;" id="text_title" /></td>
             </tr>
             <tr  >
               <td>时间:</td>
               <td>  <input type="text" name="text_time" value="<?php echo($s_ctime) ?>"  style="width:98%; line-height:20px;" id="text_title" /></td>
             </tr>
             <tr  >
               <td>内容:</td>
               <td>
               <textarea id="text_content" name="text_content" rows="12" cols="80" style="width:750px; height:500px; ">
                 <?php echo($S_content) ?>
               </textarea>
               </td>
             </tr>
             <tr  >
               <td></td>
               <td style="text-align:center;">
                 <input type="hidden" id="edit_id" name="edit_id"  value="<?php if ($edt_id != -1) {echo($edt_id);}; ?>"/>
                 <input type="submit" name="btn_ok" id="btn_ok" value="提交" />
                 <input type="button"  onclick="window.location='newsList.php'" name="btn_ok" id="btn_ok" value="退出" />
               </td>
             </tr>
           </table>
       </div>
     </form>  
    </body>
    </html>
      

  3.   

    //下面是显示的代码   
       <?php 
    include("dbclass/dbclass.php");
    $access = new access_db("service/hndb.#db");
    $edt_id = $_REQUEST['id'] ;  
        $S_content = "";
        $sql="select  content from news where id=$edt_id ";
        $rs =$access->get_recordset($sql);  
        if ($rs){
         if ($row = $rs->fetch() )
      {
              $S_content = $row[0];
      $S_content = str_replace("../","",$S_content);
       echo( $S_content);
     };
       }; 

     ?>
      

  4.   

    //自己写的操作access的类
    class access_db{
    private $db;
    //构造函数
    function __construct($access_db_url)
    {
    try{
    $this->db = new PDO("odbc:driver={microsoft access driver (*.mdb)};dbq=".realpath($access_db_url)) or die("Connect Error");
    }
    catch (PDOException $e) 

              echo( "Error: " . $e->getMessage() . "<br/>"); 
              die(); 
             } 
    }
    public function get_recordset($strsql)
    {
    try{
       return $this->db->query($strsql);
    } catch (PDOException $e) 

              echo( "Error: " . $e->getMessage() . "<br/>"); 
              die(); 
             } 
    }

    //分页查询,仅数据量在1万数据以内,且存在id自增序列的数据表有效
    public function get_page($strsql,$page_index,$page_size)
    {
    try{
       
         if ($page_index < 1) $page_index =1;
                if  ($page_size < 1) $page_size = 30;
                $i_start =  ($page_index-1) * $page_size; //开始记录
                $i_end = $page_index * $page_size;  //结束记录

    $low_sql = strtolower($strsql);

     

    //取出order,排序字符
    $ord_index = strpos($low_sql,"order") ;
    $order_sql = "";
    if ($ord_index)
    {
    $order_sql = substr($strsql,$ord_index);
    }
    //取出where,条件字符
    $where_sql = "";
    $where_index = strpos($low_sql,"where") ; 
    if ($where_index)
    {
    if ($ord_index)
    {
    $where_sql = substr($strsql,$where_index,($ord_index-$where_index));
    }
    else
    {
          $where_sql = substr($strsql,$where_index);
    }
    }

    //取出from后的字符
    $from_index =  strpos($low_sql,"from") ;
    $from_sql = substr($strsql,$from_index);
    if ($where_index)
    {
    $from_sql = substr($strsql,$from_index,($where_index-$from_index));
    }else
    {
    if ($ord_index)
    {
    $from_sql = substr($strsql,$from_index,($ord_index-$from_index));


    }

    //取出字段
                $sel_index = strpos($low_sql,"select") ;
                $cut_start_index = $sel_index  + strlen("select");
    $colum_sql = substr($strsql, $cut_start_index,$from_index - $cut_start_index);
                          $end_sql =  substr($strsql,$cut_start_index); 
       if ($i_start > 0)
       {
       //其他页
                $sel_sql1 = "select top " . $i_start . " id  " . $from_sql . " " . $where_sql . " " . $order_sql;
       if ($where_index)
       {
         $sel_sql2 =  "select top " . $i_end . " " .  $colum_sql . " " . $from_sql . " " . $where_sql . " and id not in (" . $sel_sql1 .") " . $order_sql  ;
       }
       else
       {
       $sel_sql2 =  "select top " . $i_end . " " .  $colum_sql . " " . $from_sql . " where id not in (" . $sel_sql1 .") " . $order_sql  ;
       
       }
       }
       else
       {
       //第一页
       $sel_sql2 =  "select top " . $i_end . " " .  $colum_sql . " " . $from_sql . " " . $where_sql . $order_sql  ;
       }

      /* 
       echo("from=" . $from_sql . "<br/>");
               echo("where=" . $where_sql . "<br/>");
       echo("ord=" . $order_sql . "<br/>");
       echo("sql1=" . $sel_sql1 . "<br/>");
       echo("sql2=" . $sel_sql2 . "<br/>");
    */
       return $this->db->query($sel_sql2);  //执行加工了的sql
    } catch (PDOException $e) 

              echo( "Error: " . $e->getMessage() . "<br/>"); 
              die(); 
             } 
    }
      

  5.   

    如果 #3 的  echo( $S_content); 出现乱码
    那么请贴出  echo base64_encode($S_content); 的结果
      

  6.   

    下面是base64的结果:
    Jm5ic3A7PHAgc3R5bGU9IlRFWFQtQUxJR046IGNlbnRlciI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OifLzszlJztGT05ULVNJWkU6IDE4cHQiPsrQzq+zo86vu8a9qNGrwsrV/riusr/DxcC01LDH+LX30dA8L3NwYW4+PC9wPjxwIHN0eWxlPSJURVhULUFMSUdOOiBjZW50ZXIiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTony87M5Sc7Rk9OVC1TSVpFOiAxOHB0Ij4mbmJzcDs8L3NwYW4+PC9wPjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTont8LLzl9HQjIzMTInO0ZPTlQtU0laRTogMTZwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7MjAxNMTqM9TCMTHI1aOs1tC5stXYx+zK0M6vs6POr6Gi1+nWr7K/s6S7xr2o0avCysrQzq/X6davsr+hosrQufrNwb7WoaLK0Lu3saO+1qGivq3Qxb7Wtciyv8PFwey1vKOs1Nq548T+z9jOr8rpvMfVxbnwuumhos/Yzq+zo86vx/G9oce/oaK4sc/Ys6TOwtXxxfShotXYx+zK0LijvNO1ws2218q/2LnJ09DP3rmry762rcrCs6SzwsP30MK1yMXjzazPwqOs3bDB2dSwx/i199HQoaO7xrOjzq/U2sz9yKHByzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J7fCy85fR0IyMzEyJztGT05ULVNJWkU6IDE2cHQiPs7SPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTont8LLzl9HQjIzMTInO0ZPTlQtU0laRTogMTZwdCI+uavLvratysKzpLPCw/e/xrXEu+OxqLrzo6zWuLP21LDH+L3xxOq/qr7Wwby6w6OsPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTont8LLzl9HQjIzMTInO0ZPTlQtU0laRTogMTZwdCI+0M7Kxs+yyMujrDwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J7fCy85fR0IyMzEyJztGT05ULVNJWkU6IDE2cHQiPtKqx/M8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Oie3wsvOX0dCMjMxMic7Rk9OVC1TSVpFOiAxNnB0Ij649zwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J7fCy85fR0IyMzEyJztGT05ULVNJWkU6IDE2cHQiPsbz0rW808e/udzA7aOsyeixuNKquPzQwqOsvLzK9dKqPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTont8LLzl9HQjIzMTInO0ZPTlQtU0laRTogMTZwdCI+vfiyvTwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J7fCy85fR0IyMzEyJztGT05ULVNJWkU6IDE2cHQiPqOsudzA7dKqyc/MqL3Xo7vSqsfz1LDH+NCt1vrV/riusr/Dxb6hv+zN6rPJPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTont8LLzl9HQjIzMTInO0ZPTlQtU0laRTogMTZwdCI+yKvK0Dwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J7fCy85fR0IyMzEyJztGT05ULVNJWkU6IDE2cHQiPqG20NDStbei1bm55ruuobejrMrQu7exo77WPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTont8LLzl9HQjIzMTInO0ZPTlQtU0laRTogMTZwdCI+0qrT68qhsaOz1sPcx9C5tc2oo6w8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Oie3wsvOX0dCMjMxMic7Rk9OVC1TSVpFOiAxNnB0Ij7Xpb30zeqzybnmu667t8bAo6zS1ML61+PUsMf4xvPStbL6xNy1xNDox/Oju82syrHSqsfz1f64rrK/w8XHv7uvt/7O8aOsye7I69Swx/jG89K1zP3IodLivPujrMi3saPG89K1y7PA+8n6svq+rdOqoaPX7rrzo6y7xrOjzq88L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Oie3wsvOX0dCMjMxMic7Rk9OVC1TSVpFOiAxNnB0Ij7LtTwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J7fCy85fR0IyMzEyJztGT05ULVNJWkU6IDE2cHQiPqOsy/u9q7zM0Pi1o8jOytDV/riuu6rEz8/uxL/XqNTw0KHX6dfps6To0+u087zS0rvG8L2ru6rEz8/uxL/X9rTz1/bHv6Os1ebV/bPJzqrV2MfsytC9+L/a1NnJ+tfK1LS8r9S8u6+hornmt7a7r7ei1bm1xMq+t7a7+bXYo6zT67vhyMvUsbGo0tTIyMHStcTVxsn5oaM8L3NwYW4+PC9wPjxwPjxpbWcgYWx0PSIiIHNyYz0iLi4vdXBsb2FkL2RheV8xNDA1MTUvMjAxNDA1MTUxNDI2MzM1MjI3LmpwZyIgd2lkdGg9IjU1MyIgaGVpZ2h0PSI0MTUiIC8+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OsvOzOU7Rk9OVC1TSVpFOiAxMC41cHQiPiZuYnNwOzwvc3Bhbj48L3A+PHA+PGltZyBhbHQ9IiIgc3JjPSIuLi91cGxvYWQvZGF5XzE0MDUxNS8yMDE0MDUxNTE0MjY0Mjk2NjEuanBnIiB3aWR0aD0iNTUzIiBoZWlnaHQ9IjQxNSIgLz48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6y87M5TtGT05ULVNJWkU6IDEwLjVwdCI+Jm5ic3A7PC9zcGFuPjwvcD48cD48aW1nIGFsdD0iIiBzcmM9Ii4uL3VwbG9hZC9kYXlfMTQwNTE1LzIwMTQwNTE1MTQyNjQ5ODQxNC5qcGciIHdpZHRoPSI1NTMiIGhlaWdodD0iNDE1IiAvPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpUaW1lcyBOZXcgUm9tYW47Rk9OVC1TSVpFOiAxMC41cHQiPiZuYnNwOzwvc3Bhbj48L3A+
      

  7.   

    在php 连接数据库的类里面增加  mysql_query("set names gbk'"); 试试看在php文件的头上加上 header("Content-Type: text/html; charset=gbk");
      

  8.   

    兄弟,我的是连access。如果使用MYSQL是没问题的。
      

  9.   

    分析preg_match_all('/">,([^<]+)/', $s, $r);
    $a = explode('组长', $r[1][1]);
    $t = $a[1];
    echo bin2hex($t{0});
    echo substr($t, 1);
    乱码部分为:
    与大家一起将华南项目做大做强,真正成为肇庆市进口再生资源集约化、规范化发展的示范基地,与会人员报以热烈的掌声。应该是你在插入数据时就已经乱码了
      

  10.   

    内容是这样,我在access也看到是这样的。
    但为什么读出来就乱码呢??这点就真的不明白。
      

  11.   

    在access看到的不乱码?
    截个图看看
      

  12.   

    上图access里的中文很清晰。没乱码的。就是读出来后显示乱码。
    我直接用asp测试。也能正确显示。
    下面是asp的代码:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head><body>
    <%
     dim conn,connstr
    'on error resume next
    connstr="DBQ="+server.mappath("hndb.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
    Set conn=Server.CreateObject("ADODB.CONNECTION")
    conn.open connstrSet rs=Server.CreateObject("ADODB.RecordSet") 
    sql="select  * from news where  id=20 order by id desc"
    rs.Open sql,conn,1,1
    if rs.eof and rs.bof then
    response.Write("没有记录")
    else
    response.Write( "有记录" )
    end if
    %>
    <% = rs("content") %>
    </body>
    </html>