Page 1 sur 1

Probleme pour récupérer heure de début et de fin du formulai

Posté : 18 avr. 2005, 17:02
par lemamouthe
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 l'heure de la fin de connection de la saisie du formulaire, donc la première variable d'heure ça marche mais pas pour la seconde , je me retrouve avec la même heure. Plus un code : Notice: Undefined variable: action in c:\program files\easyphp1-7\www\stop2.php on line 82

Voici le code:

<html>

<?
$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>


<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");
{

// 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>

Posté : 18 avr. 2005, 18:28
par Cyrano
Salut, deux toutes petites modification devrait régler ton problème :
<?
if (isset($_GET['action']) && $_GET['action'] == "insert")
{
    /* On prend l'instant T seulement si le traitement du formulaire est lancé, donc, si le bouton d'envoi a été cliqué */
    $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
//...... etc ......
En déplaçant l'initialisation de ta variable $endtime, tu obtiendras le bon moment. Quant à la notice, c'est parce que tu ne récupères pas la bonne variable, $action n'existe pas, c'est $_GET['action'] qu'il faut récupérer.

Bon code

Posté : 18 avr. 2005, 19:06
par lemamouthe
j'ai modifié comme tu me la indiqué , mais du coup il y a plus rien qui d'insère dans la table.
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="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='submit' name='submit' value='Fin de connection'>
</center>
</form>
</td>
</tr>
</table>
</center>
<?
$endtime = date("H:i:s");
if (isset($_GET['action']) && $_GET['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 ('', '$_GET', '$endtime')";
mysql_query($requete);
mysql_close(); // on ferme la connexion
}
?>
</html>

Posté : 18 avr. 2005, 19:23
par Cyrano
Recopie tel quel ce qui suit et re-teste :
<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>
J'ai du refaire la même modif plus un petit truc : ATTENTION : tout ceci suppose que ton formulaire est traité par la page elle-même, d'où l'autre modif, regarde ta balise <form>.
Enfin, comme je suppose que ton identifiqnt dans ta base est en auto-increment, on peut virer aussi l'ajout d'un id avec une valeur vide.

Posté : 18 avr. 2005, 19:39
par lemamouthe
Cela fonctionne en effet sa alimente bien la table test, maintenant je suis un piégé, car je démarre avec un fichier start.php
code :
<form method='post' action='stop2.php'>
<input type='submit' name='submit' value='Début de connection'>
</form>

ensuite il pointe bien sur stop2.php (le fichier que tu as super bien modifié) mais voila le piège je retourne comment sur start.php :cry:

Posté : 18 avr. 2005, 21:48
par Cyrano
Attends, je capte pas trop : qu'est-ce qui t'empêche de mettre un lien de retour ? Tu veux un retour automatique ???

Posté : 18 avr. 2005, 23:17
par lemamouthe
Oui effectivement soit je met un lien html 'en retour vers la page start.php mais le plus dynamique et propre à mon sens serait un retour automatique vers la page start.php

Posté : 18 avr. 2005, 23:26
par lemamouthe
je pense avoir trouver en mettant à la fin un header("Location:start.php"); qui me renvoie en automatique à ma page start.php :D

Posté : 19 avr. 2005, 08:51
par Cyrano
ben voilà, suffisait d'y penser ;)

Posté : 19 avr. 2005, 09:12
par lemamouthe
merci à toi , quand je pense que j'ai tellement de chemin à faire, mais c'est vraiment très sympa !! :D