一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

JavaScript防止内容重复灌水的程序

时间:2014-08-01 编辑:简简单单 来源:一聚教程网

例子

 代码如下 复制代码

function getRepeatData(input){
  var arr = input; 
  var rdata = {};
  for(var i in arr){
     var c = arr[i];
     rdata1 ? (rdata1++) : (rdata1= 1)
  } 
 
  for(var k in rdata){
    if(rdata[k] >=4){ //字数重复超过4次,返回false
     return false
    }else{
     return true
    }
  }
}
var content=$('#content').val();
var repeat=getRepeatData(content);
var regimg=/((https|http|ftp):\/\/){1}.+?.(jpg|gif|jpeg|png)$/gi;
if(!regimg.test(content)){ //对内容中的图片地址过滤
   if(repeat==false){
    alert("亲,不要灌水哟~");
 
    return false;
   }  
 }

分析虽然这样是可以进行一些处理但如果我们直接不经过这段代码而是自己做一个提交页面就没有用了,所以我们需要利用php来处理了,如加一个验证码就可以解决了。

提交页面代码如下a.php代码如下:

 代码如下 复制代码

   

说明

       

   

       

setcookie("onlypost", 't');         //设置cookie,可以带上时间值。像有些论坛防止灌水就可以将你的一些基本信息存放到里面。

?>

处理页面b.php代码如下:

if($_COOKIE['onlypost'] == 't'){

    print_r($_COOKIE);

    //处理提交的内容           如果验证成功则处理

    print "ok";

    setcookie("onlypost", 'f'); //改变cooike值删除也可以了

}

?>

body

如上处理的缺点:如果客户端禁止了Cookie,该方法将不起任何作用,这点请注意。

我们可以使用php mysql来解决

数据库为jokes,表为jokes,添加一个笑话为例
mysql表单提交页面:

 代码如下 复制代码



Our List of Jokes


 
session_start(); // 启用session 
$timetime = time(); 
$key ="sess_" . $time; // 根据时间生成一个随机的session key 
$_SESSION[$key] = $time; // 设置session的值 
?>  
 


Type your joke here:



//通过隐藏表单将 session 的 key传递到服务端处理 



 


 
处理页面: 


Our List of Jokes


//连接数据库: 
$dbcnx =mysql_connect("localhost","root","******"); 
if (!$dbcnx) { 
echo( "

Unable to connect to the " . 
"database server at this time.

" ); 
exit(); 

// Select the jokes database 
if (! @mysql_select_db("jokes") ) { 
echo( "

Unable to locate the joke " . 
"database at this time.

" ); 
exit(); 

//启动session: 
session_start(); 
$key = $_POST['session_key'];  
if(!$key || $_SESSION[$key] != substr($key, 5)){ 
// 如果没有传 session_key 参数 
// 或者 session_key 参数值截断 sess_后的数字 与 session参数值不匹配 
unset($_SESSION[$key]); // 删除 session 值  
echo "chu cuo la";// 然后考虑是否要提示错误,或者转入另一个页面 
exit(); // 终止页面代码执行  

 
// 下面进行数据写操作  
if ("SUBMIT" ==$_POST["submitjoke"] ) { 
$sql="INSERT INTO Jokes (joketext) 
    VALUES ('$_POST[joketext]') 
    "; 
if (mysql_query($sql)) { 
echo("

Your joke has been added.

"); 
} else { 
echo("

Error adding submitted joke: " . 
mysql_error() . "

"); 

// 数据操作完成后,删除session  
unset($_SESSION[$key]);  

?>
 
//显示笑话内容: 

Here are all the jokes in our database:



$result = mysql_query( 
"SELECT * FROM Jokes"); 
if (!$result) { 
echo("

Error performing query: " . 
mysql_error() . "

"); 
exit(); 

// Display the text of each joke in a paragraph 
while ( $row = mysql_fetch_array($result) ) { 
echo("

" . $row["JokeText"] . "

"); 

?>
 

  

热门栏目