php用户登录代码

 更新时间:2016年11月25日 15:25  点击:2077
本款提供二种用户登录的方法,一种是普通的php mysql用户登录,另一种是利用window验证来登录哦,后来种更安全,但不适合于其它应用。

//方法一 window 验证用户登录


   

 代码如下 复制代码

     $admin_name="admin";
        $admin_pawd="admin";
        if($php_auth_user!=$admin_name||$php_auth_pw!=$admin_pawd)
        {
                header('www-authenticate: basic realm="系统验证"');
                header('http/1.0 401 unauthorized');
                echo "服务器拒绝请求,你没有权限!";
                exit();
        }

//


  if (empty($_server['php_auth_user'])) {
    header("content-type: text/html; charset=big5");
    header('www-authenticate: basic realm=" authentication "');
    header('http/1.0 401 unauthorized');
    echo '请输入正确的账号及密码, 不可以取消!';
    exit;
  } else {
    echo "你登录的账号是 ".$_server['php_auth_user']."<br>";
    echo "你使用的密码是 ".$_server['php_auth_pw']."<p>";
    $correctname="john";
    $correctpwd="1234" ;
     if (($_server['php_auth_user'] != $correctname) or
            ($_server['php_auth_pw'] !=$correctpwd)){
        echo "登录失败, 请打开新的浏览器重新登录";
     }else{
     echo "登录成功.....";
     }
  }
?>

方法二 php mysq

 代码如下 复制代码

<?php
   if (($_post['name'] != "john") or ($_post['passwd'] != "1234")):
?>
   <html>
   <title>登录画面</title>
   <body>
   <b>未输入账号或密码, 或账号,密码不正确 </b><p>
   <form action=<?php echo $_server['php_self'] ?> method=post>
   账号 <input type=text name=name value="请输入账号" size=10><p>
   密码 <input type=password name=passwd size=10><p>
   <input type=submit value=" 登录 ">
   <input type=reset  value=" 清除 ">
   </form>
   </body>
   </html>
<?php
   else:
     echo "登录成功 .....<p>";
     echo "你登录的账号是 ".$_post['name']."<br>";
     echo "你使用的密码是 ".$_post['passwd'];
   endif
?>

1、删除html注释;
2、删除script、link、object、embed、iframe、frame、frameset以及拥有on开头、包含网页特效:[^;]或expression的属性的标签;
3、删除css教程中的注释(防止用这个来欺骗删除expression表达式,不知道还有其他什么方法可以欺骗删除expression);

4、删除expression表达式;


过滤危险html */

 代码如下 复制代码

function fillter_html( $str ) {
        /* 过滤style标签 */
        return preg_replace_callback(
                        /* 过滤style标签内容 */
                        '/(<s*style[^>]*>)((?:(?!<s*/s*styles*>).)*)(<s*/s*styles*>)?/i',
                        create_function('$str', 'return $str[1] . fillter_css($str[2]) . $str[3];'),
                        preg_replace(
                                array(
                                        /* 删除html注释 */
                                        '/<!--.*?-->/i',
                                        /* 删除标签:script、link、object、embed、iframe、frame、frameset */
                                        '/<s*(script|object|embed|link|i?frame(set)?)[^>]*>(.*?<s*/s*\1s*>)?/i',
                                        /* 删除事件、javascript协议、css表达式 */
                                        '/<[^>]+((on[a-z]+s*=|javascript:[^;"\']|expressions*()[^>]*)+>?/i',
                                ),
                                '',
                                $str
                        )
        );
}

/* 过滤样式正文 */
function fillter_css( $str ) {
        /* 删除注释、javascript协议、表达式 */
        return preg_replace(array('/(/*((?!*/).)**/|/*|*/)/i', '/expressions*((.*?))?|javascripts*:/i',), '', $str);
}
?>

在php 中自带了删除文件的函数unlink来删除,我们只要把文件给它,就可以执行删除了,本款实例就是加了判断用户给它的是不是文件,如果是看删除返回是否为真,如果是文件删除成功,否则可能是权限不够了。


$filename ='bb.gif';
if( is_file( $filename ) )
{
 if( unlink($filename) )
 {
  echo '文件删除成功';
 }
 else
 {
  echo '文件删除失败,权限不够';
 }
}
else
{
 echo '不是有一个有效的文件';
}

/*
php unlink函数说明

unlink定义和用法

unlink() 函数删除文件。

若成功,则返回 true,失败则返回 false。

语法
unlink(filename,context)参数 描述
filename 必需。规定要删除的文件。
context 可选。规定文件句柄的环境。context 是可修改流的行为的一套选项。

由于注册的时候常常会用到注册码来防止机器恶意注册,这里我发表一个产生png图片验证码的基本图像,很简陋但思想很清晰:
1、产生一张png的图片
2、为图片设置背景色
3、设置字体颜色和样式
4、产生4位数的随机的验证码
5、把产生的每个字符调整旋转角度和位置画到png图片上
6、加入噪点和干扰线防止注册机器分析原图片来恶意注册
7、输出图片
8、释放图片所占内存
authcode.php文件

 代码如下 复制代码

<?php
        session_start ();
        header ( 'content-type: image/png' );
        //创建图片
        $im = imagecreate($x=130,$y=45 );
        $bg = imagecolorallocate($im,rand(50,200),rand(0,155),rand(0,155)); //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色
        $fontcolor = imagecolorallocate ( $im, 255, 255, 255 );   //字体颜色
        $fontstyle = 'rock.ttf';                   //字体样式,这个可以从c:windows onts文件夹下找到,我把它放到和authcode.php文件同一个目录,这里可以替换其他的字体样式
        //产生随机字符
        for($i = 0; $i < 4; $i ++) {
                $randasciinumarray         = array (rand(48,57),rand(65,90));
                $randasciinum                 = $randasciinumarray [rand ( 0, 1 )];
                $randstr                         = chr ( $randasciinum );
                imagettftext($im,30,rand(0,20)-rand(0,25),5+$i*30,rand(30,35),$fontcolor,$fontstyle,$randstr);
                $authcode                        .= $randstr;
        }
        $_session['authcode']        = $randfourstr;//用户和用户输入的验证码做比较
        //干扰线
        for ($i=0;$i<8;$i++){
                $linecolor        = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
                imageline ($im,rand(0,$x),0,rand(0,$x),$y,$linecolor);
        }
        //干扰点
        for ($i=0;$i<250;$i++){
                imagesetpixel($im,rand(0,$x),rand(0,$y),$fontcolor);
        }
        imagepng($im);
        imagedestroy($im);               
?>

要过滤字符串中所有的html标签有两种方法一种是我们自己写一个函数,用正则过滤,一个是用php自带函数strip_tags哦。

function clear_html_label($html)
 {
  $search = array ("'<script[^>]*?>.*?</script>'si", "'<[/!]*?[^<>]*?>'si", "'([rn])[s]+'", "'&(quot|#34);'i", "'&(amp|#38);'i", "'&(lt|#60);'i", "'&(gt|#62);'i", "'&(nbsp|#160);'i", "'&(iexcl|#161);'i", "'&(cent|#162);'i", "'&(pound|#163);'i", "'&(copy|#169);'i", "'&#(d+);'e");
      $replace = array ("", "", "", """, "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr()");

      return preg_replace($search, $replace, $html);
 }

 
 //实例应用

 代码如下 复制代码
 $string ='aaa<br /> <script>fdsafsa';
 echo clear_html_label($string);//aaa fdsafsa
 
 //利用php自带函数strip_tags();
 echo strip_tags($string);//aaa fdsafsa


 
 /*
 总结,
 上面二个函数得出的结果完全相同,一个是用户自定义的过滤所有html函数,一个是php内置函数,但在效绿上来说php的strip_tags()函数,肯定要高很多。至少为什么我就不说多了。
 */

[!--infotagslink--]

相关文章

  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • php根据用户语言跳转相应网页

    当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <&#63;php $lan = substr(&#8194;$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • php有效防止同一用户多次登录

    【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07
  • 几种延迟加载JS代码的方法加快网页的访问速度

    本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
  • ecshop商品无限级分类代码

    ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25