NeWorld

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

Comments Off more...

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…)

18 Comments more...

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…)

7 Comments more...

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…)

Comments Off more...

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]

Comments Off more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!