Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


leonpro778
Napisane: 24.07.2019, 08:56:32





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Cytat(xGlenor @ 23.07.2019, 23:16:09 ) *
Dałbyś jakiś przykład jak takie dane mogę zwalidować?
Co do id własnie chciałem je zrobić ale nie wiem jak :/
Skrypt ten ogólnie działa tak że funkcja ustawienia($name) wyciąga z bazy danych informacje która jest zdefiniowana jako zmienna "name", teraz to informacja jest wyświetlana jako Value="DANA INFORMACJA" w 6 linijce pliku form.php
i chciałbym tam jeszcze zrobić kolejny input który będzie 'hidden' i będzie on zawierał $id ale nie wiem jak wyciągnać to id z funkcji ustawienia() :/


Z tego co widzę to z bazy wyszukujesz "ustawienia" po polu "nazwa". Nie jest to bezpieczne przez właśnie brak walidacji. To po pierwsze. Druga sprawa, w funkcji functions.php:

zamiast
  1. echo $status['opcja'];


daj:
  1. return $status;


Plik form.php zmodyfikuj:
  1. <form ="glowne/db.php" method="post">
  2. <?php $ustawienia = ustawienia('adres_strony'); ?>
  3. <div class="input-group mb-3">
  4. <div class="input-group-prepend">
  5. <span class="input-group-text">Adres Strony</span>
  6. </div>
  7. <input type="text" class="form-control" value="<?php echo $ustawienia['opcja']; ?>" name="opcja">
  8. <input type="hidden" name="id" value="<?php echo $ustawienia['id']; ?>" /> <!-- to jest dodana linijka z ukrytym id -->
  9. <div class="input-group-append">
  10. <button class="btn btn-primary" type="submit" name="edytujustawienia">Zmień</button>
  11. </div>
  12. </div>
  13. </form>


I poczytaj o https://www.php.net/manual/en/mysqli-stmt.bind-param.php
  Forum: Przedszkole · Podgląd postu: #1243781 · Odpowiedzi: 5 · Wyświetleń: 389

leonpro778
Napisane: 23.07.2019, 06:58:28





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Cytat(viking @ 22.07.2019, 20:45:13 ) *
Inna sprawa że id może być w kodzie tylko jeden.


Dokładnie, musisz zacząć poprawnie odwoływać się z selektorów <a> do prawidłowych div'ów. Czyli:

  1. <a href="#popup<?php echo $row['id']; ?>" class="przycisk_rekord" title="Pokaż szczegóły rekordu">Pokaż</a>


A i w div pop-up:
  1. <div id="popup<?php echo $row['id']; ?>" class="overlay">


Pisane z pamięci, może być literówka. Kolejna rzecz tak jak wspomniane przez @dublinka takie rozwiązanie jest "brzydkie". Tworzysz tych pop'upów tyle ile masz rekordów. Nie prościej by było stworzyć stworzyć JEDNEGO okienka i wypełniać go danymi po naciśnięciu linku [POKAŻ] ?
  Forum: Przedszkole · Podgląd postu: #1243752 · Odpowiedzi: 8 · Wyświetleń: 1 046

leonpro778
Napisane: 24.10.2018, 11:06:37





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Cytat(art998 @ 24.10.2018, 10:22:39 ) *
Kombinowałem też z czasem ostatniej aktywności i po określonym czasie automatyczne wylogowanie lecz to rozwiązanie nie za bardzo mogę zastosować.


Czemu nie możesz zastosować? Przecież taki timeout jest dla Ciebie właśnie dobrym rozwiązaniem.

Jeżeli chcesz innego rozwiązania to możesz również zrobić to w sposób następujący. Masz dodatkową tabelę tokens i przy logowaniu przypisujesz unikalny token dla użytkownika (przechowuj go przykładowo w sesji). Następnie ważność tokenu ustaw na 10 min i przedłużaj go przy każdej aktywności użytkownika.

Przy próbie zalogowania użytkownika sprawdzasz czy jest aktywny jakiś token i jeżeli jest to nie logujesz użytkownika.
  Forum: Przedszkole · Podgląd postu: #1237342 · Odpowiedzi: 5 · Wyświetleń: 529

leonpro778
Napisane: 9.08.2018, 11:32:54





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Przykładowo:

  1. sprintf("SELECT * FROM uzytkownicy WHERE user='%s' AND is_logged = false", mysqli_real_escape_string($connect,$login))))


Następnie po zalogowaniu ustawiasz pole is_logged na TRUE i po problemie. Oczywiście odwrotną akcję (zmieniasz na FALSE) robisz przy wylogowaniu użytkownika. Dodatkowym problemem będzie wtedy, gdy użytkownik zamiast wylogować się, zamknie przeglądarkę (lub komp się zawiesi czy coś tam) i pozostanie zalogowany. To możesz rozwiązać jakimś licznikiem czasu nieaktywności, który po (przykładowo) 10 minutach nieaktywności użytkownika pozwoli na zalogowanie się usera, który ma status is_logged = true
  Forum: Przedszkole · Podgląd postu: #1235981 · Odpowiedzi: 3 · Wyświetleń: 431

leonpro778
Napisane: 3.05.2018, 05:42:11





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Cytat(Krkol @ 2.05.2018, 17:57:50 ) *
Podejrzewam, że funkcja losuj() nie zwraca mi $haslo3, tylko nie wiem dlaczego :/


Nie zapisuje bo nigdzie nie przypisujesz zwracanego $haslo3. Funkcje działają trochę w inny sposób. Wywal tą linijkę z losuj(); a zmień linijkę z:

  1. $filename = $haslo3 . '.' . $rozszerzenie2;


na:
  1. $filename = losuj().'.'.$rozszerzenie2;


  Forum: Przedszkole · Podgląd postu: #1232765 · Odpowiedzi: 11 · Wyświetleń: 985

leonpro778
Napisane: 12.04.2018, 20:08:37





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

  1. $mail->Subject = '';
  Forum: Przedszkole · Podgląd postu: #1231962 · Odpowiedzi: 8 · Wyświetleń: 815

leonpro778
Napisane: 12.04.2018, 19:56:43





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

nospor dobrze Ci podał składnię. Zamień tylko:

HAVING Count(DISTINCT id_product)=3

na

HAVING Count(DISTINCT id_feature_value)=3

Cytat(q3d @ 12.04.2018, 20:37:12 ) *
Co z tym ma zrobić druga część: HAVING Count(DISTINCT id_product)=3 by zwrócić wynik to nie rozumiem.

Ta część znaczy mniej więcej, że id_product ma mieć DOKŁADNIE tyle rekordów z id_feature_value co ilość liczb podanych wcześniej w IN smile.gif (chyba sam się zakręciłem) biggrin.gif
  Forum: Przedszkole · Podgląd postu: #1231958 · Odpowiedzi: 8 · Wyświetleń: 252

leonpro778
Napisane: 11.04.2018, 19:14:12





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

unset() - usunięcie $_SESSION
a jak chcesz "wyczyścić" to po prostu - $_SESSION['tablica'] = array()
  Forum: Przedszkole · Podgląd postu: #1231898 · Odpowiedzi: 18 · Wyświetleń: 522

leonpro778
Napisane: 12.04.2018, 09:45:50





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Wrzuć ten błąd tutaj.
  Forum: Przedszkole · Podgląd postu: #1231915 · Odpowiedzi: 32 · Wyświetleń: 1 860

leonpro778
Napisane: 4.04.2018, 11:31:14





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

https://stackoverflow.com/questions/6187234...nstant-is-empty
  Forum: PHP · Podgląd postu: #1231577 · Odpowiedzi: 2 · Wyświetleń: 363

leonpro778
Napisane: 7.03.2018, 10:06:25





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Cytat(MadMan77 @ 6.03.2018, 19:40:09 ) *
leonpro778 napisałeś, że tworzenie wielu podstron dla różnych rodzajów użytkownika nie ma sensu.

Żebyśmy się dobrze zrozumieli, nie ma sensu tworzyć wielu podstron z identycznym kodem. Tak właśnie działa reguła DRY (Don't Repeat Yourself).

Cytat(MadMan77 @ 6.03.2018, 19:40:09 ) *
Jaka jest Twoja rada jak to załatwić ?

Framework smile.gif albo tak jak pisałem wcześniej, zacznij robić schemat swojej aplikacji. Ustal CO jest dostępne dla wszystkich a co tylko dla zalogowanych użytkowników. Przykładowo, nagłówek strony w większości się powtarza ten sam (nie chodzi mi o sekcję <head>), przykładowo - jakieś logo z tekstem powitalnym. Ten kod powinien być napisany w oddzielnym pliku a Ty go po prostu dołączasz tam gdzie uważasz, że ten nagłówek powinien występować.

Zobacz przykład jak uniknąć zbędnego powtarzania się kodu (wyeliminujemy część powtarzającego się kodu czy jest ktoś zalogowany). Uwaga - przykład jest tylko aby pokazać o co chodzi w regule DRY. Osoby, którym zaczną krwawić oczy proszone są o nie czytanie dalej biggrin.gif

Mamty taką strukturę strony:
http://my-site.pl/ - strona główna
http://my-site.pl/files/ - pliki, które mają być widoczne TYLKO dla zalogowanych użytkowników

Teraz niech w katalogu FILES tworzymy plik (przykładowo):
  1. <?php
  2. echo 'Something important';
  3. ?>


W katalogu głównym tworzymy plik index.php:
  1. <?php
  2. $url = $_GET['url'];
  3.  
  4. if ($_SESSION['isAuth']) { include ('files/'.$url.'.php'); }
  5. else { header('Location: login.php'); }
  6. ?>


Teraz zabezpieczamy katalog FILES plikiem .htaccess z kodem:
  1. Order allow,deny
  2. Deny from all


I teraz, http://my-stie.pl/index.php?url=[jakis_plik_z_katalogu_files] wyświetli Ci ten plik, który podasz w parametrze url (przykładowo plik z Twojego przykładu nazwa.php). Tyle tylko, że nie musisz już w pliku nazwa.php pisać kodu sprawdzającego czy użytkownik jest zalogowany. Przykład może i mało estetyczny ale ma tylko odzwierciedlać sposób działania i eliminacji zbędnego pisania kodu.


Cytat(MadMan77 @ 6.03.2018, 19:40:09 ) *
Pisałeś też o identycznym kodzie np "witaj" który można załatwić frameworkiem możesz podać jakiś przykład lub źródło do frameworka.Pisał ktoś wcześniej o Slim, czy warto od niego zacząć ?

To od jakiego frameworka zaczniesz to już Twoja sprawa. Viking zaproponował Ci framework SLIM ponieważ nie jest tak rozbudowany jak inne frameworki i tak jak napisał wcześniej pozwoli Ci to na przyswojenie pewnych nawyków. Generalnie chodzi o to (jest to bardzo uproszczony opis) aby to co przedstawiasz na ekranie komputera było rozdzielone od tego co chcesz wyświetlić (przykładowo, kod PHP, który pobiera dane, przelicza i robi inne rzeczy jest w innej części aplikacji a następnie mając już dane z tych obliczeń wysyłasz to do kodu, który te dane będzie wyświetlał).

Cytat(MadMan77 @ 6.03.2018, 19:40:09 ) *
Czy KISS DRY OPP to jest programowanie obiektowe ?

Nie OPP (tak, wiem, teraz jest moda na oddawanie 1% na OPP z PIT'a) tylko OOP. OOP dotyczy programowania obiektowego. Nie zdziw się, jeżeli ktoś wyskoczy z tekstami, że programowanie jest złe (tak tak, na innym forum wywiązała się wielka dyskusja) bo i z takimi rzeczami się spotkasz ale programowanie obiektowe to obecnie podstawa.

KISS i DRY to reguły (tych reguł jest więcej) do których trzeba się stosować. Na początek chyba te są najważniejsze.

Cytat(MadMan77 @ 6.03.2018, 19:40:09 ) *
Była też mowa o bardzo prostym sposobie dodawania danych do bazy, którego użyłem. Czego powinienem użyć w zamian tego ?

PDO

Cytat(MadMan77 @ 6.03.2018, 19:40:09 ) *
Jak stworzyć schemat aplikacji? czy chodziło Ci o przepływ informacji pomiędzy plikami ? o ilość podstron itd ?

Schemat czyli takie coś co sprawi, że jak na to zerkniesz to od razu będziesz wiedział gdzie zacząć pisać kod jeżeli będziesz chciał dodać coś nowego. A tak na serio to nie wiem jak to opisać szczegółowo. Wyobraź sobie, że budujesz samochód. Rysujesz schemat i już wiesz, że potrzebne Ci będzie:
- nadwozie
- koła
- kierownica
- silnik
itp.

I teraz. Samochód musi jakoś hamować. Czyli co, nie przeglądasz całego schematu od początku tylko wiesz, że samochód zahamuje jak koła przestaną się kręcić i tam właśnie będziesz dłubał (dodawał, modyfikował itd.).

Cytat(MadMan77 @ 6.03.2018, 19:40:09 ) *
Jeżeli macie jeszcze jakieś rady odnośnie pisania aplikacji w php z chęcią przeczytam smile.gif

Nie bać się nowości. Ja przez takie obawy zmarnowałem kawał czasu.
  Forum: Przedszkole · Podgląd postu: #1230226 · Odpowiedzi: 13 · Wyświetleń: 1 526

leonpro778
Napisane: 6.11.2017, 20:19:30





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

No i bardzo dobrze kombinujesz smile.gif

Tylko DWIE rzeczy (zmieniłem trochę adres bo nie chciało mi się aby tyle tekstu mi się wywaliło na ekranie):

  1. <?php
  2.  
  3. $url = "https://api.pandascore.co/lol/champions/1?token=Pd7EengeQ7JqMqzADdB_brKCgQjNe0z_7g5nyz5lZU_nZFSR9Jo";
  4.  
  5. $cURL = curl_init();
  6.  
  7. curl_setopt($cURL, CURLOPT_URL, $url);
  8. curl_setopt($cURL, CURLOPT_HTTPGET, true);
  9. curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false); // masz HTTPS
  10. curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true); // po to, żeby wynik curl_exec zwrócił nam do zmiennej $result a nie bezpośrednio na ekran
  11.  
  12. curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
  13. 'Content-Type: application/json',
  14. 'Accept: application/json'
  15. ));
  16.  
  17. $result = curl_exec($cURL);
  18.  
  19. curl_close($cURL);
  20.  
  21.  
  22. $result_array = json_decode($result, true); // dekodujemy otrzymanego JSON'a i robimy z tego tablicę
  23.  
  24. var_dump($result_array); // wyświetlenie wszystkich elementów tablicy
  25.  
  26. echo('<br /><br /><br />'.$result_array['name']); // wyświetli Gnar, czyli pojedyncze pole
  27.  
  28. ?>
  Forum: Przedszkole · Podgląd postu: #1224157 · Odpowiedzi: 3 · Wyświetleń: 633

leonpro778
Napisane: 6.11.2017, 13:10:03





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Z tego co się orientuję to wysyłasz żądanie pod wskazany przez Ciebie adres URL i w JSON otrzymujesz odpowiedź. Dla Ciebie w PHP interesująca funkcja to json_decode(). Na stronie pandascore masz całkiem całkiem to wyjaśnione.

P.s. To co podałeś to akurat nie jest kod tylko odpowiedź zwrotna z serwera.
  Forum: Przedszkole · Podgląd postu: #1224120 · Odpowiedzi: 3 · Wyświetleń: 633

leonpro778
Napisane: 8.09.2017, 06:06:52





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Tutaj powinieneś mieć rozwiązanie

https://stackoverflow.com/questions/3566838...ddclass-onclick
  Forum: Przedszkole · Podgląd postu: #1221742 · Odpowiedzi: 7 · Wyświetleń: 636

leonpro778
Napisane: 19.07.2017, 14:06:56





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Widzisz, już dobrze kombinujesz smile.gif Dokładnie, musisz tylko sobie ustawić gdzie dany komunikat zwrotny ma być wysłany od operatora płatności. Tak jak pisałem wcześniej, kod ten wrzucasz do pliku jaki ustawiłeś sobie u operatora.
  Forum: Przedszkole · Podgląd postu: #1219299 · Odpowiedzi: 3 · Wyświetleń: 349

leonpro778
Napisane: 19.07.2017, 13:52:59





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Komunikat daje do zrozumienia, że jest problem z ustawieniem serwera apache. Tutaj czytałeś?

https://stackoverflow.com/questions/2400582...s-my-wamp-sites

Ktoś ma problem bardzo podobny do Twojego. Z tego co zrozumiałem to przy instalacji Wampa jest dostępny on tylko z lokalnego komputera na którym serwer jest postawiony (czyli localhost/127.0.0.1). Edytowałeś httpd.conf ?
  Forum: Przedszkole · Podgląd postu: #1219296 · Odpowiedzi: 2 · Wyświetleń: 322

leonpro778
Napisane: 13.06.2017, 07:06:44





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Nie wiem czy dobrze Cię zrozumiałem ale chodzi Ci najpierw o losowanie cytatu, czyli:
  1. <?php
  2. // twój kod do losowania cytatu ten co podałeś na samym początku
  3.  
  4. header('Location: adres_strony?id_cytatu=' . $id_z_kodu_powyżej);
  5. ?>


I czemu miałoby nie wejść?
  Forum: Przedszkole · Podgląd postu: #1217497 · Odpowiedzi: 14 · Wyświetleń: 1 554

leonpro778
Napisane: 8.06.2017, 15:27:18





Grupa: Zarejestrowani
Postów: 146
Dołączył: 1.03.2012

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

Tylko się upewniałem... W sumie to nie wiem czemu tak zapisane jest ale nieważne.

Masz liczbę elementów tablicy obrazków i opisów taką samą czyli co masz za problem?

  1. if($k==0){
  2. echo '<img src="imgs/galeria/'.$pure_img.'_th.'.$ext.'" alt="'.$gal_alt[$k].'">' . "\n";
  3. }else{
  4. echo '<img src="imgs/galeria/'.$pure_img.'_th.'.$ext.'" alt="'.$gal_tab[$k].'" style="display:none;">' . "\n";
  5. }
  Forum: Przedszkole · Podgląd postu: #1217274 · Odpowiedzi: 6 · Wyświetleń: 568


New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 11:25