Visualizzazione risultati 1 fino 15 di 15

Discussione: Creare una cronologia di ricerca

  1. #1
    Guest

    Predefinito Creare una cronologia di ricerca

    Salve ragazzi,

    come posso attraverso le cache, mostrare un messaggio di cronologia nel mio motore di ricerca che dice "Hai visitato questa pagina 5 volte" (per esempio).

    Grazie mille!

  2. #2
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Attraverso la cache non puoi, perché né javascript, né (a maggior ragione) PHP possono ricavarla.

    Però, potresti fare un sistema con i cookie dove incrementi il numero ogni volta che l'utente visita quella pagina... Oppure, salvare le visite sul database.... Una sorta di contatore delle visite, però riferito ad ogni utente.
    Se vuoi usare il database, se l'utente è loggato è "facile"; se non è loggato potresti usare l'IP, anche se non è una cosa molto furba: se visitano il tuo sito dalla stessa LAN con pc differenti?

    Ciao!

  3. #3
    Guest

    Predefinito

    Ok... con i cookie va benissimo ;)
    Intanto mi dici come fare con l'IP? Poi provvedo a modificare il tutto con un utente loggato ;)

  4. #4
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Se vuoi usare i cookie, in linea di principio non serve né l'IP, né che l'utente sia loggato: tramite la setCookie() puoi impostare il cookie con il nome della pagina, e come valore il numero che viene incrementato ad ogni visita.

    Il valore del cookie lo puoi prelevare con $_COOKIE[]

    Ciao!

  5. #5
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Per avere l'IP:
    Codice PHP:
    $ip = $_SERVER['REMOTE_ADDR'];
    Per settare un cookie:
    Codice PHP:
    setcookie($nome_cookie, $valore_cookie, $durata_cookie);
    Ciao!

  6. #6
    Guest

    Predefinito

    Ok, quindi dovrei fare così? Perchè ho problema anche di quando e come far uscire il messaggio di cookie (un pò di tempo fa ho aperto un topic simile, che alla cancellazione della parola il messaggio non va via per questo ti chiedo se potresti "integrare anche la funzione cancella messaggio)
    Codice:
    <?php
    $value = 'Hai visitato già questa pagina';
    
    setcookie("TestCookie", $value);
    setcookie("TestCookie", $value, time()+3600);  /* expire in 1 hour */
    setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
    ?>

  7. #7
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    no, ho detto:

    Come nome, salvi il nome della pagina (contatti, home, ...).
    Come valore il numero delle visite a quella pagina (da incrementare ogni volta).
    Come durata, un ora mi sembra troppo poco.

    Per eliminare un cookie, occorre impostare una durata minore del timestamp attuale

    Ciao!
    Ultima modifica di alemoppo : 29-03-2012 alle ore 19.51.31

  8. #8
    Guest

    Predefinito

    Non ci sto capendo più nulla :D
    Ho buttato giù un pò modificato un codice:

    Codice:
    <?php
    $value = "Hai già visitato questa pagina";
    
    // send a cookie that expires in 24 mins
    setcookie("Home",$value, time()+3600*24);
    ?>
    Aiutoo!!! Poi come faccio a fare un contatore numerico che conta le volte visitate quella pagina e comunque ricordo... come posso impostare nome e adesso mi viene in mente anche dominio se il tutto è dinamico (motore di ricerca)?

  9. #9
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Vuoi avere un contatore per pagina o uno unico per tutto il sito?

  10. #10
    Guest

    Predefinito

    Visto che sto creando un motore di ricerca, se tipo ho visitato "facebook.com" 15 volte... sotto al risultato web deve uscire il messaggio "Hai visitato questa pagina 15 volte." e se lo hai visitato per esempio 10 non far apparire quel messaggio, ma solo 15 e oltre perchè se no ogni sito visitato anche solo una volta avrebbe quel messaggio...
    Non so proprio come fare
    Ultima modifica di talkpluginorange : 29-03-2012 alle ore 20.49.06

  11. #11
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Allora ti conviene contare gli utenti registrati perché dovresti settare troppi cookie e questo è a dir poco impossibile.
    Potresti comunque settare un solo cookie (ad esempio "ajklhfdayyhajdjasdfyfg") e poi dal tuo database cerchi un risultato con quel nome e ricavi le sue informazioni.

  12. #12
    Guest

    Predefinito

    Si, il concetto l'ho capito... ma la pratica no! (ovvero i codici)...
    Sono un dilettante! :)

  13. #13
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Costruire un motore di ricerca da zero non mi sembra un'ottima idea.
    Comunque, sai eseguire le query?

  14. #14
    Guest

    Predefinito

    Qui puoi vedere quello che ho fatto (anche se mi hanno aiutato) fin ora... : http://talkpluginorange.altervista.org/search.php
    Comunque, no, non so proprio come fare questa cosa con i cookie, quindi magari se mi potresti postare un codice di base o spiegarmi bene bene come fare...
    Grazie mille ;)

  15. #15
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Allora, intanto controlli se è settata la sessione nel browser dell'utente.
    Codice PHP:
    $cookie = $_COOKIE['mia_sessione'];
    if(isset(
    $cookie)){
    $valore = mysql_real_escape_string($cookie);
    $query = mysql_query("SELECT * FROM sessioni WHERE nome = '$valore'");
    $esistono = mysql_num_rows($query);
    if(
    $esistono==0){
    setcookie(tutto_qui);
    $nome = // genera un nome casuale che non esiste ancora
    mysql_query("INSERT INTO sessioni (nome, altro) VALUES ('$nome', altro)");
    echo
    "Errore nel cookie. È stato creato un nuovo cookie"; // modifica È con &Egrave;
    }else{
    setcookie(tutto_qui);
    $nome = // genera un nome casuale che non esiste ancora
    mysql_query("INSERT INTO sessioni (nome, altro) VALUES ('$nome', altro)");
    }
    L'ho fatto adesso velocemente.
    Poi dovresti creare un'altra tabella nella quale verrà eseguita una query ogni volta che un utente clicca su un risultato.
    Ciao!

Regole di scrittura

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