8792 sujets

Développement web côté serveur, CMS

Bonjour
j'ai un soucis avec le php
voila je bosse sur de la voix ip et j'aimerai savoir est ce que c'est possible une fois qu'une personne est o tel de decompter son temps d'appel . genre faire une fonction en php qui gere cela.
Je suis trop emmerder
Merci davance.
Modifié par max_cephalo (23 May 2007 - 17:06)
sau
j'ai reussi à faire un script qui fait le compte a rebour
le soucis est que
il faut k je remplisse dans ma base de donnée l'heure fin pour que ca prenne en compte les parametres et en plus il fo tjrs k j'actualise pour avoir le temps actuelle.
j'aimerai savoir si c'est possible en php d'avoir le compte a rebour qui est automatique:*

<?php

include ("connect-sql.php");


$h = date("G");
$m = date("i");
$s = date("s");

$heure_actu = $h.$m.$s ; // c'est l'heure actuelle

$req_date = "SELECT date_fin, heure_fin FROM date ";
$res = mysql_query($req_date) or die ('erreur');

$tab = mysql_fetch_array ($res);
$heure_fini = $tab[0] ;
$heure_fin = $tab[1];

mysql_close ();

echo "heure prise : ".$heure_fini."<br>";
echo " heure maintenant : " .$heure_actu. " <br>";

if ($heure_fini =="")
{
echo " c'est le début <br> ";
$h= $h + 2 ; // je considère qu'un appel ne peu pas durer plus de deux heure

if ($h >= '24')
{
$h = $h -24;
}

$heure_fin = $h.$m.$s;
$h_fin = $h;

/*enregistrement des infos
include ("connect-sql.php");
$req_date = "INSERT INTO date VALUES ('$heure_actu', '$h_fin' )";
$res = mysql_query ($req_date) or die ('erreur_');

mysql_close (); */

} else

{
if ($heure_actu < $heure_fini)
{
echo ('toujours occupé <br>');
$heure_rest = $heure_fini - $heure_actu;

echo (" heure_rest: ".$heure_rest. '<br>');
(array) $heure_restant;

$nb_element = sizeof ($heure_rest); // retourne le nombre d'element dans un tableau

//cpt_reb est le nombre de seconde du compte à rebourd
if (nb_element ==6)
{
$cpt_reb = $heure_rest[0].$heure_rest[1]* 3600 + $heure_rest[2].$heure_rest[3] * 60 + $heure_rest[4].$heure_rest[5];
}

if (nb_element == 4)

{
$cpt_reb = $heure_rest[0].$heure_rest[1] * 60 + $heure_rest[2].$heure_rest[3] ;
}

if (nb_element == 2)

{
$cpt_reb = $heure_rest[0].$heure_rest[1];
}

// compteur avec le reste du temps

if (!isset($SESSION["compteur"]))
{
$_SESSION["compteur"] = date("U") + 20;
$compteur_rebours = $cpt_reb;
} else

{
$compteur_rebours = $_SESSION["compteur"] -date ("U");
}
$annee = date ("Y", $compteur_rebours);
$mois = date ("m", $compteur_rebours);
$jour = date ("j", $compteur_rebours);
$heure = date ("G", $compteur_rebours);
$minute = date ("i", $compteur_rebours);
$seconde = date ("s", $compteur_rebours);

} else

{
//resultat
echo ('compte à rebour terminé <br>');
}
}
?>
Salut,
le propre de php est de s'exécuter côté serveur donc une fois avant le chargement de ta page. Pour faire un compte à rebours en temps réèl, il te reste donc deux solutions

- passer le paramêtre qui est dans ta base à js qui se chargera du décompte

- rafraîchir l'élément qui contient le décompte php avec un ajax à intervalle régulier, mais, si tu veux un décompte à la seconde, ça fait un poil de circulation entre le serveur et la page pour pas grand-chose, js me semble plus approprié dans cette situation

Have swing