[RESOLU] Enregistrer dans base sql quand on clique sur un lien

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Enregistrer dans base sql quand on clique sur un lien

Re: [RESOLU] Enregistrer dans base sql quand on clique sur un lien

par cris84 » 02 janv. 2017, 16:32

Bonjour et bonne année à tous,

c'est noté, merci de la réponse et de l'action

:)

Re: [RESOLU] Enregistrer dans base sql quand on clique sur un lien

par moogli » 28 déc. 2016, 11:43

de rien :)

pense à cliquer sur résolus (à gauche du titre) lorsque c'est le cas ;) (bon la je l'ai fait pour toi, mais que ça se reproduise pas hein :mrgreen:)

merci

Re: Enregistrer dans base sql quand on clique sur un lien

par cris84 » 27 déc. 2016, 12:38

Bonjour,

effectivement j'avais pas pensé à cette méthode.
Du coup, j'ai raccourci en faisant ça (car le lien ne peut pas être vide).
fichier redirection.php
<?php
require('conf.inc.php');

$url=mysqli_real_escape_string($bdd, $_GET['url']);


$sql=mysqli_query($bdd, "SELECT url FROM achat WHERE url='".$url."'")or die(mysqli_error($bdd));
if (mysqli_num_rows($sql)==0) 
{

 mysqli_query($bdd, "INSERT INTO achat (clic, url) VALUES ('0', '".$url."')")or die(mysqli_error($bdd));
 }
 else 
 {
 
 mysqli_query($bdd, "UPDATE achat SET clic =clic + 1 WHERE url='".$url."'")or die(mysqli_error($bdd));
 }

header('Location: '.$_GET['url'].'');
Merci encore

Re: Enregistrer dans base sql quand on clique sur un lien

par moogli » 26 déc. 2016, 13:41

salut,

oui, ceci dit cela n'est pas fiable car certain navigateur pourrait ne pas exécuter ta requête.
depuis i faut peut être filtrr un peu parce que la même le changement de page de ton site est prit en compte dans la requête cela va vite être lourd coté requête.

le plus simple c'est de remplacer les liens directs par des lien vers un fichier php de ton site qui lui fera la redirection.
par exemple
<a href="autresite.com'" >autresite.com</a> devient <a href="redirection.php?url=autresite.com">autresite.com</a>
et redirection.php
<?php
if(empty($_GET['autresite.com)) {
// appel du fichier sans le paramètre oust
header('Location : ceque tu veux');
exit();
}

// la tu fait ta requête SQL elle ne doit pas être bloquante pour l'utilisateur donc pense à capture les exceptions et tester les retours pour que ton script ne produise pas une seule erreur. 
// la redirection

header('Location : '.$_GET['url']);
exit();
c'est simple et pour peu que l'insertion se fasse vite c'est quais transparent pour l'utilisateur.

tu peux faire la même chose en JS et lancer la redirection dans la callback de la requête serveur.


@+

Re: Enregistrer dans base sql quand on clique sur un lien

par cris84 » 26 déc. 2016, 12:59

Bonjour,

du ce style ?
document.ready(function{('a').click{  $.ajax({
        type    : "post",
        url : fichier_php_qui_traite_lesdonnees,
        data    : variableapasser
                success : function(data){//ce qu'il faut faire en cas de succes}
                error   : function(obj,msg,objEvent){//ce qu'il faut ffaire en cas d'erreur}
}});

Re: Enregistrer dans base sql quand on clique sur un lien

par benv8nam » 26 déc. 2016, 12:48

Tu peux le faire en Ajax.
Tu ajoutes un événement à chaque fois qu'une personne clique sur le lien externe tu envois une requête au serveur qui alimentera ta base.

Re: Enregistrer dans base sql quand on clique sur un lien

par cris84 » 26 déc. 2016, 12:08

Bonjour,
pour le moment j'ai pas de code, je cherche justement comment il faut que je fasse.
Un deux mots, je voudrais compter dans ma base de données chaque fois qu'un internaute clique sur un lien (mais qui va vers un autre site).
Une seule page est concernée.
Ma table : id et id_page.
Je ne peux pas utiliser la méthode GET vu que la requête ne passe pas par l'URL.
Le lien est de type href

merci encore

Re: Enregistrer dans base sql quand on clique sur un lien

par Spols » 25 déc. 2016, 23:50

Il faut que tu trompe ton utilisateur, en faisant un lien interne, l'enregistrement en base de donnée et puis une redirection vers le lien exterieur

Re: Enregistrer dans base sql quand on clique sur un lien

par laurents » 25 déc. 2016, 23:15

Bonsoir,
je ne comprend pas trop le problème. Peux-tu préciser avec un peu de code (et notamment quand ça marche) ?

Enregistrer dans base sql quand on clique sur un lien

par cris84 » 24 déc. 2016, 17:51

Bonjour à tous et joyeux noël :-D

je voudrais savoir comment faire pour effectuer un enregistrement dans ma base si je clique sur un lien qui renvoi sur un autre site.
Le lien vers l'autre site est direct avec la balise target="_blank"

Tant que mes liens renvoient sur les pages de mon site pas de souci de sait faire. Mais quand le lien pointe vers l'extérieur ?

Merci d'avance.

:wink: