Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Problem z logowaniem na sesjach
Forum PHP.pl > Forum > Przedszkole
agentmullder
Witam wszystkich. Zwracam sie do Was z prosba o pomoc w ustawieniu skryptu logowania na sesjach dla mojej mini stronki. Zaznacze, ze skrypt sam w sobie dziala, ale mam problem z przeniesieniem go na stronke. Logowanie robie po raz pierwszy i z sesjami tez mam pierwszy kontakt. Czytalem manuale, poradniki, wiele tematow na tym forum, probowalem stosowac sie do porad z innych tematow, ale nie poskutkowalo.

Moja stronka sklada sie z:
  1. <div id="menu">
  2. <ul>
  3. <li><a href="index.php?pageID=glowna">główna  </a></li>
  4. <li><a href="index.php?pageID=rejestracja">rejestracja  </a></li>
  5. <li><a href="index.php?pageID=logowanie">logowanie  </a></li>
  6. </ul>
  7. </div>
  8.  
  9. <div id="div_right">
  10.  
  11. <?php
  12. if(!empty($_GET['pageID'])){
  13. $id = $_GET['pageID'];
  14. }else{
  15. $id = "0";
  16. }
  17.  
  18. switch ($id){
  19. case 'główna' : include("głowna.php"); break;
  20. case 'rejestracja' : include("rejestracja.php"); break;
  21. case 'logowanie' : include("logowanie.php"); break;
  22. default : include("glowna.php"); break;
  23. }
  24. ?>
  25. </div>


Do div_right sa wstawiane podstrony podczas klikania w menu: rejestracja/logowanie/glowna.

Rejestracja - zakladanie kont.
Logowanie:

  1. <?php
  2. session_register("zalogowany");
  3.  
  4. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  5.  
  6. include ('includes/config_includes.php'); // Odniesienie Do pliku który łączy nas z DB
  7.  
  8. function ShowLogin($komunikat=""){
  9. echo "$komunikat<br>";
  10. echo "<form action='index.php?pageID=logowanie' method=post>";
  11. echo "Login: <input type=text name=login><br>";
  12. echo "Hasło: <input type=text name=haslo><br>";
  13. echo "<input type=submit value='Zaloguj!'>";
  14. echo "</form>";
  15. echo "Jeśli nie jesteś zarejestrowany, <a href='rejestruj.php'>tu znajdziesz formularz</a>";
  16. }
  17.  
  18. ?>
  19. <!DOCTYPE html
  20. PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  21. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  22. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  23. <head>
  24. <title>Strona główna</title>
  25. </head>
  26. <body>
  27. <?php
  28. if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
  29. if($_SESSION["zalogowany"]!=1){
  30. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  31. if(mysql_num_rows(mysql_query("select * from uzytkownicy where uzytkownik_email = '".$_POST["login"]."' AND uzytkownik_haslo = '".$_POST["haslo"]."'")))
  32. {
  33. echo "Zalogowano poprawnie uzytkownika. <a href='index.php?pageID=logowanie'>Przejdź na stronę główną</a>";
  34. $_SESSION["zalogowany"]=1;
  35. }
  36. else if (mysql_num_rows(mysql_query("select * from pracownicy where pracownik_email = '".$_POST["login"]."' AND pracownik_haslo = '".$_POST["haslo"]."'")))
  37. {
  38. echo "Zalogowano poprawnie pracownika. <a href='index.php?pageID=logowanie'>Przejdź na stronę główną</a>";
  39. $_SESSION["zalogowany"]=2;
  40. }
  41. else echo ShowLogin("Podano złe dane!!!");
  42. }
  43. else ShowLogin();
  44. }
  45. else{
  46. ?>
  47. Gratulacje! Zalogowałeś się pomyślnie! Możesz przejśc teraz do innych podstron, np. do <a href="stronka.php">tej</a>
  48. <br><a href='logowanie.php?wyloguj=tak'>wyloguj się</a>
  49. <?php
  50. }
  51. ?>
  52.  
  53. </body>
  54. </html>
  55. <?php mysql_close(); ?>


Za chiny ludowe nie chce mi on zadzialac w mojej stronce. Czy jestescie w stanie mi pomoc?


!EDIT: dodam, ze logowanie dziala mi na stronce. Problem lezy z wylogowaniem. Bo jesli klikne: Wyloguj, to zamiast wylogowac mi sie w div_right to mi otwiera sie nowa strona logowanie.php i tam sie automatycznie wylogowywuje. Jak zrobic aby mi to wszystko sie dzialo w div_right?

Rozumiem, ze mam zmienic sciezke w: <br><a href='logowanie.php?wyloguj=tak'>wyloguj się</a>
Ale nie wiem na jaka ;/
!*!
session_start(); musisz dać na początku pliku, przed tym zanim cokolwiek wyślesz. Poza tym po co Ci wylogowanie w divie? zrób twarde odwoładnie do pliku wyloguj.php a w nim niszcz sesje i przekieruj na stronę z logowaniem.
agentmullder
Cytat(!*! @ 11.08.2010, 16:57:19 ) *
session_start(); musisz dać na początku pliku, przed tym zanim cokolwiek wyślesz. Poza tym po co Ci wylogowanie w divie? zrób twarde odwoładnie do pliku wyloguj.php a w nim niszcz sesje i przekieruj na stronę z logowaniem.


Miales racje. Dziala smile.gif Dziekuje.
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.