<script language="javascript">
//判断用户是否按回车键且转出的内容是否为空
function inputKeyPress(){
if((event.keyCode==13)&&(document.all.chatWord.value!=null)&&(document.all.chatWord.value.length>0))
{
document.forms[0].submit();
document.all.chatWord.value='';
document.all.chatWord.focus();
}
}
</script><form id="mychat" action="control.php" method="post" target="control">
姓名:<input type="text" id="whoChat" name="whoChat">
对<input type="text" id="chatTo" name="chatTo">
说:<input type="text" id="chatWord" name="chatWord" onKeyPress="inputKeyPress();">
<input type="submit" value="发送">
</form>//后边这个是提交信息的,并且我怎么写最后输出到chat.txt的除了“对”“说”别的文字全是乱码<?php
   $_tosay = $whoChat."对".$chatTo."说".$chatWord;
   $filename = "./tmp/chat.txt";
   $fp = @fopen($filename,"a+");   //读写方式打开,如果 文件不存在则尝试创建
   $text=utf8_encode("a!");
   $text="\xEF\xBB\xBF".$text;
   @fputs($fp, $_tosay."\n");  //把$_tosay 的内容写入到$fp指向的文件
   @fclose($fp);  //关闭文件释放资源
?>

解决方案 »

  1.   

    var_dump($whoChat,$chatTo,$chatWord)  ;  //把这个三个值打印一下,看乱码不
      

  2.   

    输出 是NULL NULL NULL 
      

  3.   

    既然是null。何来的乱码啊。你用东西打开的?
      

  4.   

    原来是按enter或者提交按钮提交信息的,按刷新键也会自动提交看你代码应该不会刷新就会提交表单的、楼主的意思是不是说:你的聊天记录文件还是会存入东西的吧?你这段php代码并没有任何限制、
    当然还是会存入你指定的文件里去了、
     $whoChat."对".$chatTo."说".$chatWord;这几个变量获取方式是什么?
    不是应该这样获取吗?
    $whoChat=$_POST["whoChat"];如果是post了、 
    那就应该看看服务器容器编码集(我不懂是否php有服务器的编码集)了吧?
      

  5.   

    哦,我再试试 可能是写入txt文件时候出错了,我是刚学的,按书上程序写下来的,生成的txt文件里只写入了 对说
    对说
    对说
    对说
    对说
    对说
    对说
    对说
    对说
    对说
    对说
      

  6.   

    嗯,谢谢大家啦,我加了这几句就好了
         $whoChat=$_POST["whoChat"];
       $chatTo=$_POST["chatTo"];
       $chatWord=$_POST["chatWord"];
      

  7.   

    其实我不会php就是看看代码、
      

  8.   

    控制代码是个js 函数,在input表格里调用判断的
    <script language="javascript">
    //判断用户是否按回车键且转出的内容是否为空
    function inputKeyPress(){
    if((event.keyCode==13)&&(document.all.chatWord.value!=null)&&(document.all.chatWord.value.length>0))
    {
    document.forms[0].submit();
    document.all.chatWord.value='';
    document.all.chatWord.focus();
    }
    }
    </script>
    </head>
    <body>说:<input type="text" id="chatWord" name="chatWord" onKeyPress="inputKeyPress();">
      

  9.   

    将PHP代码写到一个中转页面,防止刷新自动提交
      

  10.   

    最外层加上: 
    if($_POST){
    .............你的代码..........
    }
      

  11.   

     if(!empty($whoChat)&&!empty($chatTo)&&!empty($chatWord)){呵呵,楼上的刚才的提示很有用,加了个判断在写入前边就好了。。谢谢
      

  12.   

    你这段php代码并没有任何限制
    当然还是会存入你指定的文件里去了、
    你没有限制、进入该php页面肯定会从下往下执行的咯、
      

  13.   

    $whoChat这几个都是php变量啊,我也没见你在哪儿赋值了啊,输出 对说 对说 ... 就对了
    你先给$whoChat赋一个简单的值再测一下,如$whoChat="张三";
    若是正常无乱码,那就是接收参数问题了
    null说明没过来,不知你是怎么接收的
    $whoChat = $_POST['whoChat'];
    die($whoChat."HHH");
    先测下参数