Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] problem z działaniem skryptów php na IIS
Forum PHP.pl > Forum > Przedszkole
kossa
Cześć,

Strona działała poprawnie na serwerze home.pl z php5, została przeniesiona na serwer IIS z zainstalowanym php 5.2 i teraz wysypuje się nawet na takiej składni:


  1. <?php
  2. if ($a=="ccc")
  3.    echo "aaa";
  4. else
  5.    echo "bbb";
  6. ?>


tu wystarczy zmienić na:
  1. <?php
  2. $a="123";
  3.  
  4. if ($a=="cccc")
  5.    echo "aaa";
  6. else
  7.    echo "bbb";
  8. ?>

i zadziała czyli wniosek zabrakło deklaracji zmiennej z jej początkową wartością.

a co w następującym przypadku?
  1. <?php
  2. if ($_GET["a"]=="")
  3.    echo "sss";
  4. else
  5.    echo "aaa";
  6. ?>


jeśli zrobię:

  1. <?php
  2. $a="123";
  3. $a=$_GET["a"]; //teraz w urlu brak a i znowu wewnętrzny błąd serwera nr 500
  4.  
  5. if ($a=="")
  6.    echo "sss";
  7. else
  8.    echo "aaa";
  9. ?>



Z góry dziękuję za pomoc!
Łukasz
Spawnm
Proszę dodać tagi do tematu.
Kildyt
To oczywiste, że wywala komunikat. Co prawda nie jest to błąd, ale na pewno komunikat dla programisty. Wyłącz wyświetlanie komunikatów i powinno być ok. winksmiley.jpg
PS Ja wyświetlam wszystkie komunikaty. Pomogło mi to lepiej zrozumieć php. Korzystam z isset, empty itp. i na prawdę jestem bardziej zadowolony niż wcześniej. winksmiley.jpg
kossa
isset, empty to nic nie daje bo to wykorzystamy w instrukcji if, natomiast kod wysypuje się w momencie przypisania do zmiennej pustej wartości

Łukasz
Kildyt
W jaki sposób przypisujesz do zmiennej pustą wartość?
kossa
Cytat(Kildyt @ 14.07.2009, 23:19:26 ) *
W jaki sposób przypisujesz do zmiennej pustą wartość?


  1. <?php
  2. $a=$_GET["zmienna_z_url"];
  3. ?>


edit:
ale nie zawsze ona jest w url więc wtedy jest pusta

Ł
Skie
Powiem Ci, że to dziwny trochę błąd i zamiast poprawiać ten kod powinieneś poszperać w ustawieniach nowego serwera (jeśli masz dostęp) lub pogadać z jego administratorem, że serwer nie zachowuje się tak jak powinien:

spróbuj tak:

Kod
$a = (IsSet($_GET['zmienna']) && $_GET['zmienna'] != '') ? $_GET['zmienna'] : 'jakas_wartos';
Fifi209
Najpierw sprawdź funkcjami empty" title="Zobacz w manualu PHP" target="_manual i/lub isset" title="Zobacz w manualu PHP" target="_manual to z get'a a potem (jeżeli istnieje) przypisz do zmiennej.
kossa
Cytat(Skie @ 15.07.2009, 14:15:02 ) *
Powiem Ci, że to dziwny trochę błąd i zamiast poprawiać ten kod powinieneś poszperać w ustawieniach nowego serwera (jeśli masz dostęp) lub pogadać z jego administratorem, że serwer nie zachowuje się tak jak powinien:

spróbuj tak:

Kod
$a = (IsSet($_GET['zmienna']) && $_GET['zmienna'] != '') ? $_GET['zmienna'] : 'jakas_wartos';



Właśnie admin za bardzo się nie zna... pozostanie mi modyfikacja kodu i dopisanie kilku ifów, dzięki Wszystkim za pomoc!

Pozdrawiam,
Łukasz
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.