Wuu Posted March 2, 2009 Report Share Posted March 2, 2009 (edited) <?php function returnSafe($data) { $data = trim($data); $data = htmlspecialchars($data); $data = mysql_real_escape_string($data); return $data; } foreach ($_GET as &$value) { $value = returnSafe($value); } foreach ($_POST as &$value) { $value = returnSafe($value); } ?> Doma ir palaist šādu scriptu pirms lapas ielādes un pirms visām citām php fīčām lai nav katru reizi pa jaunu jāraksta pie katra scripta ! Vārbūt kaut ko vel var papildināt? Edited March 2, 2009 by Wuu Quote Link to comment Share on other sites More sharing options...
bubu Posted March 2, 2009 Report Share Posted March 2, 2009 Nē, tas nebūs labi. Ja dati domāti ievietošanai DB, tad tu nepārbaudi vai tu neievietosi skaitļu kolonnās neskaitliskus datus - būs kļūda kverijā. Bet ja dati domāti ne tikai ievadīšanai DB (piemēram izvadīšanai turpat HTML'ā vai sūtīšanai pa e-pastu, vai rakstīšanai failā, utt..) tad tu lieki eskeipo pēdiņas/apostrofus. To tad nevajag darīt. Quote Link to comment Share on other sites More sharing options...
Wuu Posted March 2, 2009 Author Report Share Posted March 2, 2009 Tad tomēr labāk katru atsevišķi pārbaudīt. Quote Link to comment Share on other sites More sharing options...
zinatnieks Posted March 2, 2009 Report Share Posted March 2, 2009 Tu vari tai funkcijai kā ieejas parametru norādīt arī failu tipu un pēc tam attiecīgi no tā čekot ko padot ārā. Quote Link to comment Share on other sites More sharing options...
Klez Posted March 2, 2009 Report Share Posted March 2, 2009 vari izveidot vēl kāt vienu fciju Visiem datiem vajag novākt tukšmus sākumā un beigās function returnSafe($data) { $data = trim($data); $data = htmlspecialchars($data); return $data; } ja datus vajadzēs likt db, tad vēl arī šo palaiž function returnSafeDB($data,$tips = 1) { if (tips == 1) {//teksts $data = mysql_real_escape_string($data); } else { //te var salikt veel kaut ko ja gribas //paarbaudaam vai cipars ir valīds } return $data; } foreach ($_GET as &$value) { $value = returnSafe($value); } foreach ($_POST as &$value) { $value = returnSafe($value); } ja kko vajag likt db tad to mainiigo izlaizh caur returnSafeDB Quote Link to comment Share on other sites More sharing options...
indoom Posted March 3, 2009 Report Share Posted March 3, 2009 (edited) Man neliekas gudri likt oriģinālam getam un postam virsū funkciju. Labāk ielikt mainīgajā, piem., $get = array_map('returnSafe',$_GET); vai $post = array_map('returnSafe',$_POST); Kā arī, kad liek mysql_real_escape_string, tad nepieciešams pārbaudīt vai nav magic quotes un iztīrīt tās, lai nesanāk noslešot dubultā Piemēram: function returnSafe($data, $trim=true) { if ($trim) $data = trim(data); return !is_numeric($data) ? mysql_real_escape_string(get_magic_quotes_gpc() ? stripslashes($data) : $data) : $data); } htmlspecialchars labāk likt, kad teksts tiek atgriezts no datubāzes, kad nepieciešams. Arī mazāk vietas aizņems datubāzē, kā arī netiek sabojāts oriģināls. Edited March 3, 2009 by indoom Quote Link to comment Share on other sites More sharing options...
v3rb0 Posted March 3, 2009 Report Share Posted March 3, 2009 kas pa daudz, tas par skādi. ja man nav mysql, tad liksi returnSafe trešo argumentu, mysql? 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.