Probleme pour récupérer heure de début et de fin de mon formulaire

Probleme pour récupérer heure de début et de fin de mon formulaire - PHP - Programmation

Marsh Posté le 18-04-2005 à 16:38:24    

bonjour, voila je suis en train de créer un formulaire appelé start.php qui au moment de la validation va pointer sur un stop.php, le but est de rentrer dans une base l'heure de début de connection et la fin de connection  , donc la première variabled'heure ça marche mais pas pour l seconde ??
Voici le code:
 
<html>
<center>
<img src="images/logo_monecam.gif">
<br>
<br>
<?
$debutime = date("H:i:s" );
echo ("Heure de début de la saisie est  $debutime" );
?>
<table width="25%" cellspacing="0" cellpadding="0" border="0" bordercolor="green">
<tr>
<td>
<form   method='post' action='start.php?action=insert'>
<FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>  
<INPUT TYPE="HIDDEN" NAME="starttime" VALUE="<? echo $debutime ?>">
<select name="caisse1">
<option>caisse 1 </option>
<option>caisse 2</option>
<option>caisse 3</option>
<option>caisse 4</option>
</select> Indiquez la caisse <br>
</FIELDSET>
<br><br>
 
<FIELDSET><LEGEND><b><font color="red">CARTE</font></b></LEGEND>  
<INPUT TYPE="CHECKBOX" NAME="cas" VALUE="cas"> Simple<br>
<INPUT TYPE="CHECKBOX" NAME="cac" VALUE="cac"> 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 plus suppérieur à 1<br>
</FIELDSET>
<br>
</FIELDSET>
<br><br>
<FIELDSET><LEGEND><b><font color="red">DIVERS</font></b></LEGEND>  
<INPUT TYPE="CHECKBOX" NAME="deminfo" VALUE="deminfo"> Demande d'info<br>
<INPUT TYPE="CHECKBOX" NAME="regnocouv" VALUE="regnocouv"> Région non couverte<br>
<INPUT TYPE="CHECKBOX" NAME="litige" VALUE="litige"> Litige<br>
<INPUT TYPE="CHECKBOX" NAME="mauvnum" VALUE="mauvnum"> Mauvais Numéro<br>
<INPUT TYPE="CHECKBOX" NAME="autre" VALUE="autre"> Autre<br>
</FIELDSET>
<br>
<center>
<input type='submit' name='submit' value='Fin de connection'>
</center>
</form>
</td>
</tr>
</table>
</center>
<?
 
if ($action=="insert" );
{
 
// connexion à la base
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  
    mysql_select_db('test',$db)  or die('Erreur de selection '.mysql_error());
 
 // on écrit la requête sql
  $requete="INSERT INTO sos(id, debutime, endtime) VALUES ('', '$debutime', '$endtime')";
 $endtime = date("H:i:s" );  
 mysql_query($requete);
 mysql_close();  // on ferme la connexion
}
?>
</html>


Message édité par jode le 18-04-2005 à 16:55:27
Reply

Marsh Posté le 18-04-2005 à 16:38:24   

Reply

Marsh Posté le 18-04-2005 à 16:39:25    

Pourquoi met-tu le résultat de date dans $endtime après l'avoir mis dans la requête ? Ca ne fonctionnera évidemment pas ;)

Reply

Marsh Posté le 18-04-2005 à 16:43:16    

FlorentG a écrit :

Pourquoi met-tu le résultat de date dans $endtime après l'avoir mis dans la requête ? Ca ne fonctionnera évidemment pas ;)


Je devrais lemettre ou d'apres toi.

Reply

Marsh Posté le 18-04-2005 à 16:48:40    

en fait si j'écris la fin de mon script comme ça :  
<?
$endtime = date("H:i:s" );
if ($action=="insert" );
{
 
// connexion à la base
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  
    mysql_select_db('test',$db)  or die('Erreur de selection '.mysql_error());
 
 // on écrit la requête sql
  $requete="INSERT INTO sos(id, debutime, endtime) VALUES ('', '$debutime', '$endtime')";
   
 mysql_query($requete);
 mysql_close();  // on ferme la connexion
}
 
Je me retrouve avec les deux même heure dans ma base plus un probleme à la ligne 82 qui dit :
Notice: Undefined variable: action in c:\program files\easyphp1-7\www\stop2.php on line 82

Reply

Marsh Posté le 18-04-2005 à 17:03:50    

Tu as ton form et ton traitement sur la même page là ?
 
Si oui, utilise le tableau $_POST pour récupérer les données de ton form, $_GET pour le paramètre action et vérifie qu'il existe avec isset.
 
En l'état, c'est normal que ce soit les mêmes heures, $debutime est réinitialisé au début du script :)

Reply

Marsh Posté le 18-04-2005 à 17:39:34    

D'accord mais dans ma base l'insert fonctionne bien car $debutime est bien pris en compte mais pourquoi dans la base il rentre $endtime comme même valeur, je pige pas là...

Reply

Marsh Posté le 18-04-2005 à 17:40:12    

Parce que ton script s'exécute en moins d'une seconde ;)

Reply

Marsh Posté le 18-04-2005 à 17:41:42    

Exactement, soi tu fait par cette méthode, soi tu fait un systeme qui permet de prendre l'heure de début qu'une seul fois.

Reply

Marsh Posté le 18-04-2005 à 17:53:00    

je comprend pas trop le coté (moins d'une seconde)surtout que la valeur de la variable et date("H:i:s" ) donc les secondes devrais etre différente , j'ai modifié le script et du coup maintenant je me retrouve avec bien l'heure de début d'écris en tout début de script ($debutime) mais l'heure de fin , plus bas dans le script ($endtime) est maintenant dans ma base à 00:00:00
Voici mon code :
<html>
<center>
<img src="images/logo_monecam.gif">
<br>
<br>
<?
$debutime = date("H:i:s" );
echo ("Heure de début de la saisie est  $debutime" );
?>
<table width="25%" cellspacing="0" cellpadding="0" border="0" bordercolor="green">
<tr>
<td>
<form   method='post' action='start.php?action=insert'>
<FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>  
<INPUT TYPE="HIDDEN" NAME="starttime" VALUE="<? echo $debutime ?>">
<select name="caisse1">
<option>caisse 1 </option>
<option>caisse 2</option>
<option>caisse 3</option>
<option>caisse 4</option>
</select> Indiquez la caisse <br>
</FIELDSET>
<br><br>
 
<FIELDSET><LEGEND><b><font color="red">CARTE</font></b></LEGEND>  
<INPUT TYPE="CHECKBOX" NAME="cas" VALUE="cas"> Simple<br>
<INPUT TYPE="CHECKBOX" NAME="cac" VALUE="cac"> 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 plus suppérieur à 1<br>
</FIELDSET>
<br><br>
<FIELDSET><LEGEND><b><font color="red">CHEQUE</font></b></LEGEND>  
<INPUT TYPE="CHECKBOX" NAME="chs" VALUE="chs"> Simple<br>
<INPUT TYPE="CHECKBOX" NAME="chc" VALUE="chs"> 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 plus suppérieur à 1<br>
</FIELDSET>
<br><br>
<FIELDSET><LEGEND><b><font color="red">ANNULATION OPPOSITION</font></b></LEGEND>  
<INPUT TYPE="CHECKBOX" NAME="anuca" VALUE="anuca"> Carte<br>
<INPUT TYPE="CHECKBOX" NAME="anuch" VALUE="anuch"> Chèque<br>
</FIELDSET>
<br><br>
<FIELDSET><LEGEND><b><font color="red">DIVERS</font></b></LEGEND>  
<INPUT TYPE="CHECKBOX" NAME="deminfo" VALUE="deminfo"> Demande d'info<br>
<INPUT TYPE="CHECKBOX" NAME="regnocouv" VALUE="regnocouv"> Région non couverte<br>
<INPUT TYPE="CHECKBOX" NAME="litige" VALUE="litige"> Litige<br>
<INPUT TYPE="CHECKBOX" NAME="mauvnum" VALUE="mauvnum"> Mauvais Numéro<br>
<INPUT TYPE="CHECKBOX" NAME="autre" VALUE="autre"> Autre<br>
</FIELDSET>
<br>
<center>
<input type='submit' name='submit' value='Fin de connection'>
</center>
</form>
</td>
</tr>
</table>
</center>
<?
$endtime = date("H:i:s" );
if ($action=="insert" );
{
if(isset($_POST['endtime']))      $endtime=$_POST['endtime'];
else      $endtime="";
// connexion à la base
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  
    mysql_select_db('test',$db)  or die('Erreur de selection '.mysql_error());
 
 // on écrit la requête sql
  $requete="INSERT INTO sos(id, debutime, endtime) VALUES ('', '$debutime', '$endtime')";
   
 mysql_query($requete);
 mysql_close();  // on ferme la connexion
}
?>
</html>

Reply

Marsh Posté le 18-04-2005 à 18:43:11    

met ton $endtime = date("H:i:s" );  dans ta boucle  
if ($action=="insert" );  
 
sinon lheure de fin est directement pris au chargement de ta page

Reply

Marsh Posté le 18-04-2005 à 18:43:11   

Reply

Marsh Posté le 18-04-2005 à 19:12:11    

Dans ma table il me faut les 2 heures, peux tu m'expliquer ce que tu entend par la boucle, car moi ce que je comprend plus trop.

Reply

Marsh Posté le 18-04-2005 à 20:06:36    

Badze a écrit :

Exactement, soi tu fait par cette méthode, soi tu fait un systeme qui permet de prendre l'heure de début qu'une seul fois.


 
Ouais, mais non. Son problème d'heure de début est juste dû au fait qu'il utilise debutime au lieu du starttime du formulaire :)
 
Jode :
 
Tu fais un peu n'importe quoi là, je t'ai dit de vérifier que le paramètre action existait, pas de tester l'existence d'un champ du form qui n'existe pas.
 

Code :
  1. if (isset($_GET['action']) and ($_GET['action']=="insert" ))
  2. {
  3. $endtime = date("H:i:s" );
  4. // connexion à la base
  5. $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
  6. // sélection de la base   
  7. mysql_select_db('test',$db)  or die('Erreur de selection '.mysql_error());
  8. // on écrit la requête sql
  9. $requete="INSERT INTO sos(id, debutime, endtime) VALUES ('', '".$_POST['starttime']."', '$endtime')";
  10. mysql_query($requete);
  11. mysql_close();  // on ferme la connexion
  12. }


 
passe déjà mieux.

Reply

Marsh Posté le 18-04-2005 à 21:46:22    

naceroth a écrit :

Ouais, mais non. Son problème d'heure de début est juste dû au fait qu'il utilise debutime au lieu du starttime du formulaire :)
 
Jode :
 
Tu fais un peu n'importe quoi là, je t'ai dit de vérifier que le paramètre action existait, pas de tester l'existence d'un champ du form qui n'existe pas.
 

Code :
  1. if (isset($_GET['action']) and ($_GET['action']=="insert" ))
  2. {
  3. $endtime = date("H:i:s" );
  4. // connexion à la base
  5. $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
  6. // sélection de la base   
  7. mysql_select_db('test',$db)  or die('Erreur de selection '.mysql_error());
  8. // on écrit la requête sql
  9. $requete="INSERT INTO sos(id, debutime, endtime) VALUES ('', '".$_POST['starttime']."', '$endtime')";
  10. mysql_query($requete);
  11. mysql_close();  // on ferme la connexion
  12. }


 
passe déjà mieux.


 
Désolé Naceroth je ne veux pas té décevoir, ta formule en effet fonctionne très bien !! la ou je suis piègé c'est qu'au début j'utilise un fichier start.php
code :
<form method='post' action='stop3.php'>
<input type='submit' name='submit' value='Début de connection'>
</form>
et que je ne retombe pas dessus après la l'envoie du formulaire. on m'a donné aussi une autre combine que je veux te faire partager et qui donne aussi le même résultat, je retombe pas sur ma page  start.php
Voici le code :
<html>
<center>
<img src="images/logo_monecam.gif">
<br>
<br>
<?
/* Tu peux virer les deux lignes suivantes */
$debutime = date("H:i:s" );
echo ("Heure de début de la saisie est ". $debutime);
?>
<table width="25%" cellspacing="0" cellpadding="0" border="0" bordercolor="green">
  <tr>
    <td>
      <form method='post' action='<?php echo($_SERVER['PHP_SELF']); ?>'>
        <FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>
        <INPUT TYPE="HIDDEN" NAME="debutime" VALUE="<? echo $debutime ?>">
        <select name="caisse1">
        <option>caisse 1 </option>
        <option>caisse 2</option>
        <option>caisse 3</option>
        <option>caisse 4</option>
        </select> Indiquez la caisse <br>
        </FIELDSET>
        <br><br>
        <FIELDSET><LEGEND><b><font color="red">CARTE</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="cas" VALUE="cas"> Simple<br>
        <INPUT TYPE="CHECKBOX" NAME="cac" VALUE="cac"> 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 plus suppérieur à 1<br>
        </FIELDSET>
        <br><br>
        <FIELDSET><LEGEND><b><font color="red">CHEQUE</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="chs" VALUE="chs"> Simple<br>
        <INPUT TYPE="CHECKBOX" NAME="chc" VALUE="chs"> 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 plus suppérieur à 1<br>
        </FIELDSET>
        <br><br>
        <FIELDSET><LEGEND><b><font color="red">ANNULATION OPPOSITION</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="anuca" VALUE="anuca"> Carte<br>
        <INPUT TYPE="CHECKBOX" NAME="anuch" VALUE="anuch"> Chèque<br>
        </FIELDSET>
        <br><br>
        <FIELDSET><LEGEND><b><font color="red">DIVERS</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="deminfo" VALUE="deminfo"> Demande d'info<br>
        <INPUT TYPE="CHECKBOX" NAME="regnocouv" VALUE="regnocouv"> Région non couverte<br>
        <INPUT TYPE="CHECKBOX" NAME="litige" VALUE="litige"> Litige<br>
        <INPUT TYPE="CHECKBOX" NAME="mauvnum" VALUE="mauvnum"> Mauvais Numéro<br>
        <INPUT TYPE="CHECKBOX" NAME="autre" VALUE="autre"> Autre<br>
        </FIELDSET>
        <br>
        <center>
        <input type="hidden" name="debut" value="<?php echo(date("H:i:s" )); ?>">
        <input type='submit' name='submit' value='Fin de connection'>
        </center>
      </form>
    </td>
  </tr>
</table>
</center>
<?
if (isset($_POST['submit']))
{
    /* Mesure de la fin seulement si on est en phase de traitement du formulaire */
    $debut = $_POST['debut'];
    $endtime = date("H:i:s" );
    // connexion à la base
    $db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
    // sélection de la base
    mysql_select_db('test',$db) or die('Erreur de selection '.mysql_error());
 
    // on écrit la requête sql
    $requete="INSERT INTO sos(id, debutime, endtime) VALUES ('', '". $debut ."', '". $endtime ."')";
    mysql_query($requete);
    mysql_close(); // on ferme la connexion
}
?>
</html>

Reply

Marsh Posté le 19-04-2005 à 09:15:01    

ça y est j'a enfin résolu le probleme,merci à touspour votre aide.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed