Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]includowanie języka
Forum PHP.pl > Forum > Przedszkole
Johnas
Witam zrobiłem funkcje na stronie że język zmienia się do języka przeglądarki ale jak zrobić że jak ktoś wpisze domene en.youphoto.pl to ma strone po angielsku a jak wpisze pl.youphoto.pl to ma po polsku ? mogę dodać nieskończoną ilość subdomen tak że to nie jest problem wink.gif
-carkar-
Ja bym to zrobił na JS. Wczytał z paska przeglądarki adres, który wyświetlam.
carkar
dokładnie to tak to sprawdzisz:
Kod
document.location
Johnas
myślałęm jakoś o htaccess i $_GET ale nie wiem czy tak sie da
carkar
GET'em nie zrobisz bo to subdomena a nie zmienna, na htacces'ach trzeba się pobawić, ale jest taka możliwość.
P.S: co masz do JS'ów?? smile.gif
Johnas
Hmm... nie ma niby wyniku w manualu sad.gif
carkar
Bo to JavaScipt a nie PHP. Wydaje mi się że na PHP nie ma takiej możliwości.
Johnas
Na javie słabo się znam sad.gif nawet nie raczkuje tylko się czołgam sad.gif powiesz mniej więcej co zrobić aby do zmiennej dać ten wpisany link ?
carkar
Nie Java tylko JavaScript, napisz do mnie na PW maila to ci wyśle kod i skana z gazety.
Johnas
kurcze mam tak i $link nic nie zwraca.
  1. <!DOCTYPE html>
  2.  
  3. <body onload=pisz();> <!-- niejestesm pewien -->
  4. <script type="text/javascript">
  5. function pisz {
  6. var co
  7. co = document.location;
  8. var div = document.getElementById("pasek");
  9. div.innerHTML = co;
  10. }
  11. </script>
  12.  
  13. <!-- robisz ukryty div -->
  14. <?php $link = "<div class=\"pasek\" hidden=\"hidden\" <!-- nie wiem czy dobrze napisałem to słowo -->
  15. </div>";
  16.  
  17. if ($link == 'en.youphoto.pl'){
  18. include('language/en.php');
  19. } elseif ($link == 'pl.youphoto.pl'){
  20. include('language/pl.php');
  21. }else{
  22.  
  23. $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  24.  
  25. switch($lang)
  26. {
  27. case 'pl':
  28. include('language/pl.php');
  29.  
  30. break;
  31. case 'en':
  32. include('language/en.php');
  33.  
  34. break;
  35. default:
  36. include('language/pl.php');
  37. }
  38. }
  39. ?>
  40. <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  41. <title><?php echo $_lang['title']; ?></title>
  42. <meta charset="utf-8">
  43. <meta name="description" content="<?php echo $_lang['description']; ?>">
  44. <meta name="keywords" content="<?php echo $_lang['tags']; ?>">
  45. <meta name="robots" content="index,follow">
  46. <link href="css/reset.css" rel="stylesheet" type="text/css">
  47. <link href="css/layout.css" rel="stylesheet" type="text/css">
  48. <link href="css/style.css" rel="stylesheet" type="text/css">
  49. <link href="css/prettyPhoto.css" rel="stylesheet" type="text/css" media="screen" title="prettyPhoto main stylesheet">

Maxik
Poszukaj sobie o wildcard i htaccess. Tu masz sporo informacji: http://eriz.pcinside.pl/weblog/mod_rewrite...wiazac-208.html
Johnas
Dobra zmieniłem tak:
  1. <!DOCTYPE html>
  2. <?php
  3. $link = $_GET['lang'];
  4.  
  5. if ($link == 'en'){
  6. include('language/en.php');
  7. } elseif ($link == 'pl'){
  8. include('language/pl.php');
  9. }else{
  10.  
  11. $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  12.  
  13. switch($lang)
  14. {
  15. case 'pl':
  16. include('language/pl.php');
  17.  
  18. break;
  19. case 'en':
  20. include('language/en.php');
  21.  
  22. break;
  23. default:
  24. include('language/pl.php');
  25. }
  26. }
  27. ?>


w htaccess dodałem 2 linijki
Kod
RewriteCond %{HTTP_HOST} ^([^.]+)\.youphoto\.pl [NC]
RewriteRule ^(.*) http://youphoto.pl/?lang=%1 [QSA]


Ale po wpisaniu en.youphoto.pl przenosi na http://youphoto.pl/?lang=en a ja chciał bym aby cały czas było en.youphoto.pl
Fifi209
Zamiast:

http://youphoto.pl/?lang=%1

daj

skrypt.php?lang=$1

i zamiast samej flagi QSA
dodaj jeszcze L

[QSA,L]
Johnas
Ale chciał bym aby to działało na wszystkie podstrony... Nie tylko na strone główną ale na profile.php gdzie mam wiele $_GET`ów
Przykład linku z opcji w profilu wygląda tak
Kod
profile.php?act=option&actopt=profile_setting

Fifi209
Uznałem, że robisz tak jak być powinno - wszystko leci do pliku index, gdzie potem odpowiednio wykonujesz akcje - i pod takie założenie pisałem odpowiedź.
Johnas
a jest jakaś możliwość zrobienia tego aby działało na wszystkie strony? i aby to było w jakiejś zmiennej ? albo jakiś inny sposób ?
Fifi209
Inny sposób podałem - wszystko kieruj do index.php (cały ruch), który odpala wykonuję daną akcję (np. includuje daną podstronę)

Co do pytania o zapis do zmiennej - może to być np. $_SESSION będziesz miał łatwy dostęp.
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.