Numéro de semaine php et recupération de variable

Résolu
slimflash Messages postés 23 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 22 septembre 2011 - 30 mai 2007 à 00:53
slimflash Messages postés 23 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 22 septembre 2011 - 30 mai 2007 à 10:37
Je viens de faire un test pour récuppérer le numéro de la semaine afin de créer un planning de disponibilité pour une chambre d'hôtes.
Tout marche nickel quand je lance le fichier php, mais mon flash me renvoie une mauvaise valeur ! Pourtant, tout fonctionne bien en local sous easyphp (swf et php), le pblm ne se pose qu'avec le swf lorsque le fichier est en ligne.

Le n° de semaine renvoyé avec le flash est "03" alors qu'il devrait être 22.

voir version flash buggée :
http://test.richardeau.net/semaine/semaineNumero.swf

voir version php :
http://test.richardeau.net/semaine/php/semaine2.php?sDate=30/05/2007
Vous pouvez changer la date pour vous rendre compte que tout fonctionne bien en php.

Je suis un peu perdu, je ne vois pas trop la solution ! Merci pour votre aide future

voici le code as :
/*____________________________________________________________________*/

var today_date:Date = new Date();
jourT = today_date.getDate();
anneeT = today_date.getFullYear();
moisT =today_date.getMonth()+1;
trace(jourT+"//"+moisT+"//"+anneeT)

annee=anneeT
mois=moisT
jour=jourT
var sDate = jourT+"/"+moisT+"/"+anneeT
trace("sDate flash = "+sDate)
var envoyeur:LoadVars = new LoadVars();
var receveur:LoadVars = new LoadVars();   
       
envoyeur.sDate = sDate;
envoyeur.sendAndLoad("php/semaine.php", receveur, "POST");
//envoyeur.sendAndLoad("http://127.0.0.1/monRepertoireEasyPhp/php/semaine2.php", receveur, "POST");
       
receveur.onLoad=function(success){
    if(success){
        trace(receveur)
           
        trace(newline+"___________________________________________"+newline+"semaine n° = "+receveur.semaineNum + newline+"___________________________________________"+newline)
        trace("semaineNum receveur=" + receveur.semaineNum)
        trace("sDate receveur="+receveur.sDate)
        debug.text="date="+receveur.sDate+"  -  semaine n°="+receveur.semaineNum
    }else{
        debug.text="PBLM !!!!!"
    }
}
/*_________________________________________________________*/

Code PHP :
/*_______________________________*/

<?php

function NumeroSemaine ($sDate) { // date au format jj/mm/aaaa ou jj-mm-aaaa par exemple
         $sEngDate = substr ($sDate, -4).substr ($sDate, 3, 2).substr ($sDate, 0, 2);
         $iTime = strtotime ($sEngDate);
         return date ('W', $iTime);     
}function PremierJourApres ($sDate, $iDay) { // iDay : 1 lundi, 7 dimanche - sDate = une date format jj/mm/aaaa par exemple
         $sEngDate = substr ($sDate, -4).substr ($sDate, 3, 2).substr ($sDate, 0, 2);
         $iTime = strtotime ($sEngDate);
         $iCur = date ('N', $iTime);
         $iNext = 6 - (($iCur + 6 - $iDay) % 7);
         $iNewTime = $iTime + ($iNext * 86400);
         return strftime ('%d/%m/%Y', $iNewTime);
}
$erreurPHP="";

if(isset($_POST['sDate']))$sDate = $_POST['sDate'];
else $erreurPHP .= "Variable 'sDate' non trasmise\n";

$semaineNum=NumeroSemaine($sDate);
echo "&semaineNum=$semaineNum &sDate=$sDate";

?>

--==|[ SLIM FLASH ]|==--

2 réponses

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
30 mai 2007 à 08:54
Salut,

la solution est toute bête en fait...
Essaye ton appel php comme ceci
http://test.richardeau.net/semaine/php/semaine2.php?sDate=30/5/2007
et tu vas comprendre... -> la réponse est semaineNum 03

Dans le php tu supposes que le mois comportera 2 chiffres, hors, pour le mois de mai, flash ne retourne qu'un chiffre (4+1=5).
Ajoute une condition dans ton actionscript du style :
if (mois<10) {mois="0"+mois)

P.S. fait pareil pour le jour sinon le même genre de bug va arriver.

@+
3
slimflash Messages postés 23 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 22 septembre 2011
30 mai 2007 à 10:37
Nickel, merci... en effet, c'était tout con comme erreur !
Par contre, je me demande si je ferai pas mieux de récupérer en 1er la date par php, au cas où l'internaute aurait mal réglé sa pendule (mauvaise date). Car la classe Date fonctionne avec l'horloge de l'ordi...
Si qq'un connait des exemples de gestion de réservation à la semaine (php, flash, mySql), je suis preneur... j'ai pas mal cherché, mais rien qui ne convient bien à mon cas.
0
Rejoignez-nous