- Home
- Categorie
- Coding e Sistemistica
- Coding
- Contare click effettuati sul tasto condividi
-
si sono direttamente sul mio sito,ma come faccio a recuperare il nome dell immagine relativa a quel link?
-
Aggiungo...siccome ad ogni link tramite questo tag
[HTML]<link rel="image_src" href="indirizzosito/imaagini/prova.gif" />
[/HTML]
ho fatto in modo di dargli un immagine univoca, dovrei recuperare dalla pagina in questione il contenuto compreso nel tag qui sopra piu' precisamente ciò che è compreso in href
-
Non ho capito un altra cosa la variabile $shares si andrebbe ad aggiornare nel mio database ogni qualvolta viene condiviso quell url??
-
Usi un cms?
Ipotizzando che tu usi un CMS, verrebbe qualcosa del genere:<?php $url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //Salva l'url della pagina $dati = file_get_contents('http://graph.facebook.com/'.$url); //Prende i dati relativi all'url in questione $explode = explode(",", $dati); $shares = explode('":', $explode[1]); $shares = str_replace('}','',$shares[1]); //Otteniamo il numero di condivisioni preg_match("<link rel=\"image_src\" href=\"(.*?)\" />", $content, $match); //Otteniamo l'url dell'immagine di default $content va sostituita con la variabile che contiene il tag $image=$match[1]; echo "L'indirizzo: $url è stato condiviso su Facebook $shares volte. Immagine: $image"; //Ora abbiamo le tre variabili che possono essere usate come vogliamo //Da qui si può salvare nel database ?> ```Che andrebbe messo alla fine del codice PHP che scrive i contenuti. Devi sostituire $content con la variabile dove è il tag link rel. Ogni volta che un utente accede ad una pagina questo codice preleva la url, gli shares della pagina in questione e l'immagine di default, rispettivamente salvati nelle variabili $url, $shares e $image che poi potrai salvare in un database MYSQL per ottenere una "classifica" tramite quest'ultimo dei link più condivisi. Come frequenza di aggiornamento non è male. Schematizzando: L'utente accede ad una pagina -> Il codice preleva i dati -> I dati poi possono essere salvati sul database -> Dal database può essere creata una lista che poi può essere fatta visualizzare Ovviamente la parte del database la devi scrivere tu. Spero sia una buona soluzione e di essere stato chiaro.
-
Nulla non mi recupera l immagine...
Ho inserito questo codice per recuperare il tag link rel
[php]
$content="<link rel="image_src" href="indirizzomiosito/$foto_link"/>";
[/php]
-
Ecco un esempio:
[php]
<?php
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //Salva l'url della pagina
$dati = file_get_contents('http://graph.facebook.com/'.$url); //Prende i dati relativi all'url in questione
if (strstr($dati,'shares'))
{
$explode = explode(",", $dati);
$shares = explode('":', $explode[1]);
$shares = str_replace('}','',$shares[1]); //Otteniamo il numero di condivisioni
}
else {$shares= 0;}
$content = '<html><head><link rel="image_src" href="http://www.example.com/prova.gif" /></head><body>Testo<br /><div style="z-index:3" class="smallfont" align="center">SEO by vBSEO 3.2.0
2008, Crawlability, Inc.</div><br /><div style="z-index:3" class="smallfont" align="center">SEO by vBSEO 3.2.0
2008, Crawlability, Inc.</div><br /><div style="z-index:3" class="smallfont" align="center">SEO by vBSEO 3.2.0
2008, Crawlability, Inc.</div></body></html>';
preg_match("<link rel="image_src" href="(.*?)" />", $content, $match); //Otteniamo l'url dell'immagine di default $content va sostituita con la variabile che contiene il tag
$image=$match[1];
echo "L'indirizzo: $url è stato condiviso su Facebook $shares volte. Immagine: $image"; //Ora abbiamo le tre variabili che possono essere usate come vogliamo
//Da qui si può salvare nel database
?>
[/php]Che restituisce:
L'indirizzo: [noparse]http://www.example.org/script/prova.php è stato condiviso su Facebook 0 volte. Immagine: http://www.example.com/prova.gif[/noparse]
-
Ciao,ora funziona Grazie,praticamente facendo cosi' ogni qualvolta un utente visita quella pagina viene scritto un nuovo record nel database,quindi se un utente visita 10 volte la pagina viene scritto 10 volte quel record....se magari imposto un controllo sull ip potrei evitare questa cosa giusto??Ovvero la scrittura di piu' volte dello stesso record da parte dello stesso utente,giusto?
-
Si, puoi farlo, poi dipende da ogni quanto vuoi aggiornare, da quante visite hai ecc. vedi tu, insomma.
-
tecnicamente sarebbe possibile fare questa cosa..??Ovvero se quell ip ha già visitato quel link aggiorna l ultimo record relativo a quel link e a quell ip...possibile???
-
Scusa ma non ho ben capito la tua domanda. Potresti riformularla in modo più chiaro?
-
Cioè,se per esempio un ip ha già visitato quel link invece di scrivere un altro record aggiornare l ultimo record relatico a quel link e a quell ip
-
Ma per ogni visita tu dovresti fare in modo che aggiorna sul database, e non che crea un nuovo record!
-
quinndi dovrei usare UPDATE invece che insert,giusto??
[PHP]$image=$match[1];
echo "L'indirizzo: $url è stato condiviso su Facebook $shares volte. Immagine: $image"; //Ora abbiamo le tre variabili che possono essere usate come vogliamo
//Da qui si può salvare nel database//Se quell ip non ha ancora visitato quell utente Invio i dati al database
$query23 = "INSERT into condivisi (url,shares,image) VALUES ('$url','$shares','$image')";
$result = @mysql_query($query23) or die (mysql_error());
[/PHP]Non va bene cosi'
-
Quale è il tuo problema?
-
Scusami per aggiornare quel determinato link devo recuperare l url che si sta visitando e c'è l ho tramite la variabile $url,poi devo fare una query controllare che quel link esista già...se esiste riscriverlo giusto?A questo punto il controllo sull ip è superfluo giusto?
-
Oddio forse mi sto perdendo in un bicchier d acqua,forse è piu' facile a farsi che a dirsi....Mi applico un attimo e vedo..
-
Sì, non è molto complicata come cosa.
-
@Fregior said:
Sì, non è molto complicata come cosa.
Ok ho sistemato secondo le mie esigenze,se bene ricordo quel codice di afcebook recuperava anche il numero di evenutali commenti su quel link...Giusto?Volendo si può recuperare anche questo dato
-
Sì volendo sì, basta prendere la parte di codice che ho "scritto" per shares e modificarla per comments!
Se hai problemi non esitare a dirlo.
Simone.
-
si infatti l ho già editata ma non mi recupera nulla...
[php]if (strstr($dati,'shares'))
{
$explode = explode(",", $dati);
$shares = explode('":', $explode[1]);
$shares = str_replace('}','',$shares[1]); //Otteniamo il numero di condivisioni
$comments = explode('":', $explode[2]);
$comments = str_replace('}','',$comments[2]); //Otteniamo il numero di commenti}[/php]:bho: