<?php
$debutime = time();
/* Reste de ton code jusqu'à.. */
$endtime = time();
$tpsepasse = $endtime - $_POST['starttime'];
?>
Le résultat est exprimé en secondes, à toi de reformatter à ton goût <?php
session_start(); // On relaye la session
require_once('connexion.php');
if (session_is_registered("authentification"))
{
// vérification sur la session authentification (la session est elle enregistrée ?)
// ici les éventuelles actions en cas de réussite de la connexion
}
else
{
header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
$date = date("Y-m-d");
?>
<html>
<head>
<title>Formulaire SOS Oppo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<BODY BGCOLOR="#99CCCC">
<?
if (isset($_GET['action']) and ($_GET['action']=="insert"))
{
$endtime = date("H:i:s"); //recuperation de l'heure de fin de saisie qui sera entree dans la base
$endtime2 = time(); //recuperation de l'heure de fin de saisie qui servira de calcul pour le temp passé
$tpsepasse = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
// connexion à la base
$db = mysql_connect('126.1.1.179', '*********', '********') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('SOS_Oppo',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$requete="INSERT INTO sos(id, nom, date, debutime, tpsepasse, caisse, cas, cac, cartplus, chs, chc, chqplus, anucas, anuch, deminfo, regnocouv, litige, mauvnum, autre, endtime)".
" VALUES ('', '".$_SESSION['nom']."', '$date', '".$_POST['starttime']."', '$tpsepasse', '".$_POST['caisse']."', '".$_POST['cas']."', '".$_POST['cac']."', '".$_POST['cartplus']."', '".$_POST['chs']."', '".$_POST['chc']."', '".$_POST['chqplus']."', '".$_POST['anucas']."', '".$_POST['anuch']."', '".$_POST['deminfo']."','".$_POST['regnocouv']."', '".$_POST['litige']."', '".$_POST['mauvnum']."', '".$_POST['autre']."', '$endtime')";
mysql_query($requete);
mysql_close(); // on ferme la connexion
// header("Location:start.php");
?>
<SCRIPT LANGUAGE="JavaScript">
document.location.href="start.php"
</SCRIPT>
<?
}
?>
<div align="center">
<img src="images/logo_monecam.gif">
<br>
<p>Bienvenue <strong><?php echo $_SESSION['nom']; ?>
<?php echo $_SESSION['prenom']; ?></strong> nous somme le <strong><? echo $date; ?></strong></p>
<?
$debutime = date("H:i:s"); //heure de debut de saisie qui sera inscrite dans la base
$debutime1= time (); //heure de debut qui servira au calcul du temps passe
echo ("Heure de début de la saisie est $debutime");
?>
<br><br>
<table width="500" bordercolor="#990000" bgcolor="#F4FBE6" border="1" cellpadding="10">
<tr>
<td>
<form method='post' action='stop3.php?action=insert'><br>
<FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>
<select name="caisse">
<option>Sud Rhone Alpes</option>
<option>Loire Haute Loire</option>
<option>Deux Savoie</option>
<option>Centre Est</option>
</select> Indiquez la caisse
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Carte</font></b></LEGEND>
<INPUT TYPE="HIDDEN" NAME="starttime" VALUE="<? echo $debutime ?>">
<INPUT TYPE="HIDDEN" NAME="starttime2" VALUE="<? echo $debutime1 ?>">
<INPUT TYPE="CHECKBOX" NAME="cas" VALUE="1"> Simple <br>
<INPUT TYPE="CHECKBOX" NAME="cac" VALUE="1"> Complexe <br>
<select name="cartplus">
<option> </option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select> Indiquez nombre de carte si suppérieur à 1
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Chèque</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="chs" VALUE="1"> Simple <br>
<INPUT TYPE="CHECKBOX" NAME="chc" VALUE="1"> Complexe <br>
<select name="chqplus">
<option> </option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select> Indiquez nombre de chèque si suppérieur à 1<br>
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Annulation opposition</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="anucas" VALUE="1"> Carte
<INPUT TYPE="CHECKBOX" NAME="anuch" VALUE="1"> Chèque
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Divers</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="deminfo" VALUE="1"> Demande d'info<br>
<INPUT TYPE="CHECKBOX" NAME="regnocouv" VALUE="1"> Région non couverte<br>
<INPUT TYPE="CHECKBOX" NAME="litige" VALUE="1"> Litige<br>
<INPUT TYPE="CHECKBOX" NAME="mauvnum" VALUE="1"> Mauvais Numéro<br>
<INPUT TYPE="CHECKBOX" NAME="autre" VALUE="1"> Autre<br>
</FIELDSET>
<br>
<div align="center">
<input type='submit' name='submit' value='Fin de Saisie'>
</div>
</form>
</td>
</tr>
</table>
</div>
</body>
</html>
Regarde bien, j'ai déplacé le test de fin en début de page : sinon, au chargement, on ré-initialise une des variable et on a un calcul qui va fausser... Logique, mais il faut essayer de se représenter que la page se recharge et que tout est interprété dans l'ordre d'apparition...<?php
session_start(); // On relaye la session
//require_once('connexion.php');
//if (session_is_registered("authentification"))
//{
// vérification sur la session authentification (la session est elle enregistrée ?)
// ici les éventuelles actions en cas de réussite de la connexion
//}
//else
//{
// header("Location:index.php?erreur=intru"); // redirection en cas d'echec
//}
$date = date("Y-m-d");
?>
<html>
<head>
<title>Formulaire SOS Oppo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<BODY BGCOLOR="#99CCCC">
<?
if (isset($_GET['action']) and ($_GET['action']=="insert"))
{
$endtime = date("H:i:s"); //recuperation de l'heure de fin de saisie qui sera entree dans la base
$endtime2 = time(); //recuperation de l'heure de fin de saisie qui servira de calcul pour le temp passé
$tpsepasse = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
echo("<p>Début de saisie : ". $_POST['starttime2'] ."<br />\nFin de saisie : ". $endtime2 ."<br />\nDurée de la saisie : ". $tpsepasse ."</p>\n");
// connexion à la base
// $db = mysql_connect('126.1.1.179', '*********', '********') or die('Erreur de connexion '.mysql_error());
// sélection de la base
// mysql_select_db('SOS_Oppo',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$requete="INSERT INTO sos(id, nom, date, debutime, tpsepasse, caisse, cas, cac, cartplus, chs, chc, chqplus, anucas, anuch, deminfo, regnocouv, litige, mauvnum, autre, endtime)".
" VALUES ('', '".$_SESSION['nom']."', '$date', '".$_POST['starttime']."', '$tpsepasse', '".$_POST['caisse']."', '".$_POST['cas']."', '".$_POST['cac']."', '".$_POST['cartplus']."', '".$_POST['chs']."', '".$_POST['chc']."', '".$_POST['chqplus']."', '".$_POST['anucas']."', '".$_POST['anuch']."', '".$_POST['deminfo']."','".$_POST['regnocouv']."', '".$_POST['litige']."', '".$_POST['mauvnum']."', '".$_POST['autre']."', '$endtime')";
// mysql_query($requete);
// mysql_close(); // on ferme la connexion
// header("Location:start.php");
?>
<!--
<SCRIPT LANGUAGE="JavaScript">
document.location.href="start.php"
</SCRIPT>
-->
<?
}
?>
<div align="center">
<img src="images/logo_monecam.gif">
<br>
<p>Bienvenue <strong><?php echo $_SESSION['nom']; ?>
<?php echo $_SESSION['prenom']; ?></strong> nous somme le <strong><? echo $date; ?></strong></p>
<?
$debutime = date("H:i:s"); //heure de debut de saisie qui sera inscrite dans la base
$debutime1= time (); //heure de debut qui servira au calcul du temps passe
echo ("Heure de début de la saisie est $debutime");
?>
<br><br>
<table width="500" bordercolor="#990000" bgcolor="#F4FBE6" border="1" cellpadding="10">
<tr>
<td>
<form method='post' action='<?php echo($_SERVER['PHP_SELF']); ?>?action=insert'><br>
<FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>
<select name="caisse">
<option>Sud Rhone Alpes</option>
<option>Loire Haute Loire</option>
<option>Deux Savoie</option>
<option>Centre Est</option>
</select> Indiquez la caisse
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Carte</font></b></LEGEND>
<INPUT TYPE="HIDDEN" NAME="starttime" VALUE="<? echo $debutime ?>">
<INPUT TYPE="HIDDEN" NAME="starttime2" VALUE="<? echo $debutime1 ?>">
<INPUT TYPE="CHECKBOX" NAME="cas" VALUE="1"> Simple <br>
<INPUT TYPE="CHECKBOX" NAME="cac" VALUE="1"> Complexe <br>
<select name="cartplus">
<option> </option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select> Indiquez nombre de carte si suppérieur à 1
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Chèque</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="chs" VALUE="1"> Simple <br>
<INPUT TYPE="CHECKBOX" NAME="chc" VALUE="1"> Complexe <br>
<select name="chqplus">
<option> </option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select> Indiquez nombre de chèque si suppérieur à 1<br>
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Annulation opposition</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="anucas" VALUE="1"> Carte
<INPUT TYPE="CHECKBOX" NAME="anuch" VALUE="1"> Chèque
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Divers</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="deminfo" VALUE="1"> Demande d'info<br>
<INPUT TYPE="CHECKBOX" NAME="regnocouv" VALUE="1"> Région non couverte<br>
<INPUT TYPE="CHECKBOX" NAME="litige" VALUE="1"> Litige<br>
<INPUT TYPE="CHECKBOX" NAME="mauvnum" VALUE="1"> Mauvais Numéro<br>
<INPUT TYPE="CHECKBOX" NAME="autre" VALUE="1"> Autre<br>
</FIELDSET>
<br>
<div align="center">
<input type='submit' name='submit' value='Fin de Saisie'>
</div>
</form>
</td>
</tr>
</table>
</div>
</body>
</html>
Donc mon résultat est là: le problème vient peut-être de ce que tu l'envoies tel quel dans ta base sans le moindre formattage....? Quel est le type du champ dans lequel tu envoies cette donnée ??Tu essayes d'enregistrer une donnée de type INT dans un champ TIME, ça ne peut que bogguer.`tpsepasse` time NOT NULL default '00:00:00',
$difference = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
/* Calcul du nombre d'heures */
$nb_hr = floor($difference / 3600);
/* Calcul du nombre de minutes */
$nb_mn = floor(($difference - ($nb_hr * 3600))/60);
/* Calcul du nombre de secondes restant */
$sec_hr = $nb_hr * 3600;
$sec_mn = $nb_mn * 60;
$nb_sec = $difference -($sec_hr + $sec_mn);
/* Formatage du temps passé */
$tpsepasse = $nb_hr.":".$nb_mn.":".$nb_sec;
Voilà, comme ça, ça devrait fonctionner