Toms Posted March 13, 2006 Report Share Posted March 13, 2006 Nav jautājums. Vienkārši veselīga interese :) Tātad, visus datus, kas jāieliek datubāzē, apstrādāju ar šādu funkciju: /****************************************************************************/ function MakeSafe($query,$html = false){ if (!$html) { // Sataisa < > u.c. par &, &nd; $query = htmlspecialchars($query); } // Stripslashes if (get_magic_quotes_gpc()) { $query = stripslashes($query); } return $query = "'".mysql_real_escape_string($query)."'"; } /* MakeSafe */ /****************************************************************************/ // SQL izskatās šāds: $sql = sprintf("INSERT INTO tabula VALUES (NULL,%s,%s,%s)", MakeSafe($_POST['value1']), MakeSafe($_POST['value2']), MakeSafe($_POST['jaunuma_teksts'],true) // Juanuma teksts ir ar WYSIWYG sataisīts, piemēram tinyMCE ); mysql_query($sql); Radās doma - varbūt nav jēgas katru mainīgo apstrādāt, varbūt var uzreiz visu $sql... Kā Jūs eskeipojat savus SQL? Link to comment Share on other sites More sharing options...
Grey_Wolf Posted March 13, 2006 Report Share Posted March 13, 2006 un ja vairs nebuus realu tagu kaada jeega noshii? MakeSafe($_POST['jaunuma_teksts'],true) // Juanuma teksts ir ar WYSIWYG sataisīts, piemēram tinyMCE ??? Link to comment Share on other sites More sharing options...
Toms Posted March 13, 2006 Author Report Share Posted March 13, 2006 (edited) Tas ir vajadzīgs tajā brīdī, kad iekš CMS tiek pievienots, piemēram, jaunums, kam jāparādās pirmajā lapā. Lai neiznīcinātu <p> <b> <img> u.c. tagus. Ko domā ar "reāli tagi"? EDIT: Kā pats dari? Edited March 13, 2006 by Toms Link to comment Share on other sites More sharing options...
v3rb0 Posted March 13, 2006 Report Share Posted March 13, 2006 te izrāvumi no mysql db klases kuru lietoju. http://paste.php.lv/3431 scriptā kveriju ar visu esceipošanu šādi izsaucu. $db -> sql('insert into t(a,b,c) values(?,?,?)', $a,$b,$c); Link to comment Share on other sites More sharing options...
Toms Posted March 13, 2006 Author Report Share Posted March 13, 2006 (edited) v3rb0, ideāls variants, nebūtu iedomājies. Thnx. EDIT: Tikai nesaprotu, kāda jēga ne-eskeipot ciparus? Kāda jēga pārbaudīt, vai tas ir cipars? Edited March 13, 2006 by Toms Link to comment Share on other sites More sharing options...
Klez Posted March 13, 2006 Report Share Posted March 13, 2006 nu ja tas ir cipars un tam jaabuut ciparam tad tur vairs nau ko eskeipotu un baudiit Link to comment Share on other sites More sharing options...
Toms Posted March 13, 2006 Author Report Share Posted March 13, 2006 Klez, ja jau tur nav ko eskeipot, kāpēc lieki jāpārbauda vai tas ir cipars? Sanāk vienkārši garāks kods un tas arī viss. Vai es kļūdos? Link to comment Share on other sites More sharing options...
bubu Posted March 13, 2006 Report Share Posted March 13, 2006 Garāks (source) kods nebūt nenozīme lēnāks kods. Un galvenais jau ir ātrs kods, ne? Link to comment Share on other sites More sharing options...
Klez Posted March 14, 2006 Report Share Posted March 14, 2006 Toms, tur abaas vietaas ir !is_numeric. saproti ko tas dara ? Link to comment Share on other sites More sharing options...
Toms Posted March 14, 2006 Author Report Share Posted March 14, 2006 Klez, jēga viena un tā pati - vai ir cipars/vai nav cipars. Doma tā pati tam IFam. bubu, tātad neeskeipot ciparus ir ātrāk nekā pārbaudīt vai tas ir cipars? Bet vienkārši ar is_numeric nepietiek, jo 0043 arī ir cipars. Bet jāglabā ne-cipra laukā, varchar, piemēram. Dubulta pārbaude jāveic! Es kļūdos? Link to comment Share on other sites More sharing options...
v3rb0 Posted March 14, 2006 Report Share Posted March 14, 2006 tajā vietā ne tikai esceipo bet arī liek klāt pēdiņas. piem šitādā gadījumā: $db -> sql('select * from t where id in(?)',array(1,2,3,4,5,6,7,8)); nepavisam negribu dabūt šitādu sql select * from t where id in("1","2","3","4","5","6","7","8") tāpēc ar skatos vai ir ciparisks. tas ka šitā klase nav pats ātrākais variants kā db kaut ko paprasīt ir skaidrs pats par sevi, bet ērtības prasa upurus. Link to comment Share on other sites More sharing options...
Klez Posted March 14, 2006 Report Share Posted March 14, 2006 kaapeec cipar jaaglabaa varchar laukaa ??? ja cipars taatad INT Link to comment Share on other sites More sharing options...
Toms Posted March 14, 2006 Author Report Share Posted March 14, 2006 Klez, es domāju tā, ka cipars ir arī "0065", kas nav skaitlis. Skaitlis būtu "65". INT laukā nevar glabāt tādus ar nullēm priekšā, kaut gan tas = is_numeric Link to comment Share on other sites More sharing options...
Kavacky Posted March 15, 2006 Report Share Posted March 15, 2006 Decimālajā sistēmā cipari ir 0, 1, 2, ..., 9. Kaut kādas to kombinācijas jau ir skaitļi. Link to comment Share on other sites More sharing options...
v3rb0 Posted March 15, 2006 Report Share Posted March 15, 2006 o, thnx! "0065" saglabāšanu biju palaidis garām - darot tā kā tagad nepieliksies pēdas un db saglabāsies 65. Link to comment Share on other sites More sharing options...
Recommended Posts