#php #html
Вопрос:
В настоящее время я работаю над рождественским календарем для своей сестры. Я сделал html-страницу со ссылками на соответствующие страницы на каждый день. Проблема в том, что я не хочу, чтобы она могла получить доступ ко всем им сразу.
Я попытался написать php-скрипт:
lt;?php $day = date(j); if ($day = 1) { echo 'lt;a href="Days/1.html" id="1"gt; lt;div class="box"gt; lt;h2gt;1lt;/h2gt; lt;/divgt; lt;/agt;';}else{ echo 'lt;a href="Days/error.html" id="1"gt; lt;div class="box"gt; lt;h2gt;1lt;/h2gt; lt;/divgt; lt;/agt;';} ?gt;
но по какой-то причине это просто создает полный хаос. Я понятия не имею, что я делаю не так.
Комментарии:
1. Используйте
switch
для удобства логики, чтобы ограничить дату и URL-адрес, которые вы хотите сделать доступными2.
if ($day = 1)
=
задает значение, используемое==
для сравнения3. @ahoi_prause помимо проблемы (которая на самом деле является единственной =, но использование предложенного состояния переключения может сделать ваш код более понятным), ваша сестра может быть настолько умной, чтобы просто изменить URL на Days/2.html в браузере. Вы также можете добавить days.php и ограничьте вывод там (и выдайте ошибку, если день будет высоким. « $день = дата(j); если ($_GET[‘день’] gt; $день) { // ошибка здесь } // вывод на основе $_GET[‘день’] « Откройте это с помощью /days.php?день=1
Ответ №1:
Если меняется только URL-адрес, установите для него значение a var
, а затем просто используйте его в HTML, а не повторяйте его каждый раз.
Пример
Установите $url
с switch
помощью инструкции, используя резервный URL-адрес по умолчанию или URL-адрес ошибки, если совпадение отсутствует.
lt;?php $url = ""; $day = date("j"); switch($day) { case 1: $url = "Url 1"; break; case 2: $url = "Url 2"; break; default: $url = "Default URL"; break; } ?gt;
Обновите встроенный HTML-код следующим образом
lt;a href="lt;?php echo $url; ?gt;" id="1"gt; lt;div class="box"gt; lt;h2gt;1lt;/h2gt; lt;/divgt; lt;/agt;
Комментарии:
1. Отсутствует
'
в дате парам. Должно бытьdate('j')
. =)2. @cottton Oops обновлено 😀