[déplacé Bar -> PHP] Une demande de promotion qui change toute les semaine par u

cs_val78 Messages postés 87 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 12 avril 2023 - 30 déc. 2008 à 16:08
cs_val78 Messages postés 87 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 12 avril 2023 - 20 janv. 2009 à 20:57
Bonjour



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

 





Voila je recherche un compte a rebours pour mettre en place des promotions une fois par semaine d’une bijouterie, et qui soit automatiser pour une année



le principe est simple je voudrais :



- un dossier dans lequel il y aurait 52 images (1 images = 1 semaine)



- un compte a rebours qui dit qu’il reste 7 jours pour profiter de la promotion et qui redémarre en début de semaine pour une autre promotion donc une autre image




 





Quelqu’un peut-il m’aider je debute en javascript



Merci a vous
Cordialement VALOU

10 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
30 déc. 2008 à 16:11
bonjour,
oui, oui, on peut aider, c'est même le but d'un forum.
et donc, qu'est-ce qui plante dans ton code ? tu as un message d'erreur ?
tu as déboggé ( avec tous les navigateurs ou 1 en particulier ? )
Cordialement          [mon Site] [M'écrire] Bul         
0
Noreaga10000 Messages postés 46 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 27 janvier 2009
30 déc. 2008 à 16:56
En php, ça doit pas être bien compliqué.

Tu récupère le numéro de la semaine:
$numSemaine = strftime("%U");
Et le nombre de jour restant dans la semaine:
$jourRestant= 7 - date('w');

Ensuite tu affiches l'image correspondant à la semaine (je suppose que tes images sont nommées de 1.jpg à 52.jpg dans le dossier img/):
<?php
echo "";
?>

pour le nombre de jours restants, c'est encore plus simple:
<?php
echo "il reste ".$jourRestant." jours avant la fin de la promo";
?>
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
31 déc. 2008 à 09:57
Salut,

La solution de Noreaga est simple et efficace.
Par contre pour l'affichage j'opterai pour un compte à rebours javascript du type jours/heures/min/sec, plus dynamique, plus "aguichant", car pour le visiteur qui se connecte le 7eme jour à 23h55:10 il verra "il reste 1 jours avant ..." (pas très parlant) alors qu'avec un JS se sera "il reste 4min et 50 secondes"

Cordialement,

Kohntark -
0
Noreaga10000 Messages postés 46 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 27 janvier 2009
31 déc. 2008 à 18:02
Tout à fait d'accord, ce serait plus attrayant.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_val78 Messages postés 87 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 12 avril 2023
4 janv. 2009 à 12:56
Je ne le fait pas en js car un internaute mal intentionné pourrait déregler son horloge et il beneficirait de la promo pas interressant pour moi
mais voici le code sur lequel que travaille , je n'arrive pas a l'automatiser sur 52 semaine
Merci de m'aider

<?php
////////////////Changement de jour, de mois,d'année et d'images ////////////////////////////////
//dernier jour de la semaine 1ere semaine le 04 2eme semaine le 11 et ainsi de suite...
//semaine1
$semaine1= array(
$day = 04,// Mettre ici le jour dans le futur
$month = 01,// Mettre ici le mois dans le futur
$year = 2009,// Mettre ici l'annee dans le futur
$images = '');
//semaine2
$semaine2= array(
$day = 11,// Mettre ici le jour dans le futur
$month = 01,// Mettre ici le mois dans le futur
$year = 2009,// Mettre ici l'annee dans le futur
$images = '');
//semaine3
$semaine3= array(
$day = 18,// Mettre ici le jour dans le futur
$month = 01,// Mettre ici le mois dans le futur
$year = 2009,// Mettre ici l'annee dans le futur
$images = '');
//semaine4
$semaine3= array(
$day = 25,// Mettre ici le jour dans le futur
$month = 01,// Mettre ici le mois dans le futur
$year = 2009,// Mettre ici l'annee dans le futur
$images = '');


// $days la variable $days contient le nombre de jours (le résultat)
$days = (int)((mktime (0,0,0,$month,$day,$year) - time(void))/86400);
if ($days>=0){
echo "Il reste encore $days jour(s) jusqu'au $day/$month/$year fin de la promo
$images ";
}
else {"la fin de l'année est fini est il n'y a plus de promotion" ;
}
echo "
";
?>
0
cs_val78 Messages postés 87 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 12 avril 2023
4 janv. 2009 à 12:58
Si vous avez plus simple je suis preneuse
Merci
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
9 janv. 2009 à 09:15
Salut Val,

Je ne le fait pas en js car un internaute mal intentionné pourrait
déregler son horloge et il beneficirait de la promo pas interressant
pour moi
=>
??? impossible !!
Quand je parle de compte à rebours JS, j'entends par là que tout le traitement s'effectue côté serveur (PHP), le compte à rebours en JS n'est rien d'autre qu'une fonction initialisée à l'arrivée sur la page et qui prend en paramètre la date/heure de fin de la promo, celle ci étant donnée par le code PHP.

Il est donc impossible de dérégler cela

Cordialement,

Kohntark -
0
cs_val78 Messages postés 87 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 12 avril 2023
20 janv. 2009 à 19:47
Voici le code final de mon compte a rebour pour un promotion a la semaine d'un bijou et dont le dimanche on visualise la promotion de la semaine d'après

<?php
//---------Affichage de l'image de promotion, de la semaine precedente, sur le Dimanche----------//
$numSemaine = strftime("%U")+1;//le numéro de jour dans la semaine, de 1 à 7. (1 représente Lundi et 7 represente le Dimanche) arrivé a 7 il rajoute 1 quand il arrive a 7 donc va chercher l'image image8.jpg
//-----------------------------------------------------------------------------------------------//


//----------------Date---------------------//
$semaine = date('w');// numéro du jour dans la semaine en cours sous forme 1 || le résultat de date('w') est compris entre 0=>(lundi) et 6=>(Dimanche), ce qui représente quand même 7 valeurs...
$jours = ( date('w')>0 ) ? date('w') : 7;
$month = date('m');
//----------------------------------------//


//----------------Jour en Francais-----------------//
setlocale (LC_TIME, 'fr_FR','fra');//Mettre les jours en langue francaise
$jourL = strftime('%A'); //Ecrire les jours en entier
//-------------------------------------------------//


//------------Calcul du Decompte de Jours--------------------------//
$iReste = (6 - $jours); // on utilise 6 car le résultat de date('N') est compris entre 0 et 7 et que le DIMANCHE il n'y a pas de promotion a la Bijouterie,  1=>(pour Lundi) et 0=>(pour Dimanche)
//-----------------------------------------------------------------//


//-------Date de debut de semaine et de fin de semaine pour la promotion.---------//
//Qui commence du lundi au samedi sachant que la bijouterie est fermé le Dimanche.
  $date_string = mktime(0,0,0,date("m"),date("d"),date("Y"));


    $nombre_jourDebut = date('w')-1;
    $timestamp = $date_string - ($nombre_jourDebut * 86400);
    $iPromDebut = date("d", $timestamp);


 $nombre_jourFin = date( 'd'+7)-date('N')-1;
    $timestamp = $date_string + ($nombre_jourFin * 86400);
    $iPromReste = date("d/m/Y", $timestamp);


    // pour afficher le texte4
$texte3 = "Du ".$iPromDebut." au ".$iPromReste." pour ce bijou";
//---------------------------------------------------------------------------------//
?>




Nous sommes le <?php echo $jourL . date(' d/m/Y'); ?>.
&nbsp;

      
<?php
//-------------Changement automatique de texte------------------//
$texte1 ="Il vous reste ".$iReste." jours avant la fin de la promotion
"; 
$texte2 ="La bijouterie est FERM&Eacute;E.
Mais vous voyez la promotion de la semaine prochaine.";


if (date('w')==0){
echo $texte2;
}else{
echo $texte1.$texte3;
}
echo'
';
//--------------------------------------------------------------//
?>


<?php
 if ($year <= 2009){
?>
 .jpg" width="250" height="260">
 .jpg" width='250' height='225' hspace='35'>


<?php
 } else {
 echo "l'année est fini il n'y a plus de promotion";
 }
?>

Merci a tous
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
20 janv. 2009 à 20:32
Salut,

Je n'ai pas pris le temps de tester réellement, mais ta variable $year n'est pas définie :

Kohntark -
0
cs_val78 Messages postés 87 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 12 avril 2023
20 janv. 2009 à 20:57
Salut kohntark
exacte pour l'année
Dit moi j'ai transferer mon code sur le serveur mais pour la date final de la promotion au lieu de m'annoncer du 19 au 24 il m'annonce du 19 au 26 tu aurais un petite idée????
Merci

//--Date de debut de semaine et de fin de semaine pour la promotion.--//
//Qui commence du lundi au samedi sachant que la bijouterie est fermé le Dimanche.
  $date_string = mktime(0,0,0,date("m"),date("d"),date("Y"));


    $nombre_jourDebut = date('w')-1;
    $timestamp = $date_string - ($nombre_jourDebut * 86400);
    $iPromDebut = date("d", $timestamp);


 $nombre_jourFin = date( 'd'+7)-date('N')-1;
    $timestamp = $date_string + ($nombre_jourFin * 86400);
    $iPromReste = date("d/m/Y", $timestamp);


    // pour afficher le texte4
$texte3 = "Du ".$iPromDebut." au ".$iPromReste." pour ce bijou";
0
Rejoignez-nous