Tanítás, webfejlesztés, programozás, informatika, rock zene = ezek az oldal témái
Stúdiófelvételek. A szerzeményeimből: rockzenék, popzenék, a legjobb zenéim válogatások
Tanítás, webfejlesztés, programozás, informatika, rock zene
A mágikus idézőjeleket a bejövő GET/POST/Cookie adatok esetén használjuk. Ha a mágikus idézőjelek beállítás be van kapcsolva, akkor szerver oldal a stringben beküldött idézőjeleket helyettesíti a backslash-sel kiegészített párjukkal, azaz: \' vagy \" jelekkel. Ugyancsak helyettesíti a \ jelet \\ jellel és a NULL karaktert \NULL-lal. Ezek megakadályozzák az SQL injection támadásokat. Az alábbi php.ini beállítások javasoltak tehát:
Az alábbi tanácsok elsődlegesen WEB-es alkalmazásokra vonatkoznak.
Az adatbáziskezelők különböznek egymástól, de alapvető dolgokat a használatuk során figyelembe kell venni.
Az adatbázis használatbavételekor arra kell ügyelni, hogy a PHP kód sohase root vagy admin jogú felhasználóként használja az adatbázist, ugyanis ilyenkor az adatbáziskezelő képes fájlokat is létrehozni a szerveren. (Sajnos a múltban volt ilyen szomorú tapasztalatom.
A PHP futtatásának egyik lehetősége a CGI futtatás. Ez azt jelenti, hogy a php oldal elérésekor a webszerver meghívja a rendszeren lévő php futtatható állományt (pl. php.exe) betölti a memóriába és átadja neki a kért url-en lévő file-t.
Mivel a PHP a szerveren képes minden olyan könyvtárat és folyamatot elérni, amire jogosultsága van, ha szükséges a szerver fájlrendszerében írási, olvasási, törlési feladatokat végeznie a kódnak, különös gondossággal kell a kódot megírni.
A Zend_Registry az az osztály, amely a php globális változói helyett használható.
Használata során a Zend Registrybe betölthetünk adatokat:
- egy stringet
- egy tömböt
- Objektumot
Ezeket az adatokat betölthetjük és az oldal futása során bármikor elérhetjük. A program lefutásával az adatokat - ha kell célszerű lementeni egy sessionbe, illetve a szükséges adatokat elmenteni egy adatbázisba profilként.
Módosítsuk az index.php oldalt az alábbiak szerint:
A feladat az, hogy fájlokat tegyünk fel egy FileStore nevű táblába a szerver winchesteréről.
A FileStore táblában a mező típusának Image-nek kell lennie
Ha egy új rekordot kell felvenni, akkor pedig így kell kiadni az SQL utasítást:
INSERT INTO FileStore (ID, Data) VALUES ( 1, (SeleCT BulkColumn FROM OPENROWSET( BULK 'x:\utvonal\fajlneve.pdf', SINGle_BLOB ) AS X )
Ha egy meglévő rekordot kell módosítani, akkor ez lesz az SQL utasítás:
A membase olyan alkalmazás, amely képes felhőbe tenni a különböző szervereken futó PHP alkalmazásokat - vagyis segítségével PHP alapú website-ok is futtathatók megosztott szerveren. Mindezt azzal éri el, hogy több szerver közösen tudja használni egy számítógép megosztott memóriáját adatok tárolására.
Hogyan?
A szerver egy NoSQL nevű adatbáziskezelőt futtat, amely memóriában tárolja az adatokat kulcs-érték párokként formájában.
Régóta kerestem annak a megoldását, hogyan lehet MSSQL-ben megvalósítani általában a MySQL-ben régóta meglévő LIMIT klauzulát. Ezt olyan esetben használjuk, hogyha nem szeretnénk, hogy a szerver oldalról a teljes rekordszet átjöjjön kliens oldalra. Hosszas keresgélés után rátaláltam a Microsoft SQL 2005-ben bevezetett row_number() függvényre, de annak sajnos egy kis szépséghibája van. Ha a sorok nem egyediek, akkor véletlenszerűen ad a soroknak sorszámot.
A PHP tartalmaz kapcsolódási lehetőséget a PostgreSQL-hez, de sajnos a PHP verziója elavult, ezért az alábbi módon lehet telepíteni a címben emlegetett triászt.