Comment compter le nombre de fois qu'un lien a été cliquer
- Accueil
- Forum
- Programmation
- PHP
- Comment compter le nombre de fois qu'un lien a été cliquer
jeannot_gates Le 23 juillet 2017 à 14:47 (Édité le 25 janvier 2019 à 17:53)
Arthel Le 4 janvier 2018 à 22:19 (Édité le 4 janvier 2018 à 22:22)
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 Le 12 janvier 2018 à 23:32 (Édité le 1 janvier 1970 à 01:00)
Balatharas Le 13 janvier 2018 à 22:53 (Édité le 1 janvier 1970 à 01:00)
@Arthel, tu fais un try catch sur pdo, sans set l'attribut PDO_EXCEPTIONCe qui n'est pas indispensable...