Sposoby porozumiewania się JS oraz PHP

background image

Zmagania Suchego | Sposoby porozumiewania się JS oraz PHP

Copyright suchy dawidpanfil@gmail.com
http://free.xaa.pl/sposoby-porozumiewania-sie-js-oraz-php

Sposoby porozumiewania się JS oraz PHP

Częstą łamigłówka osób znających PHP oraz powierzchownie JS (czyli takich jak ja,
choć co do drugiego to nadrabiam, aby w końcu zabrać się za AJAX) jest
przekazanie wartości z jednego języka do drugiego.

Najpierw omówię przekazanie wartości z JS do PHP. Często widuje pytania
początkujących coderów co zrobić aby zmienne z JS były widziane w PHP.
Odpowiedz na forach jest zazwyczaj podobna czyli: "nie da się", tylko niektórzy
chociaż powierzchownie opiszą te sposoby co ja.
Pierwszy sposób, czyli ciasteczka. JavaScript i PHP korzystają właśnie wspólnie
między innymi z ciasteczek.. Uczyłem się JS bardzo dawno temu i nie wiem czy coś
się zmieniło w tworzeniu ciasteczek, ale przedstawię kod, który na pewno działa
(choć możliwe, że został zdeprecjonowany).

Zanim go wam pokażę, jeszcze parę słów o ciasteczkach. Cookie mają bardzo wiele
ograniczeń i nie są one bezpiecznie. Nie należy w nich trzymać ważnych i poufnych
danych. Oprócz tego muszą one być wysłane jako pierwsze (przynajmniej w PHP)
oprócz tego są one widziane dopiero przy ponownym przeładowaniu strony.
Minusem skorzystania z tej opcji jest to, że użytkownik może mieć wyłączone
przyjmowanie cookie. No i tyle z mojej strony o ograniczeniach ciasteczek.

W JavaScript cookie ma takową budowę:
Set-Cookie: nazwa-parametru = wartość; expires= data;

Są jeszcze inne pola, ale nie są one akurat nam potrzebne. Nazwa-parametru jest
synonimem zmiennej. Za pomocą właśnie tej nazwy będziemy się odwoływać do
informacji w cookie, expires natomiast jest odpowiedzialny za ważność ciasteczka.
Podaje się tam datę w formacie GMT np.: "Thu, 10 Jul 2010 15:25:30 GMT". Do
wygenerowania takiej daty może posłużyć funkcja ( a raczej obiekt jeśli mowa o JS)
Date.
W javascript utworzenie cookie wygląda następująco:
[sourcecode lang="javascript"]document.cookie = "tresc ="
+tresc+"; expires="+data+";";[/sourcecode]
Dla przypomnienia powiem, że w php wykorzystanie takowego ciasteczka
wyglądałoby tak:
$_COOKIE['tresc']
Drugi sposób –formularze. Tutaj sprawa może się lekko komplikować ponieważ,

page 1 / 2

background image

Zmagania Suchego | Sposoby porozumiewania się JS oraz PHP

Copyright suchy dawidpanfil@gmail.com
http://free.xaa.pl/sposoby-porozumiewania-sie-js-oraz-php

formularz nie zawsze jest potrzebny, ale wtedy należy wykorzystać w linkach
dodatkowe parametry (no o GET mi chodzi:) ). Stworzenie takich zmiennych też się
może troszkę skomplikować, ale pomoże nam z tym mała funkcja napisana w JS:

[sourcecode lang="javascript"]function przekaz(nazwa, wartosc, gdzie){
document.getElementById(gdzie).innerHTML += '<input
type=&quot;hidden&quot; name=&quot;'+nazwa+'&quot;
value=&quot;'+wartosc+'&quot; />';
}[/sourcecode]
oraz wywołanie funkcji to po pierwsze wstawienie przed przyciskiem do wysłania
jakiegoś diva. Oraz w jakimkolwiek miejscu wywołanie funkcji czyli:
[sourcecode lang="javascript"]przekaz('IP', document.hostname,
'przekaz_informacje');.[/sourcecode]
Teraz troszeczkę inna bajka, a mianowicie przekazywanie informacji z PHP do JS.
Tutaj widzę 3 sposoby. Pierwszy to cookie, który już opisałem. W tym miejscu
dodam, że odwołanie się do cookie w JS jest trudniejsze niż w PHP, aby ułatwić
korzystanie z tego podam gotową funkcję:
[sourcecode lang="javascript"]function getCookie(searchString){
var c= document.cookie;
point=c.indexof(searchString);
if(point != -1{
endAt=c.indexof(&quot;;&quot;, point +searchString.lenght);
if(endAt == -1) endAt= c.lenght;
var temp = c.substring('point + searchString.lenght, endAt);
return temp;
}[/sourcecode]
Co do jej wywołania w miejscu, w którym byśmy napisali (w PHP)
$_COOKIE['nazwa'] piszemy:
[sourcecode lang="javascript"]var
cos=getCookie('nazwa_zmiennej=');[/sourcecode]
Bardzo ważny jest znak = ponieważ inaczej trafi on do wartości zmiennej i będą
podane mylne dane.
Następnie opisałem w JS wysyłanie danych przez formularz. No to teraz odczyt ich
wygląda następująco:
[sourcecode lang="javascript"]var nazwa = document.[atrybut name
formularza].[name pola].value;[/sourcecode]
I ostatni sposób, chyba najbardziej prymitywny jaki może być to wykorzystanie
funkcji echo w PHP:[php]
echo '<script type=&quot;text/javascript&quot;>
var '. Nazwa_zmiennej .'= &quot;'.wartosc_wartosc'&quot;;
</script>'; [/php]
To tyle na dzisiaj, sposoby te są bardzo ograniczone funkcjonalnie, ale do drobnych
rzeczy sądzę że wystarczy. Jak wygląda wymiana zmiennych w AJAX to jeszcze nie
wiem, ale mam małą nadzieję, że o wiele łatwiej to wszystko będzie można zrobić.
Co do mojej notki, pojawiła się ona tak późno bo mi Internet padł :)

page 2 / 2


Wyszukiwarka

Podobne podstrony:
PYTANIA EGZAMINACYJNE 2, WSFiZ, semestr IX, Negocjacje jako sposób porozumiewania się w życiu społec
3 Język migowy sposobem porozumiewania się
S2 Negocjacje jako sposób porozumiewania się w życiu społecznym Jerzy Gieorgica wykład 8, Prywatne,
S2 Negocjacje jako sposób porozumiewania się w życiu społecznym Jerzy Gieorgica wykład 6, Prywatne,
EGZAMINY, Negocjacje jako sposób porozumiewania się w życiu społecznym
Alternatywne sposoby porozumiewania się
S2 Negocjacje jako sposób porozumiewania się w życiu społecznym Jerzy Gieorgica wykład 5, Prywatne,
Wspomagajace i alternatywne sposoby porozumiewania sie, studia, oligo, alternatywne i wspomagajace m
S2 Negocjacje jako sposób porozumiewania się w życiu społecznym Jerzy Gieorgica wykład 9, Prywatne,
S2 Negocjacje jako sposób porozumiewania się w życiu społecznym Jerzy Gieorgica wykład 3, Prywatne,
S2 Negocjacje jako sposób porozumiewania się w życiu społecznym Jerzy Gieorgica wykład 7, Prywatne,
komWspomagające i alternatywne sposoby porozumiewania się
S2 Negocjacje jako sposób porozumiewania się w życiu społecznym Jerzy Gieorgica wykład 4(1), Prywatn
PYTANIA EGZAMINACYJNE 3, WSFiZ, semestr IX, Negocjacje jako sposób porozumiewania się w życiu społec
S2 Negocjacje jako sposób porozumiewania się w życiu społecznym Jerzy Gieorgica wykład 2, Prywatne,
S2 Negocjacje jako sposób porozumiewania się w życiu społecznym Jerzy Gieorgica wykład 1, Prywatne,
PYTANIA EGZAMINACYJNE 2, WSFiZ, semestr IX, Negocjacje jako sposób porozumiewania się w życiu społec
3 Język migowy sposobem porozumiewania się

więcej podobnych podstron