Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazywanie zmiennych sesji
poncjusz
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 20.01.2004

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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ą
Go to the top of the page
+Quote Post
poncjusz
post
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 20.01.2004

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


Bobol był, jednak poprawka nic nie dala nie dziala dalej (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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

Ten post edytował poncjusz 27.07.2005, 14:07:47
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: 23.08.2025 - 05:00