Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: Jerem971
Auteur Sujet: Comment compter le nombre de fois qu'un lien a été cliquer

jeannot_gates

Messages: 48

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
Publicité

Arthel

Messages: 46

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.

Bernard-ng

Messages: 8

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

Balatharas

Messages: 563

@Arthel, tu fais un try catch sur pdo, sans set l'attribut PDO_EXCEPTION
Ce qui n'est pas indispensable...


Veuillez vous connecter ou créer un compte pour poster une réponse