Comment compter le nombre de fois qu'un lien a été cliquer

Suivre ce topic
Ce topic est suivi par : Personne...
jeannot_gates

jeannot_gates Le 23 juillet 2017 à 14:47 (Édité le 25 janvier 2019 à 17:53)

Salut tous le monde j'ai un petit souci on ma demander de coder un script php. Voici comment il doit fonctionner quand l'utilisateur arrive par exemple sur mon site en clique sur une banniere publicitaire il est directement redirectionner sur ce site mais dans la basse de donnée plus 1 est enregistrer avec son adresse IP pour que s'il clique sur le même lien sa ne s'incremente plus. J'ai jamais eu a écrire ce genre de script donc si quelqu'un connait un lien qui fais celà ou un petit script que je pourrait adapter je suis prenneur. Et merci pour vos réponses
Arthel

Arthel Le 4 janvier 2018 à 22:19 (Édité le 4 janvier 2018 à 22:22)

Bonsoir,

De mon coter, j'ai créer un petit script qui permet a un utilisateur de cliquer sur une bannière publicitaire et d'ajouter son adresse ip sur une bdd.

Sur ma page je créer des liens qui nous dirige vers une autre page ou site avec dans l'url un $_GET nommer pub avec un code comme: "recuc ou price". Qui me permet de travailler sur l'insertion dans la bdd.

Page avec les bannières publicitaire:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>Banniére</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
        <script src="main.js"></script>
    </head>
    <body>
        <div align="center">
            <a href="c.php?pub=reduc"><img src="img/reduc.jpg" /></a>
            <a href="c.php?pub=price"><img src="img/pub_price.jpg"></a>
        </div>
    </body>
</html>
Sur la page qui gère l'insertion dans la base de donnée, j'ai ajouter un code qui me permet de donner l'adresse ip de l'utilisateur. Dans mon code j'effectue une vérification si l'ip est déjà dans la bdd je ne créer pas de nouvelle entré si non je le créer.

Page avec l'insertion dans la bdd:
<?php 
    try{
        $db = new PDO('mysql:host=localhost;dbname=schearch', 'root', '');
    }catch(PDOException $e){
        echo $e->getMessage();
    }

    function get_ip() {
        // IP si internet partagé
        if (isset($_SERVER['HTTP_CLIENT_IP'])) {
            return $_SERVER['HTTP_CLIENT_IP'];
        }
        // IP derrière un proxy
        elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            return $_SERVER['HTTP_X_FORWARDED_FOR'];
        }
        // Sinon : IP normale
        else {
            return (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '');
        }
    }

    if(isset($_GET['pub']) AND !empty($_GET['pub'])){
        $req = $db->prepare("SELECT * FROM link WHERE ip = ?");
        $req->execute(array(get_ip()));
        $res = $req->rowCount();
        if($res == 0){
            $req = $db->prepare('INSERT INTO link (ip, code) VALUES (?, ?)');
            $req->execute(array(get_ip(), htmlspecialchars($_GET['pub'])));
        }
       
    }
?>
Structure de la bdd:
id varchar 255 Auto Increment
ip text
code varchar 255

Cordialement F1redev, en espèrent réussit a t'aider.
Edit: Désoler pour la structure de la bdd ce n'est pas très jolie, mais je le site n'as pas voulut ajouter la photo.
Profil introuvable

Profil introuvable Le 12 janvier 2018 à 23:32

@Arthel, tu fais un try catch sur pdo, sans set l'attribut PDO_EXCEPTION
Balatharas

Balatharas Le 13 janvier 2018 à 22:53

@Arthel, tu fais un try catch sur pdo, sans set l'attribut PDO_EXCEPTION
Ce qui n'est pas indispensable...
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte