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

Signaler
Messages postés
64
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 avril 2020
-
Messages postés
64
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 avril 2020
-
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

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
10
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         
Messages postés
46
Date d'inscription
vendredi 24 octobre 2008
Statut
Membre
Dernière intervention
27 janvier 2009

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";
?>
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
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 -
Messages postés
46
Date d'inscription
vendredi 24 octobre 2008
Statut
Membre
Dernière intervention
27 janvier 2009

Tout à fait d'accord, ce serait plus attrayant.
Messages postés
64
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 avril 2020

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 "
";
?>
Messages postés
64
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 avril 2020

Si vous avez plus simple je suis preneuse
Merci
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
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 -
Messages postés
64
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 avril 2020

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
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Salut,

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

Kohntark -
Messages postés
64
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 avril 2020

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