Archive for the 'hasznos' Category

PHP fájlok védelme .htaccess-szel

Adott az alábbi felállás:

#apache rewriteunk a következő:

/minta => /modules/mod_minta.php
/minta/1 => /modules/mod_minta.php?q=1

## ki hogy vitelezi ki, teljesen lényegtelen, nézzen ki pl így:
RewriteRule ^minta(/.*)?$ /modules/mod_minta.php?q=$1 [QSA,L]

## $_GET['q'] feldolgozása phpban történik

Tehát a http://example.com/minta url hívásakor valójában a http://example.com/modules/mod_minta.php hívódik meg és hasonlóan a http://example.com/minta/1 esetén a http://example.com/modules/mod_minta.php?q=1

Tiltsuk le a következő linket: http://example.com/modules/mod_minta.php?q=1. Tehát a címsorba közvetlenül írva adjon valami hibát, de semmiképpen se futtassa le a mod_minta.php-t.

Több lehetőség van:

A modul(ok) elejére beírkáljuk:

 if(eregi('mod_minta.php', $_SERVER['REQUEST_URI'])) {
	header('HTTP/1.0 403 Forbidden');
	exit;
}

Egyszerű, és ronda megoldás. Minden mod_minta.php meghíváskor lefut, az esetek 99.9999%-ában feleslegesen.

Sokkal szebb megoldás a következő kettő…

  • Adjunk rá 404-es hibát:
    RewriteCond %{THE_REQUEST}      ^(GET|HEAD|POST)\ /modules/mod_minta\.php
    ## a mod_404.php kezeli a 404-et, ki hitte volna, ezt korábban már rewriteoltuk
    RewriteCond %{REQUEST_URI}  !^/modules/mod_404\.php$
    RewriteRule $ /404 [L]
    

    Ebben az esetben csak a mod_404.php-t tudja elérni közvetlenül, más nem. Ezt az egyet engedni kell, mert különben végtelen rekurzióba fut az apache. Ilyenkor a címsor nem változik, nincs redirect.

  • Dobjuk rá a 404-es oldalra
            RewriteCond %{THE_REQUEST}      ^(GET|HEAD|POST)\ /modules/mod_minta\.php
            RewriteRule $ /404 [R=301,L]
    

    Itt redirect lesz, ebben az esetben semmilyen file nem érhető el közvetlenül.

A kiprobált környezetben minden url rewriteolva van, tehát közvetlenül egy php file sincs meghívva. Ebben az esetben a két megoldás valamelyikét javasolt a rule-ok legvégére tenni, mert csak akkor jut el idáig a feldolgozás, ha korábban egy szabály sem illeszkedett. Ha ez sem illeszkedik akkor sima 404 a végeredmény.
A 404 megfejtése nagyon egyszerű:

ErrorDocument 404 /404
######
######
######
RewriteRule ^404$  /modules/mod_404.php [QSA,L]

Kiegészítve a RewriteCond-ot:

RewriteCond %{THE_REQUEST}      ^(GET|HEAD|POST)\ /modules/mod_.+\.php

Tehát az összes mod_-dal kezdődő php file közvetlen elérésének a tiltása ilyen. :)

E-mail ellenőrzés php-ben

Korábban beszéltünk az adatvalidálásról, de sosem lehet elég a jóból. Még mindig akad olyan felhasználó, aki képes kijátszani az emberi értelem határait, és elköveti azt a galádságot, hogy helytelen e-mail címet ír be. Különösképp arra az esetre gondolunk, mikor (kimondva) halvány fingja nincs az e-mail címéről, stbstb. fremail.com, hotmail.hu, citrommail.com és sorolhatnánk. Read more »

CMS - Tartalom rendező

Hamár a CMS-t emlegettem, nézzük meg, hogyan lehetne egyszerűen beállítani például a főoldalon megjelenő elemek (bejegyzések, cikkek, stb., nem layout) sorrendjét. Legyen ez egy híroldal, ahol nem mindig az írások létrejöttének időrendi sorrendjében kell megjelenni a tartalomnak. Ráadásul több hasábunk van, több tartalom csoportból kell választanunk.

Legyen tehát:

  1. cikkek: szerkesztett szöveg
  2. galéria: mezei galéria, képekkel
  3. eseménynaptár: eseménynaptár

Read more »

CMS rendszer - 200 millió - Kell?

Piacra bocsátom hát az akár állami szerveket is kiszolgálni képes portálomat, tartalomkezelőmet nem kevesebb, mint 200 milló forintért. Állami szerveket csak 100 milló felárért képes mégiscsak, mert iszonyat indokoltan meg tudom indokolni, hogymárpedig erre szükség van. Az ár nem taralmazza a kiszolgáló szoftverek kifejlesztését (apache, php, mysql, linux ), továbbá a futtató hardverkörnyezet fejlesztését sem. Plusz milliárdokért lehetőség van Micro$oft operációs rendszerrel reszelt portálrendszer megvásárlására is, ez esetben az éves üzemeltés költségek várhatóan duplájára rugnak majd.

Read more »

Keresés html-t tartalmazó mezőben - mysql

Nézzük meg, hogy hogyan lehet keresni egy olyan mezőben, amiben html-t tárolunk - például egy TinyMCE által szerkeztett tartalamat -, és szeretnénk keresni az “árvíztűrő tükörfúrógép”-re, de azt a szerkesztő így írta le: “árvíztűrő <b>tükörfúrógép</b>”. A válasz egyszerű: sehogy. Értelmesen, erőforrást kímélve sehogy. A mysql regexp eleve buta, soronként nézni a táblát megintcsak rossz. A megfejtés egy plusz mező segítségül hívása, ami tartalmazza a html szöveg tag-ek és írásjelek nélküli verzióját. Ismét nem spanyol viasz, de a kezdő cms fejlesztőknek jól jöhet a tipp. Lássuk hogy!

Read more »

Video upload

Egy korábbi postban már bemutattunk egy lehetőséget képfeltöltésre, most ugyanezt tesszük videofeltöltésre is. Tehát kiválasztjuk a fájlokat, igény szerint egyszerre többet is lehet, feltöltjük, előnézetet generálunk a feltöltött tartalomból, esetleg  figyelmeztetjük a kedves felhasználót, hogy ilyen videó vélhetően már lett a korábbiakban feltöltve (elkerülve hogy egy video többször meglegyen). A bemutatóban a már használt swfupload dolgozik.

Bemutató megtekintése 1Mb

Select szűrése textboxszal

Igen gyakran használt vezérlőelem a select (vagy drop down, combobox), mely nagyban megkönnyíti az értékek kiválasztását, mint pontos adatforrás. Mindez igaz addig, amíg maximum pár tíz elem közül kell választanunk, nagyobb elemszám felett bosszantó lehet a kereséssel eltöltött idő. Miért nem használunk címkéket? Csak: nem pontos, csak egy értéket közöl (a select 2 értéket közöl- value, text- és pontos értékek), és mert nem erre való. A nagyobb listákban való elemkiválasztására készítettem egy scriptet, ami már már nagyobb listaméretnél is megkönnyíti az választást. Read more »

Szerkesztett tartalom darabolása

Aki fejlesztett már tartalomkezelőt, talán belefutott abba a problémába, hogy hogyan lehetne megoldani a tartalomhoz tartozó bevezető szöveg és a több oldal tárolását. A következőben erre próbálunk ötletet adni.

A megoldáshoz egyetlen mezőt használunk, ez fogja tartalmazni a teljes dokumentumot: bevezetőt és a többi oldalt. Annyi a dolgunk, hogy szerkesztéskor jelölni kell - hogy tudjuk mi is és az alkalmazás is-, hogy melyik szakasz hol kezdődik és meddig tart. A következő képpen alkalmazzuk: Read more »

Jing Project

Web2-es szolgáltatásunk bemutatásához miért ne készíthetnénk pazar videotutorialt. Az eszközt ne is keressük tovább: Jing Project. Egy egyszerű alkalmazás, melynek segítségével könnyedén megoszthatjuk a képernyőnkön történő dolgokat videó, vagy állókép segítségével. A Jing is egy videóval mutatja be a szoftver használatát (video tour).  Lehetőség van mikrofonos felkonferlásra is, illetve ha megfelelő a hangeszköz a pcben (what u hear funkció) , akkor keverhetjük zenei aláfestéssel is azt, amit bemondunk a mikrofonba.

Egy kattintás a programban, majd egy “inteligens” keret automatikusan fogja a képernyőn található jellegzetes pontokat, majd nincs más dolgunk, mint elidítani a felvételt.

Így tehát bemutathatjuk weboldalunkat, egy szolgáltatást, vagy akár indíthatunk egy oktatóvideókkal foglalkozó oldalt is, mint az 5min.com, amit most megmutatok, hogy kell megnyitni: video tour

Ingyenes ikonokat még, még, még!

A Smashing Magazine-t akár minden nap linkelhetnénk, akkor sem lenne elég belőle. Most több, mint 20 ikoncsaládot gereblyéztek össze, és hát meg kell hagyni, ha mennyiségben nem is, de minőségben még az Inconfinder-t is felülmúlja a válogatás. Erre, erre.

Következő oldal »