Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Sesje
Forum PHP.pl > Forum > Przedszkole
markez07
Mam szablon strony, a w nim problem z sesjami. Link do logowania znajduje się w topie wraz z linkiem do rejestracji i jeżeli użytkownik jest zalogowany to wtedy zastąpić to ma "panel użytkownika".
Podstrony includuję, czyli mam sobie stałe elementy + includowane podstrony. Jak to ogarnąć?
Czy na każdej includowanej podstronie ma być umieszczony config? A może wystarczy mieć config.php tylko w index tam, gdzie wczytywane są pozostałe elementy strony? Co po kolei i jak mam napisać żeby działały mi sesje na stronie zrobionej w sposób jaki opisałem powyżej?

W indexie, w topie tam gdzie mam link do logowania i rejestracji mam od razu sprawdzić czy sesja istnieje? Jeżeli tak to includuj panel uzytkownika, a jak nie to includuj logowanie/rejestrację? Załóżmy, że sesja istnieje to teraz jak wczytam formularz logowania, albo rejestracji to znów przy nich muszę dać IF i wynik/pokazanie zawartości ma być uzależnione od tego czy sesja jest true. Na tych wczytywanych podstronach mam wklejać start sesji, czy wystarczy jak w configu to zrobię i go wkleję.

Podpowiedzcie mi jak to po kolei zrobić, bo jak na razie to jakieś dziwne rzeczy mi się tam dzieją.
vifus
start sesji daj najlepiej w indexie na samej górze, pod tym includuj config a reszte zrób jak napisałeś.
markez07
Teraz po otworzeniu strony mam cały czas zaincludowany userProfile.php. Jak dam wyloguj to pokazuje się, że nie można wylogować, bo nie byłem zalogowany. Próbowałem to zapisać na różne sposoby, ale robię to źle.


  1. if($_SESSION['zalogowany'] === false){
  2. echo '
  3. <div id="logowanie">
  4. <form action="" method="post">
  5.  
  6. <div id="l">
  7. <div id="t_login">Logowanie:</div>
  8. <div id="login">
  9. <input type="text" width="173"; height="18" class="bg_for" maxlength="50" name="login">
  10. </div>
  11. </div>
  12.  
  13. <div id="p">
  14. <div id="t_pass"></div>
  15. <div id="pass">
  16. <input type="password" width="173"; height="18" class="bg_for" maxlength="50" name="haslo">
  17. </div>
  18. </div>
  19.  
  20. <div id="polacz">
  21. <input type="submit" class="iko_polacz" name="action" value="ok">
  22. </div>
  23. </form>
  24. <a class="link" rel="popup_name" href="#">REJESTRACJA</a>
  25. </div>';
  26. } else if($_SESSION['zalogowany'] === true){
  27. include('szablon/userProfile.php');
  28. }
  29.  
  30.  
  31. if(isset($_POST['action'])){
  32. if(!empty($_POST['login']) && !empty($_POST['haslo'])){
  33.  
  34. $login = $_POST['login'];
  35. $haslo = $_POST['haslo'];
  36.  
  37. $sprawdzanie = mysql_query("SELECT * FROM uzytkownicy WHERE nick = '$login' AND haslo = '$haslo'");
  38. $licz = mysql_num_rows($sprawdzanie);
  39. if($licz > 0){
  40. $_SESSION['zalogowany'] = true;
  41. }else{
  42. $_SESSION['zalogowany'] = false;
  43. }
  44. }
  45.  
  46. }



  1. <?php include('config.php');
  2. if(isset($_SESSION['zalogowany'])){
  3. echo "Zostałeś wylogowany.";
  4. header("Location: index.php");
  5. }else{
  6. echo "Żeby się wylogować trzeba być zalogowanym...";
  7. }
  8. echo "<a href=\"index.php\">Wróć na stronę główną.</a>";
  9. ?>


Nikt nie pomoże?
vifus
Po co te warunki w wylogowywaniu? daj tak:

  1. <?php
  2. header("Location: index.php");
  3. ?>


i po sprawie...
markez07
Teraz po otworzeniu strony mam cały czas zaincludowany userProfile.php.

Co mam źle? Jak to poprawić? Pomoże mi ktoś ogarnąć to?
vifus
ciężko powiedzieć widząc tylko kawałek kodu spróbuj może tak

  1.  
  2. if(empty($_SESSION['zalogowany'])){
  3. echo '
  4. <div id="logowanie">
  5. <form action="" method="post">
  6.  
  7. <div id="l">
  8. <div id="t_login">Logowanie:</div>
  9. <div id="login">
  10. <input type="text" width="173"; height="18" class="bg_for" maxlength="50" name="login">
  11. </div>
  12. </div>
  13.  
  14. <div id="p">
  15. <div id="t_pass"></div>
  16. <div id="pass">
  17. <input type="password" width="173"; height="18" class="bg_for" maxlength="50" name="haslo">
  18. </div>
  19. </div>
  20.  
  21. <div id="polacz">
  22. <input type="submit" class="iko_polacz" name="action" value="ok">
  23. </div>
  24. </form>
  25. <a class="link" rel="popup_name" href="#">REJESTRACJA</a>
  26. </div>';
  27. } else {
  28. include('szablon/userProfile.php');
  29. }
  30.  
  31.  
  32. if(isset($_POST['action'])){
  33. if(!empty($_POST['login']) && !empty($_POST['haslo'])){
  34.  
  35. $login = $_POST['login'];
  36. $haslo = $_POST['haslo'];
  37.  
  38. $sprawdzanie = mysql_query("SELECT * FROM uzytkownicy WHERE nick = '$login' AND haslo = '$haslo'");
  39. $licz = mysql_num_rows($sprawdzanie);
  40. if($licz > 0){
  41. $_SESSION['zalogowany'] = true;
  42. }else{
  43. $_SESSION['zalogowany'] = false;
  44. }
  45. }
  46.  
  47. }

markez07
Nie działa mi. Co mogę robić źle? Każda wskazówka przyda mi się... Chciałbym dalej działać, ale najpierw muszę ogarnąć ten problem co nie jest dla mnie proste. Tyle osób na tym forum, a do pomocy mało kto skory smile.gif Nie oczekuję gotowca, a pomocy, wskazówek. Na co mam zwrócić uwagę?
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.