Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][PHP][SESJE]
palonek
post 24.01.2010, 19:03:49
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 2
Dołączył: 19.04.2009

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


siemka

mam problem ze sesjami. plik index.php jest ze switchem (index.php?page=strona) i ładuje plik z treścią (news.php itp), mam też w logo wkomponowane logowanie. za całe logo odpowiada u mnie logo.php gdzie mam formularz:

  1. <?php
  2. (...)
  3.  
  4. echo("<div id=\"logPanel\">");
  5. if(isset($_SESSION['logged'])) {
  6. echo("zalogowany <br /><br />
  7. <a href=\"index.php?page=login&out=1\">Wyloguj</a>");
  8. } else {
  9. echo("<form method=\"POST\" id=\"form\">
  10. <div class=\"logInput\"><input name=\"nick\" id=\"nick\" type=\"text\" value=\"Nick...\" onClick=\"this.value=''\" /></div>
  11. <div class=\"logInput\"><input name=\"pass\" id=\"pass\" type=\"password\" value=\"Pass...\" onClick=\"this.value=''\" /></div>
  12. <div id=\"logSubmit\"><input id=\"send\" type=\"submit\" value=\"\" /></div>
  13. </form>
  14. <div id=\"logRecover\">
  15. <a href=\"index.php?page=login&mode=recover\">Odzyskaj ?</a> | <a href=\"index.php?page=rejestruj\">Nowe Konto ?</a>
  16. </div>
  17. </div>");
  18.  
  19. (...)
  20. ?>


po kliknięci submitu formluarz przejmuje plik js:

?
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2. //global vars
  3. var inputUser = $("#nick");
  4. var inputPass = $("#pass");
  5. var loading = $("#loading");
  6. var panel = $("#logPanel");
  7.  
  8.  
  9. function checkForm(){
  10. if(inputUser.attr("value") && inputPass.attr("value"))
  11. return true;
  12. else
  13. return false;
  14. }
  15.  
  16.  
  17. $("#form").submit(function(){
  18. if(checkForm()){
  19. var nick = inputUser.attr("value");
  20. var pass = inputPass.attr("value");
  21.  
  22. $("#send").attr({ disabled:true });
  23.  
  24. $.ajax({
  25. type: "POST", url: "../login.php", cache: false, data: "mode=login&nick=" + nick + "&pass=" + pass,
  26. complete: function(data){
  27. panel.hide();
  28. panel.html(data.responseText);
  29. panel.fadeIn(1000);
  30.  
  31. $("#send").attr({ disabled:false });
  32. }
  33. });
  34. }
  35. else alert("Wypelnij wszystkie pola!");
  36.  
  37. return false;
  38. });
  39. });[
[JAVASCRIPT] pobierz, plaintext


oraz plik login.php odpowiadajacy za logowanie:

  1. <?php
  2.  
  3. require_once('engine.php');
  4.  
  5. if(isset($_POST['mode'])) {
  6. switch($_POST['mode']) {
  7.  
  8. case "login":
  9.  
  10. if(isset($_POST['nick'])) {
  11.  
  12.  
  13. $nick = addslashes($_POST['nick']);
  14. $pass = addslashes($_POST['pass']);
  15.  
  16. $user = dbquery("SELECT id, nick, pass, ranga FROM cs_user WHERE nick = '".$nick."' LIMIT 1");
  17.  
  18. if(dbrows($user)) {
  19. $userDane = dbarray($user);
  20. if(md5($pass) == $userDane['pass']) {
  21. $_SESSION['logged'] = 1;
  22. $_SESSION['id'] = $userDane['id'];
  23. $_SESSION['nick'] = $nick;
  24. $_SESSION['ranga'] = $userDane['ranga'];
  25. e
  26. echo($_SESSION['nick']." ".$_SESSION['logged']);
  27. } else {
  28. echo("Złe hasło");
  29. }
  30. } else {
  31. echo("Nie ma takiego użytkownika");
  32. }
  33.  
  34. }
  35. break;
  36.  
  37. }
  38. }
  39.  
  40. if(isset($out) && $out == 1) {
  41. echo('wylogowano');
  42. }
  43.  
  44.  
  45. ?>


problem w tym ze po wysłaniu formularza, zamiast inputów pojawia sie nazwa użytkowniak i id wczytywane z sesji, jednak po przejściu na inną strone znowu pojawia się panel logowania. próbowałem zamiast login.php dać index.php?page=login tylko wtedy ładuje się cała strona drugi raz ;D

Ten post edytował palonek 24.01.2010, 19:11:16
Go to the top of the page
+Quote Post
b4x
post 24.01.2010, 19:49:35
Post #2





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


A masz gdzieś
?


--------------------
Go to the top of the page
+Quote Post
palonek
post 24.01.2010, 19:51:40
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 2
Dołączył: 19.04.2009

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


haha.gif

tak w index.php na samym początku smile.gif
jakbym nie miał wywaliło by że nie znana zmienna _SESSION i nie pokazywało by loginu i id ;]
Go to the top of the page
+Quote Post
b4x
post 24.01.2010, 19:52:48
Post #4





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


Ale czy w pliku engine.php - także masz? Tam gdzie odbierasz dane via AJAX?


--------------------
Go to the top of the page
+Quote Post
palonek
post 24.01.2010, 19:58:46
Post #5





Grupa: Zarejestrowani
Postów: 32
Pomógł: 2
Dołączył: 19.04.2009

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


o kur*a biggrin.gif faktycznie miało być tam zamiast w index.php biggrin.gif ok dzięki i pomógł biggrin.gif
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: 28.04.2024 - 08:16