Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazywanie zmiennych sesji
Forum PHP.pl > Forum > Przedszkole
poncjusz
Moj problem stworzylem sobie taka funkcje ktora pobiera komunikat i ustawia zmienna sesji:

  1. <?php
  2.  
  3. function komunikat ($komunikat_msg) //wyswietla komunikaty na specjalnie przygotowaniej stronie
  4. {
  5. global $_SESSION;
  6. $_SESSION['komunikat']= $komunikat_msg;
  7. header(&#092;"Location:http://localhost/spa/komunikat.php\");
  8. }
  9.  
  10. ?>


wywyłuje ją w taki sposob z dowolnej podstrony strony:
  1. <?php
  2.  
  3.  if (istnieje_email($adres))  // sprawdzam czy czasami nie istnieje juz email
  4. {
  5. $error_msg= &#092;"Adres email znajduje sie już w naszej bazie.\";
  6. komunikat ($error_msg);
  7. }
  8.  
  9. ?>


Plik komunikat.php gdzie przekierowywuje funkcja komunikat() wyglada tak:
  1. <?php
  2. include ('admin/baza.php');
  3. include ('Smarty.class.php');
  4. $smarty= new Smarty();
  5.  
  6. $dzial= 'komunikat';
  7. $wiadomosc= $_SESSION['komunikat'];
  8.  
  9. $smarty-> assign ('komunikat', $wiadomosc);
  10. $smarty-> assign ('strona_top', $dzial);
  11. $smarty-> assign ('plik', $dzial.'.tpl');
  12. $smarty-> display ('index.tpl');
  13. ?>


a sam szablon Smarty tak:
Kod
<br />
<br />
<table align="center">
    <tr>
        <td>{$komunikat}</td>
    </tr>
    <tr>
        <td align="center"><br /><br /><a href="javascript:history.back()" class="admin">powrót</a></td>
    </tr>
</table>


Wiec jak na moje oko wszystko powinno chodzic "jak cza", zaznaczam ze wszedzie jest rozpoczete start_session(), chyba jednak mam problem z oczami bo nie chodzi.
nospor
Na pierwszy, szybki rzut oka tu masz bobol:
  1. <?php
  2.  
  3. function komunikat ($komunikat_msg)  //wyswietla komunikaty na specjalnie przygotowaniej stronie
  4. {
  5.     //!!!!!!!!global $_SESSION; to wywalić!!!!!!!!
  6.     $_SESSION['komunikat']= $komunikat_msg;
  7.     header(&#092;"Location:http://localhost/spa/komunikat.php\");
  8. }
  9.  
  10. ?>
$_SESSION jest tablicą superglobalną i nie trzeba (nie wolno) jej globalizować. Twoja metoda stworzyła więc chyba lokalną zmienną $_SESSION, która nie jest sesją
poncjusz
Bobol był, jednak poprawka nic nie dala nie dziala dalej sad.gif,

Wsrod funkcji ktore mam w jednym pliku z komunikat() znajduje sie tez funkcja sprawdz():
  1. <?php
  2.  
  3. function sprawdz() //sprawdza czy uzytkownik to administrator
  4. {
  5. if ($_SESSION['admin']!=1)
  6. {
  7. komunikat (&#092;"Strona wymaga zalogowania się\");
  8. }
  9. }
  10.  
  11. ?>


Ktora dziala poprawnie wiec mozliwe ze cos przy przekazywaniu jest zle, no po prostu nie mam pojecia!! Nie bede przeciez zalaczal za kazdym razem calego komunikatu na koncu urla GET... kurde...


OK DOBRA JUZ DZIALA smile.gif


Dobra mam kolejna wskazowke sprawdzilem czy dobrze przekazywany jest parametr do funkcji i dokrylem ze cos tam jest nie, taki kod:
  1. <?php
  2.  
  3. function komunikat ($komunikat_msg) //wyswietla komunikaty na specjalnie przygotowaniej stronie
  4. {
  5. $_SESSION['komunikat']= &#092;"jakas wiadomosc\";
  6. header (&#092;"Location: http://localhost/spa/komunikat.php\");
  7. }
  8.  
  9. ?>

działa wszystko poprawnie
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.