Új hozzászólás Aktív témák
-
-
pelyib
tag
Kicsit olyan erzesm van mintha a befott rakna el a nagymamat.
Mi lenne, ha inkabb egy olyan scriptet irnal ami rendesen tudja kezelni a HTTP requesteket, lementi az eredmenyt, es a letrejott fajllal megnyitja az Excel-t.
Ezt a script-t olyan nyelven irod amit ismersz es nem kell megeroszakolni egy POST + request timeout miatt (PHP ilyen).
De valszeg PowerShell / Bash boven elegendo lehet.Amit te akarsz ott nem csak 1 PHP script kell, de kell egy webserver is.
Amugy nem nehez, (#19955) SunyaMacs elso linkje jo lehet, kulso link-nek a valaszat ki kell iratni a kimenetre, es beallitani a content-type-t a megfelelore. -
pelyib
tag
válasz csanyiadam #19962 üzenetére
Mivel engem is erdekel a tema, hatha a tobbiek is erot kapnak.
Bar nem Youtube vagy FB de a ceghez a php[architect] magazine jon (sajnos elofizeteses), neha van benne erdekes cikk. -
pelyib
tag
Be kell tolteni a masik fajlt amibol szeretnel hasznalni valamit.
Ennek tobb megoldasa lehet:
- include, require es tarsai
- sajat autoloader irasa (nagyon nem ajanlott!)
- composer hasznalata (elsore lehet soknak tunik de iszonyat egyszeruve teszi az eletet)Ha csak valamit patkolsz es csak mukodjon, akkor 1. megoldas jo lehet.
Ha tanulsz es erdekel a tema akkor elobb az 1. megoldassal gyors siker lehet, es kozben a 2. megoldasrol olvasni kiprobalni.
Udv a klubban. -
pelyib
tag
Kicsit osszezavarsz, azt irtad, hogy: "úgy megy az oldal, ahogy szeretném" aztan megse?
Nemreg nekunk volt egy hasolno projectunk, PHP backend es .net frontend app (ha jol remlek, de en a PHP-s oldalon voltam) + webview.
Ugy emlekszem, h ott barmelyik bongeszot be tudtak huzni a sracok, elejen nalunk is volt aggodas, de talaltak ra megoldast.
Viszont nalunk ugy ment, h a .net app kommunikalt a PHP app-l es atadta az adatot a webview-ban futo kis webapp-nak.
Valahogy igy:
webapp <-> .net <-> PHP -
pelyib
tag
válasz csanyiadam #19979 üzenetére
Ha jol ertem akkor az elso query-nek a checkbox fieldjet explodolni kell es a kapott array-l le kell kerni a tobbi tablabol.
De ha jol ertem akkor neked egy kapcsolo tabla (Association table) kell ami a ket tabla kozotti kapcsolatokat tartalmazza.
Valahogy igy:
form
- form_idform_checkbox
- form_id
- checkbox_idcheckbox
- chekcbox_id
- name"ID azonosítókat több táblából is hivatkozom"
Ugyan azzal az ID-val masra hivatkozni nem szerencses! -
pelyib
tag
Gondolom (#19983) Doink kommentjet lattad mar. Pontosan ugy kell, nagyon szepen megirta.
Es igen az vegtelen ciklus (require_once megoldhatja ezt is).Esetleg meg olvasnivalo front controller + rewrite rule
-
pelyib
tag
válasz #68216320 #19993 üzenetére
cli-ben:
belepsz a project konvytarabaphp /eleresi/ut/composer.phar init
Initcializalod a projectet, ertelemszeruen valaszolsz, ezzel letrejon a composer.json file.
Bovebbenmajd
php /eleresi/ut/composer.phar require clegginabox/pdf-merger:dev-master
BovebbenEkkor mar van a project konyvtarban egy ./vendor konyvtar, abban pedig egy autoload.php
Ennek az fajlnak a betoltese kell kb az elso lepesnek lennie az alkalmazasodban.
BovebbenOrom, boldogsag. Ha nem akarsz rogton a projectedben jatszani, akkor letrehozol egy ures foldert, es ott ugyan ezeket megteszed, es figyeled az eredemenyt.
[ Szerkesztve ]
-
pelyib
tag
Gratula az elert eredmenyhez.
Miben mas a te alkalmazasod mint egy szimpla gallery app? pl: https://piwigo.org/Par eszrevetel:
- mysqli helyett PDO
- egy framework, vagy legalabb egy router lib hogy egy belepesi pontja legyen az alkalmazasnak => nem kell minden fajlban duplikalni a kodot ellenorizni a sessiont => csak egy folder legyen elerheto a webservernek (tipikusan web vagy public neven)
- template engine hasznalata, vagy legalabbis view kiszervezese
- PSR hasznalata => tobbi PHP fejlesztonek konnyebb lesz olvasnia a kodot
- hasznalj 1 fajta karaktert behuzasra space VS tab (PSR a space-t ajanlja)
- injectalj, e helyettfunction __construct()
{
require_once "DataSource.php";
$this->ds = new DataSource();
}ezt
public function __construct(DataSource $source)
{
$this->ds = $source;
}- injectalas igaz a DB connection configra is
- PHP verzio nincs megemlitve,jobban mondva semmilyen requirements nincs megemlitve, 7.2 legyen legalabb, MySQL ?, egyeb?
- ezt meg lehetne forditani:if(!empty($_SESSION["userId"])) {
// amit ved
}
} else {
require_once './view/login-form.php';
}erre:
if(true === empty($_SESSION["userId"]))
{
require_once './view/login-form.php';
exit;
}
//amit ved- "class" folder atneveznem "src"-re
-
pelyib
tag
Piwig csak egy példa, biztos vagyok benne, hogy tele a net self hosted gallery app-l ami tud jogosultságot kezelni.
"csak egy folder legyen elerheto a webservernek (tipikusan web vagy public neven)"
Ezt nem értem pontosan, de jelenleg is így van. Egy mappában van a dashboard és a képek mappa is ami htaccessel le van védve, így csak az viewer applikációban nézhetők a képek.
Lehet én nézek be valamit, de jelenleg ./ a docroot a webszervernek, ami azt jelenti, h pl az SQL installer fájl is pulikusan elérhető (beirom a böngészőbe és meg tudom nyitni), illetve a class folder is elérhető. Csak az legyen elérhető a webszerveren keresztül aminek kell. Pl rossz esteben ki lehet szedni a DB credential-t.Ez az injektálási eljárás pontosan mitől is jobb? Illetve nem nagyon értem, hogy a require_once nélkül akkor hogy is érem el vele a DataSource.php fájlt?
Egyrészt láthatóak lesznek az osztályod függőségei, hisz ott van az interface-n (public function __construct(DataSource $source)
) illetve megadja a lehetőséget, hogy szabadon kicseréld annélkül hogy ott változtatni kelljen ahol használod.
PéldaA readme fájlban meg fogom említeni, hogy milyen PHP verziókon fut
Bár az is több mint a semmi, de a Composer vagy Docker jobban segíthet annak aki maga is akarja használni.Composer használata megoldja a require_once kérdését is (autoloader). Ez így lehet nem sokat segít de tele a net leírással hogy miként kell beállítani és használni.
[Ez] így biztos jó?
[ Szerkesztve ]
-
pelyib
tag
válasz WaterWave #20062 üzenetére
Szerintem a "./data"-ba rakja a feltoltott fajlokat.
Ezt meg ujrafogalmazom, mert teljesen ertelmetlen lett a vegeredemny :
Csinal egy volum-t abba a mappa ahova tolt a rendszer es a NAS-n mappat megosztja a host mappajat.Szoval ugy kell inditani a container-t hogy a NAS-n megosztando mappat a "/valami/path/a/containerben/data"-ra mutasson.
Ahogy irjak is.(Jobban megnezve a PHP kodot, hat felszaladt a szemoldokom tole, vannak megoldasok)
-
pelyib
tag
Akkor mar valami cache (local vagy replicalt ha tobb gepes). Amugy tuti a logint kell tiltani? Nem lenne egyszerubb az adott muveletet "in progress"-be rakni + session Id? Hasonlo a webaruhazak bevasarlo kocsija.
Illetve arra is gondolj, ha "A session" megsemisul (private ablak, es bezarja kilepes nelkul) kliens oldalon akkor azzal mi fog tortenni server oldalon. -
pelyib
tag
Ha jol ertem neked az a fontos, h a stream elereset korlatozd, ezt en fuggetlenne tennem a logintol.
mert a kosarat kifizetni az a pont, ahol úgyis minden egybe fut
En arra gondoltam, hogy az osszes login (ugyan attol a usertol) ugyan abba a kosarba pakol. Tehat csak 1 kosarad (streamed) van. Nalad abban mas a helyzet, h csak azt engeded tovabb pakolni a kosarat (nezni a streamet) aki eloszor kezdi el.(btw, olyan helyen dolgozok ahol streaming a fo termek )
-
pelyib
tag
válasz instantwater #20090 üzenetére
Igen. Most vesztem el a maradek "johiremet"?
-
pelyib
tag
Az a "helyes megoldas" ami mukodik es lefedi az igenyeket
En kulon kezelnem a login-t es azt, h elerheti e a streamet.
Generalsz egy token, elrakod a userhez, leadod kliensnek, az bekuldi amikor a stream-t akarja elerni, server oldalon validalod a tokent.
Kliens oldalon meg kell oldani, h uj eszkozon valo bejelentkezeskor "at tudja venni a streamet". Tehat uj token + regi token invalidalasa + kapcsolat bontasa a regi tokennel.
A pontos use case-ket te tudod.
Kicsit feleslegesnek tunik egy ingyenes szolgaltatasnal vegtelen szoponak tunik -
pelyib
tag
Miert akarod ennyire logoutolni a usert? Foleg ha van mas is (" ha nem mentette az adatait") amit tud csinalni az oldalon?
Amikor w1 session-t vált s2-re, és azon dolgozik, addig egy w2 beléphet s1-re? Vagy w1 megfogja s1-et és s2-t is?
`session_write_close
` oldja a lock-t.Szoval elmeletben mukodhet, DE en nem piszkalnek egy masik sessiont, csak bajt lehet vele okozni.
Ahogy mar irtam en szetvalasztanam a session kezelest es a feature / resource elerest.
Ahogy irtad, eltarolod, h melyik sessionnek van joga eleri a streamet (resource, ha mar http). Tehat amikor le akarja kerni a streamt (gondolom egy sima HTTP GET => xhr) akkor le tudod ellenorizni, h a session hozzaferhet vagy sem ([status code 403]).
Ha a kliens ezt a 403-t kapja akkor eldonti, h rahiv a "/logout"-ra vagy kirak egy uzenetet es gombot, h "Masik helyen mar nezed, szeretnel atvaltani erre a bongeszore?".Igy csak azt kell nyilvan tartanod, h melyik session fer hozza. Nem kell masik sessionhoz nyulni.
-
pelyib
tag
Nem tudom stabilan tartani az alap adathalmazt.
Ha nincs a userhez adat akkor az aktulis session a nyertes. Ahogy lenne egy uj regisztracional, vagy olyan loginnal ahol nincs konkurens session.Hiába csukom le az ablakot és nyitok újat,
Ezt lehetne [Postman]-l, felkonfiguralod a request-t es megnezed, h mit kapsz vissza. De meg tisztabb lenne az API tesztsql szerver memory table van valami ismert baj velük?
Sose kellett meg hasznalnom. -
pelyib
tag
-
pelyib
tag
By default new referenciakent adja at. "&" kell hozza a valtozo neve ele:
http://sandbox.onlinephpfunctions.com/code/58277dbce7cf43cd9544fa585861d2882e90d2e6[ Szerkesztve ]
-
pelyib
tag
Frameworkrol konyvet keresni? Hogy total depricated dolgot olvass 3 honappal kesobb?
Laravel doc szeretnek en ilyen "pocsek" doksit az osszes ceges / opensource applikaciohoz...
-
pelyib
tag
válasz timelord1987 #20130 üzenetére
https://phptherightway.com/
-
pelyib
tag
De akkor a frontend azt mondja meg, h mekkora meretben keri a kepet, ne azt, h mekkora a screen size.
Amugy FE cookie-ban lerakja, h mekkora meretet tamogat, amit a kovetkezo requestnel a bongeszo elkuld a backend-nek, ha cookie nincs, akkor meg valami default meretben general. -
pelyib
tag
válasz radi8tor #20156 üzenetére
is_countable lesz az embered
if (
is_countable($banned_cats)
&& is_countable($categories) // jo lenne tudni melyik, mert ezzel csak elrejtjuk a hibat
&& count($banned_cats)
&& (count($categories) > 1)
) {
// do you job
}return is_scalar($thing)
? mb_strlen($thing, $env->getCharset())
: is_countable($thing)
? count($thing)
: 0;[ Szerkesztve ]
-
-
pelyib
tag
válasz radi8tor #20171 üzenetére
Ha eleg, h nincs tobb warning akkor tenyleg kesz vagy.
Ha meg erdekel, h jobban akkor vedd elo a forraskodot, nezd meg a get() methodot, h milyen bejovo parameterei vannak.
Amirol en beszelek az ilyesmi logikat kovetne:function get($key, $default) {
return isset($configs[$key])
? $configs[$key]
: $default;
} -
pelyib
tag
válasz radi8tor #20176 üzenetére
Nezd meg, h az a $this->config az valoban ez a class e: https://github.com/opencart/opencart/blob/master/upload/system/engine/config.php
Ha igen, akkor a has() methoddal ra tudsz vizsgalni:
$banned_cats = $this->config->has('full_product_path_categories')
? $this->config->get('full_product_path_categories')
: [];
[ Szerkesztve ]
-
pelyib
tag
válasz pigmeus #20250 üzenetére
Ha kifejezetten PHP akkor ide is johet, talan tobb valaszt is kapsz mint ha minden PMben tortenne.
Ha meg inkabb altalason OOP akkor az mehet ide: Programozás topic (kiemelt téma) -
pelyib
tag
The Unix timestamp that this function returns does not contain information about time zones. In order to do calculations with date/time information, you should use the more capable DateTimeImmutable.
[Forras]Hasznald inkabb a DateTime classokat. Tisztabb szarazabb erzes. (esetleg a Carbon nevu libet)
[Pelda]miért megy félre a dolog, miért vonja le azt az 1 órát.
Ha minden igaz (bar en kuka vagyok az time manipulaciohoz) a PHP UTC / GMT idozonat hasznalja. -
pelyib
tag
Pagination, erre keress.
Legegyszerubb ha client kezeli hogy mit szeretne megmutatni. Tudod, hanyadik oldalt kered, ott a limit (hany elem kell) is, ezeket query parameter-ben (GET) elkuldod (altalaban limit es offset neven).
Server oldalon meg ertelemszeruen beilleszted oket a querybe. -
pelyib
tag
Ahogy coco2 irja valtsal at JSON valaszra szerver oldalon. PHP ne generaljon HTML-t csak adja vissza a nyers adatot, JS meg ugy jeleniti meg ahogy akarja.
Eltelt ido kiirasahoz meg inkabb hasznalj egy JS lib-t, pl: https://momentjs.com/ "Relative Time" (tud magyarul is).
-
pelyib
tag
Esetleg ezt: PHP The right way
"php 24 ora alatt" szerintem tobbet art mint hasznal, 20 eves konyv.
-
pelyib
tag
válasz Bzozoo #20408 üzenetére
Csak h tisztan lassunk: authentication es authorization amirol beszelsz. Mindketto eleg nagy tema, erdemes olvasgatni a temaba.
En az oauth-t ajanlanam, ha valamit tanulni szeretnel ebben a temakorben. Bar mar letezik jopar implementacioja.A lényeg az lenne, hogy egy minél biztonságosabb rendszert alkossak
Ha biztosagosat akarsz, akkor ne akard magad ezeket fejleszteni, hasznalj egy mar jol kiprobalt, tesztekkel validalt libet.
(tudom kezdokent minden erdekes, de en inkabb arra az otletre koncentralnek amit eredetileg kitalaltal, ezek csak mellekes dolgok)PHP pedig JSON-nal válaszol
Ajanlom helyette a megfelelo HTTP status code-kat. Tessek oket helyesen hasznalni, es nem minden 200 OKEzt meg csak ugy megosztom, ha mar tenyleg API-t epitesz, tessek dokumentalni is az interface-t
[ Szerkesztve ]
-
pelyib
tag
válasz Bzozoo #20413 üzenetére
Hol tudok találni ilyesmiket, teszteket, illetve mintakódokat?
packagist.org pl, Composer-rel eleg kenyelmesen lehet hasznalni. De itt az egesz internet, keresgelj, angolul.Tehát a PHP ne JSON választ adjon?
Arra gondoltam, h ne egy "succes": true | false alapjan dontsel. Maga a status code is sokat segit, az alapjan mar szet is lehet valasztani a valasz feldolgozasat. -
pelyib
tag
Ha 10 év múlva még mindig létezik a project, majd akkor megnézem.
Ha jol ertem, akkor nalad csak a 20 eves projectek a megbizhatoak, ertem.
Meg gondolom az a ~250millio letoltes valoban azt jelzi, h ez egy kiforratlan valami.Nem verremeno vitat akarok inditani. Ertem sot! reszben osztom is a velemenyed, h nem minden v0.0.1 libre feltetlen kell epiteni, de a Guzzle nagyon nem ebbe a kategoria esik.
-
pelyib
tag
http://xdebug.org Telepiteshez, beallitashoz van egy halom leiras (kb extension telepitese, minimal config, editor konfiguralas)
lépésenkénti végrehajtás
Ezt nem tudom, sose kellett. Tobbit tudja amit soroltal.php cli debugger (grafikus)
PHPStorm adja, legtobb editorhoz van pluginje.
Új hozzászólás Aktív témák
- Azonnali fáradt gőzös kérdések órája
- gban: Ingyen kellene, de tegnapra
- MIUI / HyperOS topik
- Vigneau interaktív lokálblogja
- Milyen hagyományos (nem okos-) telefont vegyek?
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Debrecen és környéke adok-veszek-beszélgetek
- Motorola Edge 40 - jó bőr
- sziku69: Fűzzük össze a szavakat :)
- OFF TOPIC 44 - Te mondd, hogy offtopic, a te hangod mélyebb!
- További aktív témák...
- Garanciális Corsair 5000D Airflow számítógép ház
- ZOTAC RTX 3070 8GB GDDR6 Twin Edge OC White Eladó! 110.000.-
- Beszámítás! Sony PlayStation 4 Slim 1TB fekete játékkonzol extrával garanciával hibátlan működéssel
- BESZÁMÍTÁS! Thrustmaster TMX kormány szett (4460136) garanciával hibátlan működéssel
- ASUS RTX 3070 8GB GDDR6 TUF GAMING OC Eladó! 117.000.-