Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z isset
Forum PHP.pl > Forum > PHP
GranDi88
Witam,

Mam taki kodzik PHP:
  1. <?php
  2. if (empty($_POST['status']))
  3.            {
  4.                echo &#092;"nie zaznaczone firma czy osoba prywatna\";
  5.            }
  6.        elseif (!empty($_POST['status']))
  7.            {
  8.                if(isset($_POST['status']) == &#092;"firma\")
  9.                    {
  10.                        if((empty($_POST['firma'])) or (empty($_POST['email'])) or (empty($_POST['telefon'])))
  11.                            {
  12.                                if(empty($_POST['firma']))
  13.                                    {
  14.                                        echo &#092;"puste pole nazwa firmy\";
  15.                                    }
  16.                                if(empty($_POST['email']))
  17.                                    {
  18.                                        echo &#092;"puste pole email\";
  19.                                    }
  20.                                if(empty($_POST['telefon']))
  21.                                    {
  22.                                        echo &#092;"puste pole telefon\";
  23.                                    }
  24.                            }
  25.                        else
  26.                            {
  27.                                include (&#092;"tresc/podglad.trs\");
  28.                            }
  29.                    }
  30.                else if(isset($_POST['status']) == &#092;"osoba prywatna\")
  31.                    {
  32.                        if((empty($_POST['imie_nazwisko'])) or (empty($_POST['email'])) or (empty($_POST['telefon'])))
  33.                            {
  34.                                if(empty($_POST['imie_nazwisko']))
  35.                                    {
  36.                                        echo &#092;"puste pole imię i nazwsisko\";
  37.                                    }
  38.                                if(empty($_POST['email']))
  39.                                    {
  40.                                        echo &#092;"puste pole email\";
  41.                                    }
  42.                                if(empty($_POST['telefon']))
  43.                                    {
  44.                                        echo &#092;"puste pole telefon\";
  45.                                    }
  46.                            }
  47.                        else
  48.                            {
  49.                                include (&#092;"tresc/podglad.trs\");
  50.                            }
  51.                    }
  52.            }
  53. ?>


Konkretnie chodzi mi tu o dwa fragmenty:
  1. <?php
  2. if(isset($_POST['status']) == &#092;"firma\")
  3. ?>

  1. <?php
  2. else if(isset($_POST['status']) == &#092;"osoba prywatna\")
  3. ?>

W formularzu są dwa pola radio - jeden value="firma" a drugi value="osoba prywatna" a name oczywiście oba "status".
Niestetu elseif gdzie status równy jest "osoba prywatna" tak jak by nie działał. Wnioskuję to po tym iż zamiast zwracać bład przy pustym polu imie_nazwisko cały czas zwracany jest przy firma czyli.. ciągle bez względu co zaznaczone jest w formularzu w polach radio zawsze widze komunikat "puste pole nazwa firmy".

Nie wiem co mam źle.. bardzo prośze o pomoc w zlokalizowaniu błędu. Jeżeli kod w całości jest przesadny i dużo elementów jest zbędnych również proszę o info.
WebCM
Źle użyłeś instrukcji isset i źle odczytujesz dane z POST. Zakładamy, że $_POST['status'] zawsze istnieje, a więc:
  1. <?php
  2. switch($_POST['status'])
  3. {
  4. case 'firma':
  5.  /* kod dla firmy */
  6.  break;
  7. case 'osoba prywatna':
  8.  /* kod dla osoby prywatnej */
  9.  break;
  10. default: /* słowo default można w ogóle pominąć, jeśli nie wykonujesz innych akcji */
  11. ?>
jareeny
Spróbuj tak:

  1. <?php
  2. elseif(isset($_POST['status']) && $_POST['status'] == 'co tam chcesz') {
  3.  ...
  4. }
  5. ?>
GranDi88
Cytat(jareeny @ 8.10.2008, 19:11:06 ) *
Spróbuj tak:

  1. <?php
  2. elseif(isset($_POST['status']) && $_POST['status'] == 'co tam chcesz') {
  3.  ...
  4. }
  5. ?>


Niestety ten sposób tez nie działa...

Cytat(WebCM @ 8.10.2008, 19:09:50 ) *
Źle użyłeś instrukcji isset i źle odczytujesz dane z POST. Zakładamy, że $_POST['status'] zawsze istnieje, a więc:
  1. <?php
  2. switch($_POST['status'])
  3. {
  4. case 'firma':
  5.  /* kod dla firmy */
  6.  break;
  7. case 'osoba prywatna':
  8.  /* kod dla osoby prywatnej */
  9.  break;
  10. default: /* słowo default można w ogóle pominąć, jeśli nie wykonujesz innych akcji */
  11. ?>



Dzięki wielkie... teraz działa. Powiedz mi jeszcze czy dało by się coś jeszcze poprawić w tym kodzie?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.