Пустые поля из формы

188
09 июня 2017, 12:14

Ситуация такая. Есть многостраничная форма, еле как в интернете нашла. Все бы хорошо, единственная проблема это пустые поля, либо "name" которые были заданы. Подскажите в чем ошибка.

     <?php 
  
  if (isset($_POST['stroim'])) {$stroim = $_POST['stroim'];} 
 
if (isset($_POST['plo'])) {$plo = $_POST['plo'];} 
 
if (isset($_POST['ytag'])) {$ytag = $_POST['ytag'];}; 
 
if (isset($_POST['material'])) {$material = $_POST['material)'];} 
 
if (isset($_POST['completaci'])) {$completaci = $_POST['completaci)'];} 
 
if (isset($_POST['object'])) {$object = $_POST['object)'];} 
 
if (isset($_POST['stroika'])) {$stroika = $_POST['stroika)'];} 
 
 if (isset($_POST['budget'])) {$budget = $_POST['budget)'];} 
     
    $to = ""; //укажите ваш адрес 
    $headers = "Content-type: text/plain; charset = UTF-8"; 
    $subject = "Сообщение с вашего сайта"; 
    $message = "Имя пославшего: $stroim \nЭлектронный адрес: $plo \nСообщение: $ytag \nМатериал: $material \nКомплектация: $completaci \nОбъект: $object \nСтройка: $stroika \nБюджет: $budget"; 
    $send = mail ($to, $subject, $message, $headers); 
    if ($send == 'true') 
    { 
    echo "<b>Спасибо за отправку вашего сообщения!<p>"; 
echo "<a href=index3.html>Нажмите,</a> чтобы вернуться на главную страницу"; 
} 
 
    else 
    { 
    echo "<p><b>Сообщение не отправлено. Приносим свои извинения."; 
    echo "<p><b>Попробуйте повторить отправку позже"; 
    } 
    ?> 
<div class="q-num">Вопрос 5 из 8</div> 
        <form   method="post" action="object.php"> 
        <textarea style="display:none;" name="stroim"> 
          <?php 
         if (isset($_POST['stroim'])) {$stroim = $_POST['stroim'];} 
          echo "$stroim"; 
 
          ?> 
        </textarea> 
        <textarea style="display:none;" name="plo"> 
          <?php 
          if (isset($_POST['plo'])) {$plo = $_POST['plo'];} 
 
          echo "$plo"; 
          ?> 
        </textarea> 
        <textarea style="display:none;" name="ytag"> 
        	<?php 
         if (isset($_POST['ytag'])) {$ytag = $_POST['ytag'];} 
          echo "$ytag"; 
          ?> 
        </textarea> 
        <textarea style="display:none;" name="material"> 
        	<?php 
          if (isset($_POST['material'])) {$material = $_POST['material)'];} 
          echo "$material"; 
          ?> 
        </textarea> 
        <div class="item-title item-6-title">Комплектация</div> 
        <label><input type="radio" id="radio 17" name="completaci">Сруб</label><br> 
        <label><input type="radio" id="radio 18" name="completaci">Сруб+фундамент</label><br> 
        <label><input type="radio" id="radio 19" name="completaci">Сруб+фундамент+кровля</label><br> 
        <input class="send" type="submit" value=Далее>	 
        </form>		 
</div>

Answer 1

1) Проверку лучше сделать вот такую (более гибкий вариант):

$stroim = isset($_POST["stroim"]) ? $_POST["stroim"] : "";

2) Вставку текста в поле лучше сделать так:

<textarea><?= $stroim; ?></textarea>

(Не забудьте сохранить все необходимые атрибуты .) 3) Относительно отправки письма:

if (mail(...)) {...}

Я к тому, что сохранять результат отправки письма в переменной нет смысла. Да и сравнение

if ($send == "true") {...}

Зачем так усложнять? Если нужно строгое равенство с true, то

if ($send === true) {...}

Если не важно, то есть за истину принимаем все, что можно преобразовать в true, то просто достаточно

if ($send) {...}
READ ALSO
&ldquo;new.domain.com&rdquo; is unknown host

“new.domain.com” is unknown host

Помогите, кто сталкивался

204
Внутренние php константы

Внутренние php константы

Где посмотреть список внутренних констант php?

257
Как перевести массив байтов в строку UTF-8 в Visual C++

Как перевести массив байтов в строку UTF-8 в Visual C++

Имею массив байтов, байты в массив записаны в кодировке UTF-8, соответственно нужно как-то преобразовать байты в строку такой же кодировке,...

462