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;
}
}