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/.


Członek DUG
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


Dzięcioł


Członek DUG
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


Członek DUG



Administrator




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


Dzięcioł



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