Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP, JavaScript i sesje
Rellik
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.02.2011

Ostrzeżenie: (0%)
-----


Witam.

Zaskoczył mnie pewien przypadek. Pewnie ja coś przeoczyłem, dlatego chcę żeby ktoś też na to zerknął.

Jest taka sytuacja:

Kod JS:

Kod
var numer = 5;
document.getElementById("jakisDIV").innerHTML = '<?php $test = "' + numer + '"; echo $test; $_SESSION["numer"] = $test; ?>';


w divie "jakisDIV" pojawi się poprzez powyższe echo wartość "5".

Na innej podstronie jest taki kod PHP:

Kod
echo $_SESSION["numer"];


...i tu się robią cuda. Na stronie tej pojawia się wartość: "' + numer + '" (łącznie z apostrofami).

Proszę o wyjaśnienie dlaczego tak się dzieje? Dodam, że na każdej z tych stron jest użyte session_start();.

Pisane z pamięci, jakby były jakieś błędy to przepraszam. Jakby trzeba było coś więcej podać to dopiszę.

PS. Napiszę jeszcze, że jeśli w powyższym kodzie JS napisałbym z palca $_SESSION["numer"] = "5"; to na innej podstronie bez problemu mógłbym tą wartość odczytać, więc wina nie leży po stronie sesji.

Ten post edytował Rellik 2.10.2013, 15:36:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Wazniak96
post
Post #2





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

Ostrzeżenie: (0%)
-----


Dzieje się tak, ponieważ kod PHP jest wykonywany po stronie serwera, a kod JS po stronie użytkownika. Tzn. że, kod PHP wykonuje się na serwerze i zwraca dane(razem z kodem JS) do przeglądarki(czyli kod PHP wykonuje się najpierw...).

W twoim kodzie przypisujesz zmiennej z PHP treść "+ numer +". PHP interpretuje to jako zwykły tekst, i wysyła go do przeglądarki, a po stronie przeglądarki JS wyświetla zawartość swojej zmiennej. Dlatego też na stronie wyświetla Ci ok, a na podstronach już nie, bo brak jest odpowiedniego kodu JavaScript.
Dla PHP JS jest zwykłym tekstem (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 16:16