Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomocy - Sesje + PHP
Forum PHP.pl > Forum > Gotowe rozwiązania
Master Miko
Witam,

Proszę o pomoc w tym skrypcie:

Otóż stworzyłem plik lang.php

  1. <?php
  2.  
  3. if (isset($_SESSION['LANG'])) {
  4. $_SESSION = array();
  5. setcookie (session_name(), '', time()-300, '/', '', 0); // Usunięcie pliku cookie.
  6. }
  7. if (($_GET['set']) == '0') { 
  8. $_SESSION['LANG'] = &#092;"POL\";
  9. } else { 
  10. $_SESSION['LANG'] = &#092;"ENG\";
  11. };
  12. header (&#092;"Location: http://\" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . \"/index.php\");
  13. exit();
  14.  
  15. ?>



Kiedy wpisuję link lang.php?set=0 , chcę aby $_SESSION['LANG'] miała wartośc "POL"
A kiedy wpisuję link lang.php?set=1 , chcę aby $_SESSION['LANG'] miała wartośc "ENG"


Inne Dokumenty (index.php i reszta) mają na początku:


  1. <?php
  2.  
  3. if (!isset($_SESSION['LANG'])) {
  4. $_SESSION['LANG'] = &#092;"POL\";
  5. } 
  6.  
  7. ?>


To na począku dałem, aby domyślnie $_SESSION['LANG'] miała wartośc "POL"

Proszę o pomoc sadsmiley02.gif
Strzyzyk_MC
W czym problem lezy ?
Bakus
@Strzyzyk_MC: Wydaje mi się, że autor tematu określił w czym jest problem...

Master Miko czy możesz napisać poco na początku pliku znajdują się te polecenia:
  1. <?php
  2. if (isset($_SESSION['LANG'])) {
  3. $_SESSION = array();
  4. setcookie (session_name(), '', time()-300, '/', '', 0); // Usunięcie pliku cookie.
  5. }
  6. ?>

?
Jeżeli usuwasz sesje, to nie ma sensu dalsze sprawdzanie, czy ona cokolwiek zawiera...
Master Miko
Chciałbym poprostu użyć sesji do określania języka. Jeżeli np. ($_SESSION['LANG']) miałby wartość "POL", to w innych dokumentach przy pomocy tej sesji pojawiałyby się dokumenty w języku polskim czyli coś w tym stylu:

  1. <?php
  2.  
  3. if(($_SESSION['LANG']) == &#092;"POL\") { include(\"includes/pol.inc\"); };
  4. if(($_SESSION['LANG']) == &#092;"ENG\") { include(\"includes/eng.inc\"); };
  5.  
  6. ?>


a kodu, który podałeś Bakus użyłem poto, aby usuwać sesję tylko wtedy kiedy ona istnieje... gdyby nie było sesji to przy jej kasowaniu raczej pojawiłby się błąd... . Znajduje się ten kod w pliku lang.php i uruchamia się tylko wtedy, kiedy chce zmienić język poleceniem lang.php?set=0 lub lang.php?set=1


A kasuje ją poto, aby zrobić nową sesję z innymi paramertami.

Chce poprostu zrobić serwis w 2 językach...
Sesje wydały mi się najlepszym sposobem, ale mogłem się mylić dry.gif



Jeżeli jeszcze macie jakieś pytania, to pytajcie winksmiley.jpg



Ps. Strzyzyk_MC... nie umiem tego LEPIEJ wytłumaczyć dry.gif
Strzyzyk_MC
Nie nie sorki, poprostu bylo zbyt pozno i przeczytalem post ale nie temat dry.gif
Master Miko
Już znalazłem odpowiedź na to pytanie cool.gif

Kod powinien być taki (zamiast pliku lang.php wszystko wstawiłem do index.php tongue.gif )


  1. <?php
  2.  
  3. if (isset($_GET['set'])) {
  4. if (isset($_SESSION['LANG'])) {
  5. unset($_SESSION['LANG']);
  6. }
  7.  
  8. if (($_GET['set']) == '0') { 
  9. $_SESSION['LANG'] = &#092;"POL\";
  10. } else { 
  11. $_SESSION['LANG'] = &#092;"ENG\";
  12. };
  13. };
  14.  
  15.  
  16. if (!isset($_SESSION['LANG'])) {
  17. $_SESSION['LANG'] = &#092;"POL\";
  18. } 
  19.  
  20. ?>



Teraz wystarczy wpisać index.php?set=0 dla wartości "POL" lub index.php?set=1 dla wartości "ENG". Zapisuje się to wszystko w sesji smile.gif

Pozwalam na wykorzystywanie powyższego skryptu cool.gif
Lord_Raven
po grzyba mieszac do tego sesje?
przeciez wystarczy zebys przesylal sobie GET'em jakis parametr i w zalezności od niego wyswietlal czy tez includowal odpowiednia zawartosc strony.

jesli juz chcesz mieszac do tego wszystkiego sesje to na moj gust zapomniales o session_start() i po grzyba kasujesz ta sesje? przeciez wystarczy zmienic dana zmienna sesyjna $_SESSION['LANG'] z POL na ENG i na odwrot. po co kasowac sesje i tworzyc ja na nowo?
Master Miko
Cytat(Lord_Raven @ 2005-02-11 13:27:01)
po grzyba mieszac do tego sesje?
przeciez wystarczy zebys przesylal sobie GET'em jakis parametr i w zalezności od niego wyswietlal czy tez includowal odpowiednia zawartosc strony.

jesli juz chcesz mieszac do tego wszystkiego sesje to na moj gust zapomniales o session_start() i po grzyba kasujesz ta sesje? przeciez wystarczy zmienic dana zmienna sesyjna $_SESSION['LANG'] z POL na ENG i na odwrot. po co kasowac sesje i tworzyc ja na nowo?

Bałem się przekłamań i błędów... więc wiesz... po wykasowaniu nie może być żadnego błędu cool.gif
Lord_Raven
Cytat(Master Miko @ 2005-02-11 13:29:05)
Bałem się przekłamań i błędów... więc wiesz... po wykasowaniu nie może być żadnego błędu

IMHO bez sensu. tylko obciazasz niepotrzebnie system
Master Miko
Cytat(Lord_Raven @ 2005-02-11 13:31:34)
Cytat(Master Miko @ 2005-02-11 13:29:05)
Bałem się przekłamań i błędów... więc wiesz... po wykasowaniu nie może być żadnego błędu

IMHO bez sensu. tylko obciazasz niepotrzebnie system

bla bla bla tongue.gif

Dopiro ucze się php od 3 misięcy i wcześniej uczyłem się JavaScriptu... z przyzwyczajenia do JS wolałem nie ryzykować...

Miałeś racje... dałem session_start() tylko w kilku miejscach. Teraz jedno wstawiłem przed wszystkim i działa smile.gif
Lord_Raven
w programowaniu chodzi o to by cos dzialalo w jak najprostszy sposob. Staraj sie wszystko minimalizowac w miare rozsadku cool.gif
Master Miko
Cytat(Lord_Raven @ 2005-02-11 13:36:32)
w programowaniu chodzi o to by cos dzialalo w jak najprostszy sposob. Staraj sie wszystko minimalizowac w miare rozsadku cool.gif

Teraz chce żeby działało tongue.gif

O optymalizacji pomyślę później...

I tak nie tworzę ani dużych systemów, ani wielkich portali więc narazie jest git cool.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-2024 Invision Power Services, Inc.