Aller au contenu

Verification du lien retour


Chopin

Sujets conseillés

Salut à tous !

Je suis à la recherche d'un script qui vérifie la présence d'un backlink. J'en ai trouvé quelques un mais ils ne fonctionnent pas comme je le voudrais.

Je m'explique, ce que je souhaite faire c'est que lors d'une validation d'un formulaire, qu'il y est un champ réservé pour y entrer l'url d'une page contenant le lien réciproque pointant vers mon site et que le post ne soit pas posté si le lien retour n'est pas trouvé.

Cela a l'aire plutôt simple mais je galère depuis plusieurs heures la dessus, je remercie donc ceux qui seront m'aider à l'avance.

Modifié par Chopin
Lien vers le commentaire
Partager sur d’autres sites

Tu vas insérer cette fonction dans ton code PHP :

function verify_link($url,$link)
{
$handle = _AT_fopen($url,"r");
if ($handle)
{
$contenu = file_get_contents($handle);
fclose($handle);
if (strstr($contenu,$link))
return true;
else
return false;
}
else
return false;
}

$url = URL de la page à contrôler
$link = Lien dont la présence doit etre vérifiée

Exemple d'utilisation :

<?php
$url = 'http://www.lesiteàvérifier.com';
$link = 'http://www.tonsite.com';
$lib = 'Ton nom et prénom';
$txt = 'Ton site';
if(verify_link($url,$link))
echo '<a href="'.$url.'" target="_blank" title="'.$txt.'">'.$lib.'</a>';
?>

Si ton lien a été supprimé, le lien retour n'est pas affiché !

(dans l'exemple ci-dessus, c'est OK)

Lien vers le commentaire
Partager sur d’autres sites

Merci beaucoup pour ta réponse.

J'ai mis directement sa dans ma page de validation

<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'><?php
function verify_link($url,$link)
{
$url = '$_POST['url-retour']';
$link = 'http://www.tchaikowsky.free.fr';
if(verify_link($url,$link))
echo 'Aucun lien retour !';
}
?></div>

Mais je voudrais que le "echo 'Aucun lien retour !'" ne s'affiche que lorsque le lien n'est pas trouvé, je voudrais également que le code ci-dessous ne soit pas non plus validé tant que le lien retour n'est pas trouvé.

<div class='codetop'>CODE</div><div class='codemain' style='height:200px; white-space:pre; overflow:auto'><?php  
if(isset($_POST['pseudo'])) $nom=$_POST['pseudo'];
else $pseudo="";

if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";

if(isset($_POST['flags'])) $icq=$_POST['flags'];
else $flags="";

if(isset($_POST['description'])) $icq=$_POST['description'];
else $description="";

if(isset($_POST['titre'])) $titre=$_POST['titre'];
else $titre="";

if(isset($_POST['url'])) $url=$_POST['url'];
else $url="";

if(empty($pseudo) OR empty($description) OR empty($email) OR empty($titre) OR empty($url))
{
echo '<font color="red">Attention, tous les champs sont obligatoires !</font><br><a href="devenir-partenaire.php">Retour au Formulaire</a>';
}

else
{

mysql_select_db('tchaikowsky',$db) or die('Erreur de selection '.mysql_error());

$sql = "INSERT INTO zone_part(id, pseudo, flags, titre, url, description, email) VALUES('','$pseudo','$flags','$titre','$url','$description','$email')";

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

echo 'Vos infos on été ajoutées.';

mysql_close();
}
?></div>

En faite j'ai ma petite idée pour placer le "$_POST['url-retour']" mais je ne suis pas du tout sur de moi. Si tu as une idée je suis preneur :)

Lien vers le commentaire
Partager sur d’autres sites

Bon j'ai modifié le code et je les mélanger avec le mien.


<?php
if(isset($_POST['pseudo'])) $nom=$_POST['pseudo'];
else $pseudo="";

if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";

if(isset($_POST['flags'])) $flags=$_POST['flags'];
else $flags="";

if(isset($_POST['description'])) $description=$_POST['description'];
else $description="";

if(isset($_POST['titre'])) $titre=$_POST['titre'];
else $titre="";

if(isset($_POST['url'])) $url=$_POST['url'];
else $url="";

if(isset($_POST['retour'])) $retour=$_POST['retour'];
else $retour="";

if(empty($pseudo) OR empty($description) OR empty($email) OR empty($titre) OR empty($url) OR empty($retour))
{
echo '<font color="red">Attention, tous les champs sont obligatoires !</font><br><a href="devenir-partenaire.php">Retour au Formulaire</a>';
}

else
{

mysql_select_db('tchaikowsky',$db) or die('Erreur de selection '.mysql_error());

$sql = "INSERT INTO zone_part(id, pseudo, flags, titre, url, description, email) VALUES('','$pseudo','$flags','$titre','$url','$description','$email')";

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

echo 'Votre site a été ajouté.';

mysql_close();
}
function verify_link($url,$link)
{
$url = '$retour=""';
$link = 'http://www.tchaikowsky.free.fr';if(verify_link($url,$link))
echo 'Aucun lien retour !';
}
?>

Je peux toujours valider le formulaire, le champ retour doit être remplie sinon le formulaire n'est pas validé mais le lien retour n'est pas vérifié, en gros ces lignes la ne font rien du tout :(

function verify_link($url,$link)
{
$url = '$retour=""';
$link = 'http://www.tchaikowsky.free.fr';if(verify_link($url,$link))
echo 'Aucun lien retour !';
}

Une idée ?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Tu as complètement "déformé" ce qu'amauryk t'a donné en exemple ;)

Il t'a d'abord donné une fonction :


function verify_link($url,$link)
{
$handle = _AT_fopen($url,"r");
if ($handle)
{
$contenu = file_get_contents($handle);
fclose($handle);
if (strstr($contenu,$link))
return true;
else
return false;
}
else
return false;
}

puis un exemple d'utilisation.

Il ne te reste plus qu'a prendre le code de la fonction (ci-dessus), à le coller dans ton script et ensuite, appeler la fonction où tu en as besoin dans ton script en suivant éventuellement l'exemple d'utilisation...

[edit]C'est pas un mélange qu'il faut faire, c'est une intégration ;)[/edit]

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ta réponse !

En faite j'avais essayé avant de faire un mélange de code :) et j'obtiens cette erreur

Fatal error: Call to undefined function: _at_fopen() in /mnt/119/sdc/8/c/tchaikowsky/join_forum/new-version/devenir-partenaire2.php on line 76

C'est pour sa qu'après j'ai fait un petit mélange. Je suis sur un hébergement "Free" cela pourrait venir du serveur ??

Lien vers le commentaire
Partager sur d’autres sites

Re !

Apparamment en mettant ça

<?
function verify_link($url,$link)
{
$contenu = file_get_contents($url);
if (strstr($contenu,$link))
return true;
else
return false;
}
?>

Et en mettant ça pour appeler la fonction

<?php
$url = 'http://tchaikowsky.free.fr';
$link = 'http://teste';
if(verify_link($url,$link))
echo ''.$link.'';
?>

Sa fonctionne.

Quand il ne me trouve pas le backlink il ne m'echo pas le lien (echo '.$link.'). Donc un grand merci pour votre aide maintenant il ne me reste plus qu'a faire en sorte que le formulaire soit validé mais je pense pouvoir m'en sortir.

Lien vers le commentaire
Partager sur d’autres sites

Voila j'ai intégré le code au mien mais il me reste un léger détail à régler.

<?php  
if(isset($_POST['pseudo'])) $nom=$_POST['pseudo'];
else $pseudo="";

if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";

if(isset($_POST['flags'])) $flags=$_POST['flags'];
else $flags="";

if(isset($_POST['description'])) $description=$_POST['description'];
else $description="";

if(isset($_POST['titre'])) $titre=$_POST['titre'];
else $titre="";

if(isset($_POST['url'])) $url=$_POST['url'];
else $url="";

if(isset($_POST['retour'])) $_POST['retour'];
else $retour="";

if(empty($pseudo) OR empty($description) OR empty($email) OR empty($titre) OR empty($url) OR empty($retour))
{
echo '<font color="red">Attention, tous les champs sont obligatoires !</font><br><a href="devenir-partenaire.php">Retour au Formulaire</a>';
}

else
{

mysql_select_db('tchaikowsky',$db) or die('Erreur de selection '.mysql_error());

$sql = "INSERT INTO zone_part(id, pseudo, flags, titre, url, description, email) VALUES('','$pseudo','$flags','$titre','$url','$description','$email')";

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

echo 'Votre site a été ajouté.';
mysql_close();
}
//fonction
function verify_link($url,$link)
{
$contenu = file_get_contents($url);
if (strstr($contenu,$link))
return true;
else
return false;
}
//appel de la fonction
$url = ''.$retour.'';
$link = 'http://www.bpzik.com';
if(verify_link($url,$link))
?>

Quand je valide le formulaire avec une URL invalide du genre http://teste.te sa me donne cette erreur

Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /mnt/119/sdc/8/c/tchaikowsky/join_forum/new-version/devenir-partenaire2.php on line 75

Warning: file_get_contents(http://www.) [function.file-get-contents]: failed to open stream: Success in /mnt/119/sdc/8/c/tchaikowsky/join_forum/new-version/devenir-partenaire2.php on line 75

Ce que je voudrais c'est voir apparaitre un petit message du style "L'URL n'a pas été trouvé" à la place de ce message d'erreur.

Et enfin mon dernier des soucis c'est que je voudrais que le poste total ne soit pas validé si mon lien retour n'est pas trouvé car la je peux mettre n'importe quoi en lien il me valide quand même le poste et donc les données "id, pseudo, flags, titre, url, description et email" sont enregistré dans sql.

Encore merci par avance à ceux qui m'aiderons !

Lien vers le commentaire
Partager sur d’autres sites

Re salut tous le monde !

Sa yé tous fonctionne correctement, j'ai juste un dernier détail à réglé, je voudrais que le post soit validé uniquement si le lien retour détecté sois du même domaine que le site inscrit dans le champ poste

if(isset($_POST['url'])) $url=$_POST['url'];

else $url="";

Juste pour m'assurer que le backlink et sur le même site de l'inscrit.

Voici mon code complet actuel.

<div class='codemain' style='height:200px;white-space:pre;overflow:auto'><?php 
//recup du post
if(isset($_POST['pseudo'])) $nom=$_POST['pseudo'];
else $pseudo="";

if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";

if(isset($_POST['flags'])) $flags=$_POST['flags'];
else $flags="";

if(isset($_POST['description'])) $description=$_POST['description'];
else $description="";

if(isset($_POST['titre'])) $titre=$_POST['titre'];
else $titre="";

if(isset($_POST['url'])) $url=$_POST['url'];
else $url="";

if(isset($_POST['retour'])) $_POST['retour'];
else $retour="";

if(empty($pseudo) OR empty($description) OR empty($email) OR empty($titre) OR empty($url) OR empty($retour))
{
echo '<font color="red">Attention, tous les champs sont obligatoires !</font><br><a href="devenir-partenaire.php">Retour au Formulaire</a>';
}
else
{
$url = ''.$retour.'';
$link = 'http://www.bpzik.com';
if( !verify_link($url,$link) )
echo 'Lien non présent';
else
{

mysql_select_db('tchaikowsky',$db) or die('Erreur de selection '.mysql_error());

$sql = "INSERT INTO zone_part(id, pseudo, flags, titre, url, description, email) VALUES('','$pseudo','$flags','$titre','$url','$description','$email')";

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

echo 'Votre site a été ajouté.';
mysql_close();
}
}
//fonction
function verify_link($url,$link)
{
$contenu = _AT_file_get_contents($url);
if ( $contenu !== false && strstr($contenu,$link))
return true;
else
return false;
}
?>

Lien vers le commentaire
Partager sur d’autres sites

  • 2 years later...

Bonjour , a tous

Voila j essaye j'essaye d intégrer le srcipt de vérification de lien retour sur mon annuaire.Sans succès les sites se valide toujours alors que je voudrais qu' il ne se valide pas sans le lien retour

je met la fonction :

function verify_link($url,$link)
{
$handle = _AT_fopen($url,"r");
if ($handle)
{
$contenu = file_get_contents($handle);
fclose($handle);
if (strstr($contenu,$link))
return true;
else
return false;
}
else
return false;
}

$url = "";
$link = http://www.monsite.com

puis je place le reste du script

dans l annuaire j ai déjà un variable url donc je n ai pas besoin de la redéfinir

mon annuaire est sous catégorizore alors si vous avez une petite idée pour l instal merci je suis perdu la

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...