5542 sujets

Sémantique web et HTML

Bonjour,

J'aimerai savoir comment mettre en lien à chaque jour du mois de 1 à 31 une page correspondante au jour sur un site internet avec du code php ?

Belle journée à vous.
Quelque chose de ce genre ?

<?php for ($i = 1; $i <= 31; $i++) : ?>
<a href="./page-du-<?php echo $i; ?>.htm"><?php echo $i; ?></a>
<?php endfor; ?>
Bonjour,

Oui dans l'idée je pense que c'est quelque chose comme ça mais en fait il faudrait une page différentes pour chaque jours du mois. Donc dans le code en face des jours il faudrait que j'ai la possibilité de mettre 31 pages (liens) différentes.

Ça serait chouette de pouvoir faire ça, merci beaucoup.
Belle journée à tout le monde
Modérateur
Salut,

Le code que Anedja t'as fourni est une boucle qui crée 31 liens différents. Ta demande cn'est absolument pas claire... tu n'as pas un bout de code ?
Non désolé je n'ai pas de bout de code, mais ma demande est juste que pour le moment j'ai toutes les pages qui correspondent aux jours du mois ( de 1 à 31 ) et je ne sais pas comment les greffer aux jours correspondant.

Je vais vous mettre le code que j'ai déjà pour afficher sur le site la date correspondante du jour.
<script language="JavaScript">


	document.write("<font color='#000000' size='4' face='arial'>")
	var mydate=new Date()
	var year=mydate.getYear()
	if (year<2000)
	year += (year < 1900) ? 1900 : 0
	var day=mydate.getDay()
	var month=mydate.getMonth()
	var daym=mydate.getDate()
	if (daym<10)
	daym="0"+daym
	var dayarray=new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi")
	var montharray=new Array(" janvier "," fevrier "," mars ","avril ","mai ","juin","juillet ","aout ","septembre "," octobre "," novembre "," décembre ")
	document.write("   "+dayarray[day]+", "+daym+" "+montharray[month]+year+" ")
	document.write("</b></i></font>")
	</script>

Modifié par _laurent (28 Feb 2022 - 16:01)
En gros je veux la date qui s'affiche sur le site au jour correspondant quand on va sur le site.

Et par la suite pour le code il me faudrait un truc du style :
Si tel date alors ouvrir cette page en cliquant dessus la date
Si tel date alors ouvrir cette page en cliquant dessus la date

Ça pour les 31 jours.

Merci d'avance et belle journée à tous
Modérateur
Salut,

C'est du Js pas du PHP...
Bah au moment ou tu ecris la date il suffit d'écrire un lien avec le bon numéro dans l'url selon comment tu as appelé tes pages. Elles s'apellent comment tes pages ?
Modérateur
Et l'eau,

Le mieux est d'afficher un calendrier. En php, ça se passe comme ça :

<?php 
if(!isset($_GET['m']) && !isset($_GET['y'])){
	$timestamp = @mktime(0, 0, 0, date('m'), 1, date('Y'));
}else{
	$timestamp = @mktime(0, 0, 0, $_GET['m'], 1, $_GET['y']);
}

if(date('m', $timestamp) == date('m') && date('Y', $timestamp) == date('Y')){
	$coloreNum = date('d');
}


$m = array(
	"01" => "Janvier", 
	"02" => "Février", 
	"03" => "Mars", 
	"04" => "Avril",
	"05" => "Mai", 
	"06" => "Juin", 
	"07" => "Juillet", 
	"08" => "Août",
	"09" => "Septembre", 
	"10" => "Octobre",  
	"11" => "Novembre", 
	"12" => "Décembre"
);


$j = array(
	'Dimanche', 
	'Lundi', 
	'Mardi', 
	'Mercredi', 
	'Jeudi', 
	'Vendredi', 
	'Samedi'
);

$numero_mois = date('m', $timestamp);
$annee = date('Y', $timestamp);

switch($numero_mois){
	case "12":
		$annee_avant = $annee;
		$annee_apres = $annee + 1;	
		$mois_avant = $numero_mois - 1;
		$mois_apres = 01;		
		break;
	
	case "01":
		$annee_avant = $annee - 1;	
		$annee_apres = $annee;
		$mois_avant = 12;		
		$mois_apres = $numero_mois + 1;
		break;
	
	default :
		$annee_avant = $annee;
		$annee_apres = $annee;
		$mois_avant = $numero_mois - 1;
		$mois_apres = $numero_mois + 1;
}


$numero_jour1er = date('w', $timestamp);  

if ($numero_jour1er == 0){
	$numero_jour1er = 6; 
}else{
	$numero_jour1er--;
}


?>
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
<style type="text/css">
.calendrier{
	width: 220px;
}
nav{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 15px 5px;
	border: 1px solid #333;
	border-bottom: none;
}
table{
	font-family:Trebuchet MS, Arial, Helvetica, sans-serif;
	font-size:15px;
	text-align:center;
	width:220px;
	padding:10px;
	border: 1px solid #333;
	border-top: none;
	color:#333;
}
caption{
	caption-side: bottom;
}
table a, nav a{
	text-decoration:none;
	color:#333;
}
.lien_calendrier_jour a{
	background-color: grey;
	color:white;
	display:block;
}
.lien_calendrier a:hover{
	background-color:#e3ffd6;
	display:block;
}
</style>
</head>

<body>
<div class="calendrier">
	<?php 
		$mask = "%s?m=%s&amp;y=%s";
		$prev = sprintf($mask, htmlspecialchars($_SERVER['PHP_SELF']), $mois_avant,$annee_avant);
		$next = sprintf($mask, htmlspecialchars($_SERVER['PHP_SELF']), $mois_apres, $annee_apres);
	?>		
	<nav>
		<div><a href="<?= $prev ?>">&#9668;</a></div>
		<div><?= sprintf('%s %s', $m[$numero_mois], $annee) ?></div>
		<div><a href="<?= $next ?>">&#9658;</a></div>
	</nav>
	<table>
		<caption>Calendrier</caption>
		<thead>
		<tr>
			<th scope="col">L</th>
			<th scope="col">M</th>
			<th scope="col">M</th>
			<th scope="col">J</th>
			<th scope="col">V</th>
			<th scope="col">S</th>
			<th scope="col">D</th>
		</tr>
		</thead>
		<tbody>
		<?php
			$quel_page="ma_page.php";
			echo '<tr>'; 
			for($i = 0 ; $i < $numero_jour1er ; $i++){ 
				echo '<td></td>';
			}
			for($i = 1 ; $i <= 7 - $numero_jour1er; $i++){	
				echo '<td class="';
				if(isset($coloreNum) && $coloreNum == $i){
					echo 'lien_calendrier_jour';
				}else{
					echo 'lien_calendrier';
				}
				echo '"><a href="'.$quel_page.'?d='.$i.'&m='.$numero_mois.'&y='.$annee.'" target="_self">'.$i.'</a></td>';	
			}
			echo '</tr>';
			$nbLignes = ceil((date('t', $timestamp) - ($i-1)) / 7);
			for($ligne = 0 ; $ligne < $nbLignes ; $ligne++){
				echo '<tr>'; 
				for($colone = 0 ; $colone < 7 ; $colone++){
					if($i <= date('t', $timestamp)){
						echo '<td class="';
						if(isset($coloreNum) && $coloreNum == $i){
							echo 'lien_calendrier_jour';
						}else{
							echo 'lien_calendrier';
						}
						echo '"><a href="'.$quel_page.'?d='.$i.'&m='.$numero_mois.'&y='.$annee.'" target="_self">'.$i.'</a></td>';
					}else{
						
						echo '<td></td>';
					}
					$i = $i +1;
				}
				echo '</tr>';
			}
		?>
		</tbody>
	</table>
</div>
</body>
</html>


ps : J'ai mis une police principale au <table> qui peut faire vaciller le script. Faites attention !
Modifié par niuxe (01 Mar 2022 - 01:52)
Merci pour le code.

Par contre je m'y connais pas du tout en code et comme tu me l'a dit, j'ai copié coller ton code et ça ne marche pas..

Si tu pouvais me guider merci d'avance.