Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> (php) przeklęty IF!, aaaggghhhrrr idzie się wściec z tym ifem
simperium
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 5
Dołączył: 3.03.2004

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


PHP:

mam taką funkcję
  1. <?php
  2. if ($HTTP_REFERER=="$zmienna") {$dzialanie="123";} else {$dzialanie="321";}
  3. ?>


niestety cokolwiek wpiszę do $zmienna zawsze $dzialanie=123. Czy ktoś mógłby napisać, gdzie robię jakiś błąd?
Dziękuję ! smile.gif

aha, próbowałem też opcji bez cytatów, czyli:

  1. <?php
  2. if ($HTTP_REFERER=="$zmienna") {$dzialanie=123;} else {$dzialanie=321;}
  3. ?>

ale efekt był wciąż ten sam sadsmiley02.gif

Ten post edytował simperium 20.12.2007, 14:24:58


--------------------
Kliknij na "POMÓGŁ", by poprawić mi samopoczucie :D
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Nattfarinn
post
Post #2





Grupa: Zarejestrowani
Postów: 136
Pomógł: 22
Dołączył: 19.09.2007
Skąd: Sosnowiec

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


Sprawdź sobie zawartość tych zmiennych, np:
  1. <?php
  2. $dzialanie = $_SERVER["HTTP_REFERRER"] == $zmienna ? 123 : 321 ;
  3. echo "$dzialanie | $zmienna | ".$_SERVER["HTTP_REFERRER"];
  4. die();
  5. ?>

I zobacz co skrypt wypluł. Wtedy ewentualnie nie będziesz narzekał na IF a na coś innego smile.gif


--------------------
Code should run as fast as necessary, but no faster; something important is always traded away to increase speed.
-- R. Pattis
Go to the top of the page
+Quote Post
MMX3
post
Post #3





Grupa: Zarejestrowani
Postów: 155
Pomógł: 9
Dołączył: 26.01.2004
Skąd: Poznań

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


tak jak kolega napisał.
czasami zmienne serwera $_HTTP nie działają z powodu konfiguracji php. $_SERVER zawsze powinien chodizć.

Pozdro


--------------------
Go to the top of the page
+Quote Post
simperium
post
Post #4





Grupa: Zarejestrowani
Postów: 157
Pomógł: 5
Dołączył: 3.03.2004

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


wypluł coś takiego:

123 | |

zatem co to może znaczyć ?


--------------------
Kliknij na "POMÓGŁ", by poprawić mi samopoczucie :D
Go to the top of the page
+Quote Post
Nattfarinn
post
Post #5





Grupa: Zarejestrowani
Postów: 136
Pomógł: 22
Dołączył: 19.09.2007
Skąd: Sosnowiec

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


To znaczy, że nie przypisałeś nawet wartości do zmiennej ($zmienna jest pusta) więc nie wiem jak ty chcesz cokolwiek z czymś porównywać. Rzecz druga, jak testujesz ten skrypt? Bo $_SERVER["HTTP_REFERRER"] przechowuje informacje z skąd trafiłeś na stronę. Będzie puste jeśli od tak wywołujesz stronę. Będzie też puste jeśli odnosisz się do niego z tego samego serwera.


--------------------
Code should run as fast as necessary, but no faster; something important is always traded away to increase speed.
-- R. Pattis
Go to the top of the page
+Quote Post
simperium
post
Post #6





Grupa: Zarejestrowani
Postów: 157
Pomógł: 5
Dołączył: 3.03.2004

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


w całości wygląda skrypt tak:

  1. <?php
  2. b=0;
  3. $ajpi=fopen("ip.txt", "r"); 
  4. while($b<500)
  5. {
  6. $dan=fgetcsv($ajpi, 100);
  7. if ($HTTP_REFERER=="$dan[0]") {$dzialanie="123";} else {$dzialanie="321";}
  8. $b++;
  9. if($dan=="")
  10. break;
  11. }
  12. flock($ajpi, 3);
  13. fclose($ajpi);
  14. ?>


zaś plik ip.txt zawiera adres ip ujęty w cytacie (powiedzmy: "127.0.0.1")
w przypadku jeśli $HTTP_REFERER równa się 0, to przecież $dzialanie powinno dać wynik 321
( else {$dzialanie="321";} ) prawda?

Ten post edytował simperium 20.12.2007, 15:38:39


--------------------
Kliknij na "POMÓGŁ", by poprawić mi samopoczucie :D
Go to the top of the page
+Quote Post
Nattfarinn
post
Post #7





Grupa: Zarejestrowani
Postów: 136
Pomógł: 22
Dołączył: 19.09.2007
Skąd: Sosnowiec

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


Wywal cudzysłów z lini 7, ale nie z przypisywanych wartości jak w pierwszym poście bo to nie ma sensu, tylko z argumentu warunku IF, tak by było:
  1. <?php
  2. if ($HTTP_REFERER==$dan[0])
  3. ?>

Dalej. Raczej korzystaj z $_SERVER["HTTP_REFERER"].
Zamiast takiej formy pętli używaj:
  1. <?php
  2. while(($dan = fgetcsv($handle, 100)) !== false)
  3. {
  4. ...
  5. }
  6. ?>

Wtedy zobacz co się dzieje.


--------------------
Code should run as fast as necessary, but no faster; something important is always traded away to increase speed.
-- R. Pattis
Go to the top of the page
+Quote Post
simperium
post
Post #8





Grupa: Zarejestrowani
Postów: 157
Pomógł: 5
Dołączył: 3.03.2004

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


aach... nie mam siły się z tym męczyć winksmiley.jpg
ugryzę to inaczej, ale ten IF jest głupi ;PPPPP

ale dzianks smile.gif


--------------------
Kliknij na "POMÓGŁ", by poprawić mi samopoczucie :D
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 Aktualny czas: 19.08.2025 - 09:18