Visualizzazione risultati 1 fino 8 di 8

Discussione: ancora un motore di ricerca...uffa!

  1. #1
    Guest

    Predefinito ancora un motore di ricerca...uffa!

    ciao ragazzi, già ho scritto ieri per un problema con uno script simile a questo. però poi, quando è entrato in funziona, ho visto ke vale poco e nulla. quindi mi sono messo a lavorare e ho trovato uno script in php ke funziona da motore di ricerca per file. è composto da un file html ke costituisce il form di ricerca e un file php ke sarebbe il vero e proprio codice del motore e ke crea la pagina dei risultati. l'ho modificato in modo da fargli cercare solo tra i file di estensione .doc, .zip, .rtf, .txt. (ricordo ke il motore serve per fare una ricerca solo all'interno del sito) .
    l'ho caricato su www.bigbrain.altervista.org/form.htm sotto al campo per l'insersione della parola ho messo 4 opzioni selezionabili ke servono a effettuare ricerche in cartelle diverse. ad esempio se si spunta l'opzione "italiano", lo script va a cercare i file che contengono quella parola SOLO nella cartella "italiano" del sito.
    ora viene il problema. il problema è ke io nella cartella ITALIANO ho messo 3 file con nomi (e contenuti) diversi solo ke qualsiasi parola metto mi da per risultato sempre tutti e tre i file. come se non capisse ke deve cercare solo quei file ke contengono la paroal da me inserita nel form!
    se potete leggere lo script e magari "aggiustarlo" ve ne sarei davvero grato!
    ecco i codici:

    il codice della pagina form.htm (ossia quella con lo spazio per la parola da cercare e le 4 opzioni) è questo:

    <html>
    <form method="POST" action="NEWSEARCH.php">
    <TABLE><TR><TD>
    Search our site: <input type="text" name="whatdoreplace" size="25"></TD><TD rowspan=2><input type="submit" value="Search" name="B1"></TD>
    </TR>
    <TR><TD>
    [Latino<INPUT TYPE=radio name=where value=Latino>][Storia
    <INPUT TYPE=radio name=where value=Storia>][Italiano
    <INPUT TYPE=radio name=where value=Italiano>][Altro
    <INPUT TYPE=radio name=where value=Altro>]
    </TD></TR>
    </TABLE>
    </FORM>
    </html>

    lo script della pagina NEWSEARCH.php (ossia il vero e proprio script ke fa anke da pagina dei risultati) è questo:

    <HTML><HEAD></HEAD><BODY BACKGROUND=background.gif>

    <CENTER>
    <FONT SIZE=-3 COLOR=BLUE><A HREF=mailto:admin.bigbrain@gmail.com><I>Contatta l'admin</I></A><BR><BR>
    </FONT>

    <BR>
    <H2>Ecco i Risultati della tua ricerca</H2>
    <HR>

    <TABLE BORDER=0 width=95% spacing=0 CELLPADDING=0 CELLSPACING=0>
    <TR><TD background=topbg.gif><BR></TD></TR>

    <?Php
    error_reporting(0);
    $timex=time();
    $timey=0;
    $bgchange="FFFFFC";
    $fchek=0;
    $command[0]="0";
    $dirtest="false";


    #subfolder search options setup starts here

    if($where=="Latino"){
    $dirtest="true";
    $linkdir="Latino/";
    chdir('/membri/bigbrain/Latino');
    $handle=opendir('.');

    } elseif($where=="Storia"){
    $linkdir="Storia/";
    chdir('/membri/bigbrain/Storia');
    $handle=opendir('.');

    }elseif($where=="Italiano"){
    $linkdir="Italiano/";
    chdir('/membri/bigbrain/Italiano');
    $handle=opendir('.');

    }elseif($where=="Altro"){
    $linkdir="Altro/";
    chdir('/membri/bigbrain/Altro');
    $handle=opendir('.');
    } else {
    $dirtest="true";
    $linkdir="";
    $handle=opendir('.');
    }


    #thats it, nothing else should be changed do not edit below this line.




    while (($file = readdir($handle))!==false){
    if (eregi("[a-zA-Z0-p_-]*.doc",$file) or eregi("[a-zA-Z0-p_-]*.rtf",$file)or eregi("[a-zA-Z0-p_-]*.txt",$file)or eregi("[a-zA-Z0-p_-]*.zip",$file)){
    $fchek=$fchek+1;
    $sizer=filesize($file);
    $sizer=($sizer/1000);
    $sizer=round($sizer,1);
    $file=trim($file);
    $file=chop($file);
    $filed=file($file);
    $fileold=$file;
    $count = count($filed);
    $i = $count;
    $zt = 0;
    $clt=0;
    $found=0;
    $stringer=0;
    for($j=$zt;$j<$i;$j++){
    $string=$filed[$j];
    $stringer=$filed[$j];
    $num = "regPLACE hold";
    $string=strtolower($string);
    $stringer=strtolower($stringer);
    $whatdoreplace=strtolower($whatdorep
    lace);
    $string = ereg_replace($whatdoreplace, $num, $string);
    if($string!=$stringer){
    $found=$found+1;
    $abby=$found;
    $show[$found]=$stringer;
    }
    }
    $dircount=count($file);
    echo "<FONT SIZE=-1>";
    if($found>0){
    $command[0]=($command[0]+10);
    if(eregi("[a-zA-Z0-p_-]*.txt",$file)){
    $fileold=$file;
    $file="$file";
    if($dirtest=="true"){
    $file=$fileold;
    }

    }
    if($file=="index.html"){
    if($bgchange=="EEEEEE"){
    $bgchange="FFFFFF";
    echo "</TD></TR><TR><TD BGCOLOR=$bgchange><BR><A HREF=\"$linkdir$file\" target=_new><FONT SIZE=+2>$file</A><BR>$data</FONT> Size: $sizer Kb<BR><UL>";
    } else {
    $bgchange="EEEEEE";
    echo "</TD></TR><TR><TD BGCOLOR=$bgchange><BR><A HREF=\"$linkdir$file\" target=_new><FONT SIZE=+2>$fileold</A> </FONT> Size: $sizer Kb<BR><UL>";
    }
    } elseif($bgchange=="EEEEEE"){
    $bgchange="FFFFFF";
    echo "</TD></TR><TR><TD BGCOLOR=$bgchange><BR><A HREF=\"$linkdir$file\"><FONT SIZE=+2>$fileold</A></FONT> Size: $sizer Kb<BR>";
    } else {
    $bgchange="EEEEEE";
    echo "</TD></TR><TR><TD BGCOLOR=$bgchange><BR><A HREF=\"$linkdir$file\"><FONT SIZE=+2>$fileold</A></FONT> Size: $sizer Kb<BR><UL>";
    }
    $file=$fileold;
    for($new=1;$new<=$found;$new++)
    echo "</UL></FONT></TD></TR>";
    }

    }
    }

    if($command[0]==0){
    echo "<BR></TD></TR><TR><TD bgcolor=000000><CENTER><B><FONT SIZE=+2 COLOR=RED>Nessun risultato trovato!";
    }

    echo "<BR></TD></TR><TR><TD BGCOLOR=AAAAFF><CENTER><FONT SIZE=-1>Sono stati trovati $fchek file(s) in soli ";
    $timey=time();
    $timea=($timey-$timex);
    echo " $timea secondi";


    ?>
    <TD/></TD></TR></TABLE><BR><CENTER><IMG SRC=http://www.bigbrain.altervista.org/_altervista_ht/logo.GIF><TABLE>
    </HTML>
    vi prego aiutatemi...non ci capisco praticamente nulla di php. grazie.

  2. #2
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    Prova a mettere qusto in NEWSEARCH.php
    Codice PHP:
    <HTML><HEAD></HEAD><BODY BACKGROUND=background.gif>

    <CENTER>
    <FONT SIZE=-3 COLOR=BLUE><A HREF=mailto:admin.bigbrain@gmail.com><I>Contatta l'admin</I></A><BR><BR>
    </FONT>

    <BR>
    <H2>Ecco i Risultati della tua ricerca</H2>
    <HR>

    <TABLE BORDER=0 width=95% spacing=0 CELLPADDING=0 CELLSPACING=0>
    <TR><TD background=topbg.gif><BR></TD></TR>

    <?Php
    error_reporting
    (0);
    $timex=time();
    $timey=0;
    $bgchange="FFFFFC";
    $fchek=0;
    $command[0]="0";
    $dirtest="false";
    $where = $_POST["where"];

    #subfolder search options setup starts here

    if($where=="Latino"){
    $dirtest="true";
    $linkdir="Latino/";
    chdir('/membri/bigbrain/Latino');
    $handle=opendir('.');

    } elseif(
    $where=="Storia"){
    $linkdir="Storia/";
    chdir('/membri/bigbrain/Storia');
    $handle=opendir('.');

    }elseif(
    $where=="Italiano"){
    $linkdir="Italiano/";
    chdir('/membri/bigbrain/Italiano');
    $handle=opendir('.');

    }elseif(
    $where=="Altro"){
    $linkdir="Altro/";
    chdir('/membri/bigbrain/Altro');
    $handle=opendir('.');
    } else {
    $dirtest="true";
    $linkdir="";
    $handle=opendir('.');
    }


    #thats it, nothing else should be changed do not edit below this line.




    while (($file = readdir($handle))!==false){
    if (
    eregi("[a-zA-Z0-p_-]*.doc",$file) or eregi("[a-zA-Z0-p_-]*.rtf",$file)or eregi("[a-zA-Z0-p_-]*.txt",$file)or eregi("[a-zA-Z0-p_-]*.zip",$file)){
    $fchek=$fchek+1;
    $sizer=filesize($file);
    $sizer=($sizer/1000);
    $sizer=round($sizer,1);
    $file=trim($file);
    $file=chop($file);
    $filed=file($file);
    $fileold=$file;
    $count = count($filed);
    $i = $count;
    $zt = 0;
    $clt=0;
    $found=0;
    $stringer=0;
    for(
    $j=$zt;$j<$i;$j++){
    $string=$filed[$j];
    $stringer=$filed[$j];
    $num = "regPLACE hold";
    $string=strtolower($string);
    $stringer=strtolower($stringer);
    $whatdoreplace=strtolower($whatdorep
    lace
    );
    $string = ereg_replace($whatdoreplace, $num, $string);
    if(
    $string!=$stringer){
    $found=$found+1;
    $abby=$found;
    $show[$found]=$stringer;
    }
    }
    $dircount=count($file);
    echo
    "<FONT SIZE=-1>";
    if(
    $found>0){
    $command[0]=($command[0]+10);
    if(
    eregi("[a-zA-Z0-p_-]*.txt",$file)){
    $fileold=$file;
    $file="$file";
    if(
    $dirtest=="true"){
    $file=$fileold;
    }

    }
    if(
    $file=="index.html"){
    if(
    $bgchange=="EEEEEE"){
    $bgchange="FFFFFF";
    echo
    "</TD></TR><TR><TD BGCOLOR=$bgchange><BR><A HREF=\"$linkdir$file\" target=_new><FONT SIZE=+2>$file</A><BR>$data</FONT> Size: $sizer Kb<BR><UL>";
    } else {
    $bgchange="EEEEEE";
    echo
    "</TD></TR><TR><TD BGCOLOR=$bgchange><BR><A HREF=\"$linkdir$file\" target=_new><FONT SIZE=+2>$fileold</A> </FONT> Size: $sizer Kb<BR><UL>";
    }
    } elseif(
    $bgchange=="EEEEEE"){
    $bgchange="FFFFFF";
    echo
    "</TD></TR><TR><TD BGCOLOR=$bgchange><BR><A HREF=\"$linkdir$file\"><FONT SIZE=+2>$fileold</A></FONT> Size: $sizer Kb<BR>";
    } else {
    $bgchange="EEEEEE";
    echo
    "</TD></TR><TR><TD BGCOLOR=$bgchange><BR><A HREF=\"$linkdir$file\"><FONT SIZE=+2>$fileold</A></FONT> Size: $sizer Kb<BR><UL>";
    }
    $file=$fileold;
    for(
    $new=1;$new<=$found;$new++)
    echo
    "</UL></FONT></TD></TR>";
    }

    }
    }

    if(
    $command[0]==0){
    echo
    "<BR></TD></TR><TR><TD bgcolor=000000><CENTER><B><FONT SIZE=+2 COLOR=RED>Nessun risultato trovato!";
    }

    echo
    "<BR></TD></TR><TR><TD BGCOLOR=AAAAFF><CENTER><FONT SIZE=-1>Sono stati trovati $fchek file(s) in soli ";
    $timey=time();
    $timea=($timey-$timex);
    echo
    " $timea secondi";


    ?>
    <TD/></TD></TR></TABLE><BR><CENTER><IMG SRC=http://www.bigbrain.altervista.org/_altervista_ht/logo.GIF><TABLE>
    </HTML>

  3. #3
    Guest

    Predefinito

    niente da fare...ho provato ma il problema persiste. posso cercare quello ke mi pare...alla fine mi da per risulato sempre tutti i file :S

  4. #4
    Guest

    Predefinito

    Le register_globals come sono ?

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da Inverno
    Le register_globals come sono ?
    scusami ma non ho proprio idea di cosa siano...potresti aiutarmi tu? magari correggimi il codice..grazie.

  6. #6
    Guest

    Predefinito

    anche a me lo stesso problema, sto creando un sito e mi serve un motore di ricerca interno,magari tramite key ma niente non me ne funziona nessuno, consigli?

  7. #7
    Guest

    Smile

    Se vuoi ho fatto un piccolo script che potrebbe fare al caso tuo, lo trovi all'indirizzo http://tuttoeniente2.altervista.org/search.zip

    Ecco comunque il codice:
    Codice PHP:
    <html><head><title>Ricerca<?php
    function form(){

    //Qui bisogna modificare a seconda delle esigenze dove cercare

    $dovesearch="Cerca in <input type=\"radio\" value=\"utility\" checked name=\"dove\">Utility
    <input type=\"radio\" name=\"dove\" value=\"fotografia\">Fotoritocco <input type=\"radio\" name=\"dove\" value=\"audio\">Audio"
    ;


    //Da qui non si tocca niente :P

    $query=@$_GET['query'];
    $dove=@$_GET['dove'];
    $me=$_SERVER['SCRIPT_NAME'];
    echo
    "<form method=\"GET\" action=\"$me\">
    <p align=\"center\">
    $dovesearch<br>
    <input type=\"text\" name=\"query\" size=\"20\" value=\"
    $query\"><input type=\"submit\" value=\"Cerca\" name=\"cerca\"></p>
    </form>"
    ;
    }
    $query=@$_GET['query'];
    $dove=@$_GET['dove'];
    $me=$_SERVER['SCRIPT_NAME'];
    if(!@
    $query || @$query==""){
    echo
    "</title></head><body>";
    form();
    echo
    "<hr>";
    }

    else{
    echo
    " di $query</title></head><body>";
    form();
    echo
    "<hr>";

    if(
    is_dir($dove)){
    echo
    "Risultati della ricerca di <b>$query</b>:<br><ul>";
    $handle = opendir('./'.$dove);
    while (
    false !== ($file = readdir($handle))) {if($file!="." && $file!=".."){
    if(
    strstr($file,$query) && (strstr($file,".rtf") || strstr($file,".txt") || strstr($file,".zip")))
    {
    $size=filesize($dove."/$file");
    echo
    "<li><b><a href=\"$dove/$file\">$file</a></b> Dimensioni: <i>$size</i> bytes Scaricato l'ultima volta il <i>".date("d/m/Y", fileatime($dove."/$file"))."</i></li>"; }}}



    echo
    "</ul>";}else{echo"<b>ERRORE:</b> la cartella <i>$dove</i> non esiste, controllare la configurazione del file. Per aiuto manda un'email a <a href=\"mailto:tuttoeniente@gmail.com\">tuttoeniente@gmail.com</a>";}

    }
    ?>
    <center><a href="http://tuttoeniente2.altervista.org/?from=search" style="text-decoration: none; color: black;"><font size="1" color="grey">Powerd by Tuttoeniente</font></a></center>
    </body></html>

  8. #8
    Guest

    Predefinito

    ho scaricato il file ma non sò come va configurato...me lo potresti configurare tu?
    dovresti mettere queste 4 opzioni di ricerca: Italiano, Storia, Latino, Altro.
    il sito è http://bigbrain.altervista.org e le cartelle sono identiche ai nomi delle opzioni ossia http://bigbrain.altervista/Italiano
    poi /Storia poi /Latino e infine /Altro
    spero sarai così gentile da aiutarmi. per le estensioni vanno bene quelle...poi semmai aggiungerò da solo l'estensione .doc.
    attendo una tua risposta. ciao e grazie ancora!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •