Internet: PHP, CGI, stb.

Weboldal átalakítás, Drupal költöztetés, nonprofit segítség

Sziasztok,
van a falunkban egy nonprofit egyesület, ami a gyerekeknek szervez különféle programokat. van nekik egy SharePoint Designerrel készült weboldaluk, amit kézzel szoktak felmásolni a "szerverre".
A weboldal jelenlegi címe: http://xn--meseid-8gb.hu/

Facebookon segítséget kértek a stabilizálásban, korszerűsítésben, amire ugyan akadt pár jelentkező, nem történt semmi érdekes.
Én felajánlottam, hogy megpróbálok segíteni, tizenvalahány évvel ezelőtt az akkori kollégiumnak, majd később a gimnáziumnak is dobtam össze weboldalt (amik persze az akkori igényeknek jó volt), de az nagyon régen volt, és nem vagyok webfejlesztő.
Szóval abban maradtunk, hogy szabadidőmben valamit összerakok, és ha megfelel nekik, akkor "oda adom".

Mivel szempont volt a későbbi egyszerű tartalom feltöltés, egy kész motorban gondolkodtam, így a Drupal-t választottam, abból is a 8-as verziót.
A galéria és videók maradnak továbbra is a Google Fotókban és a Youtube-on, ezen nem akarnak változtatni, az oldalon csak linket és előnézeti képek vannak.
Feltettem a gépemre a Acquia Dev Desktop 2-őt (a Windowsos laptopom van többnyire nálam, és mivel szabadidős tevékenység, így azon kell "fejlesztenem"), sikeresen feltettem a Drupal-t, létrehoztam az oldalt, talán azt mondanám, hogy már csak egy normális smink kell rá, és kész.

Lassan kiadnám a kezem közül, és felmerült, akkor a költözés a szerverre.
A Drupal "Backup and Migrate" alapján nem gondolom, hogy gond lesz, kipróbálom majd az Acquia-n belül másik oldalt létrehozni, és abba visszaállítani.
Kérdeztem, hogy mi van a célszerveren, csak annyit tudtak mondani, hogy cpanel meg valami ph-izé :D
Szóval, ha meglesz a végleges verzió, akkor ezen még finomítani kell.

Van az eredeti oldalon középen a széles gif (http://meseidő.hu/fejlec.gif), amit szeretnének az új oldalon is. Elvileg a "Site branding" modul felelős ezért, de nem találom, hol kellene módosítanom.

Az eredeti oldalon van a faluról egy teljes oldalas háttérkép. Szerintem azt annyira nem kellene erőltetni, de ha blokkok háttere fehér marad, akkor még azt mondom legyen. Erre se találtam megoldást.

Illetve ha valaki az eredeti oldalhoz hasonló sminket ismer, azt megnéznénk. Ugyan kipróbáltam párat, egyik se vált be nagyon. A felső menüsor szerintem jobban néz ki, mint oldalt.

Jelenleg a félkész oldal így néz ki: https://imgur.com/a/6ST43XG

Persze tudom, hogy megfelelő tudás nélkül nem kellett volna nekiállni, de ha csak egy fokkal lesz jobb, mint a jelenlegi, már megérte.

JavaScript és a NaN

Innen indultunk:
https://hup.hu/node/162727#comment-2317890

De meg mindig: ha a szamitasom eredmenye nem ertelmes, arrol azonnal akarok visszajelzest, hogy ne kelljen PHP fele error_get_last() fele szornyusegekkel foglalkozni.

Tovabba arra utaltam, hogy a masik EcmaScript nyelvben ezt meg tudtak oldani ertelmesen, es nem random vannak dolgok elszorva a nevterben, hanem normalisan rendezve vannak hierarchikusan...

https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Num…

Mi olyan specialis a "nem vagyok szam" ertekben, hogy nemhogy kulon erteket kell neki adni, de egyes nyelvek szerint ugyanolyan fontos fogalom, mint mondjuk a kulcsszavak, vagy a beepitett fuggvenyek, hiszen ugyanazon az absztrakcios szinten erheto el, mint azok?

Ugye tudod, hogy az EcmaScriptben történelmi okokból a NaN része a globális névtérnek, és a Number objektumnak is?
Az ActionScript 3, mivel EcmaScript variáns, ezt ugyanúgy használja: https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/pac…
A NaN ugyanúgy része a globális névtérnek itt is, ezt benézted.

És ne keverjük a kulcsszavakat a globális névtérben lévő, a standard runtime részét képező azonosítókkal. Totál más nyelvi elemek. A beépített függvények meg nem a nyelv, hanem a standard runtime részei.

Az a speciális a NaN értékben, hogy egyrészt definiálja a szabvány, érvényes bitminta IEEE-754 szerint, emiatt jó, ha egy nyelvben a nevén tudod nevezni ezt a bitmintát mint értéket.

Másrészt ha van egy nagyon hosszú számítási láncod, akkor azt, hogy akár kerekítés miatt, akár más miatt az egyik lépésben értelmetlen lett a számítás, kétféleképpen kezelheted:
- az egyik esetben minden számítási lépésben ellenőrzöd, hogy az eredmény érvényes-e.
- a másik esetben hagyod, hogy a létrejött NaN szépen végigmenjen a rendszeren, úgy sem tudsz mit csinálni, az adott inputból mindenképp NaN lesz a számítás során.

Az első eset szép, és pedáns, csak hatalmas overheadje van. A második eset nem szép, nem pedáns, de nagyon gyors.
És mindkét esetben ugyanazt az információt kapod meg: az inputod nem jó.

Onedrive-on tárolt Excel feldolgozása PHP-val

Sziasztok!

Szeretnék egy Onedrive-on tárolt Excel fájlhoz hozzáférni, hogy PHP-val feldolgozhassam.
Eddig minden éjjel SFTP-vel leszedtük a fájl és helyben feldolgoztuk. Most viszont felköltözteték felhőbe.
Az is jó, ha le tudom másolni helybe.

Van valakinek működő tapasztalata ebben, tud ajánlani hozzá PHP modult?

Köszönöm!

PHP - page reclaim.

Sziasztok,

Van egy API-m PHP-ban, és mivel nagyon nem mindegy, hogy hogyan teljesít (elsősorban időben), ezért elkezdtem belülről "monitorozni". Ebbe túl nagy energiát nem fektettem, csupán beleraktam a fotuzlab féle appgati osztályt (Github).

Ezzel szépen megkapom a számomra érdekes és lényeges adatokat. Viszont van olyan az adatok közt, amit nem értek, hogy pontosan mi. És azért nem ártana tisztában lennem vele.
Ez nem más mint:
page reclaims és page faults

Ezek az adatok a getrusage() -nek az ru_minflt és az ru_majflt értékei.
A Php lényegében annyit ír róla, mint amit az elnevezés is elárul:
// number of page reclaims (soft page faults)
// number of page faults (hard page faults)

A tesztjeimnél ugyanazt php "bombáztam" meg ugyanazzal a POST kéréssel, tehát a bemenet és a kimenet minden esetben ugyanaz volt, mégis volt, hogy 0-t kaptam ru_minflt értéknek, volt pedig,hogy 1-et, vagy 2-t.
Valamint a nem "plain php" (IonCube binary/ASCII) verzió futtatásánál is átlagosan eltért a plain php verzióban kapott értékektől.

A kérdésem az lenne, hogy mi számít soft page fault-nak és mi számít hard page fault-nak?
Mik pontosan ezek az "események"/értékek?

Előre is köszönöm a válaszokat.

phpinfó megjelenés hiba

Üdv!

Próbáltam egy minimális szervert telepíteni egy régi RPI-re, nginx+php7.0 debian 9 (raspbian) rendszeren.
A szerver fut a php is és mégsem jól jelenik meg a phpinfo.
Meg megjelenik, de nem a szokásos kékes háttérrel, csak sima szövegként.

http://i63.tinypic.com/261ja5s.jpg

Mi lehet a gond?
Mi hiányozhat?
Előre is köszönöm a válaszokat!
dombi1976

Debian 8 - PHP update

Sziasztok!

Debian 8-on szeretnék PHP5-öt frissíteni. Elérkezett már az ideje (tudom jó régen elérkezett már ennek az ideje...)
Info: Muszáj, hogy maradjon a PHP a business appok miatt.

Tehát, adott a következő repo: http://packages.dotdeb.org --> Mit gondoltok róla? Megbízható?
A leírás itt: https://shiji.info/blog/2016/en/99

Kézzel fordítani/folyamatosan frissíteni nem akarok. Ha van egy működő repo ahol folyamatosan aktualizálva van, azt preferálnám. Of course, ha a fenti site nem megbízható, marad a "kézi munka" (make+checkinstall).

Köszönöm előre is a tippeket.

Üdv.:
V007

Angular 6, Nodejs/Express, CSRF token mizéria

Tiszteletem a fórumozóknak!

Előzetesen, nem mondanám magam totál kezdőnek, de profil szakértőnek se a témában. megpróbálom pontosan körül írni a helyzetet, ha valahol rosszul fogalmaztam akkor kérném javítani.
Szerintem nem én vagyok az egyetlen aki ezzel küdz, vagy hozzám hasonlóan nem is tudja hogy pontosan mivel küzd (maximum heélyes, vagy téves sejtései vannak róla)

Van egy Angular 6 kliens ami a példa kedvéért http://www.domain.hu, https://www.domain.hu-n van elhelyezve.

Adott egy typescriptben megírt Nodejs backend, ExpressJs, MongoDb, szokásos, aminek a https://api.domain.hu/v1 a kiindulási pontja.

Az Api és a webserver nem egy és ugyanaz a szerver, lokális hálózaton két külön vas.

A teljességhez hozzátartozik még, hogy egy nginx proxy fowrawrdolja az api felé a kéréseket, ami a webszerveren van beállítva, mert maga az api nincs kirakva a nagyplénum elé,
az nginx fogadja internet felöl, és forwardol proxy_pass alapján.

Na most szeretnék beállítani egy CSRF tokenes védelmet...ha kell egyáltalán, mert olyant is olvastam, hogy nem is kell, ha van rendes CORS.
Minnél többet olvasok a témában, annál inkább kezdek elveszni a rengetegben, és nem bírom működésre bírni a CSRF-Token cserét.

A CORS beállítás megvan az api esetében, az origin kizárólag http://www.domain.hu, https://www.domain.hu van engedélyezve, megy is,
máshonnan hívva az apit egyből jön a preflight check error, allow access control hiba...ami rendben is van (vagy legalábbis eddig úgy tűnik, rendben van)
Hozzáteszem ennek se feltétlen ismerem 100%ra a pontos működését, csak nagyságrendileg.

Api esetén telepítve van npm-mel a cookie-parser, meg csurf nevű library, ami azt ígéri, majd mindent megold.
Megnézve az api response-t a set-cookie benne is van, de...még át is tudom nevezni, XSRF-TOKEN-re mert az angular.io ide vágó részében leírják, hogy ha így nevezem el, az angular okos, és intéz mindent.

Ennek ellenére...röviden...nem megy.

( Őszinte legyek, kezd is elmenni tőle a kedvem, mert sosem értettem igazán mire jók a cookie-k egyáltalán. Key, Value tárolásra? Arra ott van session, meg local storage..akkor mire jó még mindig a cookiezás?)

Tehát ha jól értem, az egész CSRF lényege az lenne, hogy az api response headerbe tesz egy set-cookie-t, benne csrf-token=xxxxxxxxxx, path: "/", meg ami kell.
Aztán a következő alkalommal, amikor a kliens api hívást intéz, akkor ezt az azonosítót kiolvassa a cookieból, berakja a request headerbe, és elküldi cookieval együtt az api felé...
az api meg összehasonlítja a két értéket, ha egyezik, a az api kérés oké, generál egy másik tokent, és választban újra beleteszi az új tokent a response headerbe, és így tovább mint a ringispil..

A kliensnek ez alapján a respone headerben található set-cookie csrf=xxxxxxxxxxx alapján nem kellene elmentenie egy cookiet a gépre?
csrf néven, benne a tokennel? mert ez nem történik meg, ha kellene egyáltalán.

Az Api olyan tüneteket produkál, mintha ott minden rendben lenne...kérdés, hogy a kiadott token-t illik-e elmenteni valahol api szinten, mondjuk adatbázisban?
Nem gondolnám, hiszen úgyis a requestben együtt jön a cookie, meg a request headerben a token, tehát minden adott az ellenőrzéshez.

Lehet e probléma, hogy a kliens http is, és nem csak és kizárólag https en érhető el?
Lehet-e baj az, hogy az api meg a kliens két külön aldomain?
ugye www.domain.hu, és api.domain.hu a felállás..érdemes-e áttenni az api-t, ww.domain.hu/api ra? vagy ez maga minden baj forrása? :)
ezt még nem próbáltam ki, bár nem örülnék ha ezt át kellene variálni, de mindent a cél érdekében...

Esetleg Angular bug? olvastam hogy elég érdekesen van megcsinálva Angular alatt a dolog...elvileg automatikusan megold mindent..aztán jönnek a stackoverflow-k, hogy nem megy, mert...
..a kiadott cookie beállításai..
httpOnly: false nak kell lennie, és path="/"..megpróbáltam..nem lett jó...
aztán jött olyan, hogy a post requestnél withCredentials: true,t kell állítani...
Jó lenne olyan angularos hozzászólás aki ezt már meg tudta ugrani angular 4-5-6-tal...az "új" angular/common/http...HttpClient-jével...mert az előd Angularoknál ez másképp volt.

huh...röviden tömören ennyi? :)