Bom dia ! tudo bem? Atualmente ao direcionar até a pagina de editar, entra no condicional dentro do index.php pra direcionar até a rota certa, e realmente traz o arquivo correto do formulário, porém não estou conseguindo fazer o "select" do ID que está na URL, ao fazer um dump do $id está vazio, e simplesmente não entra no Condicional do formulario.php pra rodar a query select do banco. Alguma dica? Obrigado desde já!
Obs: Estou usando Wamp porém já configurei o vhosts + host + htacess para o funcionamento do controller/rotas, como visto na url no navegador abaixo, não estou com o prefixo "localhost" da configuração padrão do Wamp.
Arquivo formulario.php:
<?php
include 'conexao.php';
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
$video = [
'url' => '',
'title' => '',
];
if ($id !== false && $id !== null) {
$statement = $conexao->prepare('SELECT FROM videos WHERE id = ?;');
$statement->bindValue(1, $id, PDO::PARAM_INT);
$statement->execute();
$video = $statement->fetch(\PDO::FETCH_ASSOC);
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/estilos.css">
<link rel="stylesheet" href="css/estilos-form.css">
<link rel="stylesheet" href="css/flexbox.css">
<title>AluraPlay</title>
<link rel="shortcut icon" href="./img/favicon.ico" type="image/x-icon">
</head>
<body>
<!-- Cabecalho -->
<header>
<nav class="cabecalho">
<a class="logo" href="/"></a>
<div class="cabecalho__icones">
<a href="/novo-video/" class="cabecalho__videos"></a>
<a href="/aluraplay/" class="cabecalho__sair">Sair</a>
</div>
</nav>
</header>
<main class="container">
<form class="container__formulario"
method="post">
<h2 class="formulario__titulo">Envie um vídeo!</h2>
<div class="formulario__campo">
<label class="campo__etiqueta" for="url">Link embed</label>
<input name="url"
value="<?= $video['url']; ?>"
class="campo__escrita"
required
placeholder="Por exemplo: https://www.youtube.com/embed/FAY1K2aUg5g"
id='url' />
</div>
<div class="formulario__campo">
<label class="campo__etiqueta" for="titulo">Titulo do vídeo</label>
<input name="titulo"
value="<?= $video['title']; ?>"
class="campo__escrita"
required
placeholder="Neste campo, dê o nome do vídeo"
id='titulo' />
</div>
<input class="formulario__botao" type="submit" value="Enviar" />
</form>
</main>
</body>
</html>
Arquivo conexao.php :
<?php
//passo 1 conexao db
$server = "127.0.0.1";
$usuario = "root";
$senha = "";
$banco = "course_php";
try {
$conexao = new PDO('mysql:host=localhost;dbname=course_php', $usuario, $senha);
//abaixo tratamento de erro
$conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//abaixo exibe tratamento de erro
} catch (PDOException $erro) {
echo "Ocorreu erro conexao : {$erro->getMessage()}";
$conexao = null;
}
Arquivo Index.php : <?php
declare(strict_types=1);
if (!array_key_exists('REDIRECT_URL', $_SERVER) || $_SERVER['REDIRECT_URL'] === '/') {
require_once 'exibicao-videos.php';
} elseif ($_SERVER['REDIRECT_URL'] === '/form') {
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
require_once 'formulario.php';
} elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
require_once 'novo-video.php';
}
} elseif ($_SERVER['REDIRECT_URL'] === '/edit') {
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
require_once 'formulario.php';
} elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
require_once 'editar-video.php';
}
} elseif ($_SERVER['REDIRECT_URL'] === '/remover-video') {
require_once 'remover-video.php';
} else {
http_response_code(404);
}