Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Panel logownia a info z bazy danych
inomi13
post
Post #1





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 16.08.2017

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


Witam, posiadam zrobiony panel logowania który po zalogowaniu pokazuje informacje takie jak na zdjęciu i wszystko ładnie działa ale tylko w sytuacji jeżeli jeden użytkownik posiada jedną domenę jednak co w sytuacji gdyby użytkownik posiadał kilka domen? Drugi problem to chciał bym zrobić coś takiego żeby użytkownik otrzymywał e-maila z informacją że ważność domeny wygasa. Proszę o jakieś sugestię jak się do tego wszystkiego zabrać.
(IMG:https://leszek-dybiec.pl/wp-content/uploads/2019/07/photo.jpg)
Go to the top of the page
+Quote Post
olszam
post
Post #2





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

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


1. najlepiej wyjdzie jak dla domen zrobisz drugą tabelę wraz z cenną itd.
2. ustawić CRON by odpalał cyklicznie skrypt sprawdzający czy ma wysłać przypomnienie czy nie.

ja tu tylko takie rozwiązanie widzę, choć nie wiem co inni mogą doradzić (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
inomi13
post
Post #3





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 16.08.2017

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


czyli trzeba było by dodawać nowe kolumny o nazwa domena 2, domena 3 i do tego cena_domeny 2, cena domeny 3 itd ?
Go to the top of the page
+Quote Post
Tomplus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Źle zrozumiałeś. Chodzi o nową tabelę. Nawet nowe tabele.

Jedna tabela zawiera nazwy użytkownika, hasło i inne dane.

Druga to lista domen które są w systemie i każda z nich jest przypisana do użytkownika, z informacją kiedy wygasa.

Trzecia domena to np. historia płatności. itd.


Bo z Twojego pomysłu co jeżeli użytkownik postanowi u Ciebie kupić 100 domen.
Będziesz miał 100 dodatkowych kolumn?

Ten post edytował Tomplus 9.07.2019, 10:06:05
Go to the top of the page
+Quote Post
inomi13
post
Post #5





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 16.08.2017

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


Zgodnie z sugestią założyłem tabelę "persons" oraz "domain". Relację między tabelami połączyłem kolumną "id_domeny" jednak mam problem z zaczytaniem wiersza z drugiej tabeli. Poniżej kod logujący do bazy danych
  1. <?php
  2.  
  3.  
  4. if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
  5. {
  6. header('Location: index.php');
  7. exit();
  8. }
  9.  
  10. require_once "connect.php";
  11.  
  12. $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
  13.  
  14. if ($polaczenie->connect_errno!=0)
  15. {
  16. echo "Error: ".$polaczenie->connect_errno;
  17. }
  18. else
  19. {
  20. $login = $_POST['login'];
  21. $haslo = $_POST['haslo'];
  22.  
  23. $login = htmlentities($login, ENT_QUOTES, "UTF-8");
  24.  
  25. if ($rezultat = @$polaczenie->query(
  26. sprintf("SELECT * FROM persons WHERE user='%s'",
  27. mysqli_real_escape_string($polaczenie,$login)))
  28. )
  29. {
  30. $ilu_userow = $rezultat->num_rows;
  31. if($ilu_userow>0)
  32. {
  33. $wiersz = $rezultat->fetch_assoc();
  34.  
  35. if (password_verify($haslo, $wiersz['pass']))
  36. {
  37. $_SESSION['zalogowany'] = true;
  38. $_SESSION['id'] = $wiersz['id'];
  39. $_SESSION['name'] = $wiersz['name'];
  40. $_SESSION['user'] = $wiersz['user'];
  41. $_SESSION['email'] = $wiersz['email'];
  42.  
  43.  
  44.  
  45. unset($_SESSION['blad']);
  46. $rezultat->free_result();
  47. header('Location: panel.php');
  48. }
  49. else
  50. {
  51. $_SESSION['blad'] = '<span style="color:#cc0000">Błędny login lub hasło!</span>';
  52. header('Location: index.php');
  53. }
  54.  
  55. } else {
  56.  
  57. $_SESSION['blad'] = '<span style="color:#cc0000">Błędny login lub hasło!</span>';
  58. header('Location: index.php');
  59.  
  60. }
  61.  
  62. }
  63.  
  64. $polaczenie->close();
  65. }
  66.  
  67. ?>
  68.  
Go to the top of the page
+Quote Post
Tomplus
post
Post #6





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Zamiast dawać nam kod logowania który nic nie wnosi, przedstaw jak wygląda kod zapytania SQL.

Bo w tej chwili nie wiem, czy ma być lista domen z użytkownikami, czy lista użytkowników z domenami.
Go to the top of the page
+Quote Post
inomi13
post
Post #7





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 16.08.2017

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


Nie wiem czy to dobrze zrobiłem ale obie tabele są połączone kolumną "id_domain". Na zdjęciu pokazałem jaki ma być efekt finalny.

(IMG:https://leszek-dybiec.pl/wp-content/uploads/2019/07/final-1.jpg)

Ten post edytował inomi13 10.07.2019, 07:49:23
Go to the top of the page
+Quote Post
Tomplus
post
Post #8





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


1.
Po co Ci w `domains` kolumna `id_domain` ? Przecież już masz, jest to kolumna ID.
W tym miejscu powinna być kolumna `id_person`

2.
W kolumnie `persons` nie potrzebna jest kolumne `id_domains` - usuń to.

Chyba że to jakieś grupowanie?

Teraz aby wyświetlić wszystkie domeny to masz zapytanie:
  1. SELECT p.name, d.domain_name, d.domain_expired FROM domains d LEFT JOIN persons p ON d.id_person = p.id WHERE p.id = ?;
Go to the top of the page
+Quote Post
inomi13
post
Post #9





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 16.08.2017

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


Poprawiłem tabele żeby to miało ręce i nogi, teraz zastanawiam się czy zapytania do bazy danych zrobić w pliku login.php czy po weryfikacji danych logowania i po przeniesieniu na stronę panel.php?

(IMG:https://leszek-dybiec.pl/wp-content/uploads/2019/07/sql.jpg)

Poprawnie działa zapytanie dla "id=1" natomiast nie wiem jak zrobić żeby wypisywało dane dla "id" które jest aktualnie zalogowany
  1. SELECT p.name, d.domain_name, d.end FROM domain d LEFT JOIN persons p ON d.id_person = p.id WHERE p.id = 1


Ten post edytował inomi13 10.07.2019, 13:10:57
Go to the top of the page
+Quote Post
Tomplus
post
Post #10





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


a co wstawiasz zamiast 1?

Przecież masz choćby $_SESSION['id'] które zawiera ID usera zalogowanego.
Go to the top of the page
+Quote Post
inomi13
post
Post #11





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 16.08.2017

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


Kod działa, jednak został ostatni problem tzn. chciałbym aby móc wyciągnąć dane za pętli while aby wyglądało tak jak na zdjęciu.

  1. require_once "connect.php";
  2.  
  3. $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
  4. $wynik = $polaczenie->query("SELECT p.name, d.domain_name, d.domain_price, d.domain_end FROM domain d LEFT JOIN persons p ON d.id_person = p.id WHERE p.id = '".$_SESSION['id']."'");
  5.  
  6. if($wynik->num_rows > 0)
  7. {
  8. while($wiersz = $wynik->fetch_assoc())
  9. {
  10.  
  11. echo '<div class="col-sm-6 col-md-4 col-lg-2">
  12. <div class="box"><b>Nazwa Domeny</b></div>
  13. <div class="box2">'.$wiersz['domain_name'].'<br></div></div>';
  14.  
  15.  
  16.  
  17. }
  18. echo '<div class="col-sm-6 col-md-4 col-lg-2">
  19. <div class="box"><b>Nazwa Domeny</b></div>
  20. <div class="box2"> '.$_SESSION["name"].'</div></div>';
  21.  
  22.  
  23.  
  24. }



(IMG:https://leszek-dybiec.pl/wp-content/uploads/2019/07/domeny.jpg)

Ten post edytował inomi13 11.07.2019, 08:39:29
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: 24.08.2025 - 02:34