Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX/PHP]Zmienne sesji w Ajaxie
Forum PHP.pl > Forum > XML, AJAX
gilbo
Witam mam mały problem z Ajax'em. Ściągnąłem sobie gotową bibliotekę Sajax i tylko z niej potrafię korzystać ogólnie o tej technologii wiem niewiele. Mimo wszystko udało mi się już wykonać sporo fajnych gadżetów na stronkę i wszystko działa...

Ale dziś przytrafił mi się mały problem, mianowicie:
Mam funkcję PHP (narazie nieskończona, tylko sam szkielecik):
  1. <?php
  2. function addShout($shout){
  3. $premission = 0;
  4. if(isset($_SESSION['userid'])){
  5. $data = dba(dbq("SELECT `shoutbox` FROM `users` WHERE `userid`='".$_SESSION['userid']."'"));
  6. $premission = $data['shoutbox'];
  7. }
  8. switch($premission){
  9. case 0:
  10. $msg = 'Dziękujemy! Twój wpis ukaże się po akceptacji administratora.';
  11. break;
  12. case 1:
  13. $msg = 'Dziękujemy! Twój wpis jest już aktywny.';
  14. break;
  15. case 2:
  16. $msg = 'Nie możesz dodać nowej wiadomości. Prawdopodobnie podpadłeś:)';
  17. break;
  18. }
  19. return $msg;
  20. }
  21. ?>


No i standartowe wywołanie w Sajaxie:
  1. function addShout(){
  2. var wpis = document.getElementById('shoutText').value;
  3. x_addShout(wpis, odpisz);
  4. }


Chodzi oto, że robię shoutboxa i chcę, aby skrypt sprawdzał czy wpis ma zostać przesłany do akceptacji do admina, odrazu akceptowany, czy też skasowany bez czytania w zależności od praw użytkownika. Ustawiam na początku $premission=0; to jakby był gość, niestety mimo, że jestem zalogowany na stronie i sesja jest aktywna, a $_SESSION['userid'] ma przypisaną wartość to Ajax tej sesji "nie widzi"... (wyświetla zawsze wartość dla premission=0)

Proszę o pomoc. Jak sprawić, aby Ajax widział sesje?
Pozdrawiam!

Po poszukiwaniach jakichś przykładów w internecie udało mi się samodzielnie rozwiązać ten problem. Piszę rozwiązanie, bo może się komuś przydać.

Mianowicie w funkcji, która jest eksportowana w sajaxie musiałem dopisać session_start(); a żeby wykonywać operacje w mysql musiałem od początku zdefiniować połączenie mysql_connect i mysql_select_db:)
Pozdrawiam!
yaotzin
Dodaj session_start();
php programmer
Informację o tym czy użytkownik jest zalogowany
zawsze możesz przesłać w parametrze funkcji,
  1. <?php
  2. x_addShout(wpis, odpisz);
  3. ?>


co prawda u Ciebie parametrem jest tekt,
ale sAjax (Simple Ajax) doaje możliwość przesyłania
nie tylko tekstu ale i również tablic a nawet obiektów.
gilbo
@yaotzin: dzięki za odpowiedź, ale już wcześniej to odkryłem;P

@php programmer: myślę, że dodawanie tej informacji jako dodatkowego parametru nie jest dobrym rozwiązaniem, bo może prowadzić do podszywania się, dlatego wolę, żeby to było sprawdzone przez php a nie bezpośrednio w js wsadzone.
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.