基于上次做好的登录注册界面和sql表,进一步实现用户留言功能。
我的思路:
1.以上次的loginaf.php为基础,添加html代码,再做一个form表单用来传输用户的留言。
session_start();
header("Content-type:text/html;charset=utf-8");
$link=mysqli_connect("localhost","root","123456","test01");
$name=trim($_POST['username']);
$password=trim($_POST['password']);
$sql="select * from user where name='$name'&&passw=$password ";
$result=mysqli_query($link,$sql);
$row=mysqli_fetch_assoc($result);
if($row!=null){
echo $name;
echo ",welcome";
$_SESSION["name"] = $name;
echo '
';}
else
echo "sorry";
2.用liuyan.php接收留言,并写入数据库。
这里遇到了一个问题,loginaf.php中传输的数据只有留言,如何把留言写到与用户(name)对应的行里呢?要想办法把登录界面(login.html)里传来的name值也传到当前界面才行。我本来想找form表单想多个php文件传值的办法,结果发现找到也不会用,最后无奈直接把loginaf.php里的name变量设为session,在当前界面直接拿来用了。。。(第4行)
session_start();
header("Content-type:text/html;charset=utf-8");
$name=$_SESSION["name"];
$liuyan=trim($_POST['ly']);
$link=mysqli_connect("localhost","root","123456","test01");
$sql1="UPDATE user SET liuyan = '$liuyan' WHERE name = '$name' ";
$result=mysqli_query($link,$sql1);
echo "留言成功";
header("Refresh:2;url=liuyanaf.php");
3.最后是所有用户留言的展示,与之前的登录注册等界面没有什么联系,只要连接数据库就可以了。我的思路是在php端验证liuyan字段是否为空,不为空则输出该行的name和liuyan字段。但是不管我用以下哪种方法,返回的结果都为null(也就是所有liuyan字段都不为空)
select name,liuyan from user where liuyan!=null;
select name,liuyan from user where liuyan!=‘null’;
所以说这里我想要的null其实就是空格,最后这样解决:
select name,liuyan from user where liuyan!=’ ';
header("Content-type:text/html;charset=utf-8");
$link=mysqli_connect("localhost","root","123456","test01");
$sql="select name,liuyan from user where liuyan!=' ';";
$result=mysqli_query($link,$sql);
while($row=mysqli_fetch_assoc($result))
{
echo "$row[name]说:$row[liuyan]
";
}
新增的代码实际上就只有两个php文件和一些form表单的改动,大量时间都用在了测试怎么各板块间如何传值上,还是有所收获的。
下面演示:
留言
over.