![]() |
![]() |
![]()
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: 318 Pomógł: 6 Dołączył: 27.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście że tak się dzieje, bo:
href[0] to 1-szy znak zmiennej href href[1] to 2-gi znak zmiennej href itd Rozwiązanie: Zamiast href[0], href[1] itd w ten sposób:
Wywalić: $link = implode('', $href); Widzisz już gdzie masz błąd? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
ale tak dzieje sie tylko gdy dodaje nowy link, normalnie dziala dobrze...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
1. Przypisanie zamiast porównania:
2. Jeśli kolumna menu.id jest kluczem podstawowym z auto_increment, to nie musisz się bawić w sprawdzanie ostatniego ID i zwiększać go o jeden. W ogóle nie musisz bawić się z ID - jeśli nie wstawisz go do zapytania, to kolumna ta zostanie uzupełniona automatycznie. Natomiast co do zamieniania pierwszej litery na "a", to nigdzie tego nie widzę. Wklej cały kod dodawania linków do bazy. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
Caly skrypt na dodawanie linkow. Podobny problem wystepuje gdy chce edytowac menu (IMG:http://forum.php.pl/style_emoticons/default/blink.gif) !? Gdy ustawie zeby menu w tym momencie w ktorym zmieniane sa wpisy w bazie sie nie wyswietlaly to dziala !? nie moge tego pojac, a poza tym wkurza mnie to prymitywne rozwiazanie ;/ |
|
|
![]()
Post
#6
|
|
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 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
heh dzieki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) ale jak sie robi po nocach to sie nie pamieta gdzie jaka zmienna byla (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 13:44 |