会话用法 和留言板例题

先来说一下留言例题

首先要在数据库建这样一张表备用:

之前都学过登录注册页面,在这里还需要一个登录页面

简单的建一个

<!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=utf-8" />
<title>无标题文档</title>
</head>

<body>
<h1>开发部内部留言板</h1>
<form action="denglu1.php" method="post">
<div>用户名:<input type="text" name="yh" /></div>
<br />
<div>口令:<input type="text" name="mm" /></div>
<br />
<div><input type="submit" value="登录" /><input type="reset" value="复位" /></div>

</form>
</body>
</html>

这里的复位用的是以前学过的一个重置按钮

要想完成登录还需要一个页面,就是上面表单提交的页面,是个纯php页面

<?php
session_start();                     //用的session来储存数据
include("./fengzhuang.php");
$db = new fengzhuang();
$yh = $_POST["yh"];
$mm = $_POST["mm"];
$sql = "select mm from zhuce where yh = ‘{$yh}‘";
$attr = $db->Query($sql);
$mima = $attr[0][0];
if(!empty($mm) && $mm==$mima)             //这里是密码非空,并且密码等于用于输入的密码
{
    $_SESSION["yh"] = $yh;                 //session中存的用户名等于用户输入的用户名
    header("location:liuyan.php");
}
else
{
echo "登录失败!";
}

如果用户登录成功的话,会直接打到主页面

下面再来做一下主页面

<!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=utf-8" />
<title>无标题文档</title>
</head>
<?php
session_start();   //可以控制登陆
//echo $_SESSION["yh"];
if(empty($_SESSION["yh"]))   //判断如果用户名为空,则直接打到登录页面
{
    header("location:denglu.php");
    exit;
}
/*$yh = $_SESSION["yh"];
include("./fengzhuang.php");
$db = new fengzhuang();
$sql= "select xm from zhuce where yh=‘{$yh}‘";
$attr = $db->Query($sql);*/

?>
<body>
<?php
//echo "<h1>欢迎登陆:{$attr[0][0]}</h1>";   //注释的如果运行的话,会输出欢迎登陆加用户的姓名

?>
<div><a href="fabu.php">发布信息</a><br />
<a href="denglu.php" onclick=" return confirm(‘确定退出么?‘)">退出系统</a>
</div>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>发送人</td>
<td>发送时间</td>
<td>接收人</td>
<td>信息内容</td>
</tr>

<?php
include("./fengzhuang.php");
$db = new fengzhuang();
$sql =" select * from xinxi";
$attr = $db->Query($sql);
foreach( $attr as $v)
{
   echo  "    <tr>
    <td>{$v[1]}</td>
    <td>{$v[2]}</td>
    <td>{$v[3]}</td>
    <td>{$v[4]}</td>
            </tr>";

}
?>
</table>
</body>
<script type="text/javascript">

</script>
</html>

SESSION也可以用来控制登录,如果不走登录界面,直接打上主页面的地址也是可以进入的,所以网页必须要用SESSION控制一下

如果在浏览器上第一次打开主页面,它会返回登录界面,如果在浏览器上有已经登录成功窗口的话,再打开主页面,是可以进的

主页面运行后,是这样子的:

然后再做发布信息的页面

<!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=utf-8" />
<title>无标题文档</title>
</head>

<body>
<div>

<a href="liuyan.php">查看信息</a><br />
<a href="denglu.php" onclick=" return confirm(‘确定退出么?‘)">退出系统</a>

</div>
<h1>信息发送</h1>
<form action="fabuchuli.php" method="post">
<input type="hidden" name="fsr" />
<div>接收人:<input type="text"  name="jsr"/></div>
<input type="hidden" name="fssj" />
<br />
<div>信息内容:<input type="text" name="xxnr" /></div>
<div><input type="submit" value="发送" /><input type="reset" value="复位" /></div>
</form>
</body>
</html>

运行后:

当然光这样,填写的信息是发不出去的,最重要的就是它的处理页面

<?php
session_start();

$yh = $_SESSION["yh"];
include("./fengzhuang.php");
$db = new fengzhuang();
$sql= "select xm from zhuce where yh=‘{$yh}‘";
$attr = $db->Query($sql);

?>

<?php

$fsr = "{$attr[0][0]}";           //发送人,也就是取得用户的姓名
$fssj =  date("Y-m-d",time());    //当前时间
$jsr = $_POST["jsr"];
$xxnr = $_POST["xxnr"];
//造连接对象
$db = new MySQLi("localhost","root","726","text11");
//写SQL语句
$sql = "insert into xinxi values(‘‘,‘{$fsr}‘,‘{$fssj}‘,‘{$jsr}‘,‘{$xxnr}‘)";
//执行
$r=$db->query($sql);
if($r)
{
    header("location:liuyan.php");

}
else
{
    echo "添加失败";
    

发布后立即返回留言页面,看一下发布后的样子:

页面中多了一条数据,接收人是小红,发送人是用户的姓名

退出系统那里可以加个点击事件,确定退出后打到登录界面

所学知识可以灵活运用

下面再来说一下会话用法

主要讲用SESSION 的用法

购物车类型的可以用SESSION做,只是暂时把数据暂时存在SESSION里,退出再登录就会没有了

下面来做个例子

之前讲过水果表的做法,那就引用个水果表

<!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=utf-8" />
<title>无标题文档</title>
</head>

<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>名称</td>
        <td>价格</td>
        <td>产地</td>
        <td>库存</td>
        <td>操作</td>
    </tr>
<?php
include("./fengzhuang.php");
$db = new fengzhuang();

$sql = "select * from fruit";
$attr = $db->Query($sql);

foreach($attr as $v)
{
    echo "<tr>
        <td>{$v[1]}</td>
        <td>{$v[2]}</td>
        <td>{$v[3]}</td>
        <td>{$v[4]}</td>
        <td><a href=‘jiagwc.php?code={$v[0]}‘>加购物车</a></td>
    </tr>";
}

?>
</table>

</body>
</html>

水果表已经做好,只是多加了一个购物车,重要的是它的第二个页面,运用SESSION 来存它传递过来的数据

<?php
session_start();
//将传过来的水果加到购物车
$code = $_GET["code"];

//$_SESSION["gwc"]; 

//1.如果是第一次点击加购物车,做一个二维数组扔到SESSION里

//2.如果不是第一次点击加购物车并且该水果第一次点击,做一个该水果的一维数组扔到SESSION的二维数组里面

//3.如果不是第一次点击加购物车并且该水果不是第一次点击,将SESSION数组里面该水果的数量加1

if(empty($_SESSION["gwc"]))
{
    //1.如果是第一次点击加购物车,做一个二维数组扔到SESSION里
    $attr = array(
        array($code,1)
    );

    $_SESSION["gwc"] = $attr;
}
else
{
    //判断该水果代号是否在SESSION数组里面出现
    $attr = $_SESSION["gwc"];
    if(PanDuan($code,$attr))
    {
        //3.如果不是第一次点击加购物车并且该水果不是第一次点击,将SESSION数组里面该水果的数量加1
        /*foreach($attr as $v)
        {
            if($code == $v[0])
            {
                $v[1] = $v[1]+1;
            }
        }*/
        for($i=0;$i<count($attr);$i++)
        {
            if($code == $attr[$i][0])
            {
                $attr[$i][1]++;
            }
        }
        $_SESSION["gwc"]=$attr;
    }
    else
    {
        //2.如果不是第一次点击加购物车并且该水果第一次点击,做一个该水果的一维数组扔到SESSION的二维数组里面
        $arr = array($code,1);
        $attr[] = $arr;
        $_SESSION["gwc"]=$attr;
    }

}

var_dump($_SESSION["gwc"]);

//判断v是不是在arr里面出现
function PanDuan($v,$arr)
{
    $n = 0;
    foreach($arr as $a)
    {
        if($v == $a[0])
        {
            $n++;
        }
    }

    if($n==0)
    {
        return false;
    }
    else
    {
        return true;
    }
}

我们可以来试一下

点击加购物车

这是第一次点,点击了第一个,下面再返回点击最后一个

这样就一个传入了两条数据,只要不关浏览器,数据都是叠加的,关闭浏览器,重新开一次,上次的数据就会没有了

时间: 2024-10-08 03:10:04

会话用法 和留言板例题的相关文章

会话控制之留言板

//要用session做一个留言板 //首先先做一个loginn.php文件  做出个用户可以输入的表单 //将这个表单提交给另一个页面dlchuli.php对用户输入的用户名和密码进行处理 //在这个dlchuli.php页面中先开启session //运用post方法来获取到用户输入的用户名和密码 //再通过用户输入的用户名和密码从数据库里找需要匹配的数据信息 //这个页面就是来确认下用户输入的信息是否正确,若正确就跳转到主页面.mainn.php //在建一个主页面来显示留言和发布留言消息

php会话控制例题:留言板

数据库用到的三张表 一.登录界面 (denglu.php   login.php) 1.denglu.php 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 8 <body> 9 <h1>开发部内部留言板</h1> 10 <for

(详细)php实现留言板---会话控制-----------2017-05-08

要实现留言功能,发送者和接受者必不可少,其次就是留言时间留言内容. 要实现的功能: 1.登录者只能查看自己和所有人的信息,并能够给好友留言 2.留言板页面,好友采取下拉列表,当留言信息为空时,显示提示,并停留在当前页面 3.查看过的信息,消息显示已读 4.用$_SESSION[]获取登陆者,并用$_SESSION[]防止用户绕过登录直接进入主页面 第一步建数据库: 需要用到的三张表分别为:friend表,yuangong表,chenai表 yuangong表: friend表: chenai表

php留言板

部门内部留言板 一.语言和环境 实现语言 PHP 二.要求: 本软件是作为部门内员工之间留言及发送消息使用. 系统必须通过口令验证,登录进入.方法是从数据库内取出用户姓名和口令的数据进行校验. 用户管理的工作(比如增加,删除,修改用户)通过直接对数据库操作实现,不在本系统中实现,可以自行在数据库用户表中增加测试数据. 系统包含四部分功能 1 登录:验证用户名与口令,保存会话信息,进入主界面. 2 退出:退出使用状态,清空会话信息,返回登录界面. 3 信息查询:显示给当前登录人留的信息以及公共信息

5月26 留言板练习题

---恢复内容开始--- 题目:部门内部留言板 一.要求: 本软件是作为部门内员工之间留言及发送消息使用. 系统必须通过口令验证,登录进入.方法是从数据库内取出用户姓名和口令的数据进行校验. 用户管理的工作(比如增加,删除,修改用户)通过直接对数据库操作实现,不在本系统中实现,可以自行在数据库用户表中增加测试数据. 系统包含四部分功能 1 登录:验证用户名与口令,保存会话信息,进入主界面. 2 退出:退出使用状态,清空会话信息,返回登录界面. 3 信息查询:显示给当前登录人留的信息以及公共信息(

练习-----部门内部留言板(0526)

题目:部门内部留言板 一.语言和环境 实现语言:PHP 二.要求: 本软件是作为部门内员工之间留言及发送消息使用. 系统必须通过口令验证,登录进入.方法是从数据库内取出用户姓名和口令的数据进行校验. 用户管理的工作(比如增加,删除,修改用户)通过直接对数据库操作实现,不在本系统中实现,可以自行在数据库用户表中增加测试数据. 系统包含四部分功能 1 登录:验证用户名与口令,保存会话信息,进入<>主界面. 2 退出:退出使用状态,清空会话信息,返回登录界面. 3 信息查询:显示给当前登录人留的信息

JS实现简单留言板

通过js的HTML DOM来实现对html文档的操作. 使用方法:Node.appendChild(); Node.insertBefore(); Node.removeChild(); <script type="text/javascript"> var count=0; window.onload = function(){ var Msg = document.getElementById("msg"); var Btn = document.g

怎样在留言板中实现动画效果

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco; color: #2b7ec3 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco; min-height: 25.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco; color: #d74200 } p.p4 { margi

0526留言板练习

登录页面 <!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="Con