AnetiX Posted May 19, 2003 Report Share Posted May 19, 2003 Problēma tāda ,ka man vaig meklēšanu savā lapā. Piem. es ievadu vārdu koks un viņš man izmet visus rakstus kur ir kaut vienc vārds koks. Link to comment Share on other sites More sharing options...
maar Posted May 19, 2003 Report Share Posted May 19, 2003 ja tu izmanto datubāzi tad vienkāršāko meklēšanu ar vienu queriju: SELECT*FROM tabula WHERE lauks LIKE '%$search_text%' Link to comment Share on other sites More sharing options...
jannis Posted May 19, 2003 Report Share Posted May 19, 2003 bet kaa iisti ir ar droshiibu? man skjiet ka tad var ievadiit, piem, %'; ....(kaut ko nelaagu) Link to comment Share on other sites More sharing options...
RuncZ Posted May 20, 2003 Report Share Posted May 20, 2003 vai tad nau vienalga ko lietotājs tur ieraksta ?? izčakarēt datubāzes saturu jams tāpat nevar... sliktākajā gadījumā mysql's var izmest kādu erroru par neriktīgu kveriju, ko savukārt vajadzētu varēt novērst ar $search=addslashes($_GET['search_txt']); vai kaut kā tamlīdzīgi Link to comment Share on other sites More sharing options...
maar Posted May 20, 2003 Report Share Posted May 20, 2003 man skjiet ka tad var ievadiit, piem, %'; ....(kaut ko nelaagu) ar % nodrošina to, lai atrastu ievadīto tekstu lielākā teksta gabalā. Lietotājs pats var ievadīt % un tadejadi dot vairākus vārdus Link to comment Share on other sites More sharing options...
zoltar Posted May 20, 2003 Report Share Posted May 20, 2003 Par to %; Bija te daži gudrinieki meklēšanas parametram nepielika nekādu validācijas loģiku, a datubāze ta bija pāri pa gigabaitu un ievadot meklēšanas parametra laukā % serveris vienkārši aizgāja daunā! Pārbaudi vajag anyway! Link to comment Share on other sites More sharing options...
maar Posted May 20, 2003 Report Share Posted May 20, 2003 meklēšanas parametram nepielika nekādu validācijas loģiku kā būtu ar kādu paraudziņu ? Link to comment Share on other sites More sharing options...
Venom Posted May 20, 2003 Report Share Posted May 20, 2003 principā pietiktu ar ko līdzīgu: $_POST['src']=mysql_escape_string($_POST['src']); //sākumā ņemam nost spec.characters $_POST['src']=preg_replace('/(delete|create|alter|select)/i','',$_POST['src']); //ņemam ārā baisus vārdus $_POST['src']=str_replace(array('%',';','_'),'',$_POST['src']); //un spec mysql mekēšanas wildcardus //un ; ņemam nost, lai nevarētu terminēt selektu un ievadīt citu komandu Link to comment Share on other sites More sharing options...
Venom Posted May 20, 2003 Report Share Posted May 20, 2003 Par to meklēšanu bez db. ir man viens saic (slang.x-zone.lv), kuru laika trūkuma dēļ vēl nevaru pārlikt uz mysql, tur tiek izmantota relācijas sistēma - pievienojot raxtu vai tmldz. attiecīgajā failā metās iekšā piem. timestamps, kur figurē arī attiecīga faila nosaukumā. piem 1453465980.raksts. Meklēšana notiek apm. šādi: function gt($file) //nolasa f-la saturu stringā { return join('',@file(trim($file).'.raksts')); } $articles=@file('article.saraksts'); $atrasts=array(); foreach($articles as $line) { if (substr_count(strtolower(gt($line)),$ko_meklee)) { $atrasts[]=trim($line); } } beigās tev ir arrajs ar atrastiem raxtiem Link to comment Share on other sites More sharing options...
freak Posted January 2, 2005 Report Share Posted January 2, 2005 Un ko tad darīsim, ja vajadzēs sameklēt vārdu select vai delete? :) Link to comment Share on other sites More sharing options...
bubu Posted January 2, 2005 Report Share Posted January 2, 2005 Un ko tad darīsim, ja vajadzēs sameklēt vārdu select vai delete? :) 12431[/snapback] Un kur tad ir problēma? Link to comment Share on other sites More sharing options...
No0ne Posted August 26, 2011 Report Share Posted August 26, 2011 Un kur tad ir problēma? Topiks gan 6 arpus gadus vecs, bet tomēr skaidrībai.. Problēma ir tajā, ka Venom dotais kods pilnīgi nevajdzīgi samaina vārdus select, delete, alter utt uz neko, un līdz ar to searchā nekas neparādīsies. Link to comment Share on other sites More sharing options...
marcis Posted August 27, 2011 Report Share Posted August 27, 2011 Liels paldies, ka pateici! Es vairāk kā 6 gadus nevarēju atrast problēmu Link to comment Share on other sites More sharing options...
daGrevis Posted August 27, 2011 Report Share Posted August 27, 2011 *pasmaida* Link to comment Share on other sites More sharing options...
Recommended Posts