PHP实例-编写自己的PHP通讯录2-用户登陆及获取通讯录方法

通过清心醉

PHP实例-编写自己的PHP通讯录2-用户登陆及获取通讯录方法

在上一文中作者说了以下的两个文件,第一个其实就是基本所有的代码文件都要包含的$_SESSION身份标识,第二个就是显示通讯录的代码文件.

require_once(“inc.config.php”);
require_once(“contacts.php”);

我们先来看看inc.config.php文件:

<?php
header(“Content-Type:text/html;charset=utf-8”);
require_once (“config.php”); //数据库配置文件,在首页里已经对config.php文件是否存在进行了验证.
header(“Pragma:no-cache”); //关闭缓蹲
ini_set(“display_errors”,1);//报告错误
session_start();
while(1)
{
if(isset($_SESSION[“add”])&&!empty($_SESSION[“add”]))
//如果$_SESSION[“add”]存在并且非空值
{
break;
//跳出循环,不能用exit,否则其他页面有包含的话,虽然是可以验证合法性,但会跳出脚本
}
else
{    //如果没有session值则返回登陆
header(“location:login.php”);
exit;
}
break;
}
?>

#因为这如果判断没有登陆,返回到login.php页面,来看看,login是如何实现登陆的.

<?php

#login.php
header(“Content-Type:text/html;charset=utf-8”);
echo “</br></br></br></br></br>”;
echo ‘<html>’;
echo ‘<title>登陆</title>’;
echo ‘<body>’;
echo ‘</br></br></br></br></br>’;
echo ‘<form method=”post” action=”loginsql.php”>’;
echo ‘<table width=”400″ align=”center”>’;
echo ‘<tr>’;
echo ‘<td>帐号:</td>’;
echo ‘<td><input name=”userlogin” type=”text” size=”30″ maxlength=”500″></td>’;
echo ‘</tr>’;
echo ‘<tr>’;
echo ‘<td>密码:</td>’;
echo ‘<td><input name=”passwordlogin” type=”password” size=”30″ maxlength=”500″></td>’;
echo ‘</tr>’;
echo ‘</table>’;
echo ‘<div align=”center”><input type=”submit” value=”登陆”></div>’;
echo ‘</form>’;
echo ‘</body>’;
echo ‘</html>’;
?>

#login.php其实只是一个表单,填写后,转到loginsql.php处理.在这里,将有第一个从MYSQL获取数据的案例.

<?php

#loginsql.php
header(“Content-Type:text/html;charset=utf-8”);
require_once (“config.php”); //获取数据库配置文件,在第一次安装的时候已经生成了基本的连接SQL连接语句
if (is_array($_POST)&&count($_POST)>0)//先判断是否通过POST传值了
{
if(isset($_POST[“userlogin”]))//是否存在”userlogin”的参数
{
//定义两个临时变量i/o用来存放表单获取的数据.
//否则后面全部用$_POST的方式写的麻烦.
$i=$_POST[“userlogin”];
$o=md5($_POST[“passwordlogin”]); //密码实现md5加密后在对比
//数据库里获取出来的帐号密码
$sql=”select * from admin where user=’$i’ and password=’$o’ “;
//表里的name/userpsword参数和变量i/o对比语句,用$sql代替.
$rs=mysql_query($sql,$con);
//连接读取表并且执行$sql里的SQL语句.
if(mysql_num_rows($rs)!=0) //如果数据相等.
{
session_start();
//启用服务器session比cookie安全点
$_SESSION[“add”]=$i;
/*
设定$_SESSION,值为add,add的参数=$i也就是$_POST[“userlogin”](帐号);
在inc.config.php文件里有说过判断$_SESSION[“add”]存在并且非空值
*/
echo “登陆成功</br>”;
echo “<script>setTimeout(\”this.location=’index.php’\”,2000);</script>”;
//执行script的setTimeout函数,在2000毫秒后跳转

}
else
{
echo “帐号/密码 出错</br>”;
echo “请重新输入</br>”;
echo “<script>setTimeout(\”this.location=’login.php’\”,3000);</script>”;
}
}
}
else
{
header(“location:index.php”);
}
?>

#通过以上,就成功完成了从MYSQL对比输入的帐号密码并登陆.

接着就是显示通讯录里的所有数据了.在contacts.php文件里进行输出.

<?php
header(“Content-Type:text/html;charset=utf-8”);
require_once(“inc.config.php”);
//验证是否已经登陆,如果登陆允许使用下面配置
require_once (“config.php”);
$contacts=”SELECT *FROM contacts”;//SQL角色信息变量
$sqlcontacts=mysql_query($contacts,$con);//执行连接contacts表
if(!$sqlcontacts)
{
die(“获取表数据失败”);

}//判断是否成功连接

echo ‘<link rel=”stylesheet” type=”text/css” href=”style.css” />’;
echo ‘<div>’;
echo ‘<center>联系人管理</center>’;
echo ‘<a href=”modificationadmin.php”>修改管理员密码</a>’;
echo “<table>”; //输出表格开始,如果有div样式,可在里面添加,这就是php内嵌html的好处.
echo ‘<tr><td>姓名</td><td>性别</td><td>联系电话</td><td>联系地址</td><td><a href=”increase.php”>增加</a></td></tr>’;
//输出表格,5列
//以下使用mysql_fetch_object()的方式,所以不需要加{},同时echo不可用””的方式.内嵌代码使用”即可.
while($row=mysql_fetch_object($sqlcontacts))
echo “<tr><td>$row->names</td><td>$row->sex</td><td>$row->phone</td><td>$row->address</td><td><a href=’modification.php?id=$row->id&names=$row->names&sex=$row->sex&phone=$row->phone&address=$row->address’>修改</a>/<a href=’delete.php?id=$row->id’>删除</a></td></tr>”;
echo “</table>”; //输出表格结束
echo ‘</div>’;
mysql_free_result($sqlcontacts); //关闭数据采集.
mysql_close($con); //关闭MYSQL
?>

/*
在这特别说明下
<a href=’delete.php?id=$row->id’>删除</a>
意思就是,点删除的时候,以id做表单名,数据为从mysql里提取出来的$row->id的数据
因为在增加的时候是使用自+1的方式,所以可以做为唯一数据
因为是循环输出,而这代码又在<a href>里,所以不会显示
然后根据记录的名,将表单传值到delete.php文件
然后进行删除.
*/

通过以上的while循环,已经循环输出了所有的数据了,只是默认的数据只有初始化的数据而已.

 

 

关于作者

清心醉 administrator

发表评论

如果喜欢作者的文章,您可以打赏给作者:

TRC20(虚拟货币):


ERC20(虚拟货币):


Bitcoin(BTC):