PHP if работает наоборот

12
B
На сайте с 14.04.2012
Offline
35
1200

<?php

$from = 'mail@mymail.ru';
$subject = $_POST['tema'];
$text = $_POST['message'];

if ($subject and $text == 0){
echo"Заполните данные";
}else{

$db = mysqli_connect('localhost', 'elvis', '123456', 'elvis')
or die ('НЕ коннектиться с БД');
$query = "SELECT * FROM email_list";
$result = mysqli_query($db, $query);

while ($row = mysqli_fetch_array($result)) {
$first_name = $row['first_name'];
$second_name = $row['second_name'];

$msg = "Уважаемый $first_name $second_name, \n $text";
$to=$row['email'];
mail( $to, $subject, $msg, 'From: '.$from);
echo 'Письма отправлены к: '.$to. ' <br />';
}
}


mysqli_close($db);

?>

Смысл в том, что если в html форме не введены данные, должно вывести "Заполните данные". В случае введенных данных все должно отправиться из условий для базы данных.

Но соль в том, что все присходит наоборот. Пустую форму отправляет, а если вписать туда что-нибудь выдает как раз таки ошибку о небходимости заполнения полей +

Warning: mysqli_close() expects parameter 1 to be mysqli, null given in Z:\тырыпыры\sendmail.php on line 27

siv1987
На сайте с 02.04.2009
Offline
427
#1

if(! $subject OR ! $text )

И mysqli_close() лучше всунуть в блок условия где выполняется подключение.

B
На сайте с 14.04.2012
Offline
35
#2
if(! $subject OR ! $text )

к сожалению теперь и при вводе и при оставленных пустых полях пишет "Заполните данные"

KV
На сайте с 22.12.2011
Offline
88
#3

А так?

if ((isset($subject)&&$subject!='')&&(isset($text)&&$text!='')){

echo "Заполните данные";

}

Как бы на тебя ни давили, никогда не соглашайся на роль, что тебе не нравится *** http://handmade.tigress.com.ua
B
На сайте с 14.04.2012
Offline
35
#4
if ((isset($subject)&&$subject!='')&&(isset($text)&&$text!='')){
echo "Заполните данные";
}

К сожалению тоже не работает

T
На сайте с 11.08.2005
Offline
181
#5

if (!isset($subject) || !isset($text) || (isset($subject) && strlen($subject)<3) || (isset($text) && strlen($text)<10) ) 
{
echo "Заполните данные";
}

Работать будет - но такая писанина зачастую называется "го*нокод"

B
На сайте с 14.04.2012
Offline
35
#6

Yes, работает

KV
На сайте с 22.12.2011
Offline
88
#7

method="POST" в форме прописан?

B
На сайте с 14.04.2012
Offline
35
#8

Гуру, скажите, почему вроде правильная конструкция

if ($subject and $text == 0){
дает неверное выполнение?

---------- Добавлено 19.04.2012 в 14:26 ----------

K_V_S,да. POST

---------- Добавлено 19.04.2012 в 14:33 ----------

if (empty($subject)){

if (empty($text)){
{
echo "Заполните данные";

}}
else{
Так правильнее было бы?
S0
На сайте с 20.11.2010
Offline
32
#9

bimbo, потому что она совершенно НЕ правильная, причем аж дважды неправильная - и синтаксически (and нет в php), и логически (даже если б был, выражение ни о чем).

B
На сайте с 14.04.2012
Offline
35
#10
bimbo, потому что она совершенно НЕ правильная, причем аж дважды неправильная - и синтаксически (and нет в php), и логически (даже если б был, выражение ни о чем).

благодарю. уяснил. and это &&

or это ||

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий