• User Attivo

    Non ho capito un altra cosa la variabile $shares si andrebbe ad aggiornare nel mio database ogni qualvolta viene condiviso quell url??


  • User Attivo

    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.

  • User Attivo

    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]


  • User Attivo

    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]


  • User Attivo

    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?


  • User Attivo

    Si, puoi farlo, poi dipende da ogni quanto vuoi aggiornare, da quante visite hai ecc. vedi tu, insomma.


  • User Attivo

    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???


  • User Attivo

    Scusa ma non ho ben capito la tua domanda. Potresti riformularla in modo più chiaro?


  • User Attivo

    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


  • User Attivo

    Ma per ogni visita tu dovresti fare in modo che aggiorna sul database, e non che crea un nuovo record!


  • User Attivo

    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'


  • User Attivo

    Quale è il tuo problema?


  • User Attivo

    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?


  • User Attivo

    Oddio forse mi sto perdendo in un bicchier d acqua,forse è piu' facile a farsi che a dirsi....Mi applico un attimo e vedo..


  • User Attivo

    Sì, non è molto complicata come cosa.


  • User Attivo

    @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


  • User Attivo

    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.


  • User Attivo

    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:


  • User Attivo

    Non in quel modo. Puttosto così:
    [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;}
    if (strstr($dati,'comments'))
    {
    $explode = explode(",", $dati);
    $comments = explode('":', $explode[2]);
    $comments = str_replace('}','',$comments[1]); //Otteniamo il numero di commenti
    }
    else {$comments= 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 e commentato $comments volte. Immagine: $image"; //Ora abbiamo le tre variabili che possono essere usate come vogliamo
    //Da qui si può salvare nel database
    ?>
    [/php]


  • User Attivo

    Grazie funziona alla grande...!:ciauz: