是否与session_start()相关的错误?

时间:2016-08-24 00:20:14

标签: php mysql session post session-variables

我在我的网站上有一个页面,用于将评论从用户个人资料页面上传到社区部分。

页面工作正常,但我需要添加一个'用户名'表的外键,以确定谁发布了帖子,所以我试图使用会话功能来做到这一点。

在下面的代码中,我添加的三个功能(在此之前页面正常工作)是$ 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');
        }
        }
        }

0 个答案:

没有答案