<html>
<head><title>网络留言模式</title></head>
<body>
<?php
$filename="text_data.txt";
if(isset($_POST["sub"])){
$message=$_POST["username"]."||".$_POST["title"]."||".$_POST["mess"]."<|>";
writeMessage($filename,$message);
}
print_r($_POST);
if(file_exists($filename))
readMessage($filename);function writeMessage($filename,$message){
$fp=fopen($filename,"a");
if(flock($fp,LOCK_EX)){
fwrite($fp,$message);
flock($fp,LOCK_UN);
}else{
echo "不能锁定文件";
}
fclose($fp);
}function readMessage($filename){
$fp=fopen($filename,"r");
flock($fp,LOCK_SH);
$buffer="";
while(!feof($fp)){
$buffer.=fread($fp,1024);
}
$data=explode("|",$buffer);
foreach($data as $line){
list($username,$title,$message)=explode("||",$line);
if($username!="" && $title!="" && $message!=""){
echo $username.'说:';
echo '&nbsp;'.$title.',';
echo $message."<hr>";
}
}
flock($fp,LOCK_UN);
fclose($fp);
}
?>
<form action="" method="post">
用户名:<input type="text" size=10 name="username"><br>
标&nbsp;&nbsp;题:<input type="text" size=30 name="title"><br>
<textarea name="mess" rows=4 cols=38>请在这里输入留言信息!</textarea>
<input type="submit" name="sub" value="留言">
</form>
</body>
</html>
解决方法邮箱[email protected]

解决方案 »

  1.   

    貌似不能if(isset($_POST["sub"]))
    if($_POST['sub']) 才对
    参考http://topic.csdn.net/u/20100906/14/96523a51-f8a1-4fd1-945e-1bd5c1ca459b.html
      

  2.   

    你的html表单传向哪里啊   action是空的   if(isset($_POST["sub"]))一直是false
      

  3.   

    代码没有大问题,但是缺少几个判断导致有点错误,实际上你上面的代码可以正常的留言。foreach ($data as $line) {
    下来后需要判断 $line 是否为空list($username, $title, $message) = explode("||", $line);list 需要处理 数组是否有完整的3个参数赋值,如果不够的话怎么赋值。解决上面两个问题即可