insertion heure

bostak
Invité n'ayant pas de compte PHPfrance

20 déc. 2011, 23:00

Bonsoir,

J'ai un petit soucis (comme souvent) avec l'insertion de l'heure dans ma BDD; je vous montre tout sa.

J'ai une fonction comme sa :

Code : Tout sélectionner

function editBillet() { mysql_query("UPDATE billets SET title = '".$_POST['title']."', content = '".$_POST['content']."', updated = '".$updated."' WHERE idbillets=".$_GET['id'].""); } ?>
et cela :

Code : Tout sélectionner

{ include("pages/editBillet.php"); $updated=date('Y-m-d H:i:s'); editBillet($_POST['title'], $_POST['content'], $updated); header('Location: index.php'); }
Cela m'édite bien mon "title" et mon "content" mais il ne se passe rien au niveau de la date et l'heure. Pourtant j'ai repris le même principe pour enregistrer la date et l'heure quand je poste un billet et cela fonctionne.
Pourriez vous m'éclaircir ?

Cordialement,

ViPHP
ViPHP | 1996 Messages

20 déc. 2011, 23:55

Que donne ?
<?php
function editBillet()
{
  echo var_dump ($updated);
   mysql_query("UPDATE billets SET title = '".$_POST['title']."', content = '".$_POST['content']."', updated = '".$updated."' WHERE idbillets=".$_GET['id']."");
}
?>
Un conseil : protège un peu tes insertions sinon gare aux inclusions sql... (pour cela regarde vers mysql_escape_string)
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

bostak
Invité n'ayant pas de compte PHPfrance

21 déc. 2011, 00:21

oui je sais va falloir que je protège tout sa .

sinon sa me donne 00:00:00

ViPHP
ViPHP | 1996 Messages

21 déc. 2011, 00:30

Pas trouvé ? Bon je t'aide encore... Les fonctions ne reprennent les valeurs des variables que si elles sont globales... A mon avis $updated n'est pas globale. Mais $_POST est toujours globale ainsi que $_GET
Ca devrait marcher maintenant
<?php
function editBillet($title,$content,$updated,$id)
{
  echo var_dump ($updated);
   mysql_query("UPDATE billets SET title = '".mysql_escape_string($title)."', content = '"..mysql_escape_string($content)."', updated = '"..mysql_escape_string($updated)."' WHERE idbillets=".mysql_escape_string($id)."");
}
?>

 {
         include("pages/editBillet.php");
         $updated=date('Y-m-d H:i:s');
         editBillet($_POST['title'], $_POST['content'], $updated,$_GET['id']);
         header('Location: index.php');
      }


It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

bostak
Invité n'ayant pas de compte PHPfrance

21 déc. 2011, 00:55

j'ai suivis à la lettre ce que tu as mis mais toujours rien, j'ai toujours : 0000-00-00 00:00:00

ViPHP
ViPHP | 2577 Messages

21 déc. 2011, 12:10

Piste la valeur de $updated.

Généralement, on utilise la date de la bd pour mettre à jour la date de modification.

genre : updated = date() ou updated=time() (ou une autre fonction sql de date)

bostak
Invité n'ayant pas de compte PHPfrance

21 déc. 2011, 22:56

mais c'est ce que je fais

Code : Tout sélectionner

$updated=date('Y-m-d H:i:s');
je ne comprend vraiment pas

ViPHP
ViPHP | 1996 Messages

22 déc. 2011, 00:09

Hmmmm #-o pas de Timestamp ?
Essaye cela :

Page fonction editBillet.php
<?php
function editBillet($title,$content,$updated,$id)
{
  echo var_dump ($updated);
   mysql_query("UPDATE billets SET title = '".mysql_escape_string($title)."', content = '"..mysql_escape_string($content)."', updated = '"..mysql_escape_string($updated)."' WHERE idbillets=".mysql_escape_string($id)."");
}
?>
l'autre page
include("pages/editBillet.php");
date_default_timezone_set('Europe/Paris');
$maintenant = strtotime("now");

$updated=date('Y-m-d H:i:s',$maintenant);
editBillet($_POST['title'], $_POST['content'], $updated,$_GET['id']);
header('Location: index.php');
il faut bien sûr que le formulaire soit posté
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

bostak
Invité n'ayant pas de compte PHPfrance

22 déc. 2011, 02:00

Merveilleux cela fonctionne, merci beaucoup de votre aide.

Cordialement,