Я делал форму для вставки продуктов для администратора в проект электронной коммерции. Во время проверки данных формы я пытался проверить, являются ли данные формы пустыми или нет.
Таким образом, я ввел if
заявление и проверил значения всех параметров, переданных из формы и в if
Блок написал заявление эха.
Вот мой код:
<? php
//text variables
if(isset($_POST['insert_product'])){
$product_title = $_POST['product_title'];
$product_cat = $_POST['product_cat'];
$product_brand = $_POST['product_brand'];
$product_price = $_POST['product_price'];
$product_desc = $_POST['product_desc'];
$product_status = 'on';
$product_keywords = $_POST['product_keywords'];
//images variables
$product_img1 = $FILES['product_img1']['name'];
$product_img2 = $FILES['product_img2']['name'];
$product_img3 = $FILES['product_img3']['name'];
//temp names
$temp_name1 = $FILES['product_img1']['tmp_name'];
$temp_name2 = $FILES['product_img2']['tmp_name'];
$temp_name3 = $FILES['product_img3']['tmp_name'];
//validation and insertion query
if($product_title == '' OR $product_cat == '' OR $product_brand == '' OR $product_keywords == '' OR $product_img1 == '' OR $product_price == ''){
echo"<script>alert('you have not entered all the values')</script>";
exit();
}
}
?>
Это производит вывод как
(… alert (‘вы не ввели все значения’); «; exit ();}} ….)
Пожалуйста, помогите мне решить эту проблему.
Я использую Sublime text и проверил то же самое в Notepad ++, но выдает ту же ошибку.
Это прекрасно работает для меня. Попробуйте перебрать $ _POST в цикле, проверяя значения таким образом. Это сократит ваш код и облегчит чтение в будущем:
<?php
if (isset($_POST)) {
foreach ($_POST as $key => $value) {
if (!isset($_POST[$key]) || $value == "") {
echo "<script> alert('you have not entered all the values'); </script>";
exit;
}
}
}
Тем не менее, вы должны попытаться сохранить $ _POST и использовать очищенную строку, если вы используете данные, предоставленные пользователем:
<?php
if (isset($_POST)) {
// Clean a string, making it safe for using with a database.
function clean_string($string) {
global $mysqli;
$string = $mysqli->real_escape_string($string);
stripslashes($string);
return $string;
}
foreach ($_POST as $key => $value) {
if (!isset($_POST) || $value == "") {
echo "<script> alert('you have not entered all the values'); </script>";
exit;
}
// If you're going to be using this $_POST data with a database you should also
// clean the strings before using them in any way.
$Data = new stdClass();
foreach ($_POST as $key => $value) {
if (isset($_POST[$key]) && $_POST[$key] !== "") {
$Data->$key = clean_string($value);
}
}
}
// All of the $_POSTed items are set and cleaned for use. Do what you will with them below.
}
попробуйте следующее, * обратите внимание на точку с запятой
echo "<script language='javascript'>alert('thanks!');</script>";
echo"<script>alert('you have not entered all the values');</script>";
используйте это ….. вы забыли точку с запятой после)