如何获取用户seision数据并将其插入到另一个表中

55ooxyrt  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(344)

我想从数据库表中获取用户(当前已登录)的电子邮件和uid,然后将其插入另一个表中。我已经试过了,但我得到的是空白的结果,是在uid和电子邮件。

<?php

    session_start();

     if(isset($_POST['button'])){

     $bidamount = $_POST['bidamount'];
     $email = $_SESSION['$u_email'];
     $uid = $_SESSION['$u_uid'];

     //TO ALERT SUBMISSION OF BLANK FIELDS(IT DOESN'T PREVENT SUBMISSION OF BLANK FIELD THOUGH)
     if (!$bidamount){
         echo "can't submit blank fields";
     }

     //TO CONFIRM YOU ARE CONNECTED TO YOUR DATABASE (OPTIONAL)
     $connection = mysqli_connect('localhost', 'root', '', 'tickmill_auctions');
     if ($connection){
         header ("Location: ../Afterlogin.php?action=success");
     }else{
         die("connection failed");
     }
     //TO INSERT username and password from field to jossyusers database
     $query = "INSERT INTO orders(bidamount,email,uid) VALUES('$bidamount','$email','$uid')";
     $result = mysqli_query($connection, $query);
     if(!$result){
         die("OOPPS! query failed".mysqli_error($connection));
      }
    }

    ?>
rhfm7lfc

rhfm7lfc1#

这看起来是错误的,因为我在脚本中没有看到有名称的变量 $u_email 以及 $u_uid ```
$email = $_SESSION['$u_email'];
$uid = $_SESSION['$u_uid'];

拆下 `$` 标志和尝试

$email = $_SESSION['u_email'];
$uid = $_SESSION['u_uid'];

或者,如果您确实设置了这些变量,请使用双引号而不是像这样的单引号

$email = $_SESSION["$u_email"];
$uid = $_SESSION["$u_uid"];

警告:您的脚本很容易受到sql注入攻击,即使您正在转义输入,也不安全!使用准备好的参数化语句
同时在测试时,添加

ini_set('display_errors', 1);
ini_set('log_errors',1);
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

到你剧本的顶端。这将迫使任何 `mysqli_` 错误以生成可以在浏览器上看到的异常,其他错误也可以在浏览器上看到。

相关问题