php
register globals pavojus
by neworld on Rgp.13, 2007, under php, Programavimas, Sagumas
Šiandien parašysių apie šitą pavojų. Kas tai galite pažiūrėti čia: http://www.php.net/register_globals
Iš pažiūros tai gal ir patogus dalykas, tačiau patariu niekam nenaudoti jo. Juolab jog ateities php versijos šio palaikymo neturės. Panagrinėsiu du pavojingus atvejus ir būda kaip tai ištaisyti. (continue reading…)
Naujas serveris ir vienas nesklandumas
by neworld on Rgp.04, 2007, under Blogas, NeWorld, php
Taigi persikėlėme į domenas.net. Hostingas geras, spartus. Viskas būtų buvę gerai, bet pasirodo jog šitam hostinge yra įjungtas register_globals, kuris su sesijom padaro tokį įdomų dalyką, jeigu sesija yra tarkim $_SESSION['kazkas'];, tai atsiranda kintamasis $kazkas. Ir tarkim scripte yra toks dalykas:
$kazkas=”Kažin kas?”;
Čia sakykim taip kuriu naują kintamajį, tačiau $kažkas jau prisestintas prie sesijos, taigi sesija $_SESSION['kazkas'], pasidaro “Kažin kas?” ir šita nauja reikšmė serveryje yra išsaugoma. Taigi, jeigu aš šitame kintamajame saugojau tarkim esama planetą, tai esama planeta pasidaro į kažin kas, dėl to prasideda klaidos. Vienintelis būdas buvo sugalvoti sesijos kintamiesiems ilgesnius pavadinimus.
Trikampiai skaičiai
by neworld on Rgp.01, 2007, under matematika, php, Programavimas, Žaidimas
Neseniai šių skaičių atradimas man išgelbėjo gyvybę (perkeltine prasme, nieks žudytis nebandė:)). Taigi viskas prasidėjo nuo to, kad mano sugalvota funkcija, kuri pagal taškus išvesdavo lygį. Ją taikydavau žaidimė visur, pradedant lygio skaičiavimu, baigiant garaže. (continue reading…)
Aktivuojam nuorodas tekste
by neworld on Bir.07, 2007, under php
Kartais mums reikia aktyvuoti nuorodas tekste. Tačiau, nemokant regular expresion, arba silpnai, gali būti sunku tai padaryti. Tenka naudotis svetimais scriptais. Tai pateiksiu savajį variantą:
[code lang="php"]function searchURL($text) {
$textt=preg_replace("/(http:\/\/)?(([\w]+\.)+)(([\w]{2})|com|net|info|biz|org)((\/)?([\w]+\/)*([\w]+(\.[\w]{2,4})?)?(\?[\w=&%\+]*)?(#[\w]*)?)?(\.|[\W]|\Z)/i
","$2$4$6$13",$text);
return $textt;
}[/code]