Hallo,

Op moment van uitloggen ga ik naar een uitlogpagina met onderstaande code.
Ik wil de uitlogtijd opslaan in een database. Voer ik de query rechtstreeks uit, dan werkt het, maar via onderstaand script niet. Wat gaat er toch mis...?

<?php

session_start();
ob_start();

$sql = "UPDATE logboek SET uitlog = '".date('Y-m-d H:i:s')."' WHERE log_id = ".$_SESSION['log_id'];
$query = mysql_query($sql);

session_unset();
session_destroy();

header('Location: ../index.php');

?>

Wat geeft dit script aan?<?php
session_start();
ob_start();

$sql = "UPDATE logboek SET uitlog = '".date('Y-m-d H:i:s')."' WHERE log_id = ".$_SESSION['log_id'];
$query = mysql_query($sql);

if(!$query){
echo 'Er is iets misgegaan met de Query';
}else{
echo 'De query is succesvol uitgevoerd.';
}

session_unset();
session_destroy();

//header('Location: ../index.php');
?>
Inderdaad sql foutafhandeling inbouwen maar hoe zinvol is het bijhouden van uitloggen? Vele gebruikers sluiten gewoon de browser of gaan naar een ander url/bookmark of whatever. Je gaat dus inconsistente data verzamelen.[edit]Waar komt overigens het vervolg van ob_start?? (ob_end_flush)?? While output buffering is active no output is sent from the script
Bedankt voor je snelle reactie.

Ik krijg de melding:
Notice: Use of undefined constant query - assumed 'query' in C:\Tijdelijk\USBWebserver\RVHC\overig\uitlog.php on line 8
De query is succesvol uitgevoerd.

In de database blijft het echter: 0000-00-00 00:00:00
O, ik zie het, heb een foutje gemaakt in het script. Moet een dollarteken voor query. Heb het aangepast in het script.
Excuses Nick dat had ik ook kunnen zien...
Maar hij zegt uiteindelijk 'De query is succesvol uitgevoerd.'
In de database blijft het echter: 0000-00-00 00:00:00, terwijl het rechtstreeks uitvoeren van de betreffende string wel werkt als ik deze in phpMyAdmin uitvoer.
Welk type gebruik je voor de kolom uitlog in je database?
Datetime.

Op dezelfde wijze sla ik ook de inlogtijd op. Eveneens Datetime. En dat werkt wel.
1) schrap dat ob_start() eens. Als je script correct is, heb je dat in 99,9% van de gevallen niet nodig.

2) echo je query naar het scherm. Klopt hetgeen daar staat wel met wat je verwacht?
En klopt het log_id ook?
Ik heb ob_start() verwijderd.

Hij zegt:
UPDATE logboek SET uitlog = '2012-04-30 23:00:49' WHERE log_id = 24
Er is iets misgegaan met de query...

Ik zie niet wat er mis is met de query.

Reageren