Надеюсь, что я правильно описал свою проблему. Я создал базу данных для столовой. Это имеет следующие таблицы: заказы, члены ISA-менеджер и серверы, продукты и категории. В табличных заказах я должен вставлять такие функции, как название, количество, дату и время, сумма и имя пользователя соответствующего сервера. Мне удалось это сделать через php в моих файлах, опубликованных ранее на этом форуме (перейдите по ссылке: Insert data from textbox and checkbox into database).Проблемы с неопределенным индексом в php/mysql
Веб-среда до сих пор состоит из: а) index.php, members.php (эти файлы отвечают за логином и аутентификации любого вида пользователя, либо администратор или служит б) addorder_form. .php и addorder.php в виде формы заказа и вставки данных заказа в базу данных. Я не могу заставить мою систему печатать имя пользователя каждого сервера для каждого заказа. я пытался что-то вроде этого, но я «ве получил ошибку неопределенного индекса пользователя:
<?php
session_start();
include_once("buzzcafe_fns.php");
include_once("members.php");
do_html_header("");
$conn = mysql_connect("localhost", "root", "");
$db=mysql_select_db("buzzcafe" ,$conn);
db_connect();
if (isset($_SESSION['username']){
if (isset($_POST['products'])) {
if (isset($_POST['quantity'])) {
foreach($_POST['products'] as $key => $products){
$quantity = isset($_POST['quantity'][$key])? $_POST['quantity'][$key]:'Not selected';
date_default_timezone_set('Europe/Athens');
$date = date('Y-m-d H:i:s');
$message[] = $products.' - x'.$quantity;
$insertOrder = mysql_query("INSERT INTO orders (datetime,title,quantity,username) VALUES('".$date."','".$products."','".$quantity."', '".$_SESSION['username']."')")or die(mysql_error());
echo $_SESSION['username'];
}
}
echo implode(',', $message);
echo "<br/>";
echo "<br />Record inserted";
echo "<br/>";
echo $date;
}
else { echo "You did not choose a quantity."; }
}else { echo "You did not choose any product."; }
}
?>
Почему имя пользователя неопределенные?
Часть members.php:
<?php
if (isset($_POST['username']) && isset($_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password'];
if ((!$username) || (!$password)) {
do_html_header('');
echo '<h3 style="color:#800000;">Please fill in both fields</h3><br><br></br></br>';
display_login_form();
}
else {
$sql = mysql_query('SELECT * FROM members WHERE username="'.$_POST['username'].'" AND password=sha1("'.$_POST['password'].'")') or die(mysql_error());
$login_check_member = mysql_num_rows($sql);
if($login_check_member > 0) {
while($row = mysql_fetch_array($sql)) {
$role = $row["role"];
$_SESSION['role'] = $role;
$us = $row["username"];
$_SESSION['username'] = $us;
$username = $_SESSION['username'];
}
}
я включить этот файл в моем файле addorder.php.
установлен ли Вы имя пользователя в сессии в любом месте? – Darren
Пожалуйста, не используйте функции mysq_ *, поскольку они устарели. Подумайте об использовании [PDO] (http://be1.php.net/pdo) или [MySQLi] (http://php.net/manual/en/book.mysqli.php) – DarkBee
** Построение SQL-операторов с внешним переменные, вы полностью раскрываете атаки SQL-инъекций. ** Кроме того, любые входные данные с одинарными кавычками в нем, такие как имя «O'Malley», взорвут ваш SQL-запрос. Пожалуйста, узнайте об использовании параметризованных запросов, желательно с модулем PDO, для защиты вашего веб-приложения. У http://bobby-tables.com/php есть примеры, чтобы вы начали, и [этот вопрос] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in- php) имеет много примеров. –