Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z wykonaniem warunku if
Forum PHP.pl > Forum > Przedszkole
-Joanna-
Witam forumowiczów :-)

Na stronie mam adresowanie:
  1. index.php?page=logowanie
  2. index.php?page=dodaj
  3. index.php?page=usr&funkcja=nowy

Chcę na części tych stron nie wyświetlać części kodu.
Od wczoraj mam problem z kodem

  1. <?php
  2. if ( isset( $_GET['page'] ) )
  3. {
  4. if( ($_GET['funkcja']=='nowy') or ($_GET['']=='') )
  5. {
  6.  
  7. echo "ok ";
  8. }
  9. echo "... ";
  10. }
  11. else {
  12. echo " no ";
  13. }
  14. ?>


Nie wiem jak go poprawić, aby nie reagował na wszystkie warunki mam problem co wstawić dla o
  1. r ($_GET['']=='')
by dotyczył adresów
  1. index.php?page=logowanie
  2. index.php?page=dodaj
Daiquiri
  1. if (isset($_GET['page']) {
  2.  
  3. // tutaj wsadzasz wszystko mające reagować na warunek: z ustawionym $_GET['page'] lub więcej
  4.  
  5. if ($_GET['funkcja']=='nowy') {
  6. // tutaj wsadzasz wszystko mające reagować na warunek: ustawiony $_GET['page'] oraz $_GET['funkcja'] równa 'nowy'
  7. }
  8.  
  9. } else {
  10. // tutaj wsadzasz wszystko mające reagować na warunek: bez $_GET['page]
  11. }


Nie wiem, szczerze powiedziawszy, jaki warunek masz konkretnie na myśli.
Dominis
jeśli Cie dobrze zrozumiałem to:

  1. if($_GET['page'] == 'logowanie') {
  2.  
  3. //kod ktory wyswietli sie gdy masz w linku logowanie
  4. }
  5.  
  6. if($_GET['page'] == 'dodaj') {
  7.  
  8. //kod ktory wyswietli sie gdy masz w linku dodaj
  9. }
  10.  
  11. if($_GET['page'] == 'usr' && $_GET['nowy'] == 'funkcja') {
  12.  
  13. //kod ktory wyswietli sie gdy masz w linku usr i funkcja
  14. }


itd...
-Joanna-
Dominis:
powinno być chyba
  1. if($_GET['page'] == 'usr' && $_GET['funkcja'] == 'nowy') {

zamiast
  1. #
  2. if($_GET['page'] == 'usr' && $_GET['nowy'] == 'funkcja') {


czy trzeba tu sprawdzać $_GET['page'] == 'usr' nie wystarczy samo $_GET['funkcja'] == 'nowy'
?
nospor
Cytat
nie wystarczy samo $_GET['funkcja'] == 'nowy'

No jesli uwazasz, że taki link jest prawidłowy:
index.php?funkcja=nowy
to wystarczy.
-Joanna-
Ok rozumiem.
A co do mego pytania
Dominis:
powinno być chyba
  1. if($_GET['page'] == 'usr' && $_GET['funkcja'] == 'nowy') {

zamiast:

  1. if($_GET['page'] == 'usr' && $_GET['nowy'] == 'funkcja') {


czy dobrze zauważyłam?
nospor
Tak, dobrze zauwazylas.
-Joanna-
Dział mi

  1. if($_GET['page'] == 'logowanie' or $_GET['page'] == 'dodaj' or $_GET['page'] == 'AAA' ) {


teraz zastanawiam się jak to połączyć z dodatkowym warunkiem

  1. if($_GET['page'] == 'usr' && $_GET['funkcja'] == 'nowy') {


czy tak będzie poprawnie:

  1. if($_GET['page'] == 'logowanie' or $_GET['page'] == 'dodaj' or $_GET['page'] == 'AAA' or ($_GET['page'] == 'usr' && $_GET['funkcja'] == 'nowy') ) {


questionmark.gif
2 pytanie: czy jeżeli mam kilkanaście warunków OR - to czy nie będzie to mało optymalne czy można to jakoś zoptymalizować?
nospor
ad1) A działa? Znaczy że jest poprawnie wink.gif
-Joanna-
Nie sprawdzałam smile.gif ale wnioskuję że jest OK bo bym opierdziel dostała za błędny kod smile.gif

A co do mego drugiego pytania wypowie się ktoś?
nospor
Cytat
Nie sprawdzałam
Uuuu.... jeden opierdziel cie minął, ale drugi nie.... Jak to mogłaś nie sprawdzać, przychodzisz na forum bez sprawdzania?! Marsz do swego pokoju młoda damo i masz tam w milczeniu przemyśleć swoje postępowanie..... i z kolacji nici dzisiaj

wink.gif
-Joanna-
Sprawdziłam i nawet zmodyfikowałam na własne potrzeby do && dodałam nowe warunki z OR :-)
To jak z tym moim pytaniem o optymalizację tego kodu?
nospor
  1. if(in_array($_GET['page'] ,array('logowanie','dodaj','AAA')) or ($_GET['page'] == 'usr' && $_GET['funkcja'] == 'nowy') ) {
-Joanna-
Super. Wygląda zdecydowanie lepiej i dla oka i parsera PHP :-)
Dziękuję.
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.