Date après session destroye qui s'enregistre pas

Résolu
Bonjour,

Voici mon code :

<?php
$titre = "Déconnexion";
include("includes/debut.php");
?>
<h2> Déconnexion </h2><br />
<font size = "3">
<?php
if(!$is_registered){
echo '<b><font color="red">Erreur, vous n\'êtes pas connecté.</font></b><br/><br/>';
}
else
{
?>
<img src="" />
<br /><br />

<?php
session_destroy();
$sql = ("UPDATE membres SET derniereco='NOW()'  WHERE id = $ID"); 
?>

<b>Vous êtes maitenant déconnecté(e) de <font color="blue"><?php echo $nom; ?></font> ! Redirection...</b>

<head>
<meta http-equiv="refresh" content="2;url=index.php" />
</head>

<?php
}
?>
</font>
</div>
<?php
include("includes/bas.php");
?>


Alors voila mon souci,

J'ai mis cette ligne :

$sql = ("UPDATE membres SET derniereco='NOW()' WHERE id = $ID");

Pour enregistrer la date de la déconnexion du membre mais celle-là ne s'enregistre pas.
J'ai aucune erreur qui s'affiche ni rien.

Pouvez-vous m'aider ?

Merci par avance.

9 réponses

  1. Bonjour

    Je n'ai pas analysé le reste de ton code, mais il ne faut pas mettre NOW() entre apostrophes. 'NOW()' entre apostrophes est une chaîne de caractères comme 'toto', alors que NOW() sans apostrophes est l'appel à une fonction.
    0
    1. j'ai essayé en mettant NOW(DATE) mais la date s'enregistre pas, vous avez une autre solution ?

      j'ai essayé ça aussi :

      <?php

      session_destroy();
      $req = $bdd->prepare('UPDATE membres(derniereco) VALUES(NOW())');
      $req->closeCursor();

      ?>

      mais la date s'enregistre toujours pas et pas d'erreur qui s'affiche à l'écran.
      0
      1. C'était NOW() et non pas NOW(DATE)

        Rassure-moi, cette requête, tu l'exécutes bien quelque part ? J'ai bien peur que non.
        As-tu une idée de ce que ça veut dire exécuter une requête ?
        0
        1. je comprend plus rien là.

          Comment je doit m'y prendre pour que lorsque le membre se déconnecte la date s'enregistre dans la bdd ?
          0
          1. Réponds à ma question : as-tu une idée de ce que ça veut dire exécuter une requête ?
            0
            1. Bin oui, elle execute la requête, en gros elle fait ce qu'on lui demande quoi.
              0
              1. Qui exécute une requête ? Quelle instruction ? Je n'en vois pas dans ton code.
                0
                1. En mettant ça :

                  $sql("INSERT INTO membres VALUES derniereco = NOW()");
                  $sql ("UPDATE membres SET derniereco = NOW()");
                  $sql->fetch();

                  J'obtiens l'erreur suivante :

                  Fatal error: Function name must be a string in C:\wamp\www\pokemon mania\deconnexion.php on line 18

                  soit cette ligne : $sql("INSERT INTO membres VALUES derniereco = NOW()");

                  Mais j'ai l'impression de me perdre de plus en plus la dedans.
                  0
                  1. c'est bon, j'ai réussi je suis un vrai abruti moi j'ai voulu chercher trop loin pour loin.

                    Pour info si quelqu'un aurais le même souci, voile comment j'ai procédé :

                    <?php
                    $derniereco = $bdd->prepare("UPDATE membres SET derniereco = NOW() WHERE ID = :id");
                    $derniereco->bindValue(':id', $ID, PDO::PARAM_INT);
                    $derniereco->execute();
                    session_destroy();
                    ?>
                    0