web-dev-qa-db-fra.com

Assistance pingback / rétrolien pour un site Web de partage de photos?

Existe-t-il un service de partage de photos, tel que flickr ou picasa, qui collectera les URL des emplacements où la photo a été publiée sur d'autres blogs (ou mentionnée dans des tweets, etc.?)

Pour ce faire, vous pouvez afficher chaque photo sous forme d’entrée de blog à l’aide de wordpress, qui gérera alors automatiquement les pingbacks, mais bien entendu, un blog ne fonctionne pas exactement comme un véritable service photo.

Cela pourrait peut-être être fait avec un serveur d'hébergement photo privé comme zenphoto en éditant le php, mais cela semble plutôt compliqué.

Un tel service existe-t-il déjà?

4
cboettig

Je ne suis pas sûr d'un service de partage de photos, mais j'ai une idée de la façon dont vous pouvez savoir où vos images sont incorporées avec du PHP. Vous pourriez probablement intégrer ceci à WordPress d'une manière ou d'une autre si vous savez ce que vous faites. Je crois que cela pourrait fonctionner.

Dans votre fichier .htaccess, définissez une règle semblable à celle-ci:

RewriteCond %{HTTP_REFERER} !^http://([-a-z0-9]+\.)?yourdomain\.com [NC]
RewriteCond %{QUERY_STRING} !^pass=1$ [NC]
RewriteRule ^(.*)\.(gif|jpe?g|png|bmp|swf)$ /hotlink.php?url=$1.$2 [R,NC,L]

Cela réécrira toutes les demandes d'images sur votre site, qui ne proviennent pas de votre domaine, dans un fichier nommé hotlink.php avec l'adresse de l'image à laquelle ils accédaient, contenue dans la variable 'url'.

Maintenant, dans le fichier hotlink.php, vous pouvez faire ce que vous voulez. Vous pouvez enregistrer le référent et servir l’image de toute façon, ce qui permettrait tout de même d’intégrer votre image dans d’autres sites, vous pouvez empêcher certains sites d’utiliser vos images mais autoriser d’autres, ou vous pouvez empêcher d’autres sites d’utiliser vos images.

Donc, si tout ce que vous voulez, c'est suivre l'URL de renvoi, vous pouvez mettre quelque chose comme ceci dans votre fichier hotlink.php par lequel toutes les demandes d'images sont redirigées (non testé):

<?php
mysql_connect("localhost", "admin", "1admin") or die(mysql_error());
mysql_select_db("link_track") or die(mysql_error());

$query = "INSERT INTO image_tracking (img_url, date, referrer) VALUES('".$_GET["url"]."', '".date(DATE_RFC822)."', '".$_SERVER['HTTP_REFERER']."' ) ";
mysql_query($query);  

header("Location: ".$url."?pass=1");
?>

Cela prendrait l'URL de l'image à laquelle on accède et l'enregistrait dans une base de données MySql avec la date et l'URL référant. Cela servirait alors l'image demandée, de sorte que les personnes qui incorporeraient vos images ne remarqueraient même pas la différence. Avec les informations contenues dans une base de données, vous pouvez accéder aux informations comme vous le souhaitez, via une page php personnalisée, via phpMyAdmin ou en ajoutant une page à la zone d'administration du logiciel de blog que vous utilisez actuellement.

3
Sherwin Flight