Так что я пытаюсь создать простой сайт электронной коммерции. Как только я отправлю форму (btn-submit), я не могу вставить какие-либо данные в свою базу данных. Выполняется только проверка адреса и контактного номера.Мой код не показывает errmsg, но не вставляет никаких данных в базу данных
Вот мой код:
if (isset($_POST['btn-submit'])) {
// clean user inputs
$oadd = trim($_POST['oadd']);
$oadd = strip_tags($oadd);
$oadd = htmlspecialchars($oadd);
$contact = trim($_POST['contact']);
$contact = strip_tags($contact);
$contact = htmlspecialchars($contact);
// address validation
if (empty($oadd)) {
$error = true;
$oaddError = "Please enter a valid address.";
} else if (strlen($oadd) < 5) {
$error = true;
$oaddError = "Please enter a valid address.";
}
// contact number validation
if (empty($contact)) {
$error = true;
$contactError = "Please enter your contact number.";
} else if (strlen($contact) < 7) {
$error = true;
$contactError = "Contact number must have atleast 7 digits.";
} else if (!preg_match("/^[0-9 ]+$/",$lname)) {
$error = true;
$lnameError = "Please enter a valid contact number.";
}
// if there's no error, continue to place order
if(!$error) {
$query = 'INSERT INTO cust_order(Order_Date, Order_Status, Order_Total , Address, Contact_No) VALUES (CURDATE(), "in process" , (SELECT SUM(p.Product_Price) FROM cart c, product p WHERE c.Prod_ID = p.Product_ID and c. User_ID = "'.$userRow['User_ID'].'"),"'.$oadd.'","'. $contact.'")';
$res = mysql_query($query);
if ($res) {
$errTyp = "success";
$errMSG = "Your order has been placed. To view the details, go to your order history";
unset($oadd);
unset($contact);
} else {
$errTyp = "danger";
$errMSG = "Something went wrong. Please try again later.";
}
}
}
Что может быть не так с моим кодом? Я делал подобные запросы на других страницах, но это единственный, кто не работает. Любая помощь будет принята с благодарностью! Заранее спасибо!
'$ userRow [ 'user_id' ] 'Я не нахожу значение userRow? –
извините. вот мой код до того, как он выше $ res = mysql_query ("SELECT * FROM users WHERE User_ID =". $ _ SESSION ['user']); $ userid = $ _ SESSION ['user']; $ userRow = mysql_fetch_array ($ res); $ error = false; if (isset ($ _ POST ['btn-submit'])) { – angelica
** ПРЕДУПРЕЖДЕНИЕ **: Если вы просто изучаете PHP, пожалуйста, не используйте ['mysql_query'] (http: // php .net/manual/en/function.mysql-query.php). Это так ужасно и опасно, что он был удален в PHP 7. Замена, такая как [PDO, не трудно учиться] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /) и руководство, подобное [PHP The Right Way] (http://www.phptherightway.com/), объясняет лучшие практики. Ваши пользовательские данные ** не ** [правильно экранированы] (http://bobby-tables.com/php.html), и есть [SQL-инъекции ошибок] (http://bobby-tables.com/) и могут эксплуатироваться. – tadman