Programavimas
Konstrukcinio elemento “switch” panaudojimas filtruojant duomenis
by neworld on Rgs.01, 2007, under Programavimas
javascript, c++, php bei dauguma panašių kalbų turi šią konstrukciją. Kam ji skirta paskaitykite čia: http://www.php.net/switch (trumpai tariant supaprastint if naudojimą).
Šis straipsniukas skirtas tiems kurie moka ir naudojasi šiuo elementu.
Taigi pradėkime, tarkime turime kelis puslapius: ‘Titulinis’, ‘Kontaktai’, ‘Admin’, ‘Nuorodos’, ‘Moderuoti’,'Kita’,'Straipsniai’.
Sakykime visa administravimą/moderavimą laikome tame pačiame puslapyje patogumo sumetimais (sakykim bet kada galima labai lengvai šį bei ta peksiti ir pnš. Be to mes turime statinį, unikalų IP. Taigi mes norime kad tik iš savo ip tegalėtume prisijungti prie administravimo. Taigi mes galime pasirašyti paprastą funkciją:
[code lang="php"]
if (($puslapis=='Admin') or ($puslapis=='Moderuoti')) {
if ($ip=$admin_ip) {
include($puslapiai[$puslapis]);
} else {
echo "klaida";
}
} else {
include($puslapiai[$puslapis]);
}[/code]
Kodas aiškus ir suprantamas. Noriu pabrėžti tai, jog reikia visada filtruoti duomenis. Kadangi man patogu visus reikiamus puslapius sudėti į masyvą o paskui include($puslapiai[$puslapis]); įkrauti tik tuos puslapius kurie yra tame masyve.
Taigi kalba eina ne apie tai, o apie switch (jus ir pavadinimas byloja apie jį).
Taigi dabar parašyiu tą patį algoritmą panaudodamas switch:
[code lang="php"]
switch ($puslapis) {
case 'Admin':
case 'Moderuoti':
if ($ip=$admin_ip) {
include($puslapiai[$puslapis]);
} else {
echo "klaida";
}
default: include($puslapiai[$puslapis]);
} [/code]
Taigi kodas darys tą patį, tačau tvarkingiau atrodo, be to bus lengviau pridėti, ištrinti, redaguoti esamus puslapius į kuriuos noreime kad nekadėjau neįsilaužtų.
Nors straipsnyje naudojau vienam PHP kalbą, tačiau tą patį galima atlikti naudojant javascript, c# kalbas (bandžiau), taip pat kogero ir c++, c, JAVA
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…)
Regular expressions (1 dalis)
by neworld on Rgp.12, 2007, under Programavimas
Kas yra regular expressions?
Regular expressions yra simbolių rinkinys leidžiantis gramatiškai aprašyti arba redaguoti tekstą (tikiuosi gerai išsireiškiau )
Nekalbėsiu apie tai iš kur atsirado, kam konkrečiai naudoti, tik paminėsiu jog su šituo dalykų galima labai paprastai redaguoti tekstus, taigi sutaupysime laiko ir kodo.
Mažiau kalbų, daugiau darbų, lets start (continue reading…)
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…)
Dirbam su radiobutton’ais
by neworld on Bir.02, 2007, under Javascript, Programavimas, WEB programavimas
Kartais tenka javascriptu pagalbą pasiimti radiobutton reikšmę. Bet standartiniu būdų jos pasiimti neina
[code lang="javascript"]var value=document.getElementById(element).value);[/code]
Todėl tenka rašyti šiek tiek sudėtingesnę funkciją:
[code lang="javascript"]function getCheckedValue(radioObj) {
if(!radioObj)
return "";
var radioLength = radioObj.length;
if(radioLength == undefined)
if(radioObj.checked)
return radioObj.value;
else
return "";
for(var i = 0; i < radioLength; i++) {
if(radioObj[i].checked) {
return radioObj[i].value;
}
}
return "";
}
function setCheckedValue(radioObj, newValue) {
if(!radioObj)
return;
var radioLength = radioObj.length;
if(radioLength == undefined) {
radioObj.checked = (radioObj.value == newValue.toString());
return;
}
for(var i = 0; i < radioLength; i++) {
radioObj[i].checked = false;
if(radioObj[i].value == newValue.toString()) {
radioObj[i].checked = true;
}
}
}[/code]
naudojimo pavizdys:
[code lang="javascript"]var a=getCheckedValue(document.forms['form1'].elements['myradio']);[/code]