Не работает скрипт, выполняется игнорируя условия.

Статус
В этой теме нельзя размещать новые ответы.

DivineShadow

Создатель
Регистрация
9 Сен 2016
Сообщения
16
Реакции
6
Имеется скрипт, работает исправно всё как мне нужно. НО, при запросе в адресной строке файла скрипта, исполняется игнорируя условия.
PHP:
<?php

/* Задаем переменные */
$name = htmlspecialchars($_POST["name"]);
$email = htmlspecialchars($_POST["email"]);
$tel = htmlspecialchars($_POST["tel"]);
$message = htmlspecialchars($_POST["message"]);
$bezspama = htmlspecialchars($_POST["bezspama"]);
$det = ($_POST['d']);
$jen = ($_POST['j']);
$muj = ($_POST['m']);
$mathcap = ($_POST['mathcap']);
$rand_code = ($_POST['rand_code']);
if (isset($tel)){
/* Ваш адрес и тема сообщения */
$address = "info@some.ru";
$sub = "=?utf-8?B?". base64_encode("Нам заказали звонок"). "?=";
$header.="\nContent-type: text/html; charset=\"utf-8\"";
/* Формат письма */
$mes = "
Нам заказали звонок.\n <br />
Имя отправителя: $name \n <br />
Электронный адрес отправителя: $email \n <br />
Телефон отправителя: $tel \n <br />
Нужна рассылка по: $d $j $m ассортименту \n <br />
Текст сообщения: \n <br />
$message ";
}
else {
    exit;
}
if (empty($bezspama) && ($mathcap == $rand_code) && (isset($tel))){ /* Оценка поля bezspama - должно быть пустым*/

$from  = "From: $name <$email> \r\n Reply-To: $email \r\n $header"; /* Отправляем сообщение, используя mail() функцию */
(mail($address, $sub, $mes, $from));
}
exit; /* Выход без сообщения, если поле bezspama чем-то заполнено */   
?>
<script>history.go(-1)</script>
</head>

заключаю всё в if (not null), проверяю empy добавляю обязытальное isset, и всё равно при запросе в браузере - скрипт долбит пустые письма нам на mail ящик. Где ошибка в логике ?
 
Да божеж мой. Учите PHP!
isset - проверяет, установлена ли переменная (то есть не null).
Код:
$tel = htmlspecialchars($_POST["tel"]); // переменная ставится, даже если $_POST["tel"] не существует! Будет пустая строка
if(isset($tel)) ... // это всегда true, так как пустая строка !== null
Делайте или проверку на пустую строку, или на isset($_POST['tel'])
 
Для просмотра ссылки Войди или Зарегистрируйся

как- раз курил табличку-мануал по различию )
спасибо за отзывчивость, вопрос был и вправду разражающим :ah:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху