Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]jezyk przez zaladowanie post do sessji
noc_nik
post
Post #1





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 24.06.2003
Skąd: Kielce

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


Witam

Zrobiłem sobie jezyki na sessjach :

  1. <?php
  2. $var =$_POST["jezyk_strony"];
  3. if (empty($var)) {$_SESSION["jezyk_strony"]='pl';}
  4. if (isset($var)) {$_SESSION["jezyk_strony"]=$_POST["jezyk_strony"];}
  5. ?>


A działa to tak ze jeśli jezyk nie zostanie wybrany to załaduje sie automatycznie do sessji pl
  1. <?php
  2. if (empty($var)) {$_SESSION["jezyk_strony"]='pl';}
  3. ?>


Problem polega na tym ze plik jest w index.php jesli sie przejdzie np do ?go=kontakt to bedzie szukal $_POST czy zostal wypelniony jesli nie wysle mi do stesji pl zamiast utrzymac wybrany jezyk.

Ktos ma jakies propozycje?
Go to the top of the page
+Quote Post
Skie
post
Post #2





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

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


No to może przyjmij inną koncepcję? Np.

  1. <?php
  2. if (IsSet($_POST['lang']) && $_POST['lang'] != '') {
  3.    $_SESSION['lang'] = $_POST['lang'];
  4. }
  5.  
  6. if (!$_SESSION['lang']) {
  7.   $_SESSION['lang'] = 'pl';
  8. }
  9. ?>


Zalety:
- język zmieni się tylko wtedy jeżeli dopiszesz do linka &lang=jezyk
- jeżeli żadnego języka nie ma ustawionego to daje "pl"

To powinno rozwiązać Twój problem. Ponadto radziłbym Ci zrobić tablię jakie istnieją języki dodał warunek przy zmienianiu języka, czy istnieje taki język $_POST['lang'] - jeśli tak to zmień na niego, jeśli nie to nic nie rób.
Go to the top of the page
+Quote Post
noc_nik
post
Post #3





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 24.06.2003
Skąd: Kielce

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


Znaczy sie ja mam jezyki zapisane w bazie i sie generuja same przyciski dostepnych jezykow. Wtedy POST ładuje do sesji dostępny jezyk:


  1. <?php
  2. $zapytanie= 'SELECT * FROM '.$nazwa.' where id='.NR.' and jezyk_strony="'.$_SESSION["jezyk_strony"].'"' ;
  3. ?>


  1. <?php
  2. jezyk_strony="'.$_SESSION["jezyk_strony"].'" ;
  3. ?>


Ten post edytował noc_nik 6.01.2009, 19:17:17
Go to the top of the page
+Quote Post
Skie
post
Post #4





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

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


Tak, ale w przeglądarce tak czy siak można wysłać tego POSTa, więc zabezpieczeń nigdy dość. A mój skrypt powinien pasować.

Widzę, że edytowałeś posta. Zrób więc tak skoro koniecznie musisz z bazy to pobierać:

  1. <?php
  2. if (IsSet($_POST['lang']) && $_POST['lang'] != '') {
  3.   $zapytanie = mysql_fetch_row(mysql_query('SELECT * FROM '.$nazwa.' where id='.$nr.' and jezyk_strony="'.$_SESSION["jezyk_strony"].'"'));
  4.   if (count($zapytanie) == 1) {
  5.      $_SESSION['lang'] = $_POST['lang'];
  6.   }
  7. }
  8.  
  9. if (!$_SESSION['lang']) {
  10.  $_SESSION['lang'] = 'pl';
  11. }
  12.  
  13. $jezyk_strony = $_SESSION['lang'];
  14. ?>


Chyba nie ma tutaj błędu z mysql_query () i mysql_fetch_row() ale nie jestem pewien, bo dawno nie korzystałem ze standardowych funkcji PHP do obsługi MySQL (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Skie 6.01.2009, 19:26:56
Go to the top of the page
+Quote Post
noc_nik
post
Post #5





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 24.06.2003
Skąd: Kielce

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


W sumie masz racje troche przerobie Twoje i bedzie ok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) masz plusa ;p
Go to the top of the page
+Quote Post

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: 2.10.2025 - 17:22