php 用户登陆
keys:php 用户登陆 php多用户商城 php 登录 php 用户注册 php用户手册 php 在线用户 php 多用户 blog php多用户博客系统 php 模拟登录 php多用户商城系统
今天我没什么事,就把我自己写的博客系统的php用户登录代码贴出来和大家分享一下,先来看看原理,原理很简单的,就是用户输入用户名与密码然后用php文件进行判断是否存在数据库中,如果在存的话就把用户名相关信息保存到session中,这只是最简单的.也是比较常用的方法.好了费话不多说了,我们先看看效果图吧:
这是一个登录页面的效果图,其它登陆别名与密码
<input name="myname" type="text" id="myname" style="border:solid 0px;" />
<input name="mypass" type="password" id="mypass" style="border:solid 0px;" />
它们的名称分别是myname 与mypass,好了下面为了让用户体验更好一些我们就来个简单的js客户端效验:
<script language="javascript">
<!--
function check(){
var myname =document.getElementById('myname').value;
var mypass =document.getElementById('mypass').value;
if(!myname.match(/^\w{3,15}/) || myname.length<3 || myname.length>15 ){
alert('管理员名称必须由字母或组字组成!');
form1.myname.select();
return false;
}
if(!mypass.match(/^\w{6,15}/) || mypass.length<6 || mypass.length>15){
alert('登录密码必须是数字和英语字母下线等,密码长度为6-15!');
form1.mypass.select();
return false;
}
}
-->
</script>这个函数的功能就是判断用户输入的是不是合法的用户名密码这里就不多说了.最关键的还是php代码怎么处理了.
<?
session_start();//这个一定要申明喽,给个小提示:在session之前不能有任何输出哦,在php.5以下的版本会有问题.
$myname =get_value('myname',post);
$mypass =get_value('mypass',post);
if(!preg_match("/^\w+$/",$myname) || strlen($myname)<3 || strlen($myname)>15 ){
alert('输入的用户名信息有误!用户名必须由数字下划线英语字母组成,长度为3-15个字符!','');
}
if(!preg_match("/^\w+$/",$mypass) || strlen($mypass)<6 || strlen($mypass)>15 ){
alert('输和的用户密码!密码必须由数字下划线英语字母组成,长度为6-15个字符!','');
}
$sql ="select * from tbn where admin_name='$myname' and admin_pwd='".md5($mypass)."'";
$result =mysql_query($sql);
if(mysql_num_rows($result) ){
$my =mysql_fetch_array($result);
$_SESSION['uid']=$myname;
//$_SESSION['auth']=return_auth($my['group_id']); //这里是因为用到用户组取得用户组的权限
header("location:main.php");
}else{
alert('提示:你输入的用户名与密码不一致!','');
}
?>
注明:原创文件转载请注明:www.111cn.net
1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。
2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。
4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post。
5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
6、Get是Form的默认方法。
7、post请求只能适合于页面到页面之间的转移请求,从地址栏中直接输入地址,发出的请求是无法形成post请求的,post情况下,前一个页面的<input>域被作为参数传递到服务器,get情况下,参数依靠地址中“?”后面的字符串构成参数。而frame中src属性指定的地址,恰恰如同从地址栏中输入的地址一样,发出的请求是get请求。
xxx.php?a=1&b=2
那么就是$_GET['a'] $_GET['b]
如果你是在表单里提交过去,而表单又指明了method=post 比如
<form action='aaaa.php' method='post'>
<input name=a value=''>
</form>
这个时候提交过去的就是$_POST['a'],当然,如果你指定了他的method=get,他提交过去的就是GET方法
GET和POST为传输数据的两种方法,GET方法的缺点是存在字节长度的限制。所以表单一般都会用POST方法。
把textarea里面的回车替换成<br>
今天在写一个招聘系统时发现直接把内容提交到数据库以我们原有的格式己经没有了,所有的在一条第没有换行,空格等之类了,详细查看了一下原来我们回车与空格在textarea里面是看不到了,但是它们都有ascii代码,回车的asc是13 空间的asc码值是32,知道这个就简单了,我们举个例子来说明一下:
<?
$value =str_replace(chr(13),'<br>',$_POST['textvalue'])//这里就是把textarea里面的回车替换成换行了,这要在html 里面就能正常的显示与我们在textarea里面的格式一样了,替换空格就是 str_replace(chr(32),'<br>',$_POST['textvalue'])//
很简单吧.
php把文本框回车转换成html换行
<!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>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label>
<textarea name="t" id="t" cols="45" rows="5"></textarea>
</label>
<label>
<input type="submit" name="button" id="button" value="提交" />
</label>
</form>
<?php
if($_POST){
echo str_replace(chr(13),'<br>',$_POST['t']);
}
?>
</body>
</html>
这段代码是ThinkPHP框架中的,感觉很常用,所以单独拎出来,大家共同学习一下。
function auto_charset($fContents,$from='',$to='')
{
if( strtoupper($from) === strtoupper($to) || empty($fContents) || (is_scalar($fContents) && !is_string($fContents)) ){
//如果编码相同或者非字符串标量则不转换
return $fContents;
}
$from = strtoupper($from)=='UTF8'? 'utf-8':$from;
$to = strtoupper($to)=='UTF8'? 'utf-8':$to;
if(is_string($fContents) ) {
if(function_exists('mb_convert_encoding')){
return mb_convert_encoding ($fContents, $to, $from);
}elseif(function_exists('iconv')){
return iconv($from,$to,$fContents);
}else{
exit('转换失败');
return $fContents;
}
}
elseif(is_array($fContents)){
foreach ( $fContents as $key => $val ) {
$_key = auto_charset($key,$from,$to);
$fContents[$_key] = auto_charset($val,$from,$to);
if($key != $_key ) {
unset($fContents[$key]);
}
}
return $fContents;
}
elseif(is_object($fContents)) {
$vars = get_object_vars($fContents);
foreach($vars as $key=>$val) {
$fContents->$key = auto_charset($val,$from,$to);
}
return $fContents;
}
else{
return $fContents;
}
}
相关文章
- php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
- 这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
- PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
- 当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <?php $lan = substr( $HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04- 【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
- 这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
- 一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱。 2. 如果...2015-10-23
- 这是注册程序是一款当用户输入完用户名是,就会自动去数据库中查询用户要注册的用户名是否己经被注册了,如果是返回提示否则提示可以注册。 conn.php文件 代...2016-11-25
- 这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
- 这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
- 这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31- 这篇文章主要给大家介绍了关于微信小程序用户授权最佳实践的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-08
- 这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
- 这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
- cookie 的用途之一是存储用户在特定网站上的密码和 id。另外,也用于存储起始页的首选项。在提供个人化查看的网站上,将要求阁下的网络浏览器利用阁下计算机硬驱上的少量...2016-11-25
- 前段时间发布了一个微信小程序的简单登录,但遇到一个问题,怎么确保用户每个页面都已经登陆了呢,这篇文章主要给大家介绍了关于微信小程序如何保证每个页面都已经登陆的相关资料,需要的朋友可以参考下...2021-11-05