Jump to content
php.lv forumi

Recommended Posts

Posted

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.

Posted

ja tu izmanto datubāzi tad vienkāršāko meklēšanu ar vienu queriju:

SELECT*FROM tabula WHERE lauks LIKE '%$search_text%'

Posted

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

Posted
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

Posted

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!

Posted

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

Posted

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

  • 1 year later...
Posted
Un ko tad darīsim, ja vajadzēs sameklēt vārdu select vai delete? :)

12431[/snapback]

Un kur tad ir problēma?

  • 6 years later...
Posted

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.

×
×
  • Create New...