度々、申し訳ありません。リンクのURL試しにコピーしたものになっていましたので編集しました。
PHPでカレンダーを作成をしていました。
前月 翌月のリンクを押すと
object not found!になるエラーを解決したい。
カレンダーのメイン画面の表示は問題なくできます。
Youtubeの写経です。動画内PHPバージョンは5.3.3、
私の環境はPHP7.3.8です。
windows 10 Pro 64 ver1903
ブラウザはchromeです。
試したこと
var_dump($_GET) 結果array(0){}
そもそもここでうまく受け取れていない??
エラー画面のURLの末尾はy=2020&m=03がついているので必要な情報は送れているのかと・・・。
解決方法教えてください。よろしくお願いします。
<ソースコード>
<!DOCTYPE html> <html> <head> <title>PHPカレンダー</title> <meta charset="utf-8"> <?php var_dump($_GET); $year = 0; //表示する年 $month = 0; //表示する月 $dow = ['日', '月', '火', '水', '木', '金', '土']; if (isset($_GET['y'])) { $year = intval($_GET['y']); } if (isset($_GET['m'])) { $month = intval($_GET['m']); } if (!$year || !$month || !checkdate($month, 1, $year)) { //現在の年月 $now_date = new DateTime(); $year = $now_date->format('Y'); $month = $now_date->format('m'); } try { $datetime = new DateTime("{$year}-{$month}-1"); //表示する月(例外処理) } catch (Exception $e) { echo $e->getMessage(); exit(1); } $first_day = $datetime->format('w'); //1日の曜日 ?> </head> <body> <?php echo $datetime->format('Y年m月'); ?> <table> <caption><?php $datetime->format('Y年m月') ?></caption> <thead> <tr> <?php foreach ($dow as $day) : ?> <th><?php echo $day ?></th> <?php endforeach ?> </tr> </thead> <tbody> <tr> <?php for ($date = 1; $date <= $datetime->format('t'); $date++) { ?> <?php if ($date === 1) { $i = 0; while ($i < $first_day) { ?> <td> </td> <?php $i++; } } ?> <td><?php echo $date ?></td> <?php if ($date % 7 === 7 - $first_day) { ?> </tr> <tr> <?php } ?> <?php } ?> </tr> </tbody> </table> <p> <?php $datetime->modify('-1 month'); ?> <a href="/calen.php?y=<?php echo $datetime->format('Y') ?>&m=<?php echo $datetime->format('m') ?>">前月</a> <?php $datetime->modify('+2 months'); ?> <a href="/calen.php?y=<?php echo $datetime->format('Y') ?>&m=<?php echo $datetime->format('m') ?>">翌月</a> </p> </body> </html>
回答1件
あなたの回答
tips
プレビュー