Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Mam sobie kawałek kodu php:
<?php header("Content-Type: text/plain"); $tablica_z_odpowiedziami = array(); $ilosc_punktow = 0; /* * funkcja wczytuje odpowiedzi na pytania z pliku xml */ function wczytajOdpowiedzi() { } $tablica_z_odpowiedziami[0] = 2; //to ma być w funkcji wyżej ^ $tablica_z_odpowiedziami[1] = 1; $tablica_z_odpowiedziami[2] = 3; $tablica_z_odpowiedziami[3] = 3; $tablica_z_odpowiedziami[4] = 2; $tablica_z_odpowiedziami[5] = 3; /* * funkcja porównuje odpowiedź użytkownika uzyskaną z odpowiedzią znajdującą się w tablicy odpowiedzi */ function sprawdzCzyPoprawna($i_id, $i_odp) { global $tablica_z_odpowiedziami; if ($tablica_z_odpowiedziami[$i_id] == $i_odp) { return true; } } /* * funkcja sprawdza dla każdego elementu */ function policzPunkty() { global $ilosc_punktow; foreach ($_POST as $id => $odpowiedz) { if(sprawdzCzyPoprawna($id, $odpowiedz)) { $ilosc_punktow++; } } } wczytajOdpowiedzi(); policzPunkty(); print($ilosc_punktow); ?>
Jest to kod, który ma sprawdzać poprawność udzielonych odpowiedzi w quizie. Identyfikatory pytań i odpowiedzi skrypt otrzymuje jako argumenty $_POST (funkcja policzPunkty()). W funkcji wczytajOdpowiedzi() ma on za zadanie powstawiać identyfikatory pytań i odpowiadające im odpowiedzi do tablicy $tablica_z_odpowiedziami. Jednak umieszczenie tam poleceń w stylu: "$tablica_z_odpowiedziami[0] = 2;" nie działa, więc przypisania te musiałem wrzucić pod tą funkcję. I to jest największy problem: jak przypisywać do tej tablicy wartości w funkcji. Próbowałem zadeklarować ją w funkcji jako global, ale wała to dało. Co ciekawe, jeśli zadeklarowałem zmienną $ilosc_punktow jako globalną w tej funkcji i przypisywałem jej wartość, to wszystko działało. Ma ktoś może pomysł dlaczego nie mogę w tej funkcji przypisywać wartości do nowych elementów?
Offline
Czytałem to, ale mało istotne. Cud się kurna stał, bo z jakiejś paki zaczęło działać zwykłą metodą global $tablica_z_odpowiedziami. Sam nie wiem co było nie tak. W szkole z kumplami się z pół godziny męczyliśmy dochodząc dlaczego to nie działa.
Co by nie było, to temat jest do zamknięcia lub nawet do usunięcia (ze względu na skrajnie niską wartość merytoryczną).
Offline
Zmienne globalne w php4,5 wymagają do działania ustawienia zmiennej register_globals w php.ini. Domyślnie jest to chyba wyłączone, używanie zmiennych globalnych jest niepolecane ze względów bezpieczeństwa, ale nie tylko.
Offline
kamikaze ma racje, zapomianlem o register_globals, faktycznie sa wylaczone. generalnie odchodzi sie od global/$GLOBAL. de facto lepiej napisac pseudo klase z publicznym atrybutem i przez niego odwolywac sie
Offline