Visualizzazione risultati 1 fino 8 di 8

Discussione: Uno script ricerca da modificare...

  1. #1
    Guest

    Question Due domande (js/php)

    Ho fatto anche una domanda (la seconda) riguardante il linguaggio php perchè penso si debba costruire in parte con js.
    1) Sul sito web-link.it ho trovato uno script che mi interessa, ma non mi piace una cosa.
    Lo script è un motore di ricerca interno, che una volta inserito la parola da cercare, genera una finestra bianca con i risultati. Io vorrei invece che apre una mia pagina, con i risultati nel centro della pagina.
    Lo script è questo:
    Codice PHP:
    <script LANGUAGE="JavaScript">
    <!--
    Hide Script from Old Browsers
    Keyword
    = new Object();
    Descrip = new Object();
    Address = new Object();

    // Keyword[0] = n (where n is the number of keywords which can be searched
    Keyword[0] =5

    // Each entry is split into
    // Keyword[n] = text (where text is the keyword of which the entry is to
    // be searched by (type Keywords in lowercase)
    // Descrip[n] = text (where text is the description associated to this entry
    // Address[n] = text (where text is the URL associated to the entry
    // n is the entry number.

    Keyword[1] = "editor"
    Descrip[1] = "editor html"
    Address[1] = "2html.htm"

    Keyword[2] = "editor"
    Descrip[2] = "editor css"
    Address[2] = "2css.htm"

    Keyword[3] = "java"
    Descrip[3] = "effetti speciali con java"
    Address[3] = "2java.htm"

    Keyword[4] = "javascript"
    Descrip[4] = "effetti speciali con javascript"
    Address[4] = "2js.htm"

    function checkDatabase() {

    var
    Found = false
    var Item = document.forms.ricerca.searchfor.value.toLowerCase();

    stats='toolbar=no,location=no,directories=no,status=no,menubar=no,height=300,width=300,'
    stats += 'scrollbars=yes,resizable=yes'
    MsgBox = window.open ("","msgWindow",stats)
    MsgBox.opener = window;
    MsgBox.opener.name = "opener";
    MsgBox.document.write("<head><title>Risultati della ricerca</title></head>");
    MsgBox.document.write ("<body bgcolor=#ffffff text=#000099 link=green vlink=orange alink=yellow><CENTER><H3><font face=Verdana>Risultati della ricerca</H3>")
    MsgBox.document.write ("<font size=3><center>Per la parola chiave:<br><B> "+Item+"</B></center><hr width=50%></font></CENTER>");
    for (var
    i=1; i <= Keyword[0]; i++) {
    if(
    Item == Keyword[i]) {
    Found = true;
    MsgBox.document.write ("<li><font face=arial><font size=2>"+Descrip[i]+"<BR><A HREF="+Address[i]+" target='opener'>questo il link per richiamare la pagina</A></font></font>")

    }
    }
    if(!
    Found)
    MsgBox.document.write ("<font color=red><H4>Nessuna corrispondenza trovata, riprova con altra parola o sinonimo</H4></font>")

    // Leave the line below intact if you want to legally use this script
    MsgBox.document.write ("<FORM><CENTER>")
    MsgBox.document.write ("<font size=2><font color=arial><INPUT type='button' value='Chiudi' onClick = 'self.close()'></font></font>")
    MsgBox.document.write ("</FORM>")
    MsgBox.document.write ("<font face=arial size=1 color=black>Originally created by Adam Allen <br>© 1997 All Rights Reserved</font></CENTER>")
    // There must be my notice above if you are to use this script legally.
    // It took many hours work, fairs is fair, I just want that little line in
    // and you get a fully working Search ENGINE, for FREE, on your site
    // In Java Scripts as well, and not crap JAVA!
    // Also a copyright notice MUST appear with the form.
    }

    /* prelevato su web-link: http://www.web-link.it */

    // -->
    </script>
    Il form è questo:
    Codice PHP:
    <form NAME="ricerca">
    <
    font face="arial" size="-1"><b>Ricerca argomenti all'interno del sito :</b></font>
    <input TYPE="text" NAME="searchfor" SIZE="20"><input type="button"
    value="Cerca" align="absmiddle" onClick="checkDatabase()">
    <br>
    <font color="gray" size="1" face="Arial"><b>Porta il cursore all'
    interno della casella, digita la parola da ricercare, premi sul pulsante Cerca</b></font>
    </
    form>
    E questo è l'html della pagina (ho scritto <!-- QUI IL RISULTATO --> dove voglio che siano inseriti i risultati della pagina):
    Codice PHP:
    <html>

    <
    head>
    <
    style type="text/css">
    .
    div { } BODY { CURSOR: crosshair; }
    </
    style>
    <
    META HTTP-EQUIV="imagetoolbar" CONTENT="no">
    <
    script language=JavaScript>
    <!--

    var
    message="";
    ///////////////////////////////////
    function clickIE() {if (document.all) {(message);return false;}}
    function
    clickNS(e) {if
    (
    document.layers||(document.getElementById&&!document.all)) {
    if (
    e.which==2||e.which==3) {(message);return false;}}}
    if (
    document.layers)
    {
    document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
    else{
    document.onmouseup=clickNS;document.oncontextmenu=clickIE;}

    document.oncontextmenu=new Function("return false")
    // -->
    </script>
    <title>HomePage</title>
    <script>
    function noimg()
    {
    }
    </script>
    </head>

    <body background="images/sfondo.bmp">
    <table width="100%" height="193" background="images/sfondo_table.bmp">
    <tr>
    <td width="100%" height="7" colspan="3">
    <!-- Inizio Spazio Intestazione -->
    <p align="center">
    <a href="javascript:noimg()"><img src="images/intestazione_table.bmp" border="0" width="344" height="122"></a>
    </p>
    <!-- Fine Spazio Intestazione -->
    </td>
    </tr>
    <tr>
    <td width="20%" height="208">
    <!-- Inizio Spazio Menù -->

    <!-- Fine Spazio Menù -->
    </td>
    <td width="61%" height="208">
    <!-- QUI IL RISULTATO QUI IL RISULTATO QUI IL RISULTATO QUI IL RISULTATO -->
    </td>
    <td width="19%" height="208">
    <!-- Inizio Spazio Sondaggi e News -->

    <!-- Fine Spazio Sondaggi e News -->
    </td>
    </tr>
    </table>
    <table width="100%" height="22" background="images/sfondo_table.bmp">
    <tr>
    <td width="100%" height="20">
    <img src="images/hr.bmp" border="0" width="100%" height="1"><br>
    Affiliati:<br>
    <!-- Inizio Spazio Sponsor And Friend -->

    <!-- Fine Spazio Sponsor And Friend -->
    </td>
    </tr>
    </table>
    </body>
    </html>
    2)Vorrei costruire un "sondaggio" con un reinderizzamento a una pagina diversa a seconda delle risposte ma in php xkè sennò basta leggere il codice html per visualizzare la pagina che si vuole.
    Cioè un script php con dei input radio. Ho cercato su internet ma non ho trovato niente del genere.
    Grazie 1000 lo stesso sia per il motore di ricerca sia per il...definiamolo "sondaggio".
    Ultima modifica di NetSkin : 26-11-2006 alle ore 19.03.40

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Per quanto riguarda il motore di ricerca, le modifiche da fare sono relativamente poche (in rosso quello da aggiungere/modificare, in blu quello da eliminare):
    Codice:
    <script  LANGUAGE="JavaScript">
       <!-- Hide Script from Old Browsers
        Keyword = new Object();
        Descrip = new Object();
        Address = new Object();
    
    // Keyword[0] = n  (where n is the number of keywords which can be searched
    Keyword[0] =5
    
    // Each entry is split into
    // Keyword[n] = text (where text is the keyword of which the entry is to
    // be searched by  (type Keywords in lowercase)
    // Descrip[n] = text (where text is the description associated to this entry
    // Address[n] = text (where text is the URL associated to the entry
    //  n is the entry number.
    
    Keyword[1] = "editor"
    Descrip[1] = "editor html"
    Address[1] = "2html.htm"
    
    Keyword[2] = "editor"
    Descrip[2] = "editor css"
    Address[2] = "2css.htm"
    
    Keyword[3] = "java"
    Descrip[3] = "effetti speciali con java"
    Address[3] = "2java.htm"
    
    Keyword[4] = "javascript"
    Descrip[4] = "effetti speciali con javascript"
    Address[4] = "2js.htm"
    
        function checkDatabase() {
    
          var Found = false
          var Item = document.forms.ricerca.searchfor.value.toLowerCase  ();
    
    stats='toolbar=no,location=no,directories=no,statu  s=no,menubar=no,height=300,width=300,'
    stats += 'scrollbars=yes,resizable=yes' 
    MsgBox = window.open ("","msgWindow",stats) 
    MsgBox.opener = window;
    MsgBox.opener.name = "opener";
    MsgBox.document.write("<head><title>Risultati della ricerca</title></head>");
    
    document.open ();
    document.write ('...'); // tutto il codice HTML di apertura della pagina, fino a "QUI IL RISULTATO"
    MsgBox.document.write ("<div style=\"background-color:#FFF;color:#009\"><CENTER><H3><font face=Verdana>Risultati della ricerca</H3>") 
    MsgBox.document.write ("<font size=3><center>Per la parola chiave:<br><B>  "+Item+"</B></center><hr width=50%></font></CENTER>");
            for (var i=1; i <= Keyword[0]; i++) {
            if(Item == Keyword[i]) {
              Found = true;
             MsgBox.document.write ("<li><font face=arial><font size=2>"+Descrip[i]+"<BR><A HREF="+Address[i]+" target='opener'>questo il link per richiamare la pagina</A></font></font>") 
    
            }
          }
          if(!Found)
    MsgBox.document.write ("<font color=red><H4>Nessuna corrispondenza trovata, riprova con altra parola o sinonimo</H4></font>")
    
    // Leave the line below intact if you want to legally use this script
    MsgBox.document.write ("<FORM><CENTER>") 
    MsgBox.document.write ("<font size=2><font color=arial><INPUT type='button' value='Chiudi' onClick = 'self.close()'></font></font>") 
    MsgBox.document.write ("</FORM>")
    MsgBox.document.write ("<font face=arial size=1 color=black>Originally created by Adam Allen <br>© 1997 All Rights Reserved</font></CENTER>")
    // There must be my notice above if you are to use this script legally.
    // It took many hours work, fairs is fair, I just want that little line in
    // and you get a fully working Search ENGINE, for FREE, on your site
    // In Java Scripts as well, and not crap JAVA!
    // Also a copyright notice MUST appear with the form.
          document.write ('</div>');
          document.write ('...'); // tutto il codice di chiusura della pagina, oltre "QUI IL RISULTATO"
          document.close();
         }
         
    /* prelevato su web-link: http://www.web-link.it */
         
        //    --> 
    </script>
    Per il sondaggio, il modo più semplice per realizzarlo è quello di usare un form HTML e una pagina PHP che faccia da redirect:

    Pagina sondaggio.htm:
    Codice HTML:
    <FORM METHOD="post" ACTION="redirect.php">
       In quale pagina del sito vuoi andare?
       <INPUT TYPE="radio" NAME="scelta" VALUE="1">Pagina 1
       <INPUT TYPE="radio" NAME="scelta" VALUE="2">Pagina 2
       <!-- ripeti il tag INPUT cambiando VALUE tutte le volte che è necessario -->
       <INPUT TYPE="submit" VALUE="Vai!">
    </FORM>
    Pagina redirect.php:
    Codice PHP:
    <?php
    switch ($_POST['scelta'])
    {
    case
    1:
    header ('Location: pagina1.htm');
    break;
    case
    2:
    header ('Location: pagina2.htm');
    break;
    // ripeti i vari case per ciascuna scelta
    default:
    header ('Location: pagina_default.htm');
    break;
    }
    ?>
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Predefinito

    1000 Thx!
    ---------
    Ma se voglio fare che se si clicca su un tasto(<input value=...>) si apre nell'intera pagina come devo fare?[(_top) ho fatto con gli iframe]
    Ultima modifica di NetSkin : 28-11-2006 alle ore 23.42.38

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Riguarda il sondaggio 'sta cosa? Ti dovrebbe bastare modificare così il tag <FORM>:
    Codice HTML:
    <FORM METHOD="post" ACTION="redirect.php" TARGET="_top">
    <!-- vedi sopra... -->
    </FORM>
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    Guest

    Predefinito

    Domanda:
    o Risposta 1
    o Risposta 2
    o Risposta 3

    2 Domanda:
    o Risposta 1
    o Risposta 2
    o Risposta 3

    3 Domanda:
    o Risposta 1
    o Risposta 2
    o Risposta 3

    4 Domanda:
    o Risposta 1
    o Risposta 2
    o Risposta 3

    [Vai]

    Ecc...
    Non si può fare in questo modo il sondaggio?
    Cioè che l'utente risponde a tutte le domande e poi clicca un bottone (input) e a seconda della maggioranza delle risposte (se ha dato più risposte 1 và alla pagina xxx, se ha dato più risposte 2 và alla pagina yyy, ecc...) và ad una pagina php, che senza effettuare il sondaggio non è visualizzabile, ma esce il sondaggio, non la pagina. E non si può fare che non consente a una persona di effettuare più di un voto (usando l'ip), e che una volta uscito il risultato appari nell' homepage il risultato che ha ottenuto?
    THX 10000000000000000000000000000000000000000000000000 0000000
    Ultima modifica di NetSkin : 30-11-2006 alle ore 10.49.33

  6. #6
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Per quanto riguarda il sondaggio a più domande, nel codice HTML le cose cambiano di poco:
    Codice HTML:
    <FORM METHOD="post" ACTION="redirect.php">
    Prima domanda
    <INPUT TYPE="radio" NAME="domanda1" VALUE="0">Risposta 1.1 
    <INPUT TYPE="radio" NAME="domanda1" VALUE="1">Risposta 1.2 
    <!-- ripeti il tag INPUT cambiando VALUE tutte le volte che è necessario -->  
    Seconda domanda
    <INPUT TYPE="radio" NAME="domanda2" VALUE="0">Risposta 2.1
    <INPUT TYPE="radio" NAME="domanda2" VALUE="1">Risposta 2.2
    <!-- ripeti il tag INPUT cambiando VALUE tutte le volte che è necessario -->  
    Terza domanda
    <!-- costruisci come sopra... -->
    <INPUT TYPE="submit" VALUE="Vai!"> </FORM>
    In questo caso è fondamentale che:
    - il nome dei pulsanti radio (attributo NAME) sia lo stesso nelle opzioni che si escludono l'una con l'altra
    - il nome di questi pulsanti sia diverso quando è necessario avere una nuova risposta.

    Nella pagina redirect.php, le cose cambiano (quasi) completamente (nota che ho cambiato anche alcuni VALUE qui sopra per rendere la cosa più "tattica"):
    Codice PHP:
    <?php
    $risposte
    = new Array (0, 0, ...); // tanti zeri quante le possibili risposte di ogni domanda

    foreach ($_POST as $domanda)
    {
    $risposte[$domanda]++;
    }

    // calcola il massimo...
    $idx = 0;
    for (
    $i = 0; $i < count($risposte); $i++)
    {
    if (
    $risposte[$i] > $risposte[$idx])
    $idx = $i;
    }

    // ... e poi ridireziona
    switch ($idx)
    {
    case
    0:
    header ('Location: pagina1.htm');
    break;
    case
    1:
    header ('Location: pagina2.htm');
    break;
    // ripeti i vari case fino al numero di risposte - 1
    default: // caso mai qualcosa andasse storto, visto che non si può mai essere sicuri di niente... :-D
    header ('Location: pagina_default.htm');
    break;
    }
    ?>
    Per quanto riguarda il "ban degli IP multipli", puoi salvare l'elenco degli IP in un file o in un database, e poi andare a pescare questi dati prima di elaborare il risultato per bloccare lo script in caso di IP trovato (nel modo più brutale si fa con die()). Al termine dello script ovviamente dovrai, in coda allo script, aggiungere il nuovo indirizzo IP nel file o nel database.

    Per sapere come puoi fare ti invito a fare una ricerca nella documentazione di PHP oppure nella sezione del forum di AV riguardante PHP/MySQL.

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  7. #7
    Guest

    Predefinito

    Ho inserito 7 domande cambiando come hai fatto tu solo il NAME="domanda(n°domanda)".
    Il codice della pagina redirect.php come lo devo fare di conseguenza? E, a seconda della maggioranza delle risposte si và alla pagina? case 0
    E
    case 1?
    Non si può fare che la pagina è protetta cioè si può accedere a quella pagina solo effettuando il test e non scrivendo l'url?
    Posso far uscire all'utente il risultato del suo test?
    THX ancora.

  8. #8
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da NetSkin
    Ho inserito 7 domande cambiando come hai fatto tu solo il NAME="domanda(n°domanda)".
    Il codice della pagina redirect.php come lo devo fare di conseguenza? E, a seconda della maggioranza delle risposte si và alla pagina?
    [omissis]
    Posso far uscire all'utente il risultato del suo test?
    THX ancora.
    Come ti ho detto sopra, devi inserire tanti case quanti sono le risposte per ciascuna domanda (esempio: se ogni domanda ha 3 opzioni per la risposta, dovrai specificare case 0, case 1 e case 2). Lo script che ti ho dato sopra provvede da solo a contare il numero di risposte per ciascuna opzione.
    Vuoi visualizzare i risultati del sondaggio? Ti basta stampare, attraverso comandi echo(), il codice HTML necessario a scrivere quanto ti proponi, prima di modificare gli header ad indicare il cambiamento di pagina.
    Citazione Originalmente inviato da NetSkin
    Non si può fare che la pagina è protetta cioè si può accedere a quella pagina solo effettuando il test e non scrivendo l'url?
    Questo è un po' difficile da realizzare... ma se guardi bene senza il POST precedente la pagina non funziona (ecco, quindi, uno di quei casi in cui il "case default" torna veramente utile, ad esempio, per indirizzare alla pagina del sondaggio).
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

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