Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Kaip neleisti rasyti zenklu i prisijungima?
Parašė scdogas321· 2012 Lap. 28 23:11:40
#1
Sveiki taigi žinau tokį dalyką:
$yummy = array("!");
echo str_replace($yummy,'0',$_POST['aa']);
echo "
<form action='pamoka.php' method='post'>
<textarea name='aa'></textarea>
<br />
<input type='submit' name='afa' value='Siusti'>
</form>";
Man jis pakeičia "!" į 0. Jei būna "Labas!" pakeičia į - "Labas0".
Kaip man padaryti kad jeigu, bet kur, bet kokioje vietoje tarp raidžiu bus ženklai kaip: @ # $ %. paspaudus login išmestų pvz: echo "Varde gali būti tik [A-Z, a-z. 0-9]";
Iš anksto ačiū :)
Parašė cizas22· 2012 Lap. 29 00:11:11
#2
str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
Tai reiškia, kad str_replace(suranda,pakeicia,tekstas)
Tavo kode yra tai, kad suranda !, pakeičia jį į 0.
Geriau naudok, preg_match
http://php.net/manual/en/functio...-match.php
Parašė Daslee· 2012 Lap. 29 01:11:20
#3
function turiZenklu($txt){
$zenklai = array('!', '@', '#', '$', '%', '^', '&', '*');
for($i=0; $i<count($zenklai); $i++){
if(strpos($txt, $zenklai[$i])){
return true;
}
}
return false;
}
Pvz.:
$textas = "Labas!*";
$textas2 = "Labas";
function turiZenklu($txt){
$zenklai = array('!', '@', '#', '$', '%', '^', '&', '*');
for($i=0; $i<count($zenklai); $i++){
if(strpos($txt, $zenklai[$i])){
return true;
}
}
return false;
}
if(turiZenklu($textas) !== false){
echo "\$textas turi zenklu";
}else{
echo "\$textas neturi zenklu";
}
echo "<br>";
if(turiZenklu($textas2) !== false){
echo "\$textas2 turi zenklu";
}else{
echo "\$textas2 neturi zenklu";
}
Redagavo Daslee· 2012 Lap. 29 01:11:23
Parašė scdogas321· 2012 Lap. 29 09:11:21
#4
Aciu Daslee tavo kodas puikiai veikia su kintamaisiai bet kai bandau padaryti su
if(turiZenklu($_POST['aa']) !== false)
Man tiesiog rodo text area, mygtuka. kai parasau tarkim !a, raso kad neturi zenklu, o jei a! turi zenklus. kame beda? galiu rasyt - ! raso neturi zenklu o jei rasau !! - raso turi zenklu.
As tuos $text istrynes.
Redagavo scdogas321· 2012 Lap. 29 10:11:02
Parašė Daslee· 2012 Lap. 29 12:11:39
#5
Aha, pats pabandžiau ir tą pati pastebėjau. Pakeisk
turiZenklu funkcijoje eilutes:
if(strpos($txt, $zenklai[$i])){ i:
if(strpos($txt, $zenklai[$i]) !== false){
Man šitas dalykas padėjo. :)
Redagavo Daslee· 2012 Lap. 29 12:11:29
Parašė scdogas321· 2012 Lap. 29 14:11:55
#6
ZIAURIAI DEkUI :). JEI GALECIAU ISBUCIUOCIAU :D. Pameginsiu gal iseis i array idet "" kad negaletu space det arba tuscio lango palikt (del tuscio lango kalbu apie foruma :)). DAR KARTA DEKUI! :o :) ;)
Redagavo scdogas321· 2012 Lap. 29 14:11:32
Parašė Daslee· 2012 Lap. 29 15:11:09
#7
function tinkamasTekstas($txt){
if($txt == "" || $txt == " ") return false; //Tekstas tuscias, tai netinkamas
$zenklai = array('!', '@', '#', '$', '%', '^', '&', '*', ' ');
for($i=0; $i<count($zenklai); $i++){
if(strpos($txt, $zenklai[$i]) !== false){
return false; //Tekste yra neleistinu zenklu, tai netinkamas
}
}
return true; //Tekstas tinkamas
}
Neleidžia nėi tuščio teksto, nei su tarpais tekste. :D Dėl tarpo tai tik šita pridėt reikia:
, ' ' į $zenklai array. O dėl tuščio teksto, tai šitas:
if($txt == "" || $txt == " ")
Redagavo Daslee· 2012 Lap. 29 15:11:24
Parašė scdogas321· 2012 Lap. 29 20:11:13
#8
Tiesiog negaliu apsakyt zodziais kaip as tave myliu :]
Parašė maxas66· 2012 Lap. 30 16:11:11
#9
function alphaCheck($text) {
if(preg_match("#^([A-Za-z0-9]+)$#", $text))
return true;
return false;
}
greitai parašiau, turi padėti :)
@Daslee: pamiršai, kad specialieji simboliai yra gana platesnis terminas, negu --> array('!', '@', '#', '$', '%', '^', '&', '*', ' ');