ďťż
Podstrony
|
telcocafeWitam, mam problem z tym oto kodem (pisanym przeze mnie, zresztą; jeśli będzie potrzebny kod strony: http://www.scraps.boo.pl ):<?php // Tablica zawierajaca wszystkie elementy, ktore beda przekazywane metoda GET. $ok=array('strona_glowna','wiersze','grafiki','slownik','sentencje' ,'miniatury','o_mnie','kontakt'); // Blad wyswietlajacy sie w przypadku nieprawidlowej budowy adresu (nieprzekazanie zadnej z powyzszych wartosci, // przekazanie wartosci nie istniejacej w powyzszej tabeli). Jego wygląd definiuje klasa .error w arkuszu stylow. // Po wyswietleniu bledu kod przestaje byc wykonywany. $error='<p class="error">Nieprawidłowa budowa adresu! <a href="../index.php">Powrót na stronę główną</a></p>'; // Jesli do dokumentu zostala przekazana metoda GET jakakolwiek wartosc, wartosc ta zostaje przypisana do zmiennej // $adres. W przeciwnym razie zostaje wyswietlony blad, ktorego tresc okresla zmienna $error. if (isset($_GET[highlight])) $adres=$_GET[highlight]; else { echo($error); return; } // Ściezka do pliku z zapisanem kodem menu, ktore ma sie pojawic na stronie $menu=include('skrypty/menu.txt'); // Jesli metoda GET zostala przekazana do dokumentu wartosc zawierajaca sie w tabeli $ok, wyswietl menu, jednoczesnie // ustawiajac grafike aktualnie odwiedzanego odnosnika (xxx2.gif). Jesli zostala przekazana inna wartosc, zostanie // wyswietlony analogiczny blad jak w pierwszej instrukcji warunkowej. if (in_array($adres,$ok)) str_replace('<img src="../images/'.$adres.'.gif','<img src="../images/'.$adres.'2.gif',$menu); else { echo($error); return; } ?> Działanie kodu jest opisane w komentarzach, w kodzie. Ogólnie chodzi tu o to, żeby na podstawie tego, co zostanie przekazane metodą GET fragment kodu z pliku menu.txt był zamieniany na ten sam, tylko, że z 2 na końcu (grafika aktualnie odwiedzanej podstrony to np. grafiki2.gif, a tej nieaktywnej - grafiki.gif). Ku mojemu zdziwieniu - skrypt nie spełnia swojego działania, choć wydaje mi się, że wszystko jest w porządku. Jakieś sugestie? Użytkownik izdwuut edytował ten post 06 luty 2008, 18:58 Za mało wiedzy. Co niedziała? Z tego, co wywnioskowałem: str_replace zwraca ciąg znaków, a nie działa na przekazanym na zmiennej. Tak więc powinno być $zmienna = str_replace(a, b, $zmienna). |
|||
Sitedesign by AltusUmbrae. |