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!
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!
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!
regolamento altervista_______________ regolamento forum
Ok... con i cookie va benissimo ;)
Intanto mi dici come fare con l'IP? Poi provvedo a modificare il tutto con un utente loggato ;)
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!
regolamento altervista_______________ regolamento forum
Per avere l'IP:
Per settare un cookie:Codice PHP:
$ip = $_SERVER['REMOTE_ADDR'];
Ciao!Codice PHP:
setcookie($nome_cookie, $valore_cookie, $durata_cookie);
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); ?>
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
regolamento altervista_______________ regolamento forum
Non ci sto capendo più nulla :D
Ho buttato giù un pò modificato un codice:
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)?Codice:<?php $value = "Hai già visitato questa pagina"; // send a cookie that expires in 24 mins setcookie("Home",$value, time()+3600*24); ?>
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
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.
Si, il concetto l'ho capito... ma la pratica no! (ovvero i codici)...
Sono un dilettante! :)
Costruire un motore di ricerca da zero non mi sembra un'ottima idea.
Comunque, sai eseguire le query?
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 ;)
Allora, intanto controlli se è settata la sessione nel browser dell'utente.
L'ho fatto adesso velocemente.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 È
}else{
setcookie(tutto_qui);
$nome = // genera un nome casuale che non esiste ancora
mysql_query("INSERT INTO sessioni (nome, altro) VALUES ('$nome', altro)");
}
Poi dovresti creare un'altra tabella nella quale verrà eseguita una query ogni volta che un utente clicca su un risultato.
Ciao!