anonīms Posted November 11, 2009 Report Share Posted November 11, 2009 if(isset($_POST['check'])) { $check = mysql_real_escape_string($_POST['check']); if(!preg_match("/^[\a-z0-9._-]/i",$check)) { echo "nava labi!"; } else { echo "labi"; } } Kapēc man atļauj tādus vārdus kā: kadaj# lja$adlaj Nu kr4 - !@#$%^&*() (vārdus ar šādiem) Quote Link to comment Share on other sites More sharing options...
briedis Posted November 11, 2009 Report Share Posted November 11, 2009 (edited) Nu tāpēc, ka pats tā uzrkastīji... skaties kā tiek skaidrots dotais regexps: Iespējams, ka pie vainas tas slešs pie a-z Edited November 11, 2009 by briedis Quote Link to comment Share on other sites More sharing options...
marcis Posted November 12, 2009 Report Share Posted November 12, 2009 Tavs regex nočeko tikai pirmo simbolu Quote Link to comment Share on other sites More sharing options...
2easy Posted November 12, 2009 Report Share Posted November 12, 2009 try this '/^[a-z0-9._-]+$/i' starp citu mysql_real_escape_string() parasti pielieto tikai pašās beigās, kad izpilda db query. tobish pēc datu validācijas vai vēl kādas datu apstrādes Quote Link to comment Share on other sites More sharing options...
anonīms Posted November 12, 2009 Author Report Share Posted November 12, 2009 Jap. Tagad viss strādā ideāli. 2easy - jā, bet es šādi esmu kodējis jau visu savu kodēšanas mūžu un tas jau ir "iekodēts" manī ;] Quote Link to comment Share on other sites More sharing options...
briedis Posted November 12, 2009 Report Share Posted November 12, 2009 Jap. Tagad viss strādā ideāli. 2easy - jā, bet es šādi esmu kodējis jau visu savu kodēšanas mūžu un tas jau ir "iekodēts" manī ;] Nu jā, bet laikam jau īsti pareizi tas nav, jo viena darbība var atcelt iepriekšējo, un ievainojamība tak paliek... piemēram, addslashes pēc mysql_real_escape_string ... Quote Link to comment Share on other sites More sharing options...
2easy Posted November 12, 2009 Report Share Posted November 12, 2009 ;) nju galvenais jau, ka viss strādā tā, kā vajag! vnk man no lietu loģikas likās, ka tā kā funkcija mysql_real_escape_string() ir domāta, lai sagatavotu vērtības priekš db query, tad to labāk izpildīt vēlāk varētu būt situācija, ka validācija neatļauj: \ lietotājs ievada: as"df tava validācija teiks: nava labi! jo echo mysql_real_escape_string('as"df'); // as\"df tobish var gadīties, ka kādā brīdī tev nāktos mazliet "pārkodēt" kādu savu ieradumu :D Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.