Я хочу, чтобы пользователь (в настоящее время вошел в систему) и его/ее 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));
}
}
?>
Это выглядит неправильно, так как я вижу переменные в вашем скрипте с именами $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 Injection Даже если вы избегаете ввода, это небезопасно! Использовать подготовленные параметризованные утверждения
Также во время тестирования добавьте
ini_set('display_errors', 1);
ini_set('log_errors',1);
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
в верхней части вашего скрипта. Это заставит любые ошибки mysqli_
генерировать исключение, которое вы можете увидеть в браузере, и другие ошибки также будут видны в вашем браузере.