isset () не працює, як очікувалося

Я створюю пошук, який може запитувати кілька полів - шукати чоловіча особа, яка має слуховий апарат.

HTML-код у формі виглядає так

<form name="O_search" method="post" action="search.php">
Gender (M/F)<input type="text" name="O_gender"/>
Hearing Aid (Y/N)<input type="text"  name="O_hear"/>


<input type="hidden" name="O_searching" value="yes" />

PHP-код виглядає так

if (isset($_POST['O_searching'] )) 
{ 
    echo "

Results


"; if (isset($_POST['O_gender']) || isset($_POST['O_hear']) == "") { echo "You forgot to enter a search term"; exit; } $Gender =$_POST['O_gender']; $Hear =$_POST['O_hear']; $Gender = strtoupper($Gender); $Gender = strip_tags($Gender); $Gender = trim ($Gender); $Hear = strtoupper($Hear); $Hear = strip_tags($Hear); $Hear = trim ($Hear); $Odata = mysql_query("SELECT * FROM p_candidate WHERE(`gender` LIKE '%".$Gender."%') AND (`hear` LIKE '%".$Hear."%')") or die(mysql_error()); while($result = mysql_fetch_array($Odata)) { $candidate_id =$result['candidate_id']; echo "<tr>"; echo "<td>".$result['R_first_name']." ".$result['R_last_name']."</td>"; echo "<td>".$result['R_county']."</td>"; } $anymatches=mysql_num_rows($Odata); if ($anymatches == 0) { echo "Sorry, there is no match for your query

"; } echo "Searched For: " .$Gender." and".$Hear ; } ?>

I don't know where I have gone wrong, but even when I enter a valid search term in the field I get the message You forgot to enter a search term

1
isset ($ _ POST ['O_hear']) == "" - вам не потрібне порівняння, просто isset ($ _ POST ['O_hear']) Зроби це
додано Автор andrewsi, джерело

8 Відповіді

Ви викликаєте помилку, якщо встановлено значення IS. Ви хочете викликати помилку, коли вона НЕ встановлена.

if( !isset($_POST['O_gender']) || !isset($_POST['O_hear']))
4
додано
Дуже дякую ... це працювало !!! Чудовий ...
додано Автор user2510479, джерело

Встановлений на цю лінію

if (isset($_POST['O_gender']) || isset($_POST['O_hear']) == "") 

спробуй це

if (!isset($_POST['O_gender']) || !isset($_POST['O_hear'])) 
1
додано

Встановлений на цю лінію

if (isset($_POST['O_gender']) || isset($_POST['O_hear']) == "") 

спробуй це

if (!isset($_POST['O_gender']) || !isset($_POST['O_hear'])) 
1
додано

Встановлений на цю лінію

if (isset($_POST['O_gender']) || isset($_POST['O_hear']) == "") 

спробуй це

if (!isset($_POST['O_gender']) || !isset($_POST['O_hear'])) 
1
додано

Встановлений на цю лінію

if (isset($_POST['O_gender']) || isset($_POST['O_hear']) == "") 

спробуй це

if (!isset($_POST['O_gender']) || !isset($_POST['O_hear'])) 
1
додано

Текстове поле завжди буде встановлено у формі, навіть якщо порожня рядок. Ви повинні використовувати isset для найкращих практик, але також використовувати strlen і обрізати, щоб перевірити, чи містить рядок щось. Ви також хочете, щоб відобразити повідомлення про помилку лише тоді, коли немає рядка.

if (! isset ($ _ POST ['O_hear']) || strlen (trim ($ _ POST ['O_hear'])) == 0)

Зробіть це для обох умов, якщо це необхідно. Дещо незрозуміло, що ви намагаєтеся зробити.

0
додано

Текстове поле завжди буде встановлено у формі, навіть якщо порожня рядок. Ви повинні використовувати isset для найкращих практик, але також використовувати strlen і обрізати, щоб перевірити, чи містить рядок щось. Ви також хочете, щоб відобразити повідомлення про помилку лише тоді, коли немає рядка.

if (! isset ($ _ POST ['O_hear']) || strlen (trim ($ _ POST ['O_hear'])) == 0)

Зробіть це для обох умов, якщо це необхідно. Дещо незрозуміло, що ви намагаєтеся зробити.

0
додано

Текстове поле завжди буде встановлено у формі, навіть якщо порожня рядок. Ви повинні використовувати isset для найкращих практик, але також використовувати strlen і обрізати, щоб перевірити, чи містить рядок щось. Ви також хочете, щоб відобразити повідомлення про помилку лише тоді, коли немає рядка.

if (! isset ($ _ POST ['O_hear']) || strlen (trim ($ _ POST ['O_hear'])) == 0)

Зробіть це для обох умов, якщо це необхідно. Дещо незрозуміло, що ви намагаєтеся зробити.

0
додано
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php