Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1267 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Un compteur d'affichages avec base de données

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Un compteur d'affichages avec base de données

n°2321193
skyth
Posté le 24-09-2018 à 21:34:01  profilanswer
 

Bonjour,
Voici un script PHP qui affiche le nombre de vues sur une page à l'aide de la base de données en SQL.
 
Tout d'abord la construction de la table:

Code :
  1. CREATE TABLE IF NOT EXISTS `affichages` (
  2.   `id` int(11) NOT NULL auto_increment,
  3.   `page` varchar(256) collate latin1_general_ci NOT NULL,
  4.   `nombre` int(11) NOT NULL default '1',
  5.   PRIMARY KEY  (`id`)
  6. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


 
Et maintenant le script PHP pour enregistrer les affichages sur la base de données:

Code :
  1. <?PHP
  2. //Connexion à la base de données
  3. $db = mysql_connect('host','login','password') or die ("erreur de connexion" );
  4. mysql_select_db('table',$db);
  5. //Déclaration des variables
  6. $serveur1 = $_SERVER['SERVER_NAME'];
  7. $serveur2 = $_SERVER['REQUEST_URI'];
  8. $url = "http://".$serveur1."".$serveur2;
  9. //On cherche si l'URL existe dans la base de données
  10. $sql14 = "SELECT * FROM affichages WHERE page='$url'";
  11. $req14 = mysql_query($sql14) or die('Erreur SQL !<br>'.$sql14.'<br>'.mysql_error());
  12. while($data = mysql_fetch_assoc($req14))
  13. {
  14.  $page=$data['page'];
  15.  $nombre=$data['nombre'];
  16.  $page=htmlentities($page);
  17.  $nombre=htmlentities($nombre);
  18. }
  19. //Si ce n'est pas le cas: on la créée
  20. if($page!=$url)
  21. {
  22.  $sql01  = "INSERT INTO affichages(id, page, nombre) VALUES('','$url','2')";
  23.  $req01 = mysql_query($sql01) or die('Erreur SQL !<br>'.$sql01.'<br>'.mysql_error());
  24. //Sinon on augmente le nombre d'affichages de 1
  25. }else{
  26.  $sql02 = "UPDATE affichages SET nombre=nombre+1 WHERE page='$url'";
  27.  $req02 = mysql_query($sql02) or die('Erreur SQL !<br>'.$sql02.'<br>'.mysql_error());
  28. }
  29. //Affichages du nombre d'affichages  
  30. echo $nombre;
  31. ?>


mood
Publicité
Posté le 24-09-2018 à 21:34:01  profilanswer
 

n°2321194
rat de com​bat
attention rongeur méchant!
Posté le 24-09-2018 à 22:38:37  profilanswer
 

et alors? Question?
 
Par ailleurs, y a pas moyen de faire une belle injection SQL avec ce script en manipulant REQUEST_URI? :o

n°2321204
MaybeEijOr​Not
but someone at least
Posté le 25-09-2018 à 10:33:19  profilanswer
 

Merci, je cherchais justement ce code pour finir mon site web, j'ai mis le nombre de vues dans une balise blink et ça claque. :)  
 
Pour ceux qui chercheraient comment faire il faut remplacer la dernière ligne par :

Code :
  1. echo '<blink>'.$nombre.'</blink>';


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Un compteur d'affichages avec base de données

 

Sujets relatifs
liaison entre datagrid et base de donnéesBien placer la base de données sur PHPmyadmin
Récupération des données json[JS] formulaire de modification de données XML avec XPath
[HTML/PHP/CSS] Diff de 2 donnéesCréation base de données avec Entity code first
[Symfony 3.3.6] Récupération de données 
Plus de sujets relatifs à : Un compteur d'affichages avec base de données


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR