<?php$title=$_POST["title"];
$content=$_POST["content"]; //获得表单变量//以下建立一文本文档,其值自动计数
$countfile="count.txt";
if(!file_exists($countfile))
{
fopen($countfile,"w"); //如果此文件不存在,则自动建立一个
}
$fp=fopen($countfile,"r");
$num=fgets($fp,20);
$num=$num+1; //每次其值自动加一
fclose($fp);
$fp=fopen($countfile,"w");
fwrite($fp,$num); //更新其值
fclose($fp);//利用上面自动计数的值获得HTML的路径$path
$houzui=".html";
$path=$num.$houzui;
//这样形成的路径是自动增长的,如1.html,2.html,3.html……….添加一条新闻便自动加上1//以下用SQL语句添加数据至表 news
$sql="insert into news (title,content,path) values ('".$title."','".$content."','".$path."')";
// echo($sql);
$query=mysql_query($sql); 
$fp=fopen("shtml/tmp.htm","r"); //只读打开模板
  $str=fread($fp,filesize("shtml/tmp.htm"));//读取模板中内容
$str=str_replace("{title}",$title,$str);
$str=str_replace("{content}",$content,$str);//替换内容
fclose($fp);$handle=fopen($path,"w"); //写入方式打开新闻路径
fwrite($handle,$str); //把刚才替换的内容写进生成的HTML文件
fclose($handle);//收尾工作:echo "<a href=$path target=_blank>查看刚才添加的新闻</a>"; 
?>生成html没问题可是在插入数据库时插不进为什么但我在下面这一句代码按几下回车又能插进几条不过一会又不行再按走运时又能插进不过一会还是不行...我气啊..........
$sql="insert into news (title,content,path) values ('".$title."','".$content."','".$path."')";
会的帮我看看  不胜感激!!!

解决方案 »

  1.   

    string addcslashes ( string str, string charlist )
    返回字符串,该字符串在属于参数 charlist 列表中的字符前都加上了反斜线。此函数对 \n、\r 等进行转义。像 C 那样,ASCII 码低于 32 以及高于 126 的字符均转换成使用八进制表示。 当你选择对字符 0、a、b、f、n、r、t 和 v 进行转义时需要小心,它们将被转换成 \0、\a、\b、\f、\n、\r、\t 和 \v。在 PHP 中,只有 \0(NULL)、\r(回车符)、\n(换行符)和 \t(分隔符)是预定义的转义序列, 而在 C 中,上述的所有转换后的字符都是预定义的转义序列。 
      

  2.   

    如果插入中文,需要query("SET NAMES 'gb2312'");