logintest.php 页面

<!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>无标题文档</title>

<style type="text/css">
 body{
  margin:0;
  padding:0;
  background::#ccc;
  font-family:'宋体',Simsun;
 
 }
 #wrap{
   width:290px;
   margin::17% auto;
 }
 #sid{
   width:154px;
    margin-left:-6px;
 }
 #sub{ margin-left:65px;}
 #res{ margin-left:55px;}
 #vcode{ float:right}
 #welcome{font-size:20px; font-family:Comic Sans MS;
 padding-bottom:5px;
 }
</style>
</head>

<body>

<div id="wrap">
        <div id="welcome">Welcome to mymessbox!</div>
        <form action="checklogin.php" method="post">
            选&nbsp;&nbsp;择: <select name="loginname" id="sid">
                            <option value="manager">管理员</option>
                            <option value="user">用户</option>
                        </select>
            <br>
            用户名:<input type="text" name="username" id="">
            <br>
            密&nbsp;&nbsp;码:<input type="password" name="password" id="">
            <br>
            验证码:<input type="text" name="vcode" id=""><img src="imgcodetest.php" id="vcode">
            <br>
            <input type="submit" value="login" id="sub">
            <input type="reset" value="reset" id="res">
        </form>
    </div>
</body>
</html>

提交处理页面:

<?php
 session_start();
 $loginname=$_POST['loginname'];
 $username=$_POST['username'];
 $password=$_POST['password'];
 $vcode = strtolower($_POST['vcode']);
 $rcode = strtolower($_SESSION['rcode']);
 echo $username."<br/>";
 echo $rcode;
 mysql_connect('localhost','root','root');
 mysql_select_db("test");
 mysql_query("set names=uft8");
   if ($vcode !== $rcode) {
                          echo "<script>alert('the code is wrong!');window.location.href='logintest.php'</script>";
            }
else {
                       
 if($username='Test')
 {
     $sql="select * from users where username='$username' and  userpwd='$password'";
    $result=mysql_query($sql);
     $i=mysql_num_rows($result);
     if( $i >=1){
       $_SESSION['mgusername']=$username;
       echo "<script> alert('login success')</script>";
     }
     else
     {
       echo "<script> alert('login fail'); </script>";
     }
    
 }
 else
 {
     echo"<script>alert('用户名不对');</script>";
 }
}
?>

验证码:

<?php
session_start();
    //文件头...
    header("Content-type: image/png");
    //创建真彩色白纸
    $im = @imagecreatetruecolor(50, 20) or die("建立图像失败");
    //获取背景颜色
    $background_color = imagecolorallocate($im, 255, 255, 255);
    //填充背景颜色(这个东西类似油桶)
    imagefill($im,0,0,$background_color);
    //获取边框颜色
    $border_color = imagecolorallocate($im,200,200,200);
    //画矩形,边框颜色200,200,200
    imagerectangle($im,0,0,49,19,$border_color);

//逐行炫耀背景,全屏用1或0
    for($i=2;$i<18;$i++){
        //获取随机淡色        
        $line_color = imagecolorallocate($im,rand(200,255),rand(200,255),rand(200,255));
        //画线
        imageline($im,2,$i,47,$i,$line_color);
    }

//设置字体大小
    $font_size=12;

//设置印上去的文字
    $Str[0] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $Str[1] = "abcdefghijklmnopqrstuvwxyz";
    $Str[2] = "01234567891234567890123456";

//获取第1个随机文字
    $imstr[0]["s"] = $Str[rand(0,2)][rand(0,25)];
    $imstr[0]["x"] = rand(2,5);
    $imstr[0]["y"] = rand(1,4);

//获取第2个随机文字
    $imstr[1]["s"] = $Str[rand(0,2)][rand(0,25)];
    $imstr[1]["x"] = $imstr[0]["x"]+$font_size-1+rand(0,1);
    $imstr[1]["y"] = rand(1,3);

//获取第3个随机文字
    $imstr[2]["s"] = $Str[rand(0,2)][rand(0,25)];
    $imstr[2]["x"] = $imstr[1]["x"]+$font_size-1+rand(0,1);
    $imstr[2]["y"] = rand(1,4);

//获取第4个随机文字
    $imstr[3]["s"] = $Str[rand(0,2)][rand(0,25)];
    $imstr[3]["x"] = $imstr[2]["x"]+$font_size-1+rand(0,1);
    $imstr[3]["y"] = rand(1,3);
    $imgcode='';
    //写入随机字串
    for($i=0;$i<4;$i++){
        //获取随机较深颜色
        $text_color = imagecolorallocate($im,rand(50,180),rand(50,180),rand(50,180));
        //画文字
       $imgcode.=$imstr[$i]["s"];
        imagechar($im,$font_size,$imstr[$i]["x"],$imstr[$i]["y"],$imstr[$i]["s"],$text_color);
    }
   
    //显示图片
    $_SESSION['rcode']= $imgcode;
    imagepng($im);
    //销毁图片
    imagedestroy($im);
?>

PHP 登录DEMO的更多相关文章

  1. Xamarin.Android再体验之简单的登录Demo

    一.前言 在空闲之余,学学新东西 二.服务端的代码编写与部署 这里采取的方式是MVC+EF返回Json数据,(本来是想用Nancy来实现的,想想电脑太卡就不开多个虚拟机了,用用IIS部署也好) 主要是 ...

  2. 易Android登录Demo

    上一页介绍Android项目简单的页面跳转实例,算是对开发环境的熟悉,这一篇将在此基础上增加一些简单的逻辑,实现登录的效果. 登录之前: 登录成功: watermark/2/text/aHR0cDov ...

  3. [原创]java WEB学习笔记56:Struts2学习之路---Struts 版本的 登录 demo

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. 也谈SSO,一个简单实用的单点登录Demo

    关于SSO(单点登录),百度百科解释如下 : “SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要 ...

  5. 开源框架bboss单点登录demo跑起来

    目前公司新项目要使用一个开源框架bboss的单点登录功能,要将此功能整合到新系统中去,所以我就学习了一下. 首先,进入这个bboss框架作者的博客中,找到相应的session共享,单点登录的博文,看了 ...

  6. 跟服务器交互的登录Demo

    服务器写死 账号密码,演示登录 服务器代码: 开发工具MyEclipse public class LoginServlet extends HttpServlet { /** * The doGet ...

  7. 学习python登录demo

    要求编写登录接口 : 1. 输入用户名和密码 2.认证成功后显示欢迎信息 3.用户名输错,提示用户不存在,重新输入(5次错误,提示尝试次数过多,退出程序) 4.用户名正确,密码错误,提示密码错误,重新 ...

  8. Spring整合MyBatis(简单登录Demo)

    SpringMvc简单整合(登录模块) 1.1 整合思路 1.SqlSessionFactory对象应该放到spring容器中作为单例存在. 2.传统dao的开发方式中,应该从spring容器中获得s ...

  9. QQ自动登录Demo源码(附全套WindowsApi)

    在开发过程中,偶尔会有自动化操作软件的需求,便想到用句柄实现自动化的功能,记录下知识点,以作备忘. 实现流程: 获取窗口句柄,根据定位获取input,调用windowsapi模拟鼠标点击, 输入 , ...

  10. (一)shiro简介和用户登录demo及角色管理

    一.shiro简介 Apache Shiro是Java的一个安全框架.Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境.Shiro可以帮助我们完成 ...

随机推荐

  1. 一键切图 PS 动作 【收藏】

    使用方法 一键切图动作.zip 1. 下载动作 2. 打开PS 动作 窗口,导入动作 3. 选中图层后 点击 F2 一键切图 详情看原文链接 原文链接

  2. UML相关说明

    在java开发中,有很多时候我们是在不断的处理类与类之间关系,其中这六种关系是:依赖.关联.聚合.组合.继承.实现. 它们的强弱关系是没有异议的:依赖 < 关联 < 聚合 < 组合& ...

  3. 深入理解Spring系列之十一:SpringMVC-@RequestBody接收json数据报415

    转载 https://mp.weixin.qq.com/s/beRttZyxM3IBJJSXsLzh5g 问题原因 报错原因可能有两种情况: 请求头中没有设置Content-Type参数,或Conte ...

  4. ubuntu之安装pycharm编辑器

    pycharm是Java写的,运行需要Java环境. 安装java jdk sudo add-apt-repository ppa:webupd8team/java sudo apt-get upda ...

  5. 设计模式之笔记--代理模式(Proxy)

    代理模式(Proxy) 定义 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问. 类图 描述 Subject,定义了ConcreteSubject和Proxy的共用接口,这样就可以 ...

  6. C/C++——[04] 语句

    在 C/C++语言中,语句以“ :”结束.某些情况下,一组语句在一起共同完成某一特定的功能,可以将它们用大括号括起来.我们称之为语句组.语句组可以出现在任何单个语句出现的地方. 1. 分支语句 一般情 ...

  7. openssh升级步骤

    1下载openssh最新版本 2 configure ./configure --prefix= /ssh先配置一下 再在本地安装. make &makeinstall 3 按照/ssh包含内 ...

  8. 解决uc浏览器不支持vw单位的方法

    插入下段代码,使用rem来代替vw <script type="text/javascript"> (function (doc, win) { var docEl = ...

  9. copy深浅拷贝

    我们在很多方法里都看到copy()方法,这是对变量的复制,赋值,下面来看一下实例: 复制方法调用的是copy模块中的方法: import copy copy.copy()         #前拷贝 c ...

  10. scrapy 学习笔记1

    最近一段时间开始研究爬虫,后续陆续更新学习笔记 爬虫,说白了就是获取一个网页的html页面,然后从里面获取你想要的东西,复杂一点的还有: 反爬技术(人家网页不让你爬,爬虫对服务器负载很大) 爬虫框架( ...