tipp

PHP SVN project létrehozás assembla.com-on és tesztelés NetBeans -ben

2012. május 27-én a bejegyzés kiegészítve Windows felhasználók számára. A kiegészítések pirossal kiemelt dátummal jelöltek.

Azok kedvéért, akik még nem próbáltak verziókezelő rendszert használni: Több féle lehetőség létezik. git, CVS vagy akár az SVN, amiről én írok most. De egyébként jó hosszú a lista. Akit érdekel: Verziókezelő rendszerek, Verziókezelés

Hasznos dolog, mert egy szerveren megtalálható az összes fájl összes verziója, amiket vissza is lehet állítani szükség esetén. Illetve pontosan követhetők a változások. Csapatmunka esetén ki, mit módosított. Illetve bizonyos esetekben ugyanazon a fájlon több fejlesztő is dolgozhat. Más esetben ez hibát okoz, aminek a javítására vannak lehetőségek.

Vannak fejlesztői környezetek, amik támogatják a verziókezelő rendszereket. NetBeans is ilyen. CVS, Mercurial és Subversion ( SVN ) van beépítve. Ingyenes szervereket is lehet találni. Korlátozottan bár, de ilyen az Assembla.com (A fizetős verziója többet tud). Viszont lehet privát projektet is kérni. Ellentétben sourceforge.net -tel (2012. május 27.: Azóta már itt is), ahol viszont sokkal több lehetőség és eszköz használható teljesen ingyen. De nem is részletezném tovább. A tárgyra térek.

Mint írtam, netbeanst használok és SVN-t. Valamilyen PHP programot szeretnék "verziókezelni". Létrehozom a projectet, beállítom az SVN-t és módosítgatok. Tesztelgetek. Létrejönnek cache fájlok esetleg, képek vagy kitöltött, helyi gépre beállított config fájlok amiket nem szeretnénk commitolni. NetBeans-ben van lehetőség commit előtt egy listában jelölgetni, miket akarunk felküldeni a szerverre és miket nem. Vagy előre beállítani, hogy egy bizonyos mappát, fájlt sose töltsön fel. De még ekkor is el lehet veszni a fájlok között. Nem beszélve arról, hogy a netbeans projekt fájljai is bekerülhetnek ide, ha létrehozáskor nem lett megadva, hogy külön mappában tárolja a config állományokat a projekthez. Illetve nem biztos, hogy az alkalmazás fel van készítve arra, hogy minden mappába bekerül egy .svn nevű mappa is fájlokkal. Szóval nézzünk lépésről lépésre egy projectet az assembla.com -on.

Megosztás/Mentés

PHP switch működése. Típusos switch és típuskonverziók.

Most egy érdekességről fogok írni, aminek igazán gyakorlati hasznát nem látom, viszont jó tudni. A switch elágazás nem egyedi a php-ben. Más nyelvek is megvalósítják, mint például a java, C vagy a pascal, csak más néven és/vagy egy kicsit másképp. Bizonyos esetekben az IF elágazás felváltására szolgál. Két érték pedig többnyire akkor lesz egyenlő, ha a típus is egyezik. Ám PHP-ben az értelmező mondhatni, kénye kedvére változtathatja a típusokat egy-egy ellenőrzés alkalmával. Persze adott, hogy mit mire tud konvertálni. De ha biztosak akarunk lenni a típusok egyezésében is, akkor a == helyett a === -re van szükség. Switch esetén viszont mindig az első verzió, azaz a típusegyeztetés nélküli ellenőrzés történik. Ez egy részt lehet probléma. Más részt ha ez probléma, akkor az if-eket se nehezebb megírni sok esetben. Mégis bizonyos speciális helyzetekben igen csak el kéne gondolkozni, hogy ugyanazt a működést egy IF hogy váltja fel. Ez pedig a break utasítások használatával és a default ág elhelyezésével függ össze.

Megosztás/Mentés

Űrlapadatok helyes backslashelése PHP-vel

Alap, hogy ha PHP-ben SQL adatbázisba viszünk fel adatokat, akkor ha az egy űrlapról érkezik, esetleg url-ből, vagy bármi nem megbízható helyről, akkor mindenképp le kell védeni bizonyos káros karaktereket. Ezek jellemzően az idézőjelek. Ugyanis az SQL forráskódban is a karakterláncokat idézőjelek közé tesszük. Ha ellenőrzés nélkül bekerülhet egy aposztróf a szövegbe, akkor az lezárja a karakterláncot és utána sok csúnya dolgot lehet művelni, amibe nem megyek bele. Aki kíváncsi rá, írja be a google keresőbe, hogy sql injection. Na most ennek elkerülésére mysql-hez létezik a mysql_real_escape_string függvény. Nagyjából hasonló, mint az addslashes. Abban mindenesetre mindkettő közös, hogy az idézőjelek elé \ jelet tesz.

Megosztás/Mentés

MySQL kis- és nagybetűk megkülönböztetése

mysql logo

Tudjuk vagy sem, de MySQL-ben a mező választott karakterkészletétől függ, hogy kereséskor egy WHERE feltételben számít-e a kis- és nagybetűk különbsége. Elsőre lehet nem tűnik fontosnak ez a kérdés. De cseppet sem mindegy, hogy egy loginrendszernél például ugyanannak számít-e Bela és bela. Ugyanakkor egy jelszónál ( amit egyébként nem nagyon szokás hashelés nélkül tárolni ) pedig fontos, hogy különbözzön 123ABC és 123aBc. Most nem tudok jobb példát mondani. De akkor milyen karakterkészletet válasszunk? Erről fogok írni pár szót.


Megosztás/Mentés

Ne alázkodj, ne mondd, hogy sürgős!

Elakadtál? Kérdésed van? Tedd fel, csak így ne!!

  • Lécciii segítseket. pls!! (sírószmájli)
  • Segítsetek, nagyon kérlek titeket!
  • Nagyon kezdő vagyok. Ez az oldal, a legjobb, amit eddig láttam. Ti olyan okosak vagytok, segítenétek?
  • Sziasztok, van egy nagyon nagy problémám. Segítsetek kérlek! Nagyon sürgős lenne. Légyszi!!
  • Még csak 12 éves vagyok. Segítsetek!

Hogy miért?

  • Idegesítő, szánalmas a sírás, könyörgés, megalázkodás. Ellenkező hatást vált ki a várthoz képest
  • Ne nyaljunk senkit tisztára. Mosakodnak ők is eleget!
  • Ne mondd, hogy a te problémád sürgős. Mindenkié az! Ha határidőre vállalsz olyan munkát, amihez nem értesz, az a te gondod, terhed és felelősséged.
  • Kit érdekel, ki hány éves? Az online világban bárki bármit mondhat a koráról. Ráadásul vannak nagyon fiatalok, akik nagyon értelmesek, és huszonévesek, akik szörnyen buták és gyerekesek, értetlenek. Ha szóba is kerül a kor, ne az legyen az első, hogy a fórumozók orrára kötöd, hány éves vagy.

Mi az amit tenni kéne?

Kérdezni, és türelmesen várni. Próbálkozni máshol is. Megtartani a méltóságunkat, már ha volt valaha is. Egy komoly kérdésre sokkal hamarabb jöhet válasz, mint egy idegesítőre.

Megosztás/Mentés