Napisane: 20.02.2018, 19:14:04 | |
Grupa: Zarejestrowani Postów: 88 Dołączył: 17.09.2014 Skąd: Krasnystaw Ostrzeżenie: (0%) |
Do LaTeX-a masz coś tutaj: PHP: http://phplatex.scarfboy.com/ https://github.com/xemlock/php-latex java script: http://manuels.github.io/texlive.js/ https://khan.github.io/KaTeX/ |
Forum: Pytania · Podgląd postu: #1229488 · Odpowiedzi: 6 · Wyświetleń: 9 285 |
Napisane: 18.12.2017, 10:14:48 | |
Grupa: Zarejestrowani Postów: 88 Dołączył: 17.09.2014 Skąd: Krasnystaw Ostrzeżenie: (0%) |
Klient się często na tym nie zna, więc go nawet nie interesuje jaka jest jakość Twojego kodu. Dla niego ma działać a Ty masz wykonać to zlecenie w określonym w umowie czasie. A potem np. rozbudowywać albo dalej to utrzymywać itd. A skoro mowa o dobrej jakości kodu. O ile to nie jest przerost formy nad treścią, bierzesz takiego Symfony i opierasz na tym frameworku cały swój projekt, co do funkcjonalności po stronie przeglądarki i JavaScript, zależy od tego co ma być zrobione bo dużo może się dziać właśnie po stronie przeglądarki, bierzesz poza jQuery np. takiego Angulara albo VUE czy tam inne tego typu rzeczy i jedziesz. To żeby było wiele rzeczy wykonać łatwiej i szybciej. W dokumentacji Angulara albo VUE masz tam wypisane jakie przeglądarki są obsługiwane. Co do płatności, często jak się robi takie zlecenia to może być opcja integracji z takim Przelewy24, PayU, Paypal czy innymi takimi serwisami. Można i bez tego to obawiam się że po każdej zaksięgowanej operacji w banku to żeby ustawić status opłacone to administrator serwisu albo inny pracownik musiałby wszystko kontrolować ręcznie w adminie, no bo jak niby masz zamiar to sprawdzać. Takie serwisy jak P24 to wysyłają POST-em twój serwis informacje o statusie, wszystko masz w dokumentacji i na tym bazujesz. Wiedzę masz bardzo mocno rozproszoną po sieci, wiele rzeczy znajdziesz, w przypadku Symfony, Angulara czy innych tego typu rzeczy masz dokumentację, czasami coś tam da się znaleźć w jakichś przykładowych realizacjach, coś tam można popytać na forach. Książki mogą być przestarzałe. Określ dobrze co ma być zrobione z klientem i warunki w umowie, w tym w przypadku niepowodzenia projektu (jeśli początkujesz jest spore ryzyko, zależy jeszcze od złożoności projektu) i nie odbieraj tego co napisałem wcześniej jak jakiś atak, to było raczej ostrzeżenie. Sam realizuję tego typu rzeczy samodzielnie, pracowałem już z P24, Facebookiem, Google i z ich API choć w Symfony czy tam Angularze to akurat nie działam. |
Forum: Kontrola i zarządzanie projektami · Podgląd postu: #1226528 · Odpowiedzi: 12 · Wyświetleń: 2 942 |
Napisane: 3.08.2017, 20:14:17 | |
Grupa: Zarejestrowani Postów: 88 Dołączył: 17.09.2014 Skąd: Krasnystaw Ostrzeżenie: (0%) |
O ile w ogóle coś się zalogowało (wyłączone sprawdzanie błędów?). Wystarczy że zmieniła się wersja PHP z 5.4 - 5.6 na PHP 7 a CI w tej wersji która tam jest tego nie obsługuje i już może być to przyczyną problemu. |
Forum: Gotowe rozwiązania · Podgląd postu: #1219994 · Odpowiedzi: 6 · Wyświetleń: 2 368 |
Napisane: 5.03.2017, 10:25:47 | |
Grupa: Zarejestrowani Postów: 88 Dołączył: 17.09.2014 Skąd: Krasnystaw Ostrzeżenie: (0%) |
Postaram się tutaj przedstawić to jakoś w miarę klarownie, bo na podstawie wielu postów na różnych forach widać jak na dłoni, że jak się ktoś czegoś uczy to jeszcze w starym stylu i pewnie też z jakichś beznadziejnych i niepraktycznych tutoriali PHP które są jeszcze w internecie. Po pierwsze, podział kodu i podział odpowiedzialności, dla uproszczenia zakładam że wszystkie pliki PHP są w jednym katalogu projektu, lecę więc po kolei, od helperów, przez szablony aż po inne pliki. Uwaga, zakładam że liczą się duże i małe litery w nazwach plików z klasami. Klasa View.php odpowiedzialna za renderowanie szablonów:
Klasa Auth.php odpowiedzialna za logowanie i sprawdzanie czy użytkownik jest zalogowany:
plik config.php z danymi do połączenia z bazą i danymi do obsługi logowania:
główny layout, plik layout.php
szablon logowania login.php
no i ostatecznie index.php
Co też testowałem na jednej ze swoich baz MySQL na localhoście, nie wiem tylko czy ta funkcja reloadAsGet zadziała na wszystkich przeglądarkach. W tym przykładzie po ustawionym czasie bezczynności 1 minuty po zalogowaniu nastąpi po tym czasie przeładowanie strony nie jako POST ale GET ze sprawdzeniem czy użytkownik jest zalogowany, jeśli nie to się wyświetli ten formularz. Po drugie. Jest chyba dość cienka granica między bezpieczeństwem a paranoją. Tu zakładam że w każdym innym projekcie są różne te hash_key i zakładam że jest SHA256 i 64 znaków w polach z hasłem. Ten automatyczny reload to w pewnych przypadkach może pewnie nawet przeszkadzać niż pomagać, w szczególności może denerwować. I nie jakieś przypisywanie bezpośrednio do sesji a tutaj użyty jest klucz auth_user związany z tą właśnie obsługą logowania a ze względów praktycznych do tejże sesji zapisywany jest cały wiersz z bazy danych a nie tylko niektóre pola, nie muszę chyba tłumaczyć dlaczego. |
Forum: PHP · Podgląd postu: #1211927 · Odpowiedzi: 5 · Wyświetleń: 852 |
Napisane: 7.02.2017, 16:08:15 | |
Grupa: Zarejestrowani Postów: 88 Dołączył: 17.09.2014 Skąd: Krasnystaw Ostrzeżenie: (0%) |
A to?
wynik:
|
Forum: Przedszkole · Podgląd postu: #1210441 · Odpowiedzi: 8 · Wyświetleń: 496 |
Napisane: 21.09.2016, 09:20:32 | |
Grupa: Zarejestrowani Postów: 88 Dołączył: 17.09.2014 Skąd: Krasnystaw Ostrzeżenie: (0%) |
No rozpacz
Testowałem to na jednej ze swoich baz na localhoście, Ty musisz dostosować (pola), jak i hasła (sposób hashowania) do swojej. |
Forum: PHP · Podgląd postu: #1200528 · Odpowiedzi: 17 · Wyświetleń: 1 241 |
Napisane: 13.09.2016, 18:42:50 | |
Grupa: Zarejestrowani Postów: 88 Dołączył: 17.09.2014 Skąd: Krasnystaw Ostrzeżenie: (0%) |
Na szybko to tu są przykłady: http://www.w3schools.com/php/php_mysql_select.asp |
Forum: Przedszkole · Podgląd postu: #1199949 · Odpowiedzi: 9 · Wyświetleń: 412 |
Napisane: 31.08.2016, 19:54:19 | |
Grupa: Zarejestrowani Postów: 88 Dołączył: 17.09.2014 Skąd: Krasnystaw Ostrzeżenie: (0%) |
To masz do wyboru: albo zainteresujesz się na poważnie Wordpressem i przeróżnymi wtyczkami do niego, albo jakimś frameworkiem, bo jeśli zamierzasz to robić od zera, to oprócz SQL Injection dojdą jeszcze ataki typu XSS, CSRF, Session Fixation, Session Poisoning, Session Hijacking itd. Więc do prostego CRUD-a musisz mieć w tym przypadku większą wiedzę frameworki już implementują ochronę przed SQL Injection, XSS albo CSRF. Dalej dochodzą jeszcze sprawy związane z zastosowaniem cache na tych newsach, które będą się wyświetlać, bo jak coś się nie zmienia albo zmienia się rzadko, to się stosuje takie zabiegi. Tu chodzi o przyspieszenie działania. Jest jeszcze wiele innych rzeczy które musisz ogarnąć. |
Forum: Systemy portalowe i CMS'y · Podgląd postu: #1199105 · Odpowiedzi: 12 · Wyświetleń: 3 142 |
Napisane: 25.07.2016, 19:07:02 | |
Grupa: Zarejestrowani Postów: 88 Dołączył: 17.09.2014 Skąd: Krasnystaw Ostrzeżenie: (0%) |
A np. tak:
i po kolei musisz jechać z kolejnymi linkami wstawiając to jako pattern czyli
itd. http://stackoverflow.com/questions/1586779...tween-html-tags to też działa:
|
Forum: Przedszkole · Podgląd postu: #1196763 · Odpowiedzi: 4 · Wyświetleń: 258 |
Napisane: 31.07.2016, 16:07:12 | |
Grupa: Zarejestrowani Postów: 88 Dołączył: 17.09.2014 Skąd: Krasnystaw Ostrzeżenie: (0%) |
Zakładam że utworzysz sobie tabelę user_groups z polami: id (int11 unsigned, PK, autoincrement ), user_id (int11 unsigned), group_id (int11 unsigned) oraz active (tinyint(1)) i masz: APPPATH/classes/Model/User/Group.php a w nim tak:
i przy dodawaniu (załóżmy że dodajesz siebie jako zalogowanego użytkownika tzn. wyrażasz chęć dołączenia):
a potem tylko w prosty sposób jakiś admin może to aktywować:
|
Forum: Frameworki · Podgląd postu: #1197165 · Odpowiedzi: 3 · Wyświetleń: 412 |
Napisane: 21.07.2016, 18:04:15 | |
Grupa: Zarejestrowani Postów: 88 Dołączył: 17.09.2014 Skąd: Krasnystaw Ostrzeżenie: (0%) |
Można też inaczej:
Ważne, w widoku odpowiedzialnym za rejestrację użytkownika muszą być pola tekstowe formularza o nazwach (atrybuty name): username, email, password, oraz password_confirm, więc potrzeba tam te cztery pola, nazwa użytkownika, email (musi być unikatowy), hasło (min. 8 znaków) oraz powtórz hasło, żeby się zgadzały i sądzę że stąd ten błąd. Natomiast w tym catch odpowiada to za pobieranie informacji o błędach walidacji, w katalogu /application/messages/models powinien być: user.php
w /application/messages/models/user powinien być: _external.php
a to przykładowy fragment widoku do rejestracji:
Schema bazy danych (MySQL) jest tam w module ORM, zakładam że z tego korzystasz. Napisz czy to zadziała bo sam robiłem już niejedną aplikację w Kohanie (3.2/3.3) |
Forum: Frameworki · Podgląd postu: #1196557 · Odpowiedzi: 3 · Wyświetleń: 654 |
Napisane: 4.07.2016, 16:30:54 | |
Grupa: Zarejestrowani Postów: 88 Dołączył: 17.09.2014 Skąd: Krasnystaw Ostrzeżenie: (0%) |
@rebuk Ale optymalizacje to się robi jak jest co optymalizować a bez takich narzędzi jak profiler to sobie można. Każdy liczący się FW ma takie narzędzia, jeśli takiego nie masz to jedyne co możesz zrobić to dawać znaczniki czasu przed i po, przy użyciu funkcji microtime, to Ci da pewien obraz co i ile się wykonuje. Nie wiem czy używasz MySQL ale z tego co tu pisze to już sam silnik ma coś takiego: http://dev.mysql.com/doc/refman/5.7/en/query-cache.html Poza tym w jakiej postaci masz to zrealizowane? Serializujesz dane i zapisujesz cokolwiek na czym robisz cache do jednego tylko katalogu? Frameworki mają w File Store nazwy plików cache jako SHA1 albo md5 z tego co się zapisuje (po nazwach kluczowych), do tego jeszcze tworzone są podkatalogi o nazwach z dwóch pierwszych znaków z tych nazw plików czyli 00..ff, masz więc pliki cache rozmieszczone w 256 podkatalogach, o ile będą utworzone. Laravel dzieli jeszcze te podkatalogi na kolejne podkatalogi z 2 kolejnych znaków z nazw plików, więc zapisuje cache np tak: app/storage/cache/a1/91/a1918afa3f5dd7f8369287c0f18ad874 i jak widzisz masz podkatalogi a1 a potem 91 które są od nazwy pliku tego cache które jest tak naprawdę md5 z klucza. Dodatkowo na file store robi się garbage collector, więc wygasłe cache usuwa się probabilistycznie przy użyciu mt_rand albo rand, więc usuwane są wygasłe już pliki cache a podkatalogi raczej zostawiane, tak żeby zwolnić miejsce na dysku. Ale oczywiście masz rację, bo robiłem cache np. na generowaniu danych do PDF, tutaj nie ma sensu czegoś takiego robić za każdym razem na tych samych danych, tak samo jak używałem cache przy pobieraniu nie zmieniających się danych z zewnętrznych JSON-owych API ale to też dobrze widać jak to działa i ile się da ugrać przy użyciu profilera. No ale jak dane zmieniają się zbyt często to zastanawiam się gdzie tu jest sens? |
Forum: PHP · Podgląd postu: #1195430 · Odpowiedzi: 11 · Wyświetleń: 1 208 |
Nowe odpowiedzi Brak nowych odpowiedzi Popularny temat (Nowe) Popularny temat (Brak nowych) |
Sonda (Nowe) Sonda (Brak nowych) Zamknięty temat Przeniesiony temat |
Wersja Lo-Fi | Aktualny czas: 21.05.2024 - 17:39 |