Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z isset, dwa warunki z isset a tylko jeden działa...
GranDi88
post 8.10.2008, 17:15:12
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 1.10.2008
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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.

Ten post edytował GranDi88 8.10.2008, 17:16:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
WebCM
post 8.10.2008, 18:09:50
Post #2





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Ź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. ?>


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post
jareeny
post 8.10.2008, 18:11:06
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 23
Dołączył: 2.10.2007
Skąd: Słupsk

Ostrzeżenie: (0%)
-----


Spróbuj tak:

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


--------------------
banan wszyscy.
Go to the top of the page
+Quote Post
GranDi88
post 8.10.2008, 18:36:58
Post #4





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 1.10.2008
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 22:09