这一节直接上代码,注意看注释.
templates/signup.php(注册)
只是两个输入框而已.我用的是jqm写的,也可以用普通的html写.
<!DOCTYPE html>
<html>
<head>
<?php header("Content-type: text/html; charset=utf-8"); ?>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.css">
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.js"></script>
<script type="text/javascript">
</script>
</head>
<body>
<div data-role="page" id="create">
<div data-role="header">
<a href="index.php" class="ui-btn-left ui-icon-back ui-btn ui-btn-inline ui-mini ui-corner-all ui-btn-icon-left " >返回</a>
<h1>注册</h1>
</div>
<div role="main" class="ui-content">
<form action="<?php echo htmlspecialchars($_SERVER["REQUEST_URI"]);?>" method="post"
data-ajax="false" >
<ul data-role="listview" data-inset="true">
<li class="ui-field-contain">
<label for="fullname">用户名</label>
<input type="text" name="name" >
</li>
<li class="ui-field-contain">
<label for="pwd">密码</label>
<input type="password" id="password" name="pwd"/>
</li>
<li class="ui-field-contain">
<input type="submit" value="提交">
</li>
</ul>
</form>
<p><?php echo $error; ?></p>
</div>
</div>
</body>
signup.php(注册)
<?php
include('conn.php');
include('lib.php');
include('ChromePhp.php');
session_start();
$error="";
//对提交的表单进行处理
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$name=format($_POST['name']);
$pwd=format($_POST['pwd']);
Chromephp::log($name);
Chromephp::log($pwd);
//检测用户名和密码都不为空
if(!empty($name) && !empty($pwd))
{
//查看用户名是否已被使用
$query=mysql_query("select * from users where name='$name'");
$time=time();
//如果提取的结果集为0,则说明没有被使用
if(mysql_num_rows($query)==0)
{
//插入数据库
mysql_query("insert into users (name, pwd, cover, regtime) values ('$name', '$pwd', '$default_cover', '$time')");
$query=mysql_query("select * from users where name='$name'");
$user=mysql_fetch_array($query);
//设置session和cookie
$_SESSION['uid']=$user['id'];
$_SESSION['name']=$user['name'];
setcookie('uid', $user['id'], time()+3600);
setcookie('name', $user['name'], time()+3600);
//跳转到用户中心
header("Location: user.php");
exit();
}
else
{
$error="用户名已存在";
include('templates/signup.php');
}
}
else
{
$error="用户名或密码不能为空";
include('templates/signup.php');
}
}
//如果是get请求,直接导入登陆界面代码
include('templates/signup.php');
?>
templates/login.php(登陆)
<!DOCTYPE html>
<html>
<head>
<?php header("Content-type: text/html; charset=utf-8"); ?>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.css">
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.js"></script>
<script type="text/javascript">
</script>
</head>
<body>
<div data-role="page" id="create">
<div data-role="header">
<a href="index.php" class="ui-btn-left ui-icon-back ui-btn ui-btn-inline ui-mini ui-corner-all ui-btn-icon-left " >返回</a>
<h1>登陆</h1>
<a href="signup.php" class="ui-btn-right ui-btn ui-btn-inline ui-mini ui-corner-all ui-btn-icon-right ui-icon-carat-r">注册</a>
</div>
<div role="main" class="ui-content">
<form action="<?php echo htmlspecialchars($_SERVER["REQUEST_URI"]);?>" method="post"
data-ajax="false" >
<ul data-role="listview" data-inset="true">
<li class="ui-field-contain">
<label for="fullname">用户名</label>
<input type="text" name="name" >
</li>
<li class="ui-field-contain">
<label for="pwd">密码</label>
<input type="password" id="password" name="pwd"/>
</li>
<li class="ui-field-contain">
<input type="submit" value="提交">
</li>
</ul>
</form>
<p><?php echo $error; ?></p>
</div>
</div>
</body>
login.php(登陆)
<?php
include('conn.php');
include('lib.php');
include('ChromePhp.php');
session_start();
$error="";
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$name=format($_POST['name']);
$pwd=format($_POST['pwd']);
Chromephp::log($name);
Chromephp::log($pwd);
if(!empty($name) && !empty($pwd))
{
$query=mysql_query("select * from users where name='$name' and pwd='$pwd'");
if(mysql_num_rows($query)==1)
{
$user=mysql_fetch_array($query);
$_SESSION['uid']=$user['id'];
$_SESSION['name']=$user['name'];
setcookie('uid', $user['id'], time()+3600);
setcookie('name', $user['name'], time()+3600);
header("Location: user.php");
exit();
}
else
{
$error="用户名或密码错误";
include('templates/login.php');
}
}
else
{
$error="用户名或密码不能为空";
include('templates/login.php');
}
}
include('templates/login.php');
?>
logout.php
<?php
include('conn.php');
include('lib.php');
include('ChromePhp.php');
/**同时注销session和cookie的页面*/
//即使是注销时,也必须首先开始会话才能访问会话变量
session_start();
//使用一个会话变量检查登录状态
if(isset($_SESSION['uid'])){
//要清除会话变量,将$_SESSION超级全局变量设置为一个空数组
$_SESSION = array();
//使用内置session_destroy()函数调用撤销会话
session_destroy();
}
//同时将各个cookie的到期时间设为过去的某个时间,使它们由系统删除,时间以秒为单位
setcookie('uid','',time()-3600);
setcookie('name','',time()-3600);
//location首部使浏览器重定向到另一个页面
$home_url = 'index.php';
header('Location:'.$home_url);
?>