|
|
|
| Добрый день.
Подскажите как сделать условие.
Есть скрипт отправки
<?php
error_reporting(E_ALL);
$to = 'support@ty.com';
$subject = 'запрос';
$message = "Name: " . $_POST['a'] . "Mail: " . $_POST['m'] . "City: " . $_POST['city'] . "Message: " . $_POST['ms'] ."Tel: " .$_POST['tel']. "";
$headers = 'From: no-reply@ty.com';
mail($to, $subject, $message, $headers);
?>
|
Нужно сделать условие таким образом, что если не одно поле не заполнено, скрипт не выполняется, но если пользователь вбил имя или например почту, то скрипт выполняется. | |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 03:22)
| | Если хоть одна переменная не ровна 0, то выполняем работу. По моему это false называется ) | |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 03:24)
| | почитал, повникал...
вообщед должно работать так, но почему то всегда выполняет скрипт, если даже не передаю параметры из формы
if (isset($message))
{
mail($to, $subject, $message, $headers);
}
else
{
}
|
| |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 04:12)
| | Сомнительно, что вникали, если только читали. | |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 04:12)
| | а не кажется ли что оно set ?
$message = "Name: " .....................
и пустая будет тоже set если чо. | |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 03:22)
| |
error_reporting(E_ALL);
$to = 'support@ty.com';
$subject = 'запрос';
$headers = 'From: no-reply@ty.com';
$message = '';
if($_POST['a'])
$message .= "Name: " . $_POST['a'];
if($_POST['m'])
$message .= "Mail: " . $_POST['m'];
if($_POST['city'])
$message .= "City: " . $_POST['city'];
if($_POST['ms'])
$message .= "Message: " . $_POST['ms'];
if($_POST['tel'])
$message .= "Tel: " . $_POST['tel'];
if ($message)
mail($to, $subject, $message, $headers);
|
| |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 03:22)
| |
if (!empty($_POST['a']) && !empty($_POST['m'])) {
бла-бла-бла...
} else {
не бла-бла-бла...
}
|
| |
|
|
|
|
|
|
|
для: KPETuH
(26.06.2014 в 11:03)
| |
<?
$var = ' ';
echo empty($var) ? 1 : 0;
|
Как видите далеко не бла-бла. Ну думать то в конце концов надо? | |
|
|
|
|
|
|
|
для: confirm
(26.06.2014 в 11:18)
| | "поспешишь людей насмешишь" ) | |
|
|
|
|
|
|
|
для: KPETuH
(26.06.2014 в 11:03)
| |
if (!empty(trim($_POST['a'])) && !empty(trim($_POST['m']))) {
бла-бла-бла...
} else {
не бла-бла-бла...
}
|
| |
|
|
|
|
|
|
|
для: KPETuH
(26.06.2014 в 11:32)
| | Это тоже не есть хорошо, потому как вторично придется чистить значения. | |
|
|
|
|
|
|
|
для: confirm
(26.06.2014 в 11:47)
| | Согласен. Но это уже другой вопрос который в теме не стоял ).
А так?
if (!empty($name = trim($_POST['a'])) && !empty($mail = trim($_POST['m']))) {
|
| |
|
|
|
|
|
|
|
для: KPETuH
(26.06.2014 в 12:18)
| | Не важно стоял ли или нет, вы ведь решение предлагаете. Кстати, в условии было ИЛИ. А что касается в общем, то "если пользователь вбил имя или например почту, то скрипт выполняется" не поддается никакому логическому суждению.
Все это вытекает из уровня познаний - "Если хоть одна переменная не ровна 0, то выполняем работу. По моему это false называется". Значит предлагая как, уж предлагайте решение логичное. | |
|
|
|
|
|
|
|
для: KPETuH
(26.06.2014 в 12:18)
| | У Вас тут дебаты, это хорошо конечно) Но не могли бы вы помочь в решении. Задача: если из формы не передается не один параметр, то скрипт не выполняется, если хоть 1 параметр передали, делаем отправку. | |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 17:43)
| | А для вас "быть или не быть...", это отправлять или нет, и не важно, если, например, вместо адреса любую лабуду напишут?
Кириллицу в полях заголовка нужно кодировать, иначе ее не прочесть. | |
|
|
|
|
|
|
|
для: confirm
(26.06.2014 в 17:59)
| | т.е вы предлагаете сделать валидацию на js и не парится, но тгда на мой файл сенд будут переходить роботы ежедневно и мне будут приходить пустные письма сотнями | |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 18:20)
| | А почему проверка, это JS? На клиенте это скорее предупреждение, а не проверка, проверять должен сервер. | |
|
|
|
|
|
|
|
для: confirm
(26.06.2014 в 18:22)
| | ну подскажите как сделать.
>если из формы не передается не один параметр, то скрипт не выполняется, если хоть 1 параметр передали, делаем отправку.
по моему это и будет проверка , ее я и хочу сделать | |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 18:24)
| |
<?php
if(isset($_POST['button']))
{
$list = array();
foreach($_POST as $key => $val)
{
if(($val = trim($val)) && ($val != end($_POST))) $list[] = $key;
}
if(sizeof($list) > 0) Send_message($list);
}
function Send_message($list)
{
$headers = "Content-type: text/html; charset=windows-1251 \r\n";
$headers .= "From: My Super Site <admn@example.com>\r\n";
$subject = "Привет Чувак!!!";
$subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?=';
$match = array('fio' => 'Имя', 'tel' => 'Тел', 'emilo' => 'E-mail');
$Msg = '';
for($i = 0; $i < sizeof($list); $i ++)
$Msg .= $match[$list[$i]] . ': ' . $_POST[$list[$i]] . '<br />';
mail($to, $subject, $Msg, $headers);
}
?>
<form name="form1" method="post" action="">
<input type="text" name="fio" />
<input type="text" name="tel" />
<input type="text" name="emilo" />
<input type="submit" name="button" value="send" />
</form>
|
любись на здоровье... | |
|
|
|
|
|
|
|
для: perfect-noob
(26.06.2014 в 18:43)
| | спасибо, но у меня не получается реализовать.
есть файл contacts.html на моем сайте, там форма обратной связи:
<form id="contact-form" action="send.php" method="post" enctype="multipart/form-data">
<input name="fio" type="text" placeholder="Ваши фамилия и имя">
<input type="submit" value = "Send" class="button" />
</form>
|
Вот файл send.php:
<?php
if(isset($_POST['button']))
{
$list = array();
foreach($_POST as $key => $val)
{
if(($val = trim($val)) && ($val != end($_POST))) $list[] = $key;
}
if(sizeof($list) > 0) Send_message($list);
}
function Send_message($list)
{
$headers = "Content-type: text/html; charset=windows-1251 \r\n";
$headers .= "From: My Super Site <admn@example.com>\r\n";
$subject = "Привет Чувак!!!";
$subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?=';
$match = array('fio' => 'Имя', 'tel' => 'Тел', 'emilo' => 'E-mail');
$Msg = '';
for($i = 0; $i < sizeof($list); $i ++)
$Msg .= $match[$list[$i]] . ': ' . $_POST[$list[$i]] . '<br />';
$to = 'ТУТ ПОЧКА КУДА ПРИХОДИТ СООБЩЕНИЕ С САЙТА';
mail($to, $subject, $Msg, $headers);
}
?>
|
Что я делаю не так?( | |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 20:03)
| | у кнопки нет имени button | |
|
|
|
|
|
|
|
для: perfect-noob
(26.06.2014 в 20:25)
| |
<input type="submit" name="button" value="send" />
|
письма не доходят. может потому, что я заполняю только поле fio
мой скрипт, что выше письма отправляет, но не работает как мне нужно | |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 21:15)
| | вот форма
<form id="contact-form" action="send.php" method="post" enctype="multipart/form-data">
<input name="fio" type="text" placeholder="Ваши фамилия и имя">
<input type="submit" name="button" value="send" />
</form>
|
вот скрипт
<?php
if(isset($_POST['button']))
{
$list = array();
foreach($_POST as $key => $val)
{
if(($val = trim($val)) && ($val != end($_POST))) $list[] = $key;
}
if(sizeof($list) > 0) Send_message($list);
}
function Send_message($list)
{
$headers = "Content-type: text/html; charset=windows-1251 \r\n";
$headers .= "From: My Super Site <no-reply@center-beauty.com>\r\n";
$subject = "Привет Чувак!!!";
$subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?=';
$match = array('fio' => 'Имя', 'tel' => 'Тел', 'emilo' => 'E-mail');
$Msg = '';
for($i = 0; $i < sizeof($list); $i ++)
$Msg .= $match[$list[$i]] . ': ' . $_POST[$list[$i]] . '<br />';
$to = 'support@site.com'; // ТУТ ПОЧТА КУДА ОТПРАВЛЯЕМ
mail($to, $subject, $Msg, $headers);
}
?>
|
Что тут может быть не так не могу представить | |
|
|
|
|
|
|
|
для: perfect-noob
(26.06.2014 в 18:43)
| | Ваш скрипт не работает, а я себе голову ломаю!)))
Не чего не менял, только добавил кому отправлять и все.
Не работает. Есть предложение еще? Может мне заплатить? Кто может помочь без флуда бесполезного
<?php
if(isset($_POST['button']))
{
$list = array();
foreach($_POST as $key => $val)
{
if(($val = trim($val)) && ($val != end($_POST))) $list[] = $key;
}
if(sizeof($list) > 0) Send_message($list);
}
function Send_message($list)
{
$headers = "Content-type: text/html; charset=windows-1251 \r\n";
$headers .= "From: My Super Site <no-reply@center-beauty.com>\r\n";
$subject = "Привет Чувак!!!";
$subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?=';
$match = array('fio' => 'Имя', 'tel' => 'Тел', 'emilo' => 'E-mail');
$Msg = '';
for($i = 0; $i < sizeof($list); $i ++)
$Msg .= $match[$list[$i]] . ': ' . $_POST[$list[$i]] . '<br />';
$to = 'support@center-beauty.com';
mail($to, $subject, $Msg, $headers);
}
?>
<form name="form1" method="post" action="">
<input type="text" name="fio" />
<input type="text" name="tel" />
<input type="text" name="emilo" />
<input type="submit" name="button" value="send" />
</form>
|
| |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 22:01)
| | ничего не отправит если поле не заполнено
http://photo3d.com.ua/test.php
введи в поле свое мыло | |
|
|
|
|
|
|
|
для: moonfox
(26.06.2014 в 22:09)
| | ну мне то нужно, что бы если хоть одно поле заполнено, то отправлял
кто подскажет? | |
|
|
|
|
|
|
|
для: moonfox
(26.06.2014 в 22:09)
| | братец у меня есть скрипт, вот он
<?php
error_reporting(E_ALL);
$to = 'support@ty.com';
$subject = 'запрос';
$message = "Name: " . $_POST['a'] . "Mail: " . $_POST['m'] . "City: " . $_POST['city'] . "Message: " . $_POST['ms'] ."Tel: " .$_POST['tel']. "";
$headers = 'From: no-reply@ty.com';
mail($to, $subject, $message, $headers);
?>
|
меня все устраивает, мне нужно добавить только условие>
Задача: если из формы не передается не один параметр, то скрипт не выполняется, если хоть 1 параметр передали, делаем отправку. Не важно, что это будет, имя, почта.... | |
|
|
|
|
|
|
|
для: adminn
(27.06.2014 в 02:24)
| | вечер обещал быть томным....
выше уже писали......
if (($name = trim($_POST['a'])) || ($mail = trim($_POST['m'])) || ..... )
{ .... }
|
| |
|
|
|
|
|
|
|
для: moonfox
(27.06.2014 в 02:35)
| | Что я не так делаю? Опять не работает, подскажите.
<?php
error_reporting(E_ALL);
$to = 'support@center-beauty.com';
$subject = 'запрос';
$message = "Name: " . $_POST['a'] . "Mail: " . $_POST['m'] . "City: " . $_POST['city'] . "Message: " . $_POST['ms'] ."Tel: " .$_POST['tel']. "";
$headers = 'From: no-reply@center-beauty.com';
if (($name = trim($_POST['a'])) || ($mail = trim($_POST['m'])) || ($city = trim($_POST['city']) || ($mes = trim($_POST['ms']) || ($tel = trim($_POST['tel']))
{
mail($to, $subject, $message, $headers);
}
?>
|
| |
|
|
|
|
|
|
|
для: adminn
(27.06.2014 в 17:33)
| | кажется проблема в руках....
if (($name = trim($_POST['a'])) || ($mail = trim($_POST['m'])) || ($city = trim($_POST['city']) || ($mes = trim($_POST['ms']) || ($tel = trim($_POST['tel']))
|
тебе не кажется что скобок не хватает??
ты в блокноте код пишешь?
поставь DW. | |
|
|
|
|
|
|
|
для: moonfox
(27.06.2014 в 18:25)
| | спасибо) это не моя специальность, так, что особо не пинайте. а вот DW у меня стоит, только он не сказал в чем проблема. типа синтаксис и все | |
|
|
|
|
|
|
|
для: moonfox
(27.06.2014 в 18:25)
| | не отправляет один фиг)))) пойду на фриланс))) спасибо и удачи кодеры))) | |
|
|
|
|
|
|
|
для: adminn
(27.06.2014 в 20:11)
| |
<?php
error_reporting(E_ALL);
$to = 'support@center-beauty.com';
$subject = 'запрос';
$headers = 'From: no-reply@center-beauty.com';
if($_POST)
{
$message = "Name: " . $_POST['a'] . "Mail: " . $_POST['m'] . "City: " . $_POST['city'] . "Message: " . $_POST['ms'] ."Tel: " .$_POST['tel']. "";
if (($name = trim($_POST['a'])) || ($mail = trim($_POST['m'])) || ($city = trim($_POST['city'])) || ($mes = trim($_POST['ms'])) || ($tel = trim($_POST['tel'])))
{
// echo 'lol';
mail($to, $subject, $message, $headers);
}
}
?>
<form id="form1" name="form1" method="post" action="s.php">
<input type="text" name="a" id="textfield" />
<input type="text" name="m" id="textfield" />
<input type="text" name="city" id="textfield" />
<input type="text" name="ms" id="textfield" />
<input type="text" name="tel" id="textfield" />
<input type="submit" name="button" id="button" value="send" />
</form>
|
все работает.... ё ма ё...
советую научиться определять что не так, частично выполнять код, сотреть что оправляет, что принимает скрипт, ставь echo после условий, echo print_r() данным из поста. | |
|
|
|
|
|
|
|
для: adminn
(26.06.2014 в 18:24)
| | Это не проверка, а условие на отправку. Впрочем как знаете. | |
|
|
|