Jeżeli masz jakiś problem z rzeczami omawianymi na filmie zapraszam cie do komentowania lub nawet lepiej, możesz zapytać na serwerze Discord by otrzymać rozbudowaną i wyczerpującą odpowiedź, mamy tam specjalny kanał do rozwiązywania dowolnych problemów z dziedziny informatyki i nie tylko! Bardzo pomocna społeczność szybko radzi sobie z każdym problem, zapraszam ;D discord.gg/yBh9ykS
@@marceli1972 darujmy sobie tego "Pana" ;) Tutaj czyli w sekcji komentarzy YT oraz server Discord to jedyne sposoby na skuteczny kontakt ze mną. Jeszcze tylko dodam że bardzo dawno nie miałem do czynienia z php i nie znam jego aktualnych standardów. Ale jak masz jakieś pytanie to postaram się pomóc ;)
od jakiegoś czasu szukam podpowiedzi jak automatycznie zapełnić formularz php po wypełnieniu 1 pola. Tak, żeby po wpisaniu np numeru rejestracyjnego wskakiwały wszystkie pola z bazy danych Mysql czy bazy danych w Excelu.
nie możesz czegoś takiego zrobić w PHP. Jest to język działający po stronie serwera, czyli w momencie w którym przeglądarka zaczyna wyświetlać stronę, to kod PHP nie może już być wykonywany. Dopiero odświeżenie strony lub wysłanie zapytania do serwera może uruchomić kolejne wykonanie kodu. Jeżeli chcesz zrobić coś pokroju auto uzupełniania musisz użyć JavaScript w kodzie strony. A jeżeli na siłę chcesz PHP to musi być formularz w którym wpisuje się to jedno pole i się go wysyła po czym ładuje się nowa strona gdzie PHP już dodał dane.
"SELECT * FROM tabela" Oznacza "wybierz wszystko z tabela" gdzie właśnie ta "*" oznacza wszystko. Zamiast niej można wymienić różne kolumny po przecinku np. "SELECT id,tytul,tres FROM ogloszenie" wtedy w wyniku będą tylko te pola które zostały wymienione czyli zrobienie czegoś pokroju "$kategoria = $wiersz['kategoria']" było by błędem ponieważ w zapytaniu nie została uwzględniona kolumna "kategoria". Oczywiście zapytania SQL mogą być dużo bardziej złożone ale SQL nie jest częścią PHP więc i nie było to tutaj dokładnie omówione. Jeżeli chcesz wiedzieć więcej o tych zapytaniach to poszukaj w kursach do MySQL (czy czasem do MariaDB), bardzo prawdopodobne że w tych kursach nie zobaczysz ani jednej linijki w PHP.
Każdorazowe odświeżenie strony zmusza przeglądarkę do wysłania zapytania na serwer, a sprawia że serwer musi wykonać cały kod PHP czyli za każdym razem będzie od nowa wszystko robił. Jeżeli był wysłany formularz i odświeżamy stronę to przeglądarka wysyła ponownie formularz (czasem może wyskoczyć okno z zapytaniem). Możesz poszukać czegoś o cache'owaniu strony u klienta, wtedy przeglądarka zapamiętuje dane. Można zrobić też całą komunikację przez JavaScript wtedy wszystko co się dzieje po stronie klienta może wpłynąć na wysyłane do serwera zapytania.
@@dariusz8005 Jest takie coś jak localStorage w JS, może być lepszym wyjściem niż ciasteczka, ale tak, jest to wykonalne. Możesz przechowywać dane u użytkownika, ale pamiętaj że jest to ryzykowne ponieważ użytkownik może w dowolnym momencie wyczyścić dane przeglądarki i jeżeli zależy ci żeby te same dane były na wszystkich urządzeniach użytkownika to musisz sam stworzyć system synchronizacji ich przy logowaniu co sprawia że i tak będzie do tego potrzebna baza danych na serwerze. W takim localStorage możesz trzymać informacje które nie są powiązane z użytkownikiem a ze sprzętem. np. na takim YT może to być głośność odtwarzania lub jakość filmu ponieważ zależnie od szybkości łącza czy używanych głośników ktoś może mieć różne preferencje - tak też możliwe że będzie wolał mieć mniejszą jakość na telefonie żeby oszczędzić transfer w sieci, a na komputerze większą. Ale np. historia odtwarzanych filmów już powinna być na serwerze ponieważ ten sam użytkownik raczej ogląda podobne rzeczy na telefonie i komputerze tym samym może chcieć kontynuować oglądanie ulubionej serii na innym urządzeniu. Oczywiście
Możesz sprawdzić czy wpisany tekst ma konstrukcję prawidłową dla email używając `filter_var($email, FILTER_VALIDATE_EMAIL)`, ale nie ma jako tako sposobu by sprawdzić czy takowy mail faktycznie istnieje. Jedyne rozwiązanie to napisać kod który wyśle na podany email link potwierdzający i nie pozwoli się zalogować do momentu potwierdzenia email. Taki system to temat na cały odcinek (a ja już się PHP nie zajmuje). W skrócie można to opisać tak: -plik rejestracji 1. Przy rejestracji generujesz unikalny klucz autoryzujący (możesz użyć jakiegoś mechanizmu UUID lub lepiej zadbać o generowanie kluczy bezpiecznych losowo) 2. Zapisujesz ten klucz razem z email (lub ID usera) do bazy danych. Dane użytkownika umieszczasz w tymczasowej tabeli lub ustawiasz im flagę by zablokować logowanie 3. Wysyłasz link potwierdzający z wygenerowanym kluczem w GET na podany email -plik linku potwierdzającego 1. Pobierasz klucz z GET 2. Odszukujesz klucz w bazie oczekujących rejestracji 3. Po znalezieniu usuwasz flagę lub przenosisz nade z tymczasowej tabeli do faktycznej tabeli userów (zależnie od wcześniej wybranej drogi) Tutaj masz link do manuala php z filter_var: www.php.net/manual/en/function.filter-var.php
"isset" to funkcja sprawdzająca czy przekazana zmienna istnieje. "$_POST" to zmienna będąca tablicą przechowującą dane przekazane do serwera metodą POST (protokołu HTTP). Wiec całe wyrażenie sprawdza czy metodą POST zostało przekazane pole "tytuł", jeżeli tak to kod po tym warunku zostanie wykonany. To jaką metodą (POST/GET) dane trafiają na serwer ustawia się w HTML w
Mnie zastanawia jedna rzecz w tym przykładzie, Patrykas1000 piszesz kod strukturalnie. natomiast " new mysqli" "$conn->query" $conn->close(); to są jak najbardziej poprawnie zapisane kody jednak z tego co wiem to dotyczą OOP czyli php obiektowe. Jak to się ma do oceniania przez egzaminatorow?
Fajny filmik, pomocny z tym, że jak w formularzu wpisze się imię i nazwisko z polskimi literami czyli np "ą" to w bazie wychodzą krzaczki, jest na to jakiś sposób?
Dzięki ;) Linia 17 w wys.php (zaraz po $conn = new mysqli...) dopisz $conn->set_charset ("utf8"); powinno pomóc, jeżeli nie to jeszcze sprawdzić czy baza danych, tabela i pole ustawione jest na "utf8_unicode_ci" lub "utf8_polish_ci".
Jeżeli masz jakiś problem z rzeczami omawianymi na filmie zapraszam cie do komentowania lub nawet lepiej, możesz zapytać na serwerze Discord by otrzymać rozbudowaną i wyczerpującą odpowiedź, mamy tam specjalny kanał do rozwiązywania dowolnych problemów z dziedziny informatyki i nie tylko! Bardzo pomocna społeczność szybko radzi sobie z każdym problem, zapraszam ;D
discord.gg/yBh9ykS
W jaki sposób poza tym co Pan podał można z Panem się skontaktować?
@@marceli1972 darujmy sobie tego "Pana" ;) Tutaj czyli w sekcji komentarzy YT oraz server Discord to jedyne sposoby na skuteczny kontakt ze mną. Jeszcze tylko dodam że bardzo dawno nie miałem do czynienia z php i nie znam jego aktualnych standardów. Ale jak masz jakieś pytanie to postaram się pomóc ;)
@@PatrykPaluch Chciałem zaproponować Panu małe zlecenie. Oczywiście jeśli to zainteresuje Pana i jeśli dogadalibyśmy się co chodzi o honorarium.
@@marceli1972 dziękuję, ale nie jestem zainteresowany
super poradnik, dziękuje!!!!!!!!!!!!!
Bardzo pomocny filmik
Bardzo pomocne
pog
Dziękuję!:)
dzięki działa
W jaki sposób wyświetlić tablicę ale w innej sekcji strony?
od jakiegoś czasu szukam podpowiedzi jak automatycznie zapełnić formularz php po wypełnieniu 1 pola. Tak, żeby po wpisaniu np numeru rejestracyjnego wskakiwały wszystkie pola z bazy danych Mysql czy bazy danych w Excelu.
nie możesz czegoś takiego zrobić w PHP. Jest to język działający po stronie serwera, czyli w momencie w którym przeglądarka zaczyna wyświetlać stronę, to kod PHP nie może już być wykonywany. Dopiero odświeżenie strony lub wysłanie zapytania do serwera może uruchomić kolejne wykonanie kodu. Jeżeli chcesz zrobić coś pokroju auto uzupełniania musisz użyć JavaScript w kodzie strony. A jeżeli na siłę chcesz PHP to musi być formularz w którym wpisuje się to jedno pole i się go wysyła po czym ładuje się nowa strona gdzie PHP już dodał dane.
mocno skomplikowane . Dziękuję za odpowiedz będę coś innego kombinować spróbuję się przyglądnąć JavaScript.
@@lazaruswhippety5627 mam nadzieje ze sie zapoznales z PHP/AJAX
Po mimo że zrobiłam wszystko tak samo to mi nie zapisuje danych wysyłanych przez formularz do bazy.
Jak utworzyć hasło dla admina, a jak dla reszty i nadać im uprawnienia?
dlaczego we wszystkich kursach jest by wpisywac po prostu SELECT * FROM ?? tylko tutaj znalazlem jak to pownno byc -- czyli ze np trzeba mysqli
"SELECT * FROM tabela" Oznacza "wybierz wszystko z tabela" gdzie właśnie ta "*" oznacza wszystko. Zamiast niej można wymienić różne kolumny po przecinku np. "SELECT id,tytul,tres FROM ogloszenie" wtedy w wyniku będą tylko te pola które zostały wymienione czyli zrobienie czegoś pokroju "$kategoria = $wiersz['kategoria']" było by błędem ponieważ w zapytaniu nie została uwzględniona kolumna "kategoria". Oczywiście zapytania SQL mogą być dużo bardziej złożone ale SQL nie jest częścią PHP więc i nie było to tutaj dokładnie omówione. Jeżeli chcesz wiedzieć więcej o tych zapytaniach to poszukaj w kursach do MySQL (czy czasem do MariaDB), bardzo prawdopodobne że w tych kursach nie zobaczysz ani jednej linijki w PHP.
Mam pytanko. Jak wyłączyć automatyczne ładowanie rekordu (ostatniego wpisu) po odświeżeniu strony ?
Każdorazowe odświeżenie strony zmusza przeglądarkę do wysłania zapytania na serwer, a sprawia że serwer musi wykonać cały kod PHP czyli za każdym razem będzie od nowa wszystko robił. Jeżeli był wysłany formularz i odświeżamy stronę to przeglądarka wysyła ponownie formularz (czasem może wyskoczyć okno z zapytaniem).
Możesz poszukać czegoś o cache'owaniu strony u klienta, wtedy przeglądarka zapamiętuje dane. Można zrobić też całą komunikację przez JavaScript wtedy wszystko co się dzieje po stronie klienta może wpłynąć na wysyłane do serwera zapytania.
Chodzi o ciasteczka (taką jakby bazę danych po stronie klienta) ? :)
@@dariusz8005 Jest takie coś jak localStorage w JS, może być lepszym wyjściem niż ciasteczka, ale tak, jest to wykonalne. Możesz przechowywać dane u użytkownika, ale pamiętaj że jest to ryzykowne ponieważ użytkownik może w dowolnym momencie wyczyścić dane przeglądarki i jeżeli zależy ci żeby te same dane były na wszystkich urządzeniach użytkownika to musisz sam stworzyć system synchronizacji ich przy logowaniu co sprawia że i tak będzie do tego potrzebna baza danych na serwerze.
W takim localStorage możesz trzymać informacje które nie są powiązane z użytkownikiem a ze sprzętem. np. na takim YT może to być głośność odtwarzania lub jakość filmu ponieważ zależnie od szybkości łącza czy używanych głośników ktoś może mieć różne preferencje - tak też możliwe że będzie wolał mieć mniejszą jakość na telefonie żeby oszczędzić transfer w sieci, a na komputerze większą. Ale np. historia odtwarzanych filmów już powinna być na serwerze ponieważ ten sam użytkownik raczej ogląda podobne rzeczy na telefonie i komputerze tym samym może chcieć kontynuować oglądanie ulubionej serii na innym urządzeniu.
Oczywiście
a jak zrobić dodatkowo sprawdzanie czy dany mail rzeczywiście istnieje ?
Możesz sprawdzić czy wpisany tekst ma konstrukcję prawidłową dla email używając `filter_var($email, FILTER_VALIDATE_EMAIL)`, ale nie ma jako tako sposobu by sprawdzić czy takowy mail faktycznie istnieje. Jedyne rozwiązanie to napisać kod który wyśle na podany email link potwierdzający i nie pozwoli się zalogować do momentu potwierdzenia email.
Taki system to temat na cały odcinek (a ja już się PHP nie zajmuje). W skrócie można to opisać tak:
-plik rejestracji
1. Przy rejestracji generujesz unikalny klucz autoryzujący (możesz użyć jakiegoś mechanizmu UUID lub lepiej zadbać o generowanie kluczy bezpiecznych losowo)
2. Zapisujesz ten klucz razem z email (lub ID usera) do bazy danych. Dane użytkownika umieszczasz w tymczasowej tabeli lub ustawiasz im flagę by zablokować logowanie
3. Wysyłasz link potwierdzający z wygenerowanym kluczem w GET na podany email
-plik linku potwierdzającego
1. Pobierasz klucz z GET
2. Odszukujesz klucz w bazie oczekujących rejestracji
3. Po znalezieniu usuwasz flagę lub przenosisz nade z tymczasowej tabeli do faktycznej tabeli userów (zależnie od wcześniej wybranej drogi)
Tutaj masz link do manuala php z filter_var: www.php.net/manual/en/function.filter-var.php
@@PatrykPaluch dzięki za odpowiedź:)
Mi się nic nie wyświetla pusta strona ehh przynajmniej wiem że łączy się z baza
Co oznacza ten warunek??
if ( isset ($_POST["tytul"]))
"isset" to funkcja sprawdzająca czy przekazana zmienna istnieje.
"$_POST" to zmienna będąca tablicą przechowującą dane przekazane do serwera metodą POST (protokołu HTTP).
Wiec całe wyrażenie sprawdza czy metodą POST zostało przekazane pole "tytuł", jeżeli tak to kod po tym warunku zostanie wykonany.
To jaką metodą (POST/GET) dane trafiają na serwer ustawia się w HTML w
@@PatrykPaluch Dzieki :)
Czy kodu można używać? Pozmieniałem tam troche i zrobiłem z tego panel administratora dla swojego serwera MTA :P
Oczywiście ;)
Dziękuję 😀
Mnie zastanawia jedna rzecz w tym przykładzie, Patrykas1000 piszesz kod strukturalnie.
natomiast
" new mysqli"
"$conn->query"
$conn->close();
to są jak najbardziej poprawnie zapisane kody jednak z tego co wiem to dotyczą OOP czyli php obiektowe. Jak to się ma do oceniania przez egzaminatorow?
z jakiej strony mozna rto zainstalowac ?
XAMPP z apachefriends
jaka to jest wersja xampa z tej strony ?
@@PatrykPaluch
Nie pamiętam już pobierz najnowszą i powinno wyszukiwania działać
PHP
Fajny filmik, pomocny z tym, że jak w formularzu wpisze się imię i nazwisko z polskimi literami czyli np "ą" to w bazie wychodzą krzaczki, jest na to jakiś sposób?
Dzięki ;) Linia 17 w wys.php (zaraz po $conn = new mysqli...) dopisz $conn->set_charset ("utf8"); powinno pomóc, jeżeli nie to jeszcze sprawdzić czy baza danych, tabela i pole ustawione jest na "utf8_unicode_ci" lub "utf8_polish_ci".
W linii 19 w zap.php (tak samo jak w wys.php - zaraz po $conn= new mysqli...) też trzeba dopisać $conn->set_charset ("utf8");
Już działa, ale trzeba było też w wys.php i zap.php w 4 linijce usunąć myślnik z utf-8 na utf8.
Wielkie dzięki za pomoc
spoko ;)
Tragedia ten poradnik