No Curso de PHP e MySQL: Criando uma webapp -> 03. adicionando uma artigo no banco, ao tentar acessar a página no navegador clicando em incluir um artigo (http://localhost/blog/admin/admin/adicionar-artigo.html) aparece o seguinte erro: "Not Found The requested URL was not found on this server.
Apache/2.4.54 (Win64) OpenSSL/1.1.1p PHP/8.1.10 Server at localhost Port 80"
Segue o código do VSC do arquivo adicionar-artigo.php
<?php
require '../config.php';
require '../src/Artigo.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$artigo = new Artigo($mysql);
$artigo->adicionar($_POST['titulo'], $_POST['conteudo']);
//redirecionar
header('Location: adicionar-artigo.php');
die();
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<link rel="stylesheet" type="text/css" href="../style.css">
<meta charset="UTF-8">
<title>Adicionar Artigo</title>
</head>
<body>
<div id="container">
<h1>Adicionar Artigo</h1>
<form action="adicionar-artigo.php" method="post">
<p>
<label for="">Digite o título do artigo</label>
<input class="campo-form" type="text" name="titulo" id="titulo" />
</p>
<p>
<label for="">Digite o conteúdo do artigo</label>
<textarea class="campo-form" type="text" name="conteudo" id="conteudo"></textarea>
</p>
<p>
<button class="botao">Criar Artigo</button>
</p>
</form>
</div>
</body>
</html>
Segue o código do VSC do arquivo Artigo.php
<?php
class Artigo
{
private $mysql;
public function __construct(mysqli $mysql)
{
$this->mysql = $mysql;
}
public function adicionar(string $titulo, string $conteudo): void
{
$insereArtigo = $this->mysql->prepare('INSERT INTO artigos (titulo, conteudo) Values(?, ?);');
$insereArtigo->bind_param('ss', $titulo, $conteudo);
$insereArtigo->execute();
}
public function exibirTodos(): array
{
$resultado = $this->mysql->query('SELECT id, titulo, conteudo FROM artigos');
$artigos = $resultado->fetch_all(MYSQLI_ASSOC);
return $artigos;
}
public function encontrarPorId(string $id): array
{
$selecionaArtigo = $this->mysql->prepare("SELECT id, conteudo, titulo FROM artigos WHERE id = ?");
$selecionaArtigo->bind_param('s', $id);
$selecionaArtigo->execute();
$artigo = $selecionaArtigo->get_result()->fetch_assoc();
return $artigo;
}
}
Segue o código do VSC do arquivo index.php
<?php
require 'config.php';
include 'src/Artigo.php';
$artigo = new Artigo($mysql);
$artigos = $artigo->exibirTodos();
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<title>Meu Blog</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="container">
<h1>Meu Blog</h1>
<?php foreach($artigos as $artigo): ?>
<h2>
<a href="artigo.php?id=<?php echo $artigo['id']; ?>">
<?php echo $artigo['titulo']; ?>
</a>
</h2>
<p>
<?php echo $artigo['conteudo'];?>
</p>
<?php endforeach; ?>
</div>
</body>
</html>