Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ajax łączy w sobie javascript i php?
Forum PHP.pl > Forum > XML, AJAX
Zagiewa
Witam. Potrzebuje zrobić pewien skrypt, który z początku wydawało mi się, że wystarczy javascript. Chodziło o stworzenie skryptu, który na początku ładowania strony sprawdzi z jaką przeglądarką internetową ma do czynienia. Jeśli jest to IE6 niech: wyświetli komunikat i zatrzyma dalsze ładowanie strony. I teraz tak. Mam skryot w javascript który sprawdza wersje przeglądarki i jeśli natrafia na IE6 wyświetla komunikat. Wiem też jak najprościej zatrzymać dalsze wyświetlanie strony za pomocą php. Np. funkcją exit(); prosto lecz skutecznie ale javascript i PHP ze sobą nie współpracują i doszły mnie słuchy, że AJAX jest w stanie coś takiego zrobić. Zanim jednak wezmę się za próby napisania tego skryptu moje pytanie: Czy rzeczywiście za pomocą AJAXa da się napisać taki skrypt?
markonix
Nie lepiej za pomocą samego PHP sprawdzić przeglądarkę i wykonać odpowiednią akcje?

Poza tym to co chcesz zrobić brzmi nieciekawie - blokować dostęp dla danej przeglądarki?
Nie lepiej komunikat, że mogą wystąpić problemy?
md1988
Zauważ, że wykonywanie javascript można zablokować w przeglądarce. Wtedy mając IE spokojnie możesz wejść.
kamil4u
Albo zrób po prostu coś a'la:
Kod
<html>
<body>
JAKIŚ długi tekst, zastępujący elementy HTML.JAKIŚ długi tekst, zastępujący elementy HTML.JAKIŚ długi tekst, zastępujący elementy HTML.JAKIŚ długi tekst, zastępujący elementy HTML.JAKIŚ długi tekst, zastępujący elementy HTML.JAKIŚ długi tekst, zastępujący elementy HTML.JAKIŚ długi tekst, zastępujący elementy HTML.JAKIŚ długi tekst, zastępujący elementy HTML.JAKIŚ długi tekst, zastępujący elementy HTML.JAKIŚ długi tekst, zastępujący elementy HTML.JAKIŚ długi tekst, zastępujący elementy HTML.JAKIŚ długi tekst, zastępujący elementy HTML.JAKIŚ długi tekst, zastępujący elementy HTML.
</body>
</html>



<script>
var IE = false; //zmień wartość na false. //Tu musi pojawić się funkcja spr. czy to jest IE6
if(IE){ document.body.innerHTML = ""; alert("Użyj przeglądarki, a nie jakiegoś badz_IE_wia - inaczej nic nie zobaczysz");}
</script>


Oczywiście musisz to odpowiednio pozmieniać, żeby to miało ręce i nogi.

PS. Mistrzem PHP, nie jestem, ale chyba funkcja exit() przerywa jedynie działanie PHP(prasera), a nie ładowanie dokumentu HTML. Nie mam czasu, ale sprawdź np. coś takiego:
Kod
126789
<?php eixt(); ?>
12345678
Zagiewa
Sprawdzić przeglądarkę za pomocą php? ciekawe bo z tego co wiem to php działa po stronie serwera wiec jak miałbym to zrobić? Co do blokowania dostępu do danych to czemu nie? Już od dawna wielu webmasterów przestało zwracać uwagę na to jak wyglądają ich strony w IE6 bo teoretycznie wszyscy już powinni korzystać co najmniej z IE7. Jeśli ktoś jest na tyle leniwy, że mu się nie chce zaktualizować przeglądarki to już nie mój problem. Może to trochę chamskie podejście ale aktualizacja wymaga mniej wysiłku niż próby sprawienia aby strona wyglądała dobrze we wszystkich przeglądarkach tym bardziej, że IE6 to już prehistoria.

Co do tego, że da się wyłączyć javascript to prawda ale jeśli miał bym podzielić użytkowników na grupy wyszły by dwie: 1. Pierwsza grupa składała by się z osób, które wiedzą co to javascript i mają ją wyłączoną (z jakichś tam powodów) ale jeśli wiedzą, do czego to służy to jestem prawie pewien, że korzystają z innych przeglądarek niż IE ewentualnie mają ją zaktualizowaną. 2. Druga grupa składała by się z osób, które mają IE6 bo sami nie wiedzą po co mieli by w ogóle aktualizować coś skoro teoretycznie działa więc wątpię, żeby mieli wyłączoną obsługę javascript, która jest domyślnie włączona. Więc jakie są szanse, że ktoś będzie miał IE6 i wyłączoną obsługę javascript? 5% użytkowników?

kamil4u - ten fragment kodu, który podałeś blokuje treść czy tylko wywala komunikat? Niestety nie bardzo znam się na javascript wiec mogę się tylko domyślać. I jak to działa jeśli skrypt wykonuje się pod treścią - chyba że skrypt umieszczę w funkcji i wykonam ją przed treścią.

Co do funkcji exit(); to masz racje. Zatrzymuje jedynie działanie PHP ale można umieścić treść kodu html w echo wewnątrz php - wiem, że jest to strasznie nieestetyczna forma ale podałem to tylko w formie przykładu.
Mephistofeles
Może po danych, jakie przeglądarka wysyła? User-agent choćby.
Pomijając fakt, że kompletnie nie rozumiem po co ci to?
aart3k
Nie pytaj po co, ja sam chętnie bym blokował wszystko użytkownikom IE6 tongue.gif
Detekcja przeglądarki w PHP: get-browser

Łatwiejszym rozwiązaniem wg. mnie jest wpisanie warunkowego CSS'a dla IE6 który ustawi wszystkim divom display: none winksmiley.jpg
kamil4u
@Zagiewa: Jeżeli zmienna IE==true(po prostu po to wrzucasz funkcję, która zwróci true jeśli IE i false jeżeli nie) to wyczyść całą zawartość <body> i wyświetl to co jest w alercie
Zagiewa
aart3k - dzięki za funkcję sprawdzającą przeglądarkę, przyda się choć muszę przyznać, że metoda z css wydaje się znacznie ciekawsza smile.gif
kamil4u - już rozumiem, równie dobre rozwiązanie

Dzięki wielkie smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.