Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyświetlanie danych po zalogowaniu.
Forum PHP.pl > Forum > Przedszkole
KubaaPK
Dzień dobry, napisałem prosty system rejestracji i logowania. Chciałbym teraz móc jakoś przechwycić informację wpisaną w formularzu logowania i wyświetlić nazwę użytkownika na home.php, ale niestety nie wiem jak się za to zabrać. Pewnie jest to banalne i zmieści się w kilku linijkach kodu, ale nie mam pomysłu. :/

  1. <?php
  2.  
  3. require 'connect.php';
  4.  
  5.  
  6. // REJESTRACJA UŻYTKOWNIKA
  7. if(!empty($_POST['username']) && !empty($_POST['password'])) {
  8.  
  9. $passwordHash = password_hash($_POST['password'], PASSWORD_BCRYPT, array("cost"=>12));
  10. $sql = "INSERT INTO users (login, password) VALUES (:login, :password)";
  11. $stmt=$db->prepare($sql);
  12. $stmt->bindValue(':login', $_POST['username'], PDO::PARAM_STR);
  13. $stmt->bindValue(':password', $passwordHash, PDO::PARAM_STR);
  14. $stmt->execute();
  15.  
  16. echo 'Rejestracja przebiegła pomyślnie!';
  17.  
  18. }
  19. else {
  20. echo "Uzupełnij dane!";
  21.  
  22. }
  23. ?>



  1. <?php
  2. require_once 'connect.php';
  3.  
  4.  
  5. if(isset($_POST['login'])){
  6.  
  7.  
  8. $username = $_POST['username'];
  9. $passwordAttempt = $_POST['password'];
  10.  
  11.  
  12. $sql = "SELECT id, login, password FROM users WHERE login=:login";
  13. $stmt=$db->prepare($sql);
  14. $stmt->bindValue(':login', $username);
  15. $stmt->execute();
  16.  
  17. $user = $stmt->fetch(PDO::FETCH_ASSOC);
  18.  
  19. if($user === false) {
  20. echo 'Zła nazwa użytkownika lub hasło!';
  21. }else {
  22. $validPassword = password_verify($passwordAttempt, $user['password']);
  23. if($validPassword) {
  24. $_SESSION['user_id'] = $user['id'];
  25. $_SESSION['logged_in'] = time();
  26. header('Location: home.php');
  27. }else {
  28. echo 'Zła nazwa użytkownika lub hasło!';
  29. }
  30. }
  31. }
  32.  
  33. ?>



(tutaj zaznaczę, że dopiero uczę się pisać w php, jeśli jest coś źle napisane, to bardzo proszę o wytknięcie błędów. I podepnę jeszcze jedno pytanie: wymyśliłem sobie taki prosty projekt w ramach praktycznej nauki kodzenia. Rejestracja/logowanie -> home.php(główna strona po zalogowaniu): tutaj chciałbym umożliwić użytkownikowi upload plików, może jakieś aplikacje to-do, kalendarze, w planach mam jeszcze napisać system tablicy, coś ala tweeter itp.. Może sporo jak na początek, ale czas mnie nie goni, do października będę miał sporo wolnego czasu, więc chcę go jakoś dobrze spożytkować smile.gif. Kiedyś w szkole pisałem trochę obiektowo w C++, ale sporo pozapominałem, generalnie poza deklaracją klas i ich wywoływaniem niewiele pamiętam tongue.gif. I tutaj moje pytanie. Próbować pisać ten mój projekt od razu obiektowo? Czy jako, że dopiero uczę się pisać w phpie OOP na razie odpuścić? To samo pytanie odnośnie frameworków. Próbować pisać to na jakimś frameworku (Laravel, Symfony?), czy na początek lepiej w czystym php?
Fred1485
Moje skromne zdanie na ten temat odnośnie OOP i frameworków- pogubisz się. Lepiej ogarnąć podstawy podstaw a potem dopiero w miarę im głębiej w las wejdziesz to możesz próbować czegoś nowego, no chyba że OOP to dla ciebie coś banalnego biggrin.gif Pewnie niektórzy będą mieć inne zdanie.

Nie do końca rozumiem co chcesz powiedzieć przez to "przechwycić", możesz dokładniej opisać czego dokładnie potrzebujesz w działaniu skryptu?
KubaaPK
Już wyjaśniam o co mi chodziło. smile.gif To tak. Mam formularz logowania, w nim dwa pola "Nazwa użytkownika" i "hasło". Chcę, aby po udanym logowaniu, kiedy przeniesie mnie na stronę 'home.php' została wyświetlona nazwa wpisana przez użytkownika. Coś takie jak np. "Witaj xxx" xxx - to co użytkownik wpisze w polu "Nazwa użytkownika". Mam nadzieję, że teraz to jaśniej wytłumaczyłem.
Fred1485
W pliku home.php

  1.  
  2. if(isset($_SESSION['user_id'])) {
  3. // sprawdzasz czy istnieje sesja czyli po prostu czy user jest zalogowany,
  4.  
  5. $id = $_SESSION['user_id'];
  6. $sql = "SELECT login FROM ... WHERE id= $id";
  7.  
  8. //zapytanie
  9.  
  10. //dalsze operacje
  11. }
  12.  


Sprawa banaalnie prosta musisz sprawdzić czy istnieje sesja a potem to po id wszystko szukasz bez problemu wink.gif
KubaaPK
Właśnie tak kombinowałem z tymi sesjami, tylko coś mi nie wychodziło ;P. Dziękuję za pomoc.
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.