繁体   English   中英

PHP如何显示用户数据

[英]PHP how to display user data

我试图显示已登录的唯一用户,然后将其存储到数据库中的表中,例如,如果我以James身份登录,则想显示数据库中James的数据并将其ID存储到另一个表中。我的理解$ _SESSION ['login_user']; 应该返回唯一的用户名。

每当我运行时,我都会收到此错误,这是输出:

注意:未定义的索引:第3行的C:\\ xampp \\ htdocs \\ bid.php中的login_user

注意:未定义的变量:第8行的C:\\ xampp \\ htdocs \\ bid.php中的SESSION感谢您与我们联系

login.php

<?php
   include("config.php");
   session_start();

   if($_SERVER["REQUEST_METHOD"] == "POST") {
      // username and password sent from form 

      $myusername = mysqli_real_escape_string($conn,$_POST['username']);
      $mypassword = mysqli_real_escape_string($conn,$_POST['password']); 

      $sql = "SELECT customer_id FROM customer WHERE email_adress = '$myusername' and password = '$mypassword'";
      $_SESSION['username'] = $myusername
      $result = mysqli_query($conn,$sql);
      $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
      $active = $row['customer_id'];

      $count = mysqli_num_rows($result);

      // If result matched $myusername and $mypassword, table row must be 1 row

 if($count >= 1) {
     $_SESSION['login_user'] = $myusername;

     header("location: index2.php");
  }else {
     $error = "Your Login Name or Password is invalid";
  }
   }
?>

bid.php:

<?php
    session_start();
    echo $_SESSION['username'];
require 'config.php';
//include "job.php" 
$jobid    = $_POST['job_id'];
$bid    = $_POST['bid'];
bidderid = $SESSION['username']
echo "$jobid";






$query   = "INSERT into bid (bid_amount,job_id) VALUES('" . $bid . "','" . $jobid . "')";
$success = $conn->query($query);

if (!$success) {
    die("Couldn't enter data: ".$conn->error);

}

echo "Thank You For Contacting Us <br>";

$conn->close();

 ?>

session.php

<?php
   include('config.php');
   session_start();

   $user_check = $_SESSION['login_user'];

   $ses_sql = mysqli_query($conn,"select email_adress from customer where email_adress = '$user_check' ");

   $row = mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);

   $login_session = $row['email_adress'];

   if(!isset($_SESSION['login_user'])){
      header("location:login.php");
   }
?>

login.php

<?php
   session_start();
   // session should start here

   include("config.php");


   if($_SERVER["REQUEST_METHOD"] == "POST") {
      // username and password sent from form 

      $myusername = mysqli_real_escape_string($conn,$_POST['username']);
      $mypassword = mysqli_real_escape_string($conn,$_POST['password']); 

      $sql = "SELECT customer_id FROM customer WHERE email_adress = '$myusername' and password = '$mypassword'";

      $_SESSION['username'] = $myusername; // you missed a semi colon

      $result = mysqli_query($conn,$sql);
      $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
      $active = $row['customer_id'];

      $count = mysqli_num_rows($result);

      // If result matched $myusername and $mypassword, table row must be 1 row

 if($count >= 1) {

     $_SESSION['login_user'] = $myusername; // $myusername contains username of this user

     $_SESSION['login_data'] = $row; // $row contains user record from the db. including customer_id etc..


     header("location: index2.php");
  }else {
     $error = "Your Login Name or Password is invalid";
  }
   }
?>

现在,如果成功,在bid.php和其他所有页面中都可以使用$ _SESSION ['login_user']。

  1. 在session.php中,请还原为这些。

      <?php session_start(); // this should be called first before including external files include('config.php'); $user_check = $_SESSION['login_user']; $ses_sql = mysqli_query($conn,"select email_adress from customer where email_adress = '$user_check' "); $row = mysqli_fetch_array($ses_sql,MYSQLI_ASSOC); $login_session = $row['email_adress']; if(!isset($_SESSION['login_user'])){ header("location:login.php"); } ?> 
  2. 在bid.php中,请参考此内容。

      $bidderid = $_SESSION['login_user']->username or $_SESSION['login_user']['username'] 

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM