我在我的网站上有一个页面,用于将评论从用户个人资料页面上传到社区部分。
页面工作正常,但我需要添加一个'用户名'表的外键,以确定谁发布了帖子,所以我试图使用会话功能来做到这一点。
在下面的代码中,我添加的三个功能(在此之前页面正常工作)是$ date,$ time和$ _SESSION ['用户名'] = $ _ POST [&#39 ;用户名&#39]。
$ date和$ time变量用于为帖子添加时间戳,以及$ _SESSION ['用户名'] = $ _ POST ['用户名']将会是表的主键。
由于我添加了这三个变量,(是的,它们被添加到表中)我收到一个错误:
注意:未定义的索引:第12行的C:\ xampp \ htdocs \ soiree' _2 \ create_post_script.php中的用户名
注意:未定义的索引:第22行的C:\ xampp \ htdocs \ soiree' _2 \ create_post_script.php中的用户名 失败
$ _SESSION变量似乎有问题。那就是说,我的会话变量的实现是不正确的?
如下所示,该页面以' start_session();'开头。功能,我的登录脚本也是如此。我理解这一点的方式是当我的用户登录时,$ _POST ['用户名']被分配到$ _SESSION ['用户名'],以便在后续页面上,比如当他们去发帖或发表评论时,$ _SESSION ['用户名']会抓取凭据以插入表格列中的用户名'。
也许很明显这是我第一次使用会话变量/函数。下面是相关页面的代码(评论页面)和下面登录的脚本。感谢。
<?php
session_start();
include('db.php');
$event_name='';
$place='';
$t='';
$d='';
$description='';
$_SESSION['username'];
$time='';
$date='';
$event_name=strip_tags($_POST['event_name']);
$place=strip_tags($_POST['place']);
$t=strip_tags($_POST['time']);
$d=strip_tags($_POST['date']);
$description=strip_tags($_POST['event_description']);
$_SESSION['username']=strip_tags($_POST['username']);
$time=time();
$date=date("y-m-d");
if(isset($_POST['submit']))
{
$query = "INSERT INTO user_posts (date, time, username, title, location, t, d, description)";
$query .= "VALUES ('$date','$time','$_SESSION["username"]','$event_name','$place','$t','$d','$description')";
if (mysqli_query($connection, $query)) {
echo "<h2> your post has been submitted </h2>";
}
else {
die('failure');
}
}
以下内容来自登录脚本;
<?php
session_start();
include("db.php");
if(isset($_POST['submit'])) {
$username = $_POST["username"];
$password = $_POST["password"];
$u_check= mysqli_query($connection, "SELECT username AND password FROM registration WHERE username='$username' AND password='$password'");
$check=mysqli_num_rows($u_check);
if($check==1) {
$_SESSION['auth'] = "yes";
$_SESSION['username'] = $_POST['username'];
header("location: home.php");//echo "succesful login";
}
else {
echo "invalid login info";
$result=mysqli_query($connection, $query);
if(!$result){
die('failure');
}
}
}