Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Warunek if, skrypt sprawdza czy prawdziwy jest warunek 1 lub 2 ORAZ prawdziwy jest
free
post
Post #1





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


chce by w warunku if zagnieździć 4 warunki w ten sposób:
Jezeli (warunek 1 LUB warunek2) Oraz (warunek3 LUB warunek4) Wykonaj dlasze czesc skryptu...
else ...
Czyli skrypt sprawdza czy prawdziwy jest warunek 1 lub 2 ORAZ prawdziwy jest warunek 3 lub 4 .

  1. <?php
  2. if ( !empty ( ($_SESSION['nazwa']) || ($_SESSION['cos']) )
  3. AND 
  4. ( ($_SESSION['nr']) == $id || ($_SESSION['poziom'] > 4)) )
  5.  { ...}
  6. else {...}
  7. ?>

Czy dobrze to zrobiłem , chodzi mi o te nawiasy. Moze tak pozostac czy mozna to zoptymalizowac ?
Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. <?php
  2. if(warunek){
  3. //instrukcja
  4. }elseif(warunek){
  5. //instrukcja
  6. }else{
  7. //instrukcja
  8. }
  9. ?>


mysle ze tego szukasz

Ten post edytował skowron-line 21.02.2007, 12:15:41
Go to the top of the page
+Quote Post
free
post
Post #3





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


Nie. Pytam sie tylko czy podany powyzej sposob jest poprawny i zoptymalizowany ?
"Czyli skrypt sprawdza czy prawdziwy jest warunek 1 lub 2 ORAZ JEDNOCZEŚNIE prawdziwy jest warunek 3 lub 4 ."
Czy tez nalezaloby go poprawic.

Ten post edytował free 21.02.2007, 12:40:00
Go to the top of the page
+Quote Post
Ociu
post
Post #4





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Użyłęś || i AND, Zdecyduj się. Albo używasz AND i Or albo && i ||.
Ogólnie: ok.
Go to the top of the page
+Quote Post
free
post
Post #5





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


JEzeli ok to spoko nie bede zmieniał. A swoja droga || to to samo co OR ; && to to samo co AND wiec nie rozumiem czemu na to zwracasz uwage.
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #6





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(free @ 21.02.2007, 12:56:43 ) *
A swoja droga || to to samo co OR ; && to to samo co AND

No niestety nie za bardzo - zwróć uwagę na priorytety operatorów.
Go to the top of the page
+Quote Post
free
post
Post #7





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


Zrobiłem tak :
  1. <?php
  2. if(!empty ( ($_SESSION['uzyt']) OR ($_SESSION['nr']) ) AND ( (($_SESSION['nr']) == $id OR ($_SESSION['ranga'] > 4)) ) )
  3.  { echo"wykonuje mi skrypt";  }
  4. else echo"pokazuje jakis błąd...";
  5. }
  6. ?>

Nie działa : wywala błąd :
Parse error: parse error, expecting `T_VARIABLE' or `'$'' in funkcja.php on line 220

Dodam ze błąd wywala gdy dodaje te dodatkowe nawiasy, ale bez nich nie ma błędu, ale i również warunki nie sa rozpatrywane prawidłowo i skrypt nie sprawdza odpwiednio tych warunkow

Ten post edytował free 21.02.2007, 16:42:35
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale jazda...
http://pl.php.net/manual/pl/function.empty.php
Przeciez empty() nie przyjmuje warunkow logicznych tylko zmienne
Go to the top of the page
+Quote Post
free
post
Post #9





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


Działało mi z tym empty dopoki mialem tylko 3 warunki z ||. a teraz nie rusza. W czym problem co mam zmienic ?
Go to the top of the page
+Quote Post
Saddam92
post
Post #10





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

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


  1. <?php
  2. if ( (!empty ($_SESSION['uzyt']) || !empty($_SESSION['nr'])) && (($_SESSION['nr']==$id) || ($_SESSION['ranga']> 4)) )
  3.  { echo"wykonuje mi skrypt";  }
  4. else echo"pokazuje jakis błąd...";
  5. }
  6. ?>
myślę że o to ci chodziło
Go to the top of the page
+Quote Post
free
post
Post #11





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


Niestety nie dziala. TZN nie ma wspomnianego błędu, ale i warunki nie sa sprawdzane - wyglada na to ze sprawdzanie jest zbyt restrykcyjne i zeby wokonal sie skrypt trzeba chyba spelnienia obecnei wszystkich 4 warunków. a mi chodzi by skrypt wykonał sie jezeli spelniony jest 1 lub 2 warunek ORAZ OBOWIAZKOWO 3 lub 4
Go to the top of the page
+Quote Post
Saddam92
post
Post #12





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

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


wydaje mi się że błąd masz gdzie indziej, mianowicie wstawiłem na serwer plik pyt.php o takim kodzie
  1. <?php 
  2. $id=3;
  3. if ( (!empty ($_GET['uzyt']) || !empty($_GET['nr'])) && (($_GET['nr']==$id) || ($_GET['ranga']> 4)) )
  4.  echo"wykonuje mi skrypt";
  5. else 
  6.  echo"pokazuje jakis błąd...";
  7. ?>
i wygląda na to że działa on poprawnie..

oto przykłady:
http://foksal11.pl/pyt.php?nr=3 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
http://foksal11.pl/pyt.php?uzyt=1&nr=2&ranga=5 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
http://foksal11.pl/pyt.php?nr=2&ranga=5 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
http://foksal11.pl/pyt.php?nr=2 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
http://foksal11.pl/pyt.php?ranga=5 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

U mnie ten kod działa.. zobacz czy wcześniej nie masz błędu..
Go to the top of the page
+Quote Post
free
post
Post #13





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


BEde musial jeszcze przeanlizowac moj kod. Stosuje go do weryfikacji czy dane user ma prawo edytowac post.
gdy go rozbudowalem do 4 warunkow zgłupiał, a ja z nim ;-)
Masz moze pomysl gdzie szukac błedu ?

Ten post edytował free 21.02.2007, 17:32:49
Go to the top of the page
+Quote Post
Saddam92
post
Post #14





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 17.11.2006

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


spróbuj
  1. <?php
  2. print_r($_SESSION);echo '<br>'.$id;
  3. ?>
i sprawdź czy są poprawne wartości..

Co do pomysłu na znalezienie błędu to nie mam, gdyż nie wiem za co odpowiadają dane zmienne oraz jaki masz zamysł budowy skryptu ..

Ten post edytował Saddam92 21.02.2007, 17:38:59
Go to the top of the page
+Quote Post
free
post
Post #15





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


Ok dzieki juz mi dziala :-) Mialem błąd przy pobieraniu jednej zmiennej.
Teraz mam :
  1. <?php
  2. if ( (!empty ($_SESSION['uzyt']) || !empty($_SESSION['nr'])) &&
  3.  (($_SESSION['nr']==$user) || ($_SESSION['ranga']> 4) || !empty ($_SESSION['uzyt'])) )
  4.  {....
  5. ?>

Chciałbym to zoptymalizowac, gdyż 2 razy sprawdzam :
  1. <?php
  2. (!empty ($_SESSION['uzyt'])
  3. ?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 16:50