php js 动态显示服务器运行程序的进度条

 更新时间:2016年11月25日 16:28  点击:2138

if ('source' == $_get['act']) {           //查看源代码
show_source($_server["script_filename"]);
exit;
}   //end if
set_time_limit(0);
for ($i = 0; $i < 5000; $i++) {
$users[] = 'tom_' . $i;
}   //end for
$width = 500;                      //显示的进度条长度,单位 px
$total = count($users);     //总共需要操作的记录数
$pix = $width / $total;        //每条记录的操作所占的进度条单位长度
$progress = 0;                   //当前进度条长度
?>
<html>
<head>
    <title></title>
    <meta http-equiv="content-type" content="text/html; charset=gb2312" />
    <style>
    body, div input { font-family: tahoma; font-size: 9pt }
    </style>
    <script language="网页特效">
    <!--
    function updateprogress(smsg, iwidth)
    {
    document.getelementbyid("status").innerhtml = smsg;
    document.getelementbyid("progress").style.width = iwidth + "px";
    document.getelementbyid("percent").innerhtml = parseint(iwidth / <?php echo $width; ?> * 100) + "%";
    }
    //-->
    </script>
</head>

<body>
<div style="margin: 4px; padding: 8px; border: 1px solid gray; background: #eaeaea; width: <?php echo $width+8; ?>px">
    <div><font color="gray">如下进度条的动态效果由服务器端 php 程序结合客户端 网页特效 程序生成。</font></div>
    <div style="padding: 0; background-color: white; border: 1px solid navy; width: <?php echo $width; ?>px">
    <div id="progress" style="padding: 0; background-color: #ffcc66; border: 0; width: 0px; text-align: center;   height: 16px"></div>
    </div>
    <div id="status"> </div>
    <div id="percent" style="position: relative; top: -30px; text-align: center; font-weight: bold; font-size: 8pt">0%</div>
</div>
<?php
flush();    //将输出发送给客户端浏览器
foreach ($users as $user) {
//   在此处使用空循环模拟较为耗时的操作,实际应用中需将其替换;
//   如果你的操作不耗时,我想你就没必要使用这个脚本了 :)
for ($i = 0; $i < 10000; $i++) {
   ;;
}
?>
<script language="javascript">
updateprogress("正在操作用户"<?php echo $user; ?>" ....", <?php echo min($width, intval($progress)); ?>);
</script>
<?php
flush();    //将输出发送给客户端浏览器,使其可以立即执行服务器端输出的 javascript 程序。
$progress += $pix;
}   //end foreach
//   最后将进度条设置成最大值 $width,同时显示操作完成
?>
<script language="javascript">
updateprogress("操作完成!", <?php echo $width; ?>);
</script>
<?php
flush();
?>
<input type="button" value="查看源码" onclick="document.location.href='<?php echo $_server['php_self']; ?>?act=source'" />
</body>
</html>

这款文件上传实用代码,可以方便的上传你指定的文件或图片,同时也可以快速的限制上传图片文件类或大小。

/*
 * created on 2010-6-21
 *
 * the class for image to upload
 *
 * made by s71ence
 *
 * @$user_id
 * @$max_file_size
 * @$max_image_side
 * @$destination_folder
 *
 * return:
 * @$_cookie['img_path']
 * @$img_unfind
 * @$img_type
 * @$mkdir_warry
 * @$img_side_too_big
 * @$img_exist
 * @$img_move
 * @$img_upload_sucess
 */
 

 代码如下 复制代码

header('content-type:text/html;charset=utf-8');
 
 class image_upload extends fn_function
 {
 private $user_id;
 private $max_file_size; //allow the image's size
 private $max_image_side; //allow the image's side
 private $destination_folder; //image's storage path
 private $img_preview;
 private $img_preview_size;
 private $cookie_set; //the cookie's name

 function __construct($user_id,$max_file_size,$max_image_side,$destination_folder,$img_preview,$img_preview_size,$cookie_set)
 {
  $this->user_id=$user_id;
  $this->max_file_size=$max_file_size;
  $this->max_image_side=$max_image_side;
  $this->destination_folder=$destination_folder;
  $this->img_preview=$img_preview;
  $this->img_preview_size=$img_preview_size;
  $this->cookie_set=$cookie_set;
  $this->get_date();
  $this->get_image_type();
 }

 private function get_date()
 {
  $this->date=fn_function::get_server_date();
  return $this->date;
 }

 function get_image_type()
 {
  $this->up_img_types=array(
            'image/jpg',
            'image/jpeg',
            'image/png',
            'image/pjpeg',
            'image/gif',
            'image/bmp',
            'image/x-png'
        );

  return $this->up_img_types;
 }

 function upload_image()
 {
  if ($_server['request_method'] == 'post')
  {
   //check the iamge is exist
   if (!is_uploaded_file($_files["upfile"]["tmp_name"]))
   {
    return $img_unfind=fn_function::alert_msg('图片不存在!');
    exit;
      }

      $file = $_files["upfile"];

   //check the iamge's size
      if($this->max_file_size < $file["size"])
      {
       return $img_side_too_big=fn_function::alert_msg('图片大小超过系统允许最大值!');
       exit;
      }

      //check the iamge's type
      if(!in_array($file["type"], $this->up_img_types))
      {
       return $img_type=fn_function::alert_msg('图片类型不符!');
       exit;
      }

      if(!file_exists($this->destination_folder))
      {
       if(!fn_function::mkdirs($this->destination_folder))
       {
        return $mkdir_warry=fn_function::alert_msg('目录创建失败!');
        exit;
       }
      }

      $file_name=$file["tmp_name"];
      $image_size = getimagesize($file_name);
      $pinfo=pathinfo($file["name"]);
      $file_type=$pinfo['extension'];
      $destination = $this->destination_folder.time().".".$file_type;
   setcookie($this->cookie_set, $destination);

   if($image_size[0]>$this->max_image_side || $image_size[1]>$this->max_image_side)
   {
    return $img_side_too_big=fn_function::alert_msg('图片分辨率超过系统允许最大值!');
    exit;
   }

   $overwrite="";
   if (file_exists($destination) && $overwrite != true)
   {
    return $img_exist=fn_function::alert_msg('同名文件已经存在了!');
    exit;
      }

      if(!move_uploaded_file ($file_name, $destination))
      {
       return $img_move=fn_function::alert_msg('移动文件出错!');
       exit;
      }

   $img_upload_sucess="<font color=red face=微软雅黑>上传成功</font><br>";
   if($this->img_preview==1)
   {
    $img_src="<img src="".$destination."" width=".($image_size[0]*$this->img_preview_size)." height=".($image_size[1]*$this->img_preview_size);
    $img_upload_sucess.=$img_src;
   }
      return $img_upload_sucess;
  }
 }

 function __destruct()
 {
  //clear
 }
 }

在程序开发中,经常会把页面做成html的静态形式,这样可以减轻服务器负载,但是也存在一个问题就是当注册用户登陆时,要在html页面显示登陆成功或需要登陆的提示,这样我们就必须想其它办法来实现了,下面我们就是利用js+php来实例的,当然还有ajax也可以实现哦
 代码如下 复制代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>静态页面实时调用用户登陆与退出登陆程序(网页特效调用php代码)</title>
</head>

<body>
<script language="网页特效" src="/loginajax.php?fid={fid}"></script>
</body>
</html>


loginajax.php文件代码
<!--{因为loginajax.php是由js形式调用输出,所以在这个文件里面的代码由于按js输出形式才能正确被显示哦。}-->

 代码如下 复制代码

<?php
 $id = isset( $_get['fid'] )?$_get['fid']:0; 
 if( !isset($_cookie['vvg']) ){
?>
document.write('用户名:<input type="text" class="pl_sty1" name="username" id="username" />');
document.write('<input name="action" type="hidden" value="login" />');
<?
 }
 else
 {
  echo 'document.write('['.$_cookie['realname'],']发言 <a href=/login/login.php?action=logout>退出</a>');';
 }
?>

本文章原创于http://www.111cn.net/phper/php.html转载注明来源,谢谢合作。

/*
下面这几款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' );

 代码如下 复制代码

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> 

[!--infotagslink--]

相关文章

  • 解决echarts 一条柱状图显示两个值,类似进度条的问题

    这篇文章主要介绍了解决echarts 一条柱状图显示两个值,类似进度条的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-20
  • Powershell实现编写和运行脚本

    本文为那些对学习 Windows PowerShell 命令行和脚本编写环境感兴趣的系统管理员提供了资源。也请告诉我们本网站如何才能对您更有用处。...2020-06-30
  • jQuery实现简单的文件上传进度条效果

    本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下:具体代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>upload</title><link rel="stylesheet...2015-11-24
  • ant design中upload组件上传大文件,显示进度条进度的实例

    这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29
  • jquery实现模拟百分比进度条渐变效果代码

    本文实例讲述了jquery实现模拟百分比进度条渐变效果代码。分享给大家供大家参考,具体如下:这里为了便于看到加载百分比,对代码进行了处理,实际使用时并不需要这样。运行效果截图如下:在线演示地址如下:http://demo.jb51.net...2015-10-30
  • C#隐式运行CMD命令(隐藏命令窗口)

    这篇文章主要介绍了C#隐式运行CMD命令(隐藏命令窗口),本文实现在winform窗口中运行CMD命令,需要的朋友可以参考下...2020-06-25
  • 分享一段php获取linux服务器状态的代码

    简单的php获取linux服务器状态的代码,不多说-直接上函数:复制代码 代码如下:function get_used_status(){ $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况 $rs =...2014-05-31
  • Springboot+TCP监听服务器搭建过程图解

    这篇文章主要介绍了Springboot+TCP监听服务器搭建过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-28
  • 解决Pycharm 运行后没有输出的问题

    这篇文章主要介绍了解决Pycharm 运行后没有输出的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-06
  • 服务器 UDP端口占用几千个的解决办法

    前一段时间使用NetStat命令查看服务器端口时,发现服务器udp端口开放了好多,最少在1000个以上,当时事情比较多,没有管它,今天终于有点时间,仔细检查了一下,排除了这个问题. ...2016-01-27
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • 解决HttpPost+json请求---服务器中文乱码及其他问题

    这篇文章主要介绍了解决HttpPost+json请求---服务器中文乱码及其他问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-22
  • C#实现带进度条的ListView

    这篇文章主要介绍了C#实现带进度条的ListView 的相关资料,需要的朋友可以参考下...2020-06-25
  • Bootstrap进度条组件知识详解

    在网页中,经常见到进度条效果,那么这些个性的进度条组件效果是怎么实现的呢,下面脚本之家小编给大家分享Bootstrap进度条组件知识详解,感兴趣的朋友要求学习吧...2016-05-04
  • Python运行提示缺少模块问题解决方案

    这篇文章主要介绍了Python运行提示缺少模块问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-10
  • nodejs 终端打印进度条实例代码

    本篇文章主要介绍了nodejs 终端打印进度条实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...2017-04-27
  • PHP的APC模块实现上传进度条

    APC模块,它的全称是Alternative PHP Cache。APC可以将所有PHP代码会被缓存起来, 另外它可提供一定的内存缓存功能.但是这个功能并不是十分完美,有报告说如果频繁使用APC缓存的写入功能,会导致不可预料的错误.如果想使用...2015-10-30
  • BootStrap Progressbar 实现大文件上传的进度条的实例代码

    这篇文章主要介绍了BootStrap Progressbar 实现大文件上传的进度条的实例代码的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-07-01
  • php使用APC实现实时上传进度条功能

    php不具备实时上传进度条功能,如果想有这种功能我们一般会使用ajax来实现,但是php提供了一个apc,它就可以与php配置实现上传进度条功能。 主要针对的是window上的应用。 1.服务器要支持apc扩展,没有此扩展的话,下载一个扩...2015-10-30
  • C#判断程序是否是管理员权限运行的方法代码示例

    这篇文章主要介绍了C#判断程序是否是管理员权限运行的方法代码示例,本文直接给出实现代码例子,需要的朋友可以参考下...2020-06-25