很多站长朋友们都不太清楚php验证系统,今天小编就来给大家整理php验证系统,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php登录系统身份验证 2、 用php做图书管理系统,登录验证的时候,输入正确的用户名密码总是提示密码错误 3、 PHP CRYPT实现密码验证原理是什么? 4、 php如何判断当前的操作系统是linux还是windows 5、 thinkphp验证器正则常用规则 6、 PHP网络验证系统开源 php登录系统身份验证login.html
<form id="form1" name="form1" method="post" action="checklogin.php">
<table width="400">
<tr>
<th width="27%" scope="row">用户名</th>
<td width="73%"><input name="user_name" type="text" id="user_name" /></td>
</tr>
<tr>
<th scope="row">密码</th>
<td><input name="user_pwd" type="password" id="user_pwd" /></td>
</tr>
<tr>
<th scope="row">请填写答案 </th>
<td><input name="yzm" type="text" id="yzm" size="5" />
123</td>
</tr>
<tr>
<td colspan="2" scope="row"><div align="center">
<input type="submit" name="Submit" value=" 登录 " />
</div></td>
</tr>
</table>
</form>
checklogin.php
<?php
session_start();
require_once("include/class/Mysql.class.php");
require_once("include/class/FuncAdmin.class.php");
require_once("include/class/Users.class.php");
$db = new Mysql();
$db->getConnection(1);
$db->select_db();
$db->query("set names gb2312");
$f = new FuncAdmin();
if(!empty($_POST['Submit'])){
//判断登录
$user_name = $_POST['user_name'];
$user_pwd = $_POST['user_pwd'];
$yzm = $_POST['yzm'];
//加强验证
//此处很重要但没写出呢cxmcook
if(empty($user_name) || empty($user_pwd)){
$f->alert_back("用户名与密码不能为空!");
}
$user = new Users();
$sql = $user->get_select_sql(" where user_name='".$user_name."' and user_pwd='".$user_pwd."' ");
$rs = $db->query($sql);
$row = $db->fetch_array($rs);
//var_dump($row);
//die("<hr>");
$rownum = $db->num_rows($rs);
//die('=========='.$rownum);
if( $rownum >0 ){
//$row = $db->fetch_array($rs);
$_SESSION['admin'] = 'admin';
$_SESSION['user_id'] = $row['user_id'];
$_SESSION['user_name'] = $row['user_name'];
$_SESSION['user_realname'] = $row['user_realname'];
$_SESSION['user_last_logintime'] = $row['user_last_logintime'];
$_SESSION['user_last_loginIp'] = $row['user_last_loginIp'];
$_SESSION['user_loginnum'] = $row['user_loginnum'];
//header("Location:index.php");
echo "<script>
alert('登录成功!".$_SESSION['user_realname']."');
location='index.php';
</script>";
}else{
$f->admin_tip("用户名或密码错误!");
}
}
?>
用php做图书管理系统,登录验证的时候,输入正确的用户名密码总是提示密码错误你输出 $sql就知道是什么原因了。。
$sql="select * from message where username= '".$_POST[username]."'";
PHP CRYPT实现密码验证原理是什么?例:
<!--check_user_crypt.php:使用crypt() 函数验证用户---------------->
<?php
$user_name=$_POST["user_name"];
require_once("sys_conf.inc"); //系统配置文件,包含数据库配置信息
//连接数据库
$link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD);
mysql_select_db($DBNAME); //选择数据库my_chat
//查询是否存在登录用户信息
$str="select name,password from user where name ='$user_name'";
$result=mysql_query($str,$link_id); //执行查询
@$rows=mysql_num_rows($result); //取得查询结果的记录笔数
$user_name=$_SESSION["user_name"];
$password=$_POST["password"];
$salt = substr($password, 0, 2);
$password_en=crypt($password,$salt); //使用crypt()对用户密码进行加密
//对于老用户
if($rows!=0)
{
list($name,$pwd)=mysql_fetch_row($result);
//如果密码输入正确
if($pwd==$password_en)
{
$str="update user set is_online =1 where name ='$user_name' and password='$password_en'";
$result=mysql_query($str, $link_id);//执行查询
require("main.php"); //转到聊天页面
}
//密码输入错误
else
{
require("relogin.php");
}
}
//对于新用户,将其信息写入数据库
else
{
$str="insert into user (name,password,is_online) values('$user_ name','$password_en',1)";
$result=mysql_query($str, $link_id); //执行查询
require("main.php"); //转到聊天页面
}
//关闭数据库
mysql_close($link_id);
?>
核心部分在于第16、17行使用crypt()函数获取加密后的密码,而通过在第25行比较数据库中的密码和加密后的密码是否相等来检查用户是否合法。
例如,用户名为rock,密码为123456,则加密后的密码为: 12tir.zIbWQ3c
上面就实现了一个简单的用户身份验证系统。在使用crypt()保护重要的机密信息时,需要注意的是,在缺省状态下使用crypt()并不是最安全的,只能用在对安全性要求较低的系统中。
更多问题到后盾网问题求助专区。
php如何判断当前的操作系统是linux还是windowsPHP判断当前操作系统的方法很多,比如:
1.直接使用PHP预定义常量PHP_OS来获取;
<?php
header("Content-type:text/html;charset=utf-8;");
$os_name=PHP_OS;
if(strpos($os_name,"Linux")!==false){
$os_str="Linux操作系统";
}else if(strpos($os_name,"WIN")!==false){
$os_str="Windows操作系统";
}
echo $os_str;
2.还可以通过用户浏览器信息来判断操作系统。
<?php
header("Content-type:text/html;charset=utf-8;");
//测试
echo get_user_os();
//Windows操作系统
function get_user_os(){
//获取用户浏览信息参数
$agent = $_SERVER['HTTP_USER_AGENT'];
//获取操作系统类型
if(strpos($agent,"NT 6.1")){
$os_name ="Windows 7";
} elseif(strpos($agent,"NT 5.1")) {
$os_name ="Windows XP (SP2)";
} elseif(strpos($agent,"NT 5.2") strpos($agent,"WOW64")){
$os_name ="Windows XP 64-bit Edition";
} elseif(strpos($agent,"NT 5.2")) {
$os_name ="Windows 2003";
} elseif(strpos($agent,"NT 6.0")) {
$os_name ="Windows Vista";
} elseif(strpos($agent,"NT 5.0")) {
$os_name ="Windows 2000";
} elseif(strpos($agent,"4.9")) {
$os_name ="Windows ME";
} elseif(strpos($agent,"NT 4")) {
$os_name ="Windows NT 4.0";
} elseif(strpos($agent,"98")) {
$os_name ="Windows 98";
} elseif(strpos($agent,"95")) {
$os_name ="Windows 95";
}elseif(strpos($agent,"Linux")) {
$os_name ="Linux";
}
//判断
if(strpos($os_name,"Linux")!==false){
$os_str="Linux操作系统";
}else if(strpos($os_name,"Windows")!==false){
$os_str="Windows操作系统";
}else{
$os_str="未知操作系统";
}
return $os_str;
}
3.使用php_uname函数来获取;
<?php
header("Content-type:text/html;charset=utf-8;");
$os_name=php_uname();
if(strpos($os_name,"Linux")!==false){
$os_str="Linux操作系统";
}else if(strpos($os_name,"Windows")!==false){
$os_str="Windows操作系统";
}
echo $os_str;
thinkphp验证器正则常用规则ThinkPHP的自动验证常用的正则
一般我们见的比较多的是设置规则为require、email之类的,其实这些本身也是属于正则表达式验证方式,只是系统内置定义了一些常用的正则表达式而已。这些内置的正则表达式的定义可以参考model类的regex方法,内置支持的正则定义包括:
require 字段必须、email 邮箱、url URL地址、currency 货币、number 数字、zip 邮编、integer 整数、double 浮点数、english 英文字母,但是并不局限于这些正则规则的,我们完全可以直接在验证规则里面使用正则表达式进行定义,这样我们可以凭借强大的正则表达式来进行表单字段验 证,例如:
附上一些表单验证中比较常用的正则表达式写法:
匹配特定字符串:
限定符
限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。
正则表达式的限定符有:
ThinkPHP的自动验证机制是为了进行表单数据验证,验证可以支持function、 callback、confirm、equal、unique和regex,这里要讲的是使用正则表达式进行验证。
特殊字符
许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符:
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
例如:
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。
非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列:
所谓特殊字符,就是一些有特殊含义的字符,如上面说的 runoo*b 中的 ,简单的说就是表示任何字符串的意思。如果要查找字符串中的 * 符号,则需要对 * 进行转义,即在其前加一个 : runo*ob 匹配 runo ob。
许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符:
限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。
正则表达式的限定符有:
由于章节编号在大的输入文档中会很可能超过九,所以您需要一种方式来处理两位或三位章节编号。限定符给您这种能力。下面的正则表达式匹配编号为任何位数的章节标题:
请注意,限定符出现在范围表达式之后。因此,它应用于整个范围表达式,在本例中,只指定从 0 到 9 的数字(包括 0 和 9)。
这里不使用 + 限定符,因为在第二个位置或后面的位置不一定需要有一个数字。也不使用 ? 字符,因为使用 ? 会将章节编号限制到只有两位数。您需要至少匹配 Chapter 和空格字符后面的一个数字。
如果您知道章节编号被限制为只有 99 章,可以使用下面的表达式来至少指定一位但至多两位数字。
上面的表达式的缺点是,大于 99 的章节编号仍只匹配开头两位数字。另一个缺点是 Chapter 0 也将匹配。只匹配两位数字的更好的表达式如下:
或
* 、+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
例如,您可能搜索 HTML 文档,以查找括在 H1 标记内的章节标题。该文本在您的文档中如下:
<H1>Chapter 1 - 介绍正则表达式</H1>
贪婪: 下面的表达式匹配从开始小于符号 (<) 到关闭 H1 标记的大于符号 (>) 之间的所有内容。
非贪婪: 如果您只需要匹配开始和结束 H1 标签,下面的非贪婪表达式只匹配 <H1>。
如果只想匹配开始的 H1 标签,表达式则是:
通过在 *、+ 或 ? 限定符之后放置 ?,该表达式从"贪心"表达式转换为"非贪心"表达式或者最小匹配。
定位符使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。
正则表达式的定位符有:
PHP网络验证系统开源用途是给易语言和按键精灵所写的游戏脚本的进行注册码远程授权
dll动态链接库
基于ThinkPHP3.2的非前后端分离Web
服务端(php)介绍:
客户端(dll)介绍:
关于php验证系统的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php验证系统 php验证码代码怎么写的详细内容...