![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
Witam
Chcialem zrobic mozliwosc edytowania menu. Problem pojawia sie gdy chce dodac nowy link do bazy, mianowicie na stronie ktora laczy sie z baza i dodaje wpis pojawia sie blad z wyswietlaniem menu. Problem wystepuje tylko na tej stronie - gdy przejdzie sie na inna wszystko jest w porzadku. Blad jest taki ze podaje mi pierwsze litery z nazwy i url do strony, wiec zamiast pokazuje sie ' Rowniez wpis do bazy ktory jest jednoczesnie tworzony jest bledny. Przekreca pierwsza litere z kazdego pola. Zamiast Kod Ksiega gosci tworzy Kod asiega gosci i zamiast Kod index.php?action=guestbook wstawia Kod andex.php?action=guestbook Nie wiem, moze wina wynika z bledu apache. Testowalem narazie tylko u siebie (korzystam z WebServa). Kod wyswietlania menu: (w pliku cfg.txt zapisane sa zmienne dotyczace hosta, loginu, hasla i nazwy bazy mysql)
Dodawanie wpisu do bazy:
Tekst skopiowalem ze srodka sformatowanego skryptu strony wiec jest duzo spacji. Za ewentualna niewiedze ze stosowania podstawowych funkcji przepraszam i obiecuje sie poprawic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Co do prymitywnego rozwiązania, to muszę się zgodzić.
A co do literki "a": 1. Dodajesz link do bazy na podstawie informacji pobranych z formularza. Tutaj wszystko jest OK. Zmienna $menuname jest teraz oczywiście stringiem. 2. Następnie wyświetlasz menu (Patrz: kod z twojego pierwszego posta). W tym celu używasz niezadeklarowanych zmiennych jako tablic. Ale niezadeklarowane to one są tylko z pozoru. Tak naprawdę, to zmienna $menuname istnieje => patrz punkt 1. 3. Jako, że $menuname to jest string, to pisząc: $menuname[0] odwołujesz się do pierwszego znaku tego stringu, a nie pierwszego elementu tablicy 4. W pętli nie zwiększasz zmiennej $menulicz, więc z każdym przejściem nadpisywany jest pierwszy znak zmiennej $menuname pierwszym znakiem zmiennej $wiersz[1] 5. Tak samo podczas składania linku - odwołujesz się do pierwszego znaku stringu, a nie do pierwszego elementu tablicy, więc zamiast nazwy linku wyświetla ci jakieś "a" 6. Nie wstawiaj do swojego kodu funkcji: error_reporting( E_ALL | E_STRICT ); bo się przestraszysz 7. Powodzenia w pisaniu skryptów używających register_globals |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 11:27 |