Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Panel logownia a info z bazy danych
inomi13
post 9.07.2019, 08:32:52
Post #1





Grupa: Zarejestrowani
Postów: 23
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ć.
Go to the top of the page
+Quote Post
olszam
post 9.07.2019, 09:17:40
Post #2





Grupa: Zarejestrowani
Postów: 339
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ć smile.gif
Go to the top of the page
+Quote Post
inomi13
post 9.07.2019, 09:21:27
Post #3





Grupa: Zarejestrowani
Postów: 23
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 9.07.2019, 10:05:10
Post #4





Grupa: Zarejestrowani
Postów: 1 561
Pomógł: 185
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 9.07.2019, 13:42:40
Post #5





Grupa: Zarejestrowani
Postów: 23
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 9.07.2019, 22:31:04
Post #6





Grupa: Zarejestrowani
Postów: 1 561
Pomógł: 185
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 10.07.2019, 07:46:59
Post #7





Grupa: Zarejestrowani
Postów: 23
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.



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





Grupa: Zarejestrowani
Postów: 1 561
Pomógł: 185
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 10.07.2019, 12:11:45
Post #9





Grupa: Zarejestrowani
Postów: 23
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?



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 10.07.2019, 14:05:10
Post #10





Grupa: Zarejestrowani
Postów: 1 561
Pomógł: 185
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 11.07.2019, 08:38:38
Post #11





Grupa: Zarejestrowani
Postów: 23
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. }





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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 11.12.2019 - 15:11