[RESOLU] Enregistrer une date en BDD

Eléphant du PHP | 133 Messages

22 mai 2021, 13:03

Bonjour
j'ai un petit problème que je pense assez simple à résoudre, mais moi je ne trouve pas.

j'ai mis en place un petit système qui empêche de changer la valeur $_GET dans l'URL.

Code : Tout sélectionner

<?php if (isset($result['Titre_News'])) { } else { function getIp() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } return $ip; } $Nom = $_SESSION['Nom']; $Prenom = $_SESSION['Prenom']; $page = basename(__FILE__); $Adresse = getIp(); echo '<pre>'; echo "Tentative de violation de la part de: $Prenom $Nom à partir de l'adresse IP:" . getIp(); echo '<pre>'; echo "Enregistrement en base de données de la tentative."; echo '<pre>'; include("../connect.php"); $pdoStat = $db->prepare('INSERT INTO `t_violation` values (NULL,:Nom,:Prenom,:IP,:PageV,NULL)'); //on lie chaque marqueur à une valeur $pdoStat->bindParam(':Nom', $Nom, PDO::PARAM_STR); $pdoStat->bindParam(':Prenom', $Prenom, PDO::PARAM_STR); $pdoStat->bindParam(':IP', $Adresse, PDO::PARAM_STR); $pdoStat->bindParam(':PageV', $page, PDO::PARAM_STR); $pdoStat->execute(); include("../close.php"); exit; } ?>

Code : Tout sélectionner

if (isset($result['Titre_News'])) {
Correspond à

Code : Tout sélectionner

$Id_Assos = $_SESSION['Id_Assos']; $Id_News = strip_tags($_GET['Id_News']); $sql = "SELECT * FROM `t_newsletters` inner join t_type_article on t_newsletters.Id_Type_Article=t_type_article.Id_Type_Article WHERE `Id_News`=:Id_News and t_newsletters.Id_Assos=:Id_Assos"; $query = $db->prepare($sql); $query->bindValue(':Id_News', $Id_News, PDO::PARAM_INT); $query->bindParam(':Id_Assos', $Id_Assos, PDO::PARAM_INT); $query->execute(); $result = $query->fetch();
C'est à dire que si l'on change la valeur de $_GET si on arrive sur une fiche de son ASSOS pas de problème (contrôle avec $_SESSION['Id_Assos']) sinon ce n'est pas de sa propre ASSOS et $result['Titre_News'] est vide.

Ici ça marche.
En base de données j'enregistre toutes les données sauf que j'ai voulu rajouter la date et là cela ne marche plus.
Voici la structure de la table:

Code : Tout sélectionner

SELECT `Id_Violation`, `Nom`, `Prenom`, `IP`, `PageV`, `DateV` FROM `t_violation`
`DateV` est définit en valeur par défaut comme
CURRENT_TIMESTAMP
.

je me suis donc quand mettant la valeur NULL dans ma requête c’était bon, mais hélas non.

Code : Tout sélectionner

$pdoStat = $db->prepare('INSERT INTO `t_violation` values (NULL,:Nom,:Prenom,:IP,:PageV,NULL)');
J'ai essayé sans valeur NULL, j'ai essayé avec une variable $dateV=date("d/m/Y") au lieu CURRENT_TIMESTAMP. Rien ne marche.

Comment est-ce que je peux faire pour enregistrer la date de l'action et donc de l'enregistrement?

Merci

Eléphant du PHP | 133 Messages

22 mai 2021, 13:36

j'ai trouvé ça marche avec
$today = date("Y-m-d H:i:s");