+ Rispondi alla Discussione
Risultati da 1 a 9 di 9

Semplice motore di ricerca tramite parole chiave

Ultimo Messaggio di Cosina il:
  1. #1
    User L'avatar di Cosina
    Data Registrazione
    Dec 2016
    Località
    Lugano
    Messaggi
    39
    Segui Cosina su Twitter Aggiungi Cosina su Facebook Aggiungi Cosina su Linkedin Visita il canale Youtube di Cosina

    Semplice motore di ricerca tramite parole chiave

    Buongiorno a tutti, ho trovato in rete un semplicissimo motore di ricerca tramite parole chiave. Funziona, ma solo inserendo esattamente i termini indicati.
    Come vedete nel codice che segue, l'autore aggiunge piu` termini validi, ad un certo punto (hess toy truck), ma la ricerca funziona solamente inserendoli tutti e tre.
    Vorrei sapere se e` possibile correggere il codice, affinche` la ricerca porti alla pagina di arrivo anche se l'utente inserisce uno solo, o piu`di uno, dei termini stabiliti, ma non tutti necessariamente e non nello stesso ordine. La guida ufficiale si trova qui: http://www.learningaboutelectronics....-using-PHP.php

    Grazie mille per l'aiuto


    Codice PHP:
    <?php 
     
    $result
    $_POST['search'];
    $resultstrtolower($result);

    if (
    strpos($result"dropbox") == "true")
    header ('Location: http://www.dropbox.com');

    if (
    strpos($result"amazon") == "true")
    header ('Location: http://www.amazon.com');

    if (
    strpos($result"google") == "true")
    header ('Location: http://www.google.com');

    if (
    strpos($result"ebay") == "true")
    header ('Location: http://www.ebay.com');

    if (
    strpos($result"wikipedia") == "true")
    header ('Location: http://www.wikipedia.org');

    if (
    strpos($result"youtube") == "true")
    header ('Location: http://www.youtube.com');

    if (
    strpos($result"hess toy truck") == "true")
    header ('Location: https://hesstoytruck.com');

    if (
    strpos($result"lm7805") == "true")
    header ('Location: http://www.learningaboutelectronics.com/Articles/What-is-a-LM7805-voltage-regulator');

    echo 
    "No results found for this search";
    ?>
    Codice HTML:
    <form action="searchpage.php" method="post"> 
     
    <h1>Product Search</h1> 
     
    <label>Enter Product Name  </label>
    <input type="text"name="search" id="txtName"/><br><br> 
    <input type="submit" name="submit" id="submit" value="Search"/> 
     
    </form>



    Ultima modifica di Cosina; 14-10-19 alle 12:12

  2. #2
    User L'avatar di Cosina
    Data Registrazione
    Dec 2016
    Località
    Lugano
    Messaggi
    39
    Segui Cosina su Twitter Aggiungi Cosina su Facebook Aggiungi Cosina su Linkedin Visita il canale Youtube di Cosina
    Credevo di aver trovato la soluzione, ma come non detto
    Ultima modifica di Cosina; 14-10-19 alle 14:44

  3. #3
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    143
    Ciao Cosina

    prova questo, lo uso io


    Codice HTML:
    <p class="bioheading">Search</p><div class="biodata">    
        <div class="p-3 mb-2 bg-info text-white">
    <form name="searchform" onSubmit="return dosearch();">
    <table border="1" cellpadding="20" cellspacing="0" bgcolor="#F2F2F2">
    <tr>
    <td>
    Search:&nbsp;
    <select name="sengines">
    <option value="http://www.google.com/search?q=">Google</option>
    <option value="https://www.amazon.com/s?k=">amazon</option>
    <option value="https://it.wikipedia.org/w/index.php?sort=relevance&search=">wikipedia</option>
    <option value="https://www.bing.com/search?q=">Bing</option>
    <option value="https://www.youtube.com/results?search_query=">youtube</option>
    </select>
    &nbsp;&nbsp;For:&nbsp;
    <input type="text" name="searchterms">
    <input type="submit" name="SearchSubmit" value="Search">
    </td>
    </tr>
    </table>
    </form>
    
    <script type="text/javascript">
    function dosearch() {
    var sf=document.searchform;
    var submitto = sf.sengines.options[sf.sengines.selectedIndex].value + escape(sf.searchterms.value);
    window.open(submitto);
    return false;
    }
    </script>


    conoscendo i parametri di ricerca della query lo puoi personalizzare come vuoi
    Ultima modifica di Alex_2019; 14-10-19 alle 17:10

  4. #4
    User L'avatar di Cosina
    Data Registrazione
    Dec 2016
    Località
    Lugano
    Messaggi
    39
    Segui Cosina su Twitter Aggiungi Cosina su Facebook Aggiungi Cosina su Linkedin Visita il canale Youtube di Cosina
    Grazie Alex, lo provo. Anzi, gia` provato, va benissimo, ma non e` quello di cui ho bisogno. Io ho proprio necessita` di inserire delle chiavi di ricerca scelte. Il codice che mi hai dato funziona solo con il titolo esatto delle pagine. Grazie comunque
    Ultima modifica di Cosina; 14-10-19 alle 17:30

  5. #5
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    Ciao cosina
    Son un po' fuori contesto del tuo progetto quindi non riesco a darti una regola specifica perchè in questi casi solitamente si preleva il campo, si converte in array, si esegue un ciclo e si fa il match.
    Tuttavia, provo ad allargare un po' i tuoi orizzonti.
    Se in quel caso specifico, utilizzi la funzione di PHP strstr, quanto meno controlli se una delle 3 parole è contenuta.
    Esempio:
    Codice PHP:
    <?php
    $stringa 
    "hess toy truck";
    if (
    strstr($stringa$result) == true)
    header ('Location: https://hesstoytruck.com');
    In pratica, cerchi $result all'interno di $stringa. In caso true, quindi positivo fai redirect.
    Fonte: https://www.php.net/manual/en/function.strstr.php

    Fammi sapere.
    Ciao.
    MODWordpress
    Senior Web Developer to http://www.canenero.com - https://www.stefanopascazi.com
    Magento Specialist - WP Addicted (e Netflix dipendente XD )

  6. #6
    User L'avatar di Cosina
    Data Registrazione
    Dec 2016
    Località
    Lugano
    Messaggi
    39
    Segui Cosina su Twitter Aggiungi Cosina su Facebook Aggiungi Cosina su Linkedin Visita il canale Youtube di Cosina
    Io l'ho detto che sei un GENIO e qui lo ripeto. Ciao Ultima e ben ritrovato. Ovviamente funziona, come tutte le soluzioni che mi hai passato finora. Non preoccuparti "del mio progetto", perche` ormai sono passata da molti altri progetti e questo non ha nulla a che fare con il precedente che conoscevi. Grazie mille, sei il mio angelo custode. Un abbraccio virtuale e buona giornata. Ciao

  7. #7
    User L'avatar di Cosina
    Data Registrazione
    Dec 2016
    Località
    Lugano
    Messaggi
    39
    Segui Cosina su Twitter Aggiungi Cosina su Facebook Aggiungi Cosina su Linkedin Visita il canale Youtube di Cosina
    Una cosa ancora ti chiedo: in questo modo funziona solo se le parole vengono inserite rispettando il loro ordine. Cioe`, se io scrivo "hess toy", funziona, ma se scrivo "toy hess" non funziona. Esiste un modo per farlo funzionare anche se le parole non rispettano l'ordine? Grazie mille

  8. #8
    Moderatore L'avatar di Ultima
    Data Registrazione
    Jan 2013
    Località
    Senigallia
    Messaggi
    772
    Aggiungi Ultima su Facebook
    Tutto è possibile.
    In questo caso specifico ti basta convertire il parametro in array con la funzione explode() e successivamente effettuare un ciclo per fare il riconoscimento.
    Ipotizzando che l'utente scrive toy hess, il parametro verrà creato in:
    array("toy", "hess")
    e tramite il ciclo foreach che ho inserito, cerco le corrispondenze all'interno della stringa. Nel caso in cui ne incontra una, fa redirect alla url corretta.
    Questo sistema grezzo, ha delle falle, perchè funzionerebbe anche in caso di "toy abcd" scritto nel campo input. Per renderlo sempre più performante, devi lavorare sul parametro.
    Comunque qui l'esempio.
    Codice PHP:
    $strings "hess toy truck";
    $keywords explode(" "$result);
    foreach(
    $keywords as $keyword)
    {
        if( 
    strstr($strings$keyword) == true )
        {
            
    header("Location: https://hesstoytruck.com");
            break;
            exit();
        }

    MODWordpress
    Senior Web Developer to http://www.canenero.com - https://www.stefanopascazi.com
    Magento Specialist - WP Addicted (e Netflix dipendente XD )

  9. #9
    User L'avatar di Cosina
    Data Registrazione
    Dec 2016
    Località
    Lugano
    Messaggi
    39
    Segui Cosina su Twitter Aggiungi Cosina su Facebook Aggiungi Cosina su Linkedin Visita il canale Youtube di Cosina
    Perfetto, grazie mille! Provo tutto con calma e ci giocherello per i perfezionamenti. In caso di difficolta`, verro di nuovo a romperti le scatole, ma confido di farcela da sola. Ciao Ultima, sei prezioso

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.