PHP学习-网页通讯录(一)

如同“前言”中说到的一样,拿着仅有的三脚猫功夫,开始了PHP制作通讯录。仅有的认知是PHP是编辑动态网页的一种代码,所以一开始当然没有办法自己动手。这里对Zimmerk表达一下真诚的感激,相比百度出来的其他很多东西,他的通讯录制作教程因为在代码里加了很多注释,好懂很多。让我凭着三脚猫的功夫拿下了PHP通讯录的原型。

原型参考http://www.cnblogs.com/zimmerk/archive/2010/04/24/1948990.html

在Zimmerk原型的基础上,结合这个网页通讯录的初衷,做了一定的完善。

Zimmerk的第一篇原型通讯录,仅提供了最简单查看以及添加信息的功能。但很明显,网页通讯录之所以放在网上,目的是为了方便大家的更新操作,如果任何人都有权限查看和添加的话这个网页通讯录会造成大家的信息泄漏且无故增加许多垃圾信息。

那么要解决的第一个问题就是,增加一个登录才能查看和添加信息的功能,简单的说就是增加管理员权限来管理。这里就没有百度到好的教程可以直接借用了,在东拼西凑之下,才算完成了这个功能,并把它与原型通讯录合并。

首先当然是在MYSQL里增加一个库表,用来存储管理员信息。然后做一个登陆页面,并在登陆成功后存储登录信息用作网页通讯录查看和添加时校验。

这个功能的难点就在于如何将校验通过的登陆信息存储起来并在进入其他页面之前校验,经过各种尝试,终于找到一个可用的方法来解决这个问题。在登录校验的PHP页面,将登陆成功的信息使用SESSION语句存储,并单独制作一个“check.php”的校验页面,在所有需要进行登陆信息校验的页面插入代码“require ‘check.php’”。这样,如果校验不通过的话,就无法进行任何其他操作。

这里完整的把相关联的代码做一下分享,需要提前说明的是,即使是通讯录原型的代码也不是照搬Zimmerk的,SQL库表字段名称还有一些细节有作调整。

首先是“login.php”,通过SESSION存储登陆信息,并校验登陆信息与SQL中是否一致,校验一致则跳转。

<?php
session_start();
if (isset($_POST[‘name’])) {
$name = $_POST[‘name’];
$password = $_POST[‘password’];
$_SESSION[‘shuser’] = $name; //建立SESSION并存储

$sql = “select * from `shtxl_user` where name=’$name’ and password=’$password’ limit 1″; //验证用户名密码
include(‘conn.php’);
if($check_query = mysql_fetch_array($result)) {//验证正确

//跳转到首页
header(‘Location:index.php’);
}else{
exit(‘登录失败!点击此处 <a href=”javascript:history.back(-1);”>返回</a> 重试’);
}
}
//注销登录
if($_GET[‘action’] == “logout”){
unset($_SESSION[‘shuser’]); //清空当前存储的SESSION
echo ‘注销登录成功!点击此处 <a href=”login.html”>登录</a>’;
exit;
}
?>

存储了SESSION之后,需要的页面就可以进行调用了,“Check.php”的代码如下:

<?php
session_start();

//使用当前存储的SESSION检测是否登录,若没登录则转向登录界面
if (isset($_SESSION[‘shuser’]) && !empty($_SESSION[‘shuser’])) {
echo ‘登录成功:’.$_SESSION[‘shuser’];
echo ‘<br />’;
echo ‘<a href=”login.php?action=logout”>注销</a> 登录<br />’;
}else{
exit (‘你还没有登录,<a href=”login.html”>请登录</a>’);
}
?>

就是这么一段简单的代码,一开始在本地怎么都调不过。百度了各种方法,仔细检查了一遍又一遍还是没有发现问题。最后把代码上传到服务器上一跑功能一切正常,才发现是本地PHP环境有问题。

让我回头重新搭了一次PHP环境。原本使用的是ComsenzEXP,最后换成了PHPnow,这才本地调试成功。

第一个演示版本如下:
www.fishme.cn/show
用户名1 密码1

发表评论

您的电子邮箱地址不会被公开。