Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Php Strona dla zalogowanych
Argroth
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.07.2015

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


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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


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.)
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Przenoszę.
Go to the top of the page
+Quote Post
Argroth
post
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.07.2015

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


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.
Go to the top of the page
+Quote Post
Damonsson
post
Post #5





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


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. }


Ten post edytował Damonsson 10.07.2015, 23:26:12
Go to the top of the page
+Quote Post
Argroth
post
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 10.07.2015

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


Ok. Działa dzięki wielkie za pomoc, już wiem o co chodzi.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 22:03