Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX/PHP]Zmienne sesji w Ajaxie, Jak używać.
gilbo
post 3.06.2007, 13:55:36
Post #1





Grupa: Zarejestrowani
Postów: 169
Pomógł: 1
Dołączył: 16.04.2004
Skąd: z domu

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


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!

Ten post edytował gilbo 3.06.2007, 11:13:23
Go to the top of the page
+Quote Post
yaotzin
post 21.06.2007, 22:48:37
Post #2





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

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


Dodaj session_start();


--------------------
------
Per Aspera Ad Astra
Go to the top of the page
+Quote Post
php programmer
post 22.06.2007, 08:08:01
Post #3





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


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.
Go to the top of the page
+Quote Post
gilbo
post 23.06.2007, 12:17:35
Post #4





Grupa: Zarejestrowani
Postów: 169
Pomógł: 1
Dołączył: 16.04.2004
Skąd: z domu

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


@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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 15:40