2015-07-03 22 views
6

Mam formularz kontaktowy, który ma ukryte pole (zawód). Próbuję uzyskać skrypt do sprawdzenia, aby upewnić się, że to ukryte pole jest puste, a jeśli tak, to wyślij wynik formularza do mnie. Jeśli jednak to pole NIE jest puste, formularz nie jest wysyłany do mnie.wymagane puste pole php

Orginially mój kod był:

if(isset($_POST['profession']) && $_POST['profession'] == ''){ 

Ale wierzę, że to jest rzeczywiście błędna i zmusza pole zawód będzie pusty? Uważam więc kod powinien być po prostu:

if(!isset($_POST['profession'])){ 

Czy mam to poprawne. Który byłby najlepszy sposób, aby to zakodować?

+0

Pierwsza z nich jest poprawna. jaki jest problem? –

+1

lub możesz to zrobić, jeśli (pusty ($ _ POST ['profession'])). To sprawdza: - isset - ma wartość null - is '' –

Odpowiedz

4

Miło cię widzieć za pomocą metody zapobiegania spamowi za pomocą honeypota. Najlepszym prawdopodobnie można zrobić, to po prostu tak:

if (empty($_POST['profession'])){ 
    // Send form result. 
} 

Funkcja empty() ocenia się true kiedy jest pusty ciąg ('') lub gdy zmienna lub element tablicy nie istnieje w ogóle. Aby uzyskać więcej informacji na temat porównań, zobacz tutaj: http://php.net/manual/en/types.comparisons.php

+0

- Dla uproszczenia polecamy tę metodę w dwóch opcjach skryptu w moim przykładzie. Czy wszyscy oni pracowaliby tak samo, jak kumar singh, że mój pierwszy kod również jest poprawny? –

+0

Nie dla uproszczenia. Oświadczenie Ananta jest raczej bezsensowne; rzeczywiście masz rację w swoim pytaniu, ponieważ akceptuje tylko pusty ciąg znaków ('' ''). Lepiej nie przyjmować założeń co do tego, co przeglądarka wyśle ​​na pusty element formularza, więc 'empty()' obejmuje wszystkie możliwości "pustki". – aross

+0

Dzięki Aross - i dobrze wyjaśnione! –

Powiązane problemy