php用户登陆代码(限制用户错误登录次数)(1/2)

 更新时间:2016年11月25日 16:28  点击:1991
 代码如下 复制代码

session_start();
include("mysql教程.class.php");
$db=new mysql('localhost', 'root', '', 'flx', 'conn', 'gbk');
  // 为方便测试,这里只是简单定义了一个特定的用户,在实际操作中,用户信息从数据库教程中得出;
   define('user','admin');
   define('pw', 123);
 $db->findall('limit_login');
 $row=$db->fetch_array();
 //print_r($row);
  if($_post['submit']){
   $username=$_post["username"];
      $pw=$_post["pw"];
      $_session['time']=time();
  /* 错误次数超限判断*/
   // 对于登陆出错超过三次的用户,如果现在时间,减去开始登陆的时间,小于特定的值时,就不允
许在登陆;
 if($username==user){
  //这里用户可以试着登陆3次,,下面写为2,是因为页面刷新与数据库的连接不同步,
  // 就是说,第二次的错误信息插入数据库时,这里获取的信息,还是第一次的,实际用户出错的
次数已经多一次了;
  if($row['login_times']>2){
   $current=time();
   $passed_time=$current-$row['login_date'];
   echo '现在已经过了'.$passed_time.'秒<br>';
   // 设定时间 900秒,在此时间段内,特定用户不能登陆系统;按
   if(($current-$row['login_date'])<900){
    //$test_pw=substr(md5(rand()),0,10);
    //现在admin (特定用户)用户已经登陆错误大于3次,那在限定的时间内,
    //即使他的密码输入正确,也不能在登陆系统;
    if($pw==pw){
       exit('你密码输入错误次数大于三次,请在15分钟后登陆系统!');
    }
    // 当然,这位用户输入的密码不是正确的密码,也给出这样的提示;
    if($pw!=pw){
     exit('你密码输入错误次数大于三次,请在15分钟后登陆系统!');
    }
   }else{
    //此时已经过了限制的时间,这位用户可以登陆了,在此用户在登陆之前,要把前次登陆的时间
清零;
    $mod_content="`login_times`=0,`login_date`=0";
     $condition="`id`=1";
        $db->update('limit_login',$mod_content,$condition);
   }
  }
 }

 

/* 用户登陆操作*/ 
  

 代码如下 复制代码
if($username&&$pw){
      if($username==user&&$pw==pw){
       /* 用户登陆成功,*/
     // 更新数据表;表登陆次数和时间,都置零;
     $mod_content="`login_times`=0,`login_date`=0";
     $condition="`id`=1";
      $db->update('limit_login',$mod_content,$condition);
      echo '<script language="网页特效" type="text/网页特效">' .
         'window.location="success.php"</script>';
      }else{
       //在第一次出错时,设置密码出错次数为1,把登陆时是session 保存的时间放入数据库;
       if($row['login_times']==0&&$row['login_date']==0){
        $mod_content="`login_times`=1,`login_date`='".$_session['time']."'";
     $condition="`id`=1";
        $db->update('limit_login',$mod_content,$condition);
       }else{
        $mod_content="`login_times`=`login_times`+1";
     $condition="`id`=1";
        $db->update('limit_login',$mod_content,$condition);
       }
  /*  提示用户还有几次机会*/
        if($row['login_times']<3){
         $row['login_times']++;// 这里登陆次数加1,和上面的说的原因一样,是因不能同步连接
数据库所致;
         echo'密码错误!错误次数为:'.$row['login_times'].'次<br>';
          $remain_times=3-$row['login_times'];
          echo '你还有'.$remain_times.'登陆机会';
        }
      }
   }else{
    echo '用户名和密码不能为空!';
   }
  }
 


 
?>

  <form action="" method="post" >
  username:<input type="text" name="username" value=""  maxlength="40"/><br>
  password:<input type="password" name="pw" /><br>

  <input type="submit" name="submit" value="login"/>
 
  </form> 

/*
下面这几款php生成flash文件代码,是从简单的生成swf文件到生成 flash动画文件等,每个实例都是经典的。
*/
//首先开启php扩展php_ming
$f = new swffont( '_sans' );

$t = new swftextfield();
$t->setfont( $f );
$t->setcolor( 0, 0, 0 );
$t->setheight( 400 );
$t->addstring( 'hello world' );

$m = new swfmovie();
$m->setdimension( 2500, 800 );
$m->add( $t );

$m->save( 'hello.swf' );
?>

******************************************************************************
例二:让文本动起来text.php
<?php
$f = new swffont( '_sans' );

$pt = new swftextfield();
$pt->setfont( $f );
$pt->setcolor( 0, 0, 0 );
$pt->setheight( 400 );
$pt->addstring( '1000' );

$tt = new swftextfield();
$tt->setfont( $f );
$tt->setcolor( 192, 192, 192, 90 );
$tt->setheight( 350 );
$tt->addstring( 'points' );

$m = new swfmovie();
$m->setdimension( 2500, 800 );

$pts = $m->add( $pt );
$pts->moveto( 0, 0 );

$tts = $m->add( $tt );
$tts->moveto( 1300, 200 );

for( $i = 0; $i < 10; $i++ ) {
  $m->nextframe();
  $pts->scaleto( 1.0 + ( $i / 10.0 ), 1.0 + ( $i / 10.0 ) );
}

$m->save( 'text.swf' );
?>

*****************************************************************************
例三:绘制一些图形  绘制简单的直线 line.php
<?php
$m = new swfmovie();
$m->setdimension( 300, 300 );

$s = new swfshape();
$s->setline( 10, 0, 0, 0 );
$s->movepento( 10, 10 );
$s->drawlineto( 290, 290 );
$m->add( $s );

$m->save( 'line.swf' );
?>
******************************************************************************
例四:旋转直线
<?php
$m = new swfmovie();
$m->setdimension( 300, 300 );

$s = new swfshape();
$s->setline( 5, 0, 0, 0 );
$s->movepento( -100, -100 );
$s->drawlineto( 100, 100 );
$ts = $m->add( $s );

$ts->moveto( 150, 150 );

for( $i = 0; $i < 100; $i++ ) {
  $ts->rotate( 10 );
  $m->nextframe();
}

$m->save( 'rotate.swf' );
?>
***************************************************************************
例五:
使用图片

文本和诸如直线、圆、弧、曲线和矩形之类的简单矢量图形都是十分优秀的,但在理想的情况下,您必须能访问这些 flash 动画中的图片。值得庆幸的是,ming 库使您可以轻松的使用图片,如下所示

<?php
$img = new swfbitmap( file_get_contents( 'megan.jpg' ) );

$s = new swfshape();
$imgf = $s->addfill( $img );
$s->setrightfill( $imgf );
$s->movepento( 0, 0 );
$s->drawlineto( $img->getwidth(), 0 );
$s->drawlineto( $img->getwidth(), $img->getheight() );
$s->drawlineto( 0, $img->getheight() );
$s->drawlineto( 0, 0 );

$m = new swfmovie();
$m->setdimension( $img->getwidth() * 2, $img->getheight() * 2 );
$is = $m->add( $s );
$is->moveto( $img->getwidth() / 2, $img->getheight() / 2 );

for( $i = 0; $i < 10; $i++ )
{
$is->skewx( 0.02 );
$is->skewy( -0.03 );
$m->nextframe();
}

$m->save( 'image.swf' );

现在用php采集远程图片是很简单的事情,但是我们要把采集过来的数据进行过滤,这恐怕得用到正则表达式了,下面的程序是采集远程图片图片并且替换图片地址代码。

$dir_date=date('y/m/d');//日期文件夹
$dir_name="images/$dir_date";//文件夹路径
function mkdirm($path) //取文件夹名
{
if (!file_exists($path)) //判断是否存在
{
mkdirm(dirname($path)); //返回路径中的目录部分
mkdir($path, 0777); //创建文件夹和权限
}
}
mkdirm($dir_name);//创建文件夹
//$files = file_get_contents('http://www.ywsp.com');
$files ='<img src="http://img.111cn.net/img/bid_v2/bid_v2_content/p_bid.gif" alt="普通任务" /><img width="272px" height="60px" style="padding-top: 10px;" src="http://img.111cn.net/img/index_v3/20100611001.gif">';
// 图片地址转换一下   $p=preg_replace('//image//', 'http://qq.ip138.com/image/', $pg[1]);
 $reg = "/<img[^>]*src="(http://(.+)/(.+).(jpg|gif|bmp|bnp))"/isu";
$img=preg_match_all($reg,$files,$imgs);

for ($i=0;$i<count($imgs[0]);$i++)
{

//echo "".$imgs[1][$i]." <br> ";
//保存图片
$opts = array(
  'http'=>array(
    'header'=>"referer: http://www.111cn.net/ "
  )
);
$context = stream_context_create($opts);
header( 'content-type: image/jpeg' );
$fileresource = @file_get_contents( $imgs[1][$i],false,$context) ;
$image_old.=""".$imgs[1][$i].""".","; //先把所有网址变为一个数如1,2,3,4
$image_new.=""".$dir_name."/".mktime().$i.".jpg".""".","; //先把所有新的图片地址变为一个数如1,2,3,4
file_put_contents($dir_name."/".mktime().$i.".jpg", $fileresource);
//保存图片
}
$image_old=substr($image_old,0,(strlen($image_old)-1));//把网址最后个逗号去掉
$image_new=substr($image_new,0,(strlen($image_new)-1));//把新网址最后个逗号去掉
//print_r($p);

$image_old=explode(",",$image_old);//分割多个
$image_new=explode(",",$image_new);//分割多个

$files=str_replace($image_old,$image_new,$files); //把网址跟新的图片网址调用进去替换
echo $files;

这款批量生成缩略图代码可以生成指定大小的小图哦,并且支持文件批量上传。

这款教程会用到php文件
view.php
config.php
funs.php
index.php


功能:
-----------------------
1.为文件夹里的图片生成指定大小缩略图
2.列出子文件夹, 可以指定生生某文件夹生成
3.为方便不同大小的缩图生成,图片保存到新的目录,而目录结构不变

实现:
-----------------------
1.图片原文件夹   $image
2.处理后保存在   $newimage
 保持目录结构和文件名不变(方便调用)
3.如果在新的文件夹里图片已经存在,直接跳过

操作界面:
-----------------------
1.$image 输入框
2.$newimage 输入框(若没填写,刚为当前目录平级的以缩略大小为文件名的目录)
3.按扭"搜索",列出所有文件夹,生成缓存,写到文件.
4.生成.     生成子目录

*/
?>
//index.php代码

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=gb2312">
  <title>生成缩略图</title>
</head>
 <body>
<?php
/* +-------------------------------------------------------------+
 * | copyright (c) 2008-2009 yese.in all rights reserved.       
 * +-------------------------------------------------------------+
 * | author: wbsifan <wbsifan@163.com>   <qq:29500196>          
 * +-------------------------------------------------------------+ 
 * | filename : index.php v0.1
 * | update   : 2008-07-01
 * | content  : 生成缩略图 
 * +-------------------------------------------------------------+
 */

 代码如下 复制代码
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
  2  <html>
  3  <head>
  4     <title>投票结果</title>
  5     <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6
  7  <script type="text/网页特效">
  8
  9     function getxmlhttpobject()
 10 {
 11   var xmlhttp=null;
 12   try
 13     {
 14     // firefox, opera 8.0+, safari
 15      xmlhttp=new xmlhttprequest();
 16     }
 17   catch (e)
 18     {
 19     // internet explorer
 20     try
 21       {
 22       xmlhttp=new activexobject("msxml2.xmlhttp");
 23       }
 24     catch (e)
 25       {
 26       xmlhttp=new activexobject("microsoft.xmlhttp");
 27       }
 28     }
 29   return xmlhttp;
 30 }
 31 function checkajax(){
 32    xmlhttp=getxmlhttpobject()
 33  
 34   if (xmlhttp==null)
 35     {
 36     alert ("您的浏览器不支持ajax!");
 37     return ;
 38     }else
 39     {
 40        return xmlhttp;
 41     }
 42 }
 43 function preshow(){
 44     ajaxobj = checkajax();
 45     var url = "page.php?page=1";
 46 ajaxobj.onreadystatechange=statechanged;
 47 ajaxobj.open("get",url,true);
 48 ajaxobj.send(null);
 49 }
 50 function showhint1(str)
 51 {
 52     ajaxobj = checkajax();
 53     document.getelementbyid("msg").innerhtml="正在读取数据……";
 54
 55 var url = str;
 56 ajaxobj.onreadystatechange=statechanged;
 57 ajaxobj.open("get",url,true);
 58 ajaxobj.send(null);
 59
 60 }

 

[!--infotagslink--]

相关文章

  • Ecshop提示Only variables should be passed by reference in错误

    在安装好ecshop软件之后我们打开首页时提示Only variables should be passed by reference in错误了,碰到这个问题是什么原因呢?下面我们就一起来看看解决办法吧。...2016-11-25
  • 409错误是什么 http 409错误怎么解决

    409错误是什么?http 409错误怎么解决呢?不少站长在遇到这个错误代码之后都一筹莫展,本次一聚教程网为大家带来了详细的说明,快来看看吧。 409错误是什么: HTTP 40...2017-01-22
  • 414错误是什么 414错误怎么解决

    414错误是HTTP协议状态码中的一种,很多都还不知道414错误是什么,以及不知道怎么解决414错误,那么就来看看小编带来的介绍吧。 414错误是什么: HTTP 414错误,(Requ...2017-01-22
  • http 405错误是什么 http 405错误怎么解决

    http 405错误是什么?http 405错误怎么解决?相信很多站长都在找这两个问题的答案,本次小编为大家带来了详细的教程,快来看看吧。 405错误是什么: HTTP 405错误是H...2017-01-22
  • 401错误码代表什么 401错误解决办法

    401是HTTP状态码的一种,属于“请示错误”,表示请求可能出错,已妨碍了服务器对请求的处理。具体的401错误是指:未授权,请求要求进行身份验证。登录后,服务器可能会返回对页面...2017-01-22
  • http 402错误是什么 http 402简介

    http 402错误是什么?402错误较为少见,一般不轻易出现,下面小编就来告诉大家402错误是什么吧。 HTTP 402错误是HTTP状态码的一种,表示“要求付费”; 所求的...2017-01-22
  • 411错误是什么 411错误怎么解决

    411错误是HTTP协议状态码的一种,很多人都还不知道411错误是什么,本次一聚教程网将为大家进行解答,并且告诉大家411错误怎么解决。 411错误是什么: HTTP 411错误,(Lengt...2017-01-22
  • 404错误是什么 404错误怎么解决

    403错误是网站访问过程中,常见的错误提示。资源不可用,服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致,比如IIS或者apache设置了访问权限...2017-01-22
  • apache网站提示503错误解决办法

    Apache status 503 的原因大致有如下几种情况 : 1、 CPU 负载过高,服务器响应不过来,返回503 2、 系统连接数超限,超过MaxVhostClients的上限,返回503 3、 单IP连接数超限,超过M...2016-01-28
  • 403错误是什么 403错误怎么解决

    403错误是HTTP状态码的一种,属于“请示错误”,表示服务器拒绝请求。如果在搜索引擎尝试抓取您网站上的有效网页时显示此状态代码,那么,这可能是您的服务器或主机拒绝搜索...2017-01-22
  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • 412错误是什么 412错误怎么解决

    412错误是什么?412错误怎么解决?本次一聚教程网将为大家带来详细的介绍,帮助大家全面了解412错误的意思以及解决412错误的方法。 412错误是什么: HTTP 412错误,(Precond...2017-01-22
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • 406错误是什么 406错误怎么解决

    HTTP 406错误是HTTP协议状态码的一种,表示无法使用请求的内容特性来响应请求的网页。一般是指客户端浏览器不接受所请求页面的 MIME 类型。 而MIME类型是在把输出...2017-01-22
  • 407错误是什么 407错误怎么解决

    407错误是什么?407错误怎么解决?不少站长都遇到过407错误,下面小编将告诉大家如何处理407错误。 407错误是什么: HTTP 407错误是HTTP协议状态码的一种,表示需要代...2017-01-22
  • 410错误是什么 http 410错误怎么解决

    410错误是HTTP协议状态码的一种,本次一聚教程网将为大家详细介绍HTTP 410错误是什么,以及410错误的解决办法。 410错误是什么: HTTP 410错误是HTTP协议状态码的...2017-01-22
  • HTTP 400错误是什么 HTTP 400错误怎么解决

    每当遇到http错误代码为400,代表客户端发起的请求不符合服务器对请求的某些限制,或者请求本身存在一定的错误,那么HTTP 400错误怎么解决呢?请看下文介绍。 目前400错...2017-01-22
  • PHP Fatal error: Cannot use object of type stdClass as array in错误

    下面一起来看看在php开发中碰到PHP Fatal error: Cannot use object of type stdClass as array in错误问题的解决办法吧。 普通的数组出现如下错误 代码...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP Curl出现403错误的解决办法

    自己用的小PHP应用,使用curl抓网页下来处理,为了穿墙方便,使用Privoxy作为代理,便于选择哪些网站使用proxy、哪些不用。但今天却遇到了奇怪的问题,访问google baidu这些网站居然都返回403错误,而访问其他的一些网站没事,如果...2014-05-31