Jump to content
php.lv forumi

Meklēšana Iekš Php


AnetiX

Recommended Posts

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

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

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

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

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

  • 1 year later...
  • 6 years later...

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

×
×
  • Create New...