Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX] advAJAX a sesje
Forum PHP.pl > Forum > XML, AJAX > AJAX
Balon
Czy za pomoca AJAXU mozna tworzyc sesje ? bo z mojego obecnego doswiadczenia wychodzi na to ze nie :/

  1. <?php
  2. require('funkcje.php');
  3. lacz_baza();
  4.  
  5. switch( $_GET['act'] )
  6. {
  7. default: 
  8. if( isset( $_SESSION['id'] ) || isset( $_COOKIE['remember_id'] ) )
  9. {
  10. header( 'Location: ?act=logged');
  11. }
  12. if( isset( $_POST['login'] ) && isset( $_POST['pass'] ))
  13. {
  14. $q = mysql_query( 'SELECT * FROM users WHERE nick = "'.$_POST['login'].'" AND pass = "'.md5( $_POST['pass'] ).'"' );
  15. if( mysql_num_rows( $q ) < 1 )
  16. {
  17. $q1 = mysql_query( 'SELECT * FROM admin_gry WHERE login = "'.$_POST['login'].'" AND pass = "'.$_POST['pass'].'"' );
  18. if( mysql_num_rows( $q1 ) < 1 )
  19. {
  20. echo 'BRAK';
  21. exit();
  22. }
  23. $row = mysql_fetch_array( $q1 );
  24. }
  25. else 
  26. {
  27. $row = mysql_fetch_array( $q );
  28. }
  29. $_SESSION['id'] = $row['id'];
  30. $_SESSION['nick'] = $row['nick'];
  31. if( $_GET['remember'] == 'true' )
  32. {
  33. setcookie( 'remember_id', $row['id'], 3600 * 24 * 30 );
  34. setcookie( 'remember_code', md5( $row['login'].$row['pass'] ), 3600 * 24 * 30 );
  35. }
  36. }
  37. break;
  38. case 'logged':
  39. echo 'MENU';
  40. break;
  41. }
  42. ?>


Kod
function login()
{
    advAJAX.assign( $("loginform"), {
        onSuccess : function(obj)
        {
            if( obj.responseText == 'BRAK' )
            {
                alert( 'Podałeś błędne dane' );
                return;
            }
            else
            {
                refreshLogin();
            }
        }
    });
}

function refreshLogin()
{
        advAJAX.get({
            url: "login.php",
            onLoading: function(obj)
            {
                $("logindiv").innerHTML = 'Zalogowano ...';
            },
            onSuccess : function(obj)
            {
                $("logindiv").innerHTML = obj.responseText;
            }
        });
}


  1. <div id="logindiv">
  2. <table border="0" cellpadding="0" cellspacing="0" width="200%" height="24">
  3.  
  4. <form action="login.php" method="post" id="loginform">
  5. <tr><td><label>Login:<br/><input type="text" name="login" /></label></td></tr>
  6. <tr><td><label>Hasło:<br/><input type="password" name="pass" /></label></td></tr>
  7. <tr><td><input type="submit" value="Loguj" /></td></tr>
  8. </form>
  9.  
  10. </table>
  11. </div>


niestety takie cos nie dziala... loguje, wywala zalogowano, a potem ma pokazac MENU jednak wyswietla pustke czyli sesji w ogole nie ma... jak to rozwiazac... prosze o pomoc
anopak
najlepiej sprawdz na prostym przykładzie, np. w jednym pliku ustawiesz zmienna sesyjna, drugi plik ładujesz ajax'em w którym wyświetlasz tą zmienna...

pozatym jak dla mnie to dziwny ten switch... sprawdzasz czy ktoś jest zalogowany poprzez _GET'a? czyli jesli sobie wpisze adres.php?act=logged to pokaże się menu zalogowanego?
Balon
tak bo to tylko prowizora na razie zeby zobaczyc co nie dziala

dodalem do tamtego skryptu jeszcze warunek ze jesli nie ma sesji to Ci wywala napis BLAD....

http://torrent.az.pl/index.php

logowanie po prawiej, login: test, haslo: test
no i mozecie sami zobaczyc jak to dziala...
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.