Почему эта проверка PHP возвращает сообщение об ошибке? - PullRequest
1 голос
/ 23 мая 2011

Это глупо просто, но я не могу понять, почему я постоянно получаю сообщение об ошибке здесь, оно выглядит правильно и работает правильно в других приложениях .... это из-за нулевых нулей? Этого не должно быть, потому что он возвращает ошибку, прежде чем он доберется до любой другой вещи, пожалуйста, помогите! я так долго смотрел на это, что дохожу до точки "не видно леса с деревьев".

PHP

<?php
    if(empty($_POST['Contact0FirstName']) || empty($_POST['Contact0LastName']) ||
    empty($_POST['Contact0Email']) || empty($_POST['Contact0Phone1']) ||
    empty($_POST['CaptchaInput']) || !empty($_POST['LeadBlind'])) {
echo "Please fill out all fields marked *";
die();
} else {

//curl stuff
}
?>

и форма

<form id="Lead" method="post" action="PHP/Lead.php" accept-charset="UTF-8">


                <ul id="LeadForm">
                    <li>*required field</li>
                    <li>
                        <input type="hidden" name="LeadBlind" id="LeadBlind">
                        <label for="Contact0FirstName">1| First Name*</label>
                        <label for="Contact0LastName">2 | Last Name*</label>
                        <label for="Contact0Email">3 | Email*</label>
                    </li>
                    <li>
                       <input type="text" name="Contact0FirstName" id="Contact0FirstName">
                        <input type="text" name="Contact0LastName" id="Contact0LastName">
                        <input type="text" name="Contact0Email" id="Contact0Email">
                    </li>

                    <li>
                        <label for="Contact0Phone1">4| Daytime Phone*</label>
                        <label for="Contact0Phone2">5| Evening Phone</label>
                        <label for="CaptchaInput">6| Please enter the code</label>
                    </li>
                    <li>
                        <input type="text" name="Contact0Phone1" id="Contact0Phone1">
                        <input type="text" name="Contact0Phone2" id="Contact0Phone2">
                        <input type="text" class="numbers" name="Captcha" id="Captcha" value="" readonly>
                        <input type="text" class="numbers" name="CaptchaInput"  id="CaptchaInput" size="6" maxlength="6">
                    </li>
                    <li>
                        <input type="submit" id="LeadSend" value="Try It Now!">
                        <span id="processing">Submitting Your Request</span>
                    </li>

                    <li class="text">You will get 30 days of NinjaTrader + Rithmic (the data feed) to experience how trading should really be.</li>
                    <li class="text"><a href="mailto:support@tradersplatform.com?subject=Trader's Platform Support Request">Email Support</a> or call 800 771 6748 (Optimus Trading Group)</li>
                </ul>
                <div class="clear"></div>
            </form>

В firebug он показывает передаваемые поля со значением, но я получаю сообщение об ошибке «Пожалуйста, заполните все поля, помеченные *».

Ответы [ 3 ]

2 голосов
/ 23 мая 2011
!empty($_POST['LeadBlind'])

ничто иное не приводит к проблеме

попробуйте сделать это, чтобы проверить, пусто ли оно иначе попробуйте удалить поля одно за другим, чтобы увидеть, где именно проблема

в противном случае

добавить var_dump($_POST); после <?php тега

1 голос
/ 23 мая 2011

Между здесь:

 <?php
      if(empty($_POST['Contact0FirstName']) ...

Пожалуйста, поставьте

print_r($_POST);

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

IE:

<?php
print_r($_POST);
if(empty($_POST['Contact0FirstName']) ...
0 голосов
/ 23 мая 2011
!empty($_POST['LeadBlind']

Это поле может быть только пустым, поскольку оно скрыто, и вы не присвоили ему значение.

Кроме того, это очень плохой HTML (теги должны быть закрыты), и я бы использовал isset() -функцию в каждом $_POST -поле, которое установлено в вашей Форме.Потому что, если поле не имеет значения и форма отправляется, в массиве $_POST нет записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...