Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Problema com as URLs amigáveis de editar-video e novo-video

Boa tarde,

estou tendo problema ao acessar as páginas utilizando as URLs amigáveis editar-video e novo-video, pois quando vou utilizar elas, em vez de ir para o arquivo formulario.php como é mostrado na aula 4 do módulo 3 https://cursos.alura.com.br/course/php-web-conhecendo-padrao-mvc/task/118307 a página fica toda em branco.

Já verifiquei se tem algum erro no código mas não estou conseguindo achar nada. Estou utilizando o servidor do próprio PHP para rodar.

Código do arquivo index.php:

<?php

declare(strict_types=1);

if (!array_key_exists('PATH_INFO', $_SERVER) || $_SERVER['PATH_INFO'] === '/') {
    require_once 'listagem-videos.php';
}

elseif ($_SERVER['PATH_INFO'] === '/novo-video') {
    if ($_SERVER['REQUEST_METHOD'] === 'GET ') {
        require_once 'formulario.php';
    } elseif ($_SERVER['REQUEST_METHOD'] === 'POST ') {
        require_once 'novo-video.php';
    }
}

elseif ($_SERVER['PATH_INFO'] === '/editar-video') {
    if ($_SERVER['REQUEST_METHOD'] === 'GET ') {
        require_once 'formulario.php';
    } elseif ($_SERVER['REQUEST_METHOD'] === 'POST ') {
        require_once 'editar-video.php';
    }
}

elseif ($_SERVER['PATH_INFO'] === '/remover-video') {
    require_once 'remover-video.php';
}

Código do arquivo listagem-videos.php:

<?php
// Conexão com banco de dados
$dbPath = __DIR__ . '/banco.sqlite';
$pdo = new PDO("sqlite:$dbPath");

// Código da página
$videoList = $pdo->query("SELECT * FROM videos;")
        ->fetchAll(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/flexbox.css">
        <title>AluraPlay</title>
        <link rel="shortcut icon" href="./img/favicon.ico" type="image/x-icon">
    </head>

    <body>

        <header>

            <nav class="cabecalho">
                <a class="logo" href="/"></a>

                <div class="cabecalho__icones">
                    <a href="/novo-video" class="cabecalho__videos"></a>
                    <a href="./pages/login.php" class="cabecalho__sair">Sair</a>
                </div>
            </nav>

        </header>

        <ul class="videos__container" alt="videos alura">
            <?php foreach ($videoList as $video) : ?>
                <li class="videos__item">
                    <iframe width="100%" height="72%" src="<?= $video['url'] ?>"
                            title="YouTube video player" frameborder="0"
                            allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
                            allowfullscreen></iframe>
                    <div class="descricao-video">
                        <img src="./img/logo.png" alt="logo canal alura">
                        <h3><?= $video['title'] ?></h3>
                        <div class="acoes-video">
                            <a href="/editar-video?id=<?= $video['id'] ?>">Editar</a>
                            <a href="/remover-video?id=<?= $video['id'] ?>">Excluir</a>
                        </div>
                    </div>
                </li>
            <?php endforeach; ?>            
        </ul>
    </body>

</html>

Alguém sabe o que pode estar havendo?

2 respostas
solução!

Descobri, depois de olhar bastante acabei achando meu erro. Como não sei com excluir o post, estou vindo dizer o que foi. Eu tinha deixado um espaço depois do GET e do POST. estava assim 'GET ', em vez de 'GET', e 'POST ' em vez de 'POST'. Foi só falta de atenção mesmo.

Oi, Rodrigo!

Parabéns por solucionar o seu problema :)

Agradeço por compartilhar a solução aqui no fórum, pois isso pode ajudar as pessoas que estudam aqui na Alura :)

Bons estudos :D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software