Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Php Strona dla zalogowanych
Forum PHP.pl > Forum > Przedszkole
Argroth
Witam. Generalnie jestem tutaj nowy. Uczę się aktualnie pisać strony. Mam zrobioną bazę z danymi potrzebnymi do logowania, logowanie i rejestrację. Chciałbym zrobić też, aby jedna z podstron była dostępna tylko dla zalogowanych i nie mam pojęcia jak to uczynić. Kod na logowanie może wygląda odrobinie prymitywnie, ale dopiero się uczę. Proszę o pomoc. Co mam umieścić dokładnie w kodzie podstrony aby tylko zalogowani użytkownicy mogli ją przeglądać.
  1. <?php
  2. require("config.php");
  3. $submitted_username = '';
  4. if(!empty($_POST)){
  5. $query = "
  6. SELECT
  7. id,
  8. username,
  9. password,
  10. salt,
  11. email
  12. FROM users
  13. WHERE
  14. username = :username
  15. ";
  16. $query_params = array(
  17. ':username' => $_POST['username']
  18. );
  19.  
  20. try{
  21. $stmt = $db->prepare($query);
  22. $result = $stmt->execute($query_params);
  23. }
  24. catch(PDOException $ex){ die("Failed to run query: " . $ex->getMessage()); }
  25. $login_ok = false;
  26. $row = $stmt->fetch();
  27. if($row){
  28. $check_password = hash('sha256', $_POST['password'] . $row['salt']);
  29. for($round = 0; $round < 65536; $round++){
  30. $check_password = hash('sha256', $check_password . $row['salt']);
  31. }
  32. if($check_password === $row['password']){
  33. $login_ok = true;
  34. }
  35. }
  36.  
  37. if($login_ok){
  38. unset($row['salt']);
  39. unset($row['password']);
  40. header("Location: logged.php");
  41. die("Redirecting to: index.php");
  42. }
  43. else{
  44. die("Najpierw się zaloguj");
  45. $submitted_username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8');
  46. }
  47. }
  48. ?>
CuteOne
1. Zobacz tutorial jak korzystać z sesji (użyłeś session_start() ale chyba za bardzo nie wiesz co z tym zrobic)
2. Na twoim miejscu poszukałbym gotowca i zobaczył jak jest z tymi "stronami dla zalogowanych" np. wordpress, joomla, php fusion itp.
3. Poświęć na ten temat trochę czasu, a z bardziej szczegółowymi pytaniami -> dział Przedszkole (tam zawsze znajdziesz odp.)
Kshyhoo
Przenoszę.
Argroth
Cytat(CuteOne @ 10.07.2015, 21:59:01 ) *
1. Zobacz tutorial jak korzystać z sesji (użyłeś session_start() ale chyba za bardzo nie wiesz co z tym zrobic)
2. Na twoim miejscu poszukałbym gotowca i zobaczył jak jest z tymi "stronami dla zalogowanych" np. wordpress, joomla, php fusion itp.
3. Poświęć na ten temat trochę czasu, a z bardziej szczegółowymi pytaniami -> dział Przedszkole (tam zawsze znajdziesz odp.)


Sesion_start zostało przypadkiem po kombinowaniu.
Damonsson
session_start(); - musi być na każdej stronie na samym początku kodu.


  1. if($check_password === $row['password']){
  2. $login_ok = true;
  3. $_SESSION['logged'] = true;
  4. }


początek pliku logged.php

  1. <?php
  2.  
  3. if(!isset($_SESSION['logged'])) {
  4. header("Location: index.php");
  5. die;
  6. } else {
  7. echo 'jesteś zalogowany, dlatego to widzisz';
  8. }
Argroth
Ok. Działa dzięki wielkie za pomoc, już wiem o co chodzi.
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.