前面我们讲解了表单、数据库、用户登录注册的功能,今天呢我就带领大家做一个简单的留言板功能
1)建立表
前面我们已经有了库和表users本课程我们建立一张单独的messages表
CREATE TABLE `messages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`contents` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2)编写用户留言界面
message.php
留言版你的留言内容:
3)编写实际插入数据库脚本
include_once("functions/database.php");
$content = $_POST['info'];
getConnection();
$sql = "insert into messages(user_id,contents) values(8,'{$content}')";
mysql_query($sql);
$id = mysql_insert_id();
if($id) {
echo "留言成功";
}else {
echo "留言失败";
}
closeConnection();
?>
可能有的童鞋在这里有疑问了 为什么这里user_id 直接写8呢 接下来我们就将处理此处的问题。
既然前面我们已经处理过用户的登录和注册了 我们很容易得到用户的信息,但是用户的信息怎么保存呢 我们用到了session来保存。什么是Session?
PHP Session 变量
当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。
通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。
Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。
接下来我们修改login.php
session_start();
include_once("functions/database.php");
//收集表单提交数据
$userName = addslashes($_POST['userName']);
$password = addslashes($_POST['password']);
//连接数据库服务器
getConnection();
//判断用户名和密码是否输入正确
$sql = "select * from users where userName='$userName' and password='$password'";
$resultSet = mysql_query($sql);
if(mysql_num_rows($resultSet)>0){
$user = mysql_fetch_array($resultSet);
$_SESSION['uid'] = $user['user_id'];
$_SESSION['uname'] = $userName;
echo"用户名和密码输入正确!登录成功!";
}else{
echo"用户名和密码输入错误!登录失败!";
}
closeConnection();
?>
在顶部加入session_start();
将message_do.php进行修改
session_start();
include_once("functions/database.php");
$uid = $_SESSION['uid'];
$content = $_POST['info'];
getConnection();
$sql = "insert into messages(user_id,contents) values({$uid},'{$content}')";
mysql_query($sql);
$id = mysql_insert_id();
if($id) {
echo "留言成功";
}else {
echo "留言失败";
}
closeConnection();
?>
这样就可以 插入正确的user_id了
我们新注册个用户,用这个用户登录,然后再进行留言我们可以看到插入了user_id 为9的
今天就讲到这里欢迎大家咨询 与关注我,今天细心的同学可能会发现为什么没有用户的退出呢?我把这个问题留给大家欢迎大家咨询~
本文仅代表作者个人观点,不代表SEO研究协会网官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员。更多相关资讯,请到SEO研究协会网www.seoxiehui.cn学习互联网营销技术请到巨推学院www.jutuiedu.com。