Numéro de semaine php et recupération de variable [Résolu]

Signaler
Messages postés
23
Date d'inscription
vendredi 12 mars 2004
Statut
Membre
Dernière intervention
22 septembre 2011
-
Messages postés
23
Date d'inscription
vendredi 12 mars 2004
Statut
Membre
Dernière intervention
22 septembre 2011
-
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

Messages postés
1203
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
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.

@+
Messages postés
23
Date d'inscription
vendredi 12 mars 2004
Statut
Membre
Dernière intervention
22 septembre 2011

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.