Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: условие if
 
 автор: adminn   (26.06.2014 в 03:22)   письмо автору
 
 

Добрый день.
Подскажите как сделать условие.

Есть скрипт отправки
<?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:24)   письмо автору
 
   для: adminn   (26.06.2014 в 03:22)
 

Если хоть одна переменная не ровна 0, то выполняем работу. По моему это false называется )

  Ответить  
 
 автор: adminn   (26.06.2014 в 04:12)   письмо автору
 
   для: adminn   (26.06.2014 в 03:24)
 

почитал, повникал...
вообщед должно работать так, но почему то всегда выполняет скрипт, если даже не передаю параметры из формы

if (isset($message)) 
    
{
  
   mail($to, $subject, $message, $headers);
}
else
{
 
}

  Ответить  
 
 автор: confirm   (26.06.2014 в 05:07)   письмо автору
 
   для: adminn   (26.06.2014 в 04:12)
 

Сомнительно, что вникали, если только читали.

  Ответить  
 
 автор: moonfox   (26.06.2014 в 06:24)   письмо автору
 
   для: adminn   (26.06.2014 в 04:12)
 

а не кажется ли что оно set ?
$message = "Name: " .....................
и пустая будет тоже set если чо.

  Ответить  
 
 автор: Lotanaen   (26.06.2014 в 10:13)   письмо автору
 
   для: 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);

  Ответить  
 
 автор: KPETuH   (26.06.2014 в 11:03)   письмо автору
 
   для: adminn   (26.06.2014 в 03:22)
 

if (!empty($_POST['a']) && !empty($_POST['m'])) {
    бла-бла-бла...
} else {
    не бла-бла-бла...
}

  Ответить  
 
 автор: confirm   (26.06.2014 в 11:18)   письмо автору
 
   для: KPETuH   (26.06.2014 в 11:03)
 

<?
$var 
' ';
echo empty(
$var) ? 0;


Как видите далеко не бла-бла. Ну думать то в конце концов надо?

  Ответить  
 
 автор: KPETuH   (26.06.2014 в 11:33)   письмо автору
 
   для: confirm   (26.06.2014 в 11:18)
 

"поспешишь людей насмешишь" )

  Ответить  
 
 автор: KPETuH   (26.06.2014 в 11:32)   письмо автору
 
   для: KPETuH   (26.06.2014 в 11:03)
 

if (!empty(trim($_POST['a'])) && !empty(trim($_POST['m']))) {
    бла-бла-бла...
} else {
    не бла-бла-бла...
}

  Ответить  
 
 автор: confirm   (26.06.2014 в 11:47)   письмо автору
 
   для: KPETuH   (26.06.2014 в 11:32)
 

Это тоже не есть хорошо, потому как вторично придется чистить значения.

  Ответить  
 
 автор: KPETuH   (26.06.2014 в 12:18)   письмо автору
 
   для: confirm   (26.06.2014 в 11:47)
 

Согласен. Но это уже другой вопрос который в теме не стоял ).
А так?
if (!empty($name = trim($_POST['a'])) && !empty($mail = trim($_POST['m']))) { 

  Ответить  
 
 автор: confirm   (26.06.2014 в 12:22)   письмо автору
 
   для: KPETuH   (26.06.2014 в 12:18)
 

Не важно стоял ли или нет, вы ведь решение предлагаете. Кстати, в условии было ИЛИ. А что касается в общем, то "если пользователь вбил имя или например почту, то скрипт выполняется" не поддается никакому логическому суждению.

Все это вытекает из уровня познаний - "Если хоть одна переменная не ровна 0, то выполняем работу. По моему это false называется". Значит предлагая как, уж предлагайте решение логичное.

  Ответить  
 
 автор: adminn   (26.06.2014 в 17:43)   письмо автору
 
   для: KPETuH   (26.06.2014 в 12:18)
 

У Вас тут дебаты, это хорошо конечно) Но не могли бы вы помочь в решении. Задача: если из формы не передается не один параметр, то скрипт не выполняется, если хоть 1 параметр передали, делаем отправку.

  Ответить  
 
 автор: confirm   (26.06.2014 в 17:59)   письмо автору
 
   для: adminn   (26.06.2014 в 17:43)
 

А для вас "быть или не быть...", это отправлять или нет, и не важно, если, например, вместо адреса любую лабуду напишут?

Кириллицу в полях заголовка нужно кодировать, иначе ее не прочесть.

  Ответить  
 
 автор: adminn   (26.06.2014 в 18:20)   письмо автору
 
   для: confirm   (26.06.2014 в 17:59)
 

т.е вы предлагаете сделать валидацию на js и не парится, но тгда на мой файл сенд будут переходить роботы ежедневно и мне будут приходить пустные письма сотнями

  Ответить  
 
 автор: confirm   (26.06.2014 в 18:22)   письмо автору
 
   для: adminn   (26.06.2014 в 18:20)
 

А почему проверка, это JS? На клиенте это скорее предупреждение, а не проверка, проверять должен сервер.

  Ответить  
 
 автор: adminn   (26.06.2014 в 18:24)   письмо автору
 
   для: confirm   (26.06.2014 в 18:22)
 

ну подскажите как сделать.

>если из формы не передается не один параметр, то скрипт не выполняется, если хоть 1 параметр передали, делаем отправку.

по моему это и будет проверка , ее я и хочу сделать

  Ответить  
 
 автор: perfect-noob   (26.06.2014 в 18:43)   письмо автору
 
   для: 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) > 0Send_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>



любись на здоровье...

  Ответить  
 
 автор: adminn   (26.06.2014 в 20:03)   письмо автору
 
   для: 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) > 0Send_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); 


?> 


Что я делаю не так?(

  Ответить  
 
 автор: perfect-noob   (26.06.2014 в 20:25)   письмо автору
 
   для: adminn   (26.06.2014 в 20:03)
 

у кнопки нет имени button

  Ответить  
 
 автор: adminn   (26.06.2014 в 21:15)   письмо автору
 
   для: perfect-noob   (26.06.2014 в 20:25)
 

 <input type="submit" name="button" value="send" />

письма не доходят. может потому, что я заполняю только поле fio
мой скрипт, что выше письма отправляет, но не работает как мне нужно

  Ответить  
 
 автор: adminn   (26.06.2014 в 21:42)   письмо автору
 
   для: 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) > 0Send_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); 


?> 


Что тут может быть не так не могу представить

  Ответить  
 
 автор: adminn   (26.06.2014 в 22:01)   письмо автору
 
   для: 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) > 0Send_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> 

  Ответить  
 
 автор: moonfox   (26.06.2014 в 22:09)   письмо автору
 
   для: adminn   (26.06.2014 в 22:01)
 

ничего не отправит если поле не заполнено

http://photo3d.com.ua/test.php
введи в поле свое мыло

  Ответить  
 
 автор: adminn   (27.06.2014 в 02:18)   письмо автору
 
   для: moonfox   (26.06.2014 в 22:09)
 

ну мне то нужно, что бы если хоть одно поле заполнено, то отправлял
кто подскажет?

  Ответить  
 
 автор: adminn   (27.06.2014 в 02:24)   письмо автору
 
   для: 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 параметр передали, делаем отправку. Не важно, что это будет, имя, почта....

  Ответить  
 
 автор: moonfox   (27.06.2014 в 02:35)   письмо автору
 
   для: adminn   (27.06.2014 в 02:24)
 

вечер обещал быть томным....
выше уже писали......

if (($name = trim($_POST['a'])) || ($mail = trim($_POST['m'])) || ..... )
 {  ....   }

  Ответить  
 
 автор: adminn   (27.06.2014 в 17:33)   письмо автору
 
   для: 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);
 }

?>

  Ответить  
 
 автор: moonfox   (27.06.2014 в 18:25)   письмо автору
 
   для: 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.

  Ответить  
 
 автор: adminn   (27.06.2014 в 19:56)   письмо автору
 
   для: moonfox   (27.06.2014 в 18:25)
 

спасибо) это не моя специальность, так, что особо не пинайте. а вот DW у меня стоит, только он не сказал в чем проблема. типа синтаксис и все

  Ответить  
 
 автор: adminn   (27.06.2014 в 20:11)   письмо автору
 
   для: moonfox   (27.06.2014 в 18:25)
 

не отправляет один фиг)))) пойду на фриланс))) спасибо и удачи кодеры)))

  Ответить  
 
 автор: moonfox   (27.06.2014 в 22:19)   письмо автору
 
   для: 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() данным из поста.

  Ответить  
 
 автор: confirm   (26.06.2014 в 18:45)   письмо автору
 
   для: adminn   (26.06.2014 в 18:24)
 

Это не проверка, а условие на отправку. Впрочем как знаете.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования