本帖最后由 caofei007007 于 2011-03-08 01:38:50 编辑

解决方案 »

  1.   

    没用过这个编辑器,看报错,感觉错误在 form action之间的那个 空格,会不会是全角和半角 空格 导致?
      

  2.   

    body{margin:0; padding:0}
    form{margin:0; padding:0}加到两个页面去看看
    或者加DIV,确定高宽,写CSS:overflow:hidden.强行割掉多出来的部分。
      

  3.   

    把php格式转为ansi as utf-8,也就是无bom的utf-8,再保存(BTW:这个操作应该养成习惯)有bom的utf-8在ie6(ie6之后版本不清楚)都会出现页首空行,并且影响header等输出...
      

  4.   

    给出有效的测试地址
    检查是否是 BOM 头在作怪
      

  5.   

    送你个检测BOM的程序。BOM信息是文件开头的一串隐藏的字符,用于让某些编辑器识别这是个UTF-8编码的文件。但PHP在读取文件时会把这些字符读出,从而形成了文件开头含有一些无法识别的字符的问题。 比如用UTF-8格式保存的生成图片的PHP文件,因为文件头隐藏的BOM信息也被下发,导致生成的图片数据不对,浏览器无法识别。 要检测一个UTF-8文件是否含有BOM信息,就是检测文件开头的字三个符,是否为0xEF, 0xBB, 0xBF。下面这个小程序,用户遍历某个目录下所有文件,并检测是否加了BOM。将以下代码另存为del_bom.php,修改需要检测的目录后运行。这样可能有助于检测是哪个文件带有了BOM信息导致所有页面开头都有那么一段空白。 <? php
    //此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除 
    //By Bob Shen 
    $basedir="."; //修改此行为需要检测的目录,点表示当前目录 
    $auto=1; //是否自动移除发现的BOM信息。1为是,0为否。 
    //此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除 
    //By Bob Shen 
    $basedir="."; //修改此行为需要检测的目录,点表示当前目录 
    $auto=1; //是否自动移除发现的BOM信息。1为是,0为否。 
    //以下不用改动 
    if ($dh = opendir($basedir)) { 
    while (($file = readdir($dh)) !== false) { 
    if ($file!='.' && $file!='..' && !is_dir($basedir."/".$file)) echo "filename: $file ".checkBOM("$basedir/$file")." <br>"; 

    closedir($dh); 

    function checkBOM ($filename) { 
    global $auto; 
    $contents=file_get_contents($filename); 
    $charset[1]=substr($contents, 0, 1); 
    $charset[2]=substr($contents, 1, 1); 
    $charset[3]=substr($contents, 2, 1); 
    if (ord($charset[1])==239 && ord($charset[2])==187 && ord($charset[3])==191) { 
    if ($auto==1) { 
    $rest=substr($contents, 3); 
    rewrite ($filename, $rest); 
    return ("<font color=red>BOM found, automatically removed.</font>"); 
    } else { 
    return ("<font color=red>BOM found.</font>"); 


    else return ("BOM Not Found."); 

    function rewrite ($filename, $data) { 
    $filenum=fopen($filename,"w"); 
    flock($filenum,LOCK_EX); 
    fwrite($filenum,$data); 
    fclose($filenum); 

    ?> 
      

  6.   

    测试地址
    http://202.99.67.189:9999/include/top.php
      

  7.   


    测试地址
    http://202.99.67.189:9999/include/top.php
      

  8.   

    这个倒不像bom的问题把form和外面的div换个位置试一下就是<form><div>...</div></form>这样写
      

  9.   

    谢谢你啊  ,解决了一个问题 ,不过现在又出现一个问题,那就是未登录前,没问题了,登录以后又出现这个问题,可是登录以后没有<form>了 这次问题会出在哪里呢?
      

  10.   

    类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM——Byte Order Mark)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。对于一般的文件,这样并不会产生什么麻烦。但对于 PHP来说,PHP在设计时就没有考虑BOM的问题,不会忽略UTF-8编码的文件开头BOM的那三个字符,会把BOM作为该文件开头正文的一部分。由于必须在<?或者<?php后面的代码才会作为PHP代码执行,所以将会造成在页面上输出这三个字符,显示效果就要看浏览器了,一般是一个空行或是一个乱码。对于已经添加了BOM的文件,要取消的话,可以用以上编辑器另存一次。(Editplus需要先另存为gb,再另存为UTF-8。)
      

  11.   

    浏览器缓存?好像也不是
    调用同一个top么?
    最好把你的top贴出来,这样猜没法猜
      

  12.   

    刚才没登陆的时候的问题解决了,现在登录上去又出现了这个问题,这次不是form的问题了 ,是div的问题,该怎么办啊
      

  13.   

    你用dw打开这个页面文件 在页面属性里看 标题/编码 有个 unicode标准话表单 把它设置为无 然后去掉下边的复选框