Problema cautare in site

nutzu123
Mesaje: 83

Problema cautare in site

Salut! Cand dau sa caut ceva in site in da ca rezultat toate fisierele din site :(

Pagina cu form.php

Cod: Selectaţi tot

<form id="searchthis" action="cauta.php" style="display:inline;" method="get"> <input id="namanyay-search-box" name="q" size="40" type="text" placeholder="Cauta pe site"/> <input id="namanyay-search-btn" value="Search" type="submit"/> </form>
Pagina search.php

Cod: Selectaţi tot

<?php include('../configurare.php'); include('../functii.php'); $cautare= htmlentities ($_POST['search']); $query="SELECT * FROM tags where cautare='" . $cautare . "'"; $res=mysql_query($query) or die(mysql_error()); if (mysql_num_rows($res)==0 && strlen($cautare)>2 && strlen($cautare)<100) { $cautare=str_replace("'","-",$cautare); $cautare=str_replace("`","-",$cautare); $cautare=str_replace("[","",$cautare); $cautare=str_replace("]","",$cautare); $cautare=str_replace(",","-",$cautare); $cautare=str_replace(".","-",$cautare); $cautare=str_replace(":","-",$cautare); $cautare=str_replace(";","-",$cautare); $cautare=str_replace("?","",$cautare); $cautare=str_replace("!","",$cautare); $cautare=str_replace("&","-",$cautare); $cautare=str_replace("@","",$cautare); $cautare=str_replace(")","",$cautare); $cautare=str_replace("(","",$cautare); $cautare=str_replace("~","",$cautare); $cautare=str_replace("#","",$cautare); $cautare=str_replace("%","",$cautare); $cautare=str_replace("^","",$cautare); $cautare=str_replace("*","",$cautare); $cautare=str_replace("'\'","",$cautare); $cautare=str_replace("|","",$cautare); $cautare=str_replace("<","",$cautare); $cautare=str_replace(">","",$cautare); $cautare=str_replace("/","",$cautare); $cautare=str_replace("+","-",$cautare); $cautare=str_replace("=","",$cautare); $cautare=str_replace("+","-",$cautare); $cautare=str_replace("~","-",$cautare); $cautare=str_replace("http","_",$cautare); $cautare=str_replace("www","_",$cautare); $cautare=str_replace("pula ","_",$cautare); $cautare=str_replace("puta","_",$cautare); $cautare=str_replace("putza","_",$cautare); $cautare=str_replace("pulica","_",$cautare); $cautare=str_replace("puloi","_",$cautare); $cautare=str_replace("putulica","_",$cautare); $cautare=str_replace("putzulica","_",$cautare); $cautare=str_replace("pizda","_",$cautare); $cautare=str_replace("pizdulica","_",$cautare); $cautare=str_replace("coi","_",$cautare); $cautare=str_replace("coaie","_",$cautare); $cautare=str_replace("puli","_",$cautare); $cautare=str_replace("pizde","_",$cautare); $cautare=str_replace("muie","_",$cautare); $cautare=str_replace("sloboz","_",$cautare); $cautare=str_replace("mata","_",$cautare); $cautare=str_replace("morti","_",$cautare); $cautare=str_replace("matii","_",$cautare); $cautare=str_replace("cacat","_",$cautare); $cautare=str_replace("pisat","_",$cautare); $cautare=str_replace("rahat","_",$cautare); $cautare=str_replace("muiut","_",$cautare); $cautare=str_replace("suge","_",$cautare); $cautare=str_replace("sugi","_",$cautare); $cautare=str_replace("porno","_",$cautare); $cautare=str_replace("porn","_",$cautare); $cautare=str_replace("fute","_",$cautare); $q="INSERT INTO tags (cautare) VALUES('" . $cautare . "')"; $cautare=str_replace(" ","-",$cautare); mysql_query($q) or die(mysql_error()); } mysql_close(); header("Location: cauta.php?q=" . $cautare . ""); ?>
Pagina cu rezulate cauta.php

Cod: Selectaţi tot

<?php include('../configurare.php'); include('../functii.php'); $tag = htmlentities($_GET['cautare']);          $query = "SELECT * FROM tonuri WHERE titlu LIKE '%$tag%' ORDER BY data_ad DESC"; $total_pages = mysql_fetch_array(mysql_query($query)); $total_pages = $total_pages[num]; $result = mysql_query($query); if(mysql_num_rows($result)>0) {     echo '<div id="postswrapper">'; } else {     echo '<div class="error">Fisier inexistent!</div>'; } $total_pages=1; while ($row=mysql_fetch_array($result)) { $des1=str_replace($tag, "<u>$tag</u>", $row['titlu']); $titluurl=str_replace(" ","-",$row['titlu']); $titluurl=str_replace("'","-",$titluurl); $titluurl=str_replace("`","-",$titluurl); $titluurl=str_replace("[","",$titluurl); $titluurl=str_replace("]","",$titluurl); $titluurl=str_replace("(","",$titluurl); $titluurl=str_replace(")","",$titluurl); $titluurl=str_replace(",","-",$titluurl); $titluurl=str_replace(".","-",$titluurl); $titluurl=str_replace(":","-",$titluurl); $titluurl=str_replace(";","-",$titluurl); $titluurl=str_replace("?","",$titluurl); $titluurl=str_replace("!","-",$titluurl); $titluurl=str_replace("&","",$titluurl); $titluurl=str_replace("@","",$titluurl); $titluurl=str_replace("*","",$titluurl); $titluurl=str_replace("^","",$titluurl); $titluurl=str_replace("%","",$titluurl); $titluurl=str_replace("#","",$titluurl); $titluurl=str_replace("=","",$titluurl); $titluurl=str_replace("+","-",$titluurl); $titluurl=str_replace("<","",$titluurl); $titluurl=str_replace(">","",$titluurl); $titluurl=str_replace("|","",$titluurl); $titluurl=str_replace("{","",$titluurl); $titluurl=str_replace("}","",$titluurl); $titluurl=str_replace("\"","",$titluurl); $titluurl=str_replace("/","",$titluurl); $titluurl=str_replace("~","-",$titluurl); $id=$row['id']; $titlu=$row['titlu']; $categorie=$row['categorie']; $data=explode(" ",$row['data_ad']); $data=explode("-",$data['0']); echo "<li> <div class='post-title'>" . $i . ". <a href='descarca.php?id=" . $row['id'] . "' title='" . $row['titlu'] . "'>" . $row['titlu'] . "</a></div> <div class='post-details'>Accesari: " . $row['hits'] . " | Categorie: tonuri " . $row['categorie'] . "</div></li>";$i++;} ?>
Ce poate fi gresit in scriptul asta? Stie cineva, va multumesc!

MarPlo
Salut
In formular nu e caseta cu name="cautare", ci "q".
In "cauta.php" inlocuieste:

Cod: Selectaţi tot

$tag = htmlentities($_GET['cautare']);
Cu:

Cod: Selectaţi tot

$tag = htmlentities($_GET['q']);  

nutzu123
multumesc mult! ai drepate si cat m-am uitat prin tot scriptul.

Merge totul perfect la cautare, dar pagina search.php e inexistenta. Adica orice cuvant cautat pe site nu intra in baza de date. Am schimbat totul si am pus

Cod: Selectaţi tot

<form id="searchthis" action="search.php" style="display:inline;" method="get">
catre pagina respectiva si nu merge.

MarPlo
Nu e caseta cu name="search" in formular, iar datele nu sunt trimise prin POST; asa cum incerci sa le preiei in "search.php".
Incearca sa inlocuesti:

Cod: Selectaţi tot

$cautare= htmlentities ($_POST['search']);
Cu:

Cod: Selectaţi tot

$cautare = htmlentities($_REQUEST['q']);  

nutzu123
merge ca uns! multumesc mult! dar mai am o intrebare. Am ceva cu java script, adica atunci cand apas pe butonul de cautare sa ma atentioneze ca nu am scris nimic in casuta si as vrea ceva de genul da sa fie php integratin script. mai mult de 2 caractere sa poata cauta pe site. Sie cineva o solutie sau cum sa caut pe net?

steell
adaugi la formular atributul onsubmit="return functie()"
iar codul javascript va contine o functie in care preiei valoarea campului si daca contine minim 2 caractere sa trimita formularul:

Cod: Selectaţi tot

<script type="text/javascript"> function functie() { a = document.getElementById("namanyay-search-box"); if (a.value.length <2) { alert('Minim 2 caractere'): return false; } else { return true; } } </script> <form onsubmit="return functie()" id="searchthis" action="cauta.php" method="get"> <input id="namanyay-search-box" name="q" size="40" type="text" /> <input id="namanyay-search-btn" value="Search" type="submit"/> </form>

MarPlo
Ca alternativa, se poate si doar cu HTML, folosind atribute adaugate in HTML5: "required" si "pattern" (nu functioneaza in IE 8 sau mai vechi).

Cod: Selectaţi tot

<form id="searchthis" action="cauta.php" method="get"> <input id="namanyay-search-box" name="q" size="40" type="search" placeholder="Cauta" required="required" pattern="[A-z0-9_ -]{2,50}" title="Intre 2 si 50 caractere: litere, numere, liniute" /> <input id="namanyay-search-btn" value="Search" type="submit"/> </form>

Subiecte similare