php用户添加留言失败,PHP进阶(四) ——用户留言功能

b748049a005085040c59c1ecf20d96b8.png前面我们讲解了表单、数据库、用户登录注册的功能,今天呢我就带领大家做一个简单的留言板功能

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

留言版

你的留言内容:

129d05b24f820455789e26ca3b3c1bde.png3)编写实际插入数据库脚本

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();

?>

686fa702719ec69ba3b900ac1c7db129.png可能有的童鞋在这里有疑问了 为什么这里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的

52fccd718a0db6e71f952c0387de9f94.png今天就讲到这里欢迎大家咨询 与关注我,今天细心的同学可能会发现为什么没有用户的退出呢?我把这个问题留给大家欢迎大家咨询~

629db0f41e15855714fb1aa3f849b766.png

本文仅代表作者个人观点,不代表SEO研究协会网官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员。更多相关资讯,请到SEO研究协会网www.seoxiehui.cn学习互联网营销技术请到巨推学院www.jutuiedu.com。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值