Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur PHP MyQSL

Compteur visiteur

Sujet résolu
Anonyme
19 mai 2022 à 20:52:23

Bonjour à tous,

J'ai fait un compteur visiteur et plusieurs erreurs s'affiche donc j'aimerais bien les résoudre :

Voici mon code php :

<?php
// On indique au navigateur qu'on utilise l'encodage UTF-8
header('Content-type: text/html; charset=utf-8');
 

// Paramètres de connexion à la base
define('DB_HOST' , 'localhost');
define('DB_NAME' , 'assistouest');
define('DB_USER' , 'adrienpiron');
define('DB_PASS' , 'Ap6844100?!');
 
// Connexion à la base avec PDO

try{
    $pdo = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
} catch(Exception $e) {
    echo "Impossible de se connecter à la base de données '".DB_NAME."' sur ".DB_HOST." avec le compte utilisateur '".DB_USER."'";
    echo "<br/>Erreur PDO : <i>".$e->getMessage()."</i>";
    die();
}
?>
<?php
// Fonction qui permet de mettre à jour le compteur de visites
function compter_visite(){
    // On va utiliser l'objet $pdo pour se connecter, il est créé en dehors de la fonction
    // donc on doit indiquer global $pdo; au début de la fonction
    global $pdo;
     
    // On prépare les données à insérer
    $ip   = $_SERVER['REMOTE_ADDR']; // L'adresse IP du visiteur
    $date = date('Ymd H: i: s');         // La date d'aujourd'hui, sous la forme AAAA-MM-JJ
     
    // Mise à jour de la base de données
    // 1. On initialise la requête préparée
    $query = $pdo->prepare("
        INSERT INTO stats_visites (ip , date_visite , pages_vues) VALUES (:ip , :date , 1)
        ON DUPLICATE KEY UPDATE pages_vues = pages_vues + 1
    ");
    // 2. On execute la requête préparée avec nos paramètres
    $query->execute(array(
        ':ip'   => $ip,
        ':date' => $date
    ));
}
// Comptabilisation de la visite
compter_visite();

$query = $pdo->prepare("SELECT * FROM stats_visites");
$query->execute();
$result = $query->fetchAll();
 
$pages_vues = count($result);
 echo $pages_vues;

 ?>

PS: Je suis nul en PHP et MyQSL

Les erreurs :

( ! ) Notice: Constant DB_NAME already defined in C:\wamp64\www\compteur.php on line 8
( ! ) Notice: Constant DB_USER already defined in C:\wamp64\www\compteur.php on line 9
( ! ) Notice: Constant DB_PASS already defined in C:\wamp64\www\compteur.php on line 10
( ! ) Warning: PDOStatement::execute(): SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect date value: '20220519 18: 48: 57' for column 'date_visite' at row 1 in C:\wamp64\www\compteur.php on line 43

-
Edité par Anonyme 19 mai 2022 à 21:10:29

  • Partager sur Facebook
  • Partager sur Twitter
19 mai 2022 à 21:00:16

Bonsoir,

Malheureusement MMe Irma n'est pas disponible pour le moment. Donc si tu nous disais clairement tes erreurs.

Ligne 22 et 23 inutile, pas besoin de fermer php pour l'ouvrir la ligne suivante

la ligne 32 est fausse. a supprimer et remplacer dans la requête par la fonction "NOW()" en SQL

  • Partager sur Facebook
  • Partager sur Twitter
19 mai 2022 à 21:00:29

Bonjour,

Manque de précisions

Vous êtes ici sur un forum d'entraide communautaire et non pas sur un forum de demande de service, le but n'est donc pas de fournir une réponse toute faite ou de directement fournir la solution à quiconque viendrait sans la moindre trace. Afin d'obtenir de l'aide et une solution à votre problème, il est fortement recommandé de présenter clairement l'état actuel du problème en nous fournissant :

  • Un descriptif clair et précis du problème : quelles sont les erreurs exactement ? on ne peut pas les deviner.
  • La tentative actuelle de résolution que vous avez effectué
  • Le résultat attendu et le résultat actuel
  • Toutes pistes de recherches pouvant aider à la résolution

Mauvais titre

Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

Merci de modifier votre titre. Pour cela, éditez le premier message de votre sujet. (et profitez-en pour modifier la fin de votre message, c'est un forum public, avec parfois de jeunes personnes, évitons les termes orduriers ;) )

(titre originel : Erreur PHP MyQSL)



Ah, on me signale que c'est un doublon de https://openclassrooms.com/forum/sujet/compteurs-de-visite-unique-et-total-php-myqsl . Pourquoi avoir créé un nouveau sujet o_O ? Je ferme ici.

-
Edité par Lamecarlate 19 mai 2022 à 21:10:11

  • Partager sur Facebook
  • Partager sur Twitter

Pas d'aide concernant le code par MP, le forum est là pour ça :)

Anonyme
19 mai 2022 à 21:09:43

Voici les erreurs :

( ! ) Notice: Constant DB_NAME already defined in C:\wamp64\www\compteur.php on line 8
( ! ) Notice: Constant DB_USER already defined in C:\wamp64\www\compteur.php on line 9
( ! ) Notice: Constant DB_PASS already defined in C:\wamp64\www\compteur.php on line 10
( ! ) Warning: PDOStatement::execute(): SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect date value: '20220519 18: 48: 57' for column 'date_visite' at row 1 in C:\wamp64\www\compteur.php on line 43
  • Partager sur Facebook
  • Partager sur Twitter
19 mai 2022 à 21:11:30

Je n'avais pas vu ta réponse : continuons sur ton ancien sujet, ok ? Postes-y tes erreurs. Je ferme.
  • Partager sur Facebook
  • Partager sur Twitter

Pas d'aide concernant le code par MP, le forum est là pour ça :)