Żywotność zmiennych w php ? Sesje?


(Danpasall) #1

Witam,

zakladajac ze mam strone www o kilku podlinkach ,na poczatku strony glownej index.php jest

<?

session_start();

$browser=$_SERVER['HTTP_USER_AGENT']

?>

otoz zmienna ta jest wykorzystywana w kazdym podlinku i oto moje zapytanie czy w podlinkach zmienna ta bedzie widoczna ??? czy nalezy wartosc tej zmiennej przekazywac przez np.$_SESSION['info'] czy moze poprzez global $browser , czy istnieje jeszcze moze jakies inne rozwiazanie. Czy poprostu nalezy w kazdym podlinku umiescic to zapytanie php ,niemniej jednak gdyz zamiast $SERVER['HTTP_USER_AGENT'] wstawie funkcje wyskakuje pozniej blad redeclare function czy jakos tak ? Prosze o pomoc ,gdyz jestem osoba zaczynajaca zabawe z skryptami . Ktore rozwiazanie jest najodpowiedniejsze ????

Z gory wielkie dzieki.


(Airborn) #2

naturalnie możesz ją przekazywać poprzez sesję, możesz też ponownie pobrać wartość $_SERVER['HTTP_USER_AGENT'], ja bym stosował to drugie rozwiązanie, po co takie dane pakować w sesje, chyba, że nie chcesz,aby pomiędzy podstronami użytkownik zmienił user agenta


(Danpasall) #3

A jezeli za $browser=system() wstawie funkcje , za kazdym razem funkcja w kolejnym linku bedzie wywolywana . Wydaje mi sie ze to moze byc niezbyt optymalne rozwiazanie . Pomoco wykonywac za kazdym razem ta samo funkcje jezeli mozemy wywolac ja raz a wynik pozniej jakos przekazywac . Tylko szukam jakegos rozwiazania w php ???? Chyba ze mowie tu o glupotach ?

Druga strona problemu ze jezeli wstawie w kazdym linku deklaracje

<?

include("dane.php") //deklaracje funkcji

$browser=CheckBrowser(); //funkcja zadeklarowana w dane.php

?>

wyskakuje blad Fatal error: Cannot redeclare CheckBrowser() , gdy dam include("dane.php") jedynie na index.php to w podlinku nie wykrywa mi tej funkcji wiec jestem w malej petli :frowning: . Zaznaczam ze jestem poczatkujacy i moze robie tu wielka glupote ,wiec prosze o wyrozumialosc .


(Airborn) #4

może już gdzieś includujesz ten plik wcześniej? spróbuj zmienić na include_once()

IMO, jednak bardziej optymalne będzie każdorazowe wywołanie funkcji. Nie zapomnij, że sesja to też coś, co musi być gdzieś przechowywane


(Danpasall) #5

Racja po twojej stronie include() mialem dwa razy wiec dzieki za posta co do tego iz nalezy wykonywac te same polecenia to mam male watpliwosci ale jak tak mowisz to ok ,wkoncu to ja tu zaczynam.

Dzieki wielkei za zainteresowanie i pomoc

Pozdrawiam

Złączono Posta : 08.10.2007 (Pon) 0:00

Misquzi za w koncu ;] polonista to nie jestem


(L337 Crew) #6

Byłoby tak, jeżeli tą zmienną będziesz pobierał w PĘTLI generującej linki.

Jeśli przed nią przypiszesz do zmiennej $browser dane to tylko raz zostanie to wykonane, a będzie działało. Nie wiem jaką posiadasz strukturę dokumentu.


(Marek Ciarkowski) #7

kup dobrą książkę :slight_smile: Polecam "Dynamiczne strony WWW PHP i MySQL" autor larry Ullman wydawnictwo nie inaczej jak Helion

Złączono Posta : 08.10.2007 (Pon) 16:31

aha cena 79zł :frowning:


(_mnich) #8

po co ci książka ?? skorzystaj z manuala i google


(Marek Ciarkowski) #9

po to żeby wiedzieć jak z tego manuala skorzystać, jak zmodyfikować skrypt wyszukany w google pod własną stronę i przede wszystkim po to żeby mieć naprawdę konkretną wiedzę na dany temat. Moje zdanie jest takie że bez dobrej książki daleko nie pojedziesz a już na bank zatrzymasz się na pewnym poziomie który nie pozwoli Tobie na zrobienie naprawdę dobrej, wydajnej, zoptymalizowanej witryn korzystającej z bardzo dużej bazy danych .