【发布时间】:2021-07-15 14:00:24
【问题描述】:
我的代码有问题。我正在尝试实现一个简单的博客。显示所有帖子的列表有效。但是当我点击特定帖子时,该帖子的页面不起作用。
这是我的文件夹的结构
这是我的 index.php
<?php
require_once('controleurs/Controleur.php');
require_once('modeles/Modele.php');
require_once('modeles/Photo.php');
require_once('modeles/Photos.php');
$controleur = new Controleur();
if (isset($_GET['page']) && 'photo' === $_GET['page']) {
$controleur->afficherPhoto();
} else {
$controleur->listerPhotos();
}
这是我的 Controleur.php :
class Controleur
{
public function listerPhotos()
{
$photos = new Photos();
$photos = $photos->listerPhotos();
require_once('vues/liste-photos.php');
}
public function afficherPhoto()
{
$photo = new Photo();
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
$photo = $photo->afficherPhoto($_GET['id']);
}
require_once('vues/affiche-photo.php');
}
}
这是 Photo.php 类
class Photo
{
use Modele;
private $id;
private $fichier;
private $titre;
public function afficherPhoto($id)
{
if (!is_null($this->pdo)) {
$stmt = $this->pdo->prepare('SELECT * FROM photo WHERE id = ?');
}
$photo = null;
if ($stmt->execute([$id])) {
$photo = $stmt->fetchObject('Photo');
if(!is_object($photo)) {
$photo = null;
}
}
return $photo;
}
public function getId()
{
return $this->id;
}
public function getFichier()
{
return $this->fichier;
}
public function getTitre()
{
return $this->titre;
}
}
这是我的 liste-photos.php(它有效!)
<?php
$titre = 'Mon book';
ob_start();
?>
<article>
<?php foreach ($photos as $photo): ?>
<a href="photo.php?id=<?= $photo->getId() ?>">
<img src="photos/<?= $photo->getFichier() ?>" width="250"/>
</a>
<h2><?= $photo->getTitre() ?></h2>
<?php endforeach; ?>
</article>
<?php
$contenu = ob_get_clean();
require_once('layout.php');
这是我的 affiche-photo.php(它不起作用!):
$titre = 'Une photo de mon book';
if (is_null($photo)):
$contenu = "Cette photo n'existe pas.";
else:
ob_start();
?>
<article>
<img src="photos/<?php $photo->getFichier(); ?>" width="500" />
<h2><?php $photo->getTitre(); ?></h2>
</article>
<?php
$contenu = ob_get_clean();
endif;
require_once('layout.php');
如果你能帮忙,谢谢!!!
【问题讨论】:
-
什么确切不起作用?您尝试过什么来解决问题?
-
我有我的 index.php 以及所有帖子的列表。当我单击其中一个时,我想查看帖子的页面(使用 url 中的 id)。但是我有一个错误,找不到 URL BookPhoto/photo.php?id=1
-
您在照片页面上收到 500 错误代码还是 200?你在那里看到任何信息吗?那里不存在哪些信息?
-
它告诉我:未找到 在此服务器上未找到请求的 URL。 Apache/2.4.46 (Win64) OpenSSL/1.1.1h PHP/8.0.1 服务器在 localhost 端口 80
-
Ì 认为我的代码没有写出好的 url 但我不明白为什么