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

HTTP ERROR 500

Está dando esse erro para mim quando tento abrir a página das categorias no navegador (127.0.0.1:8888/categorias.php), enquanto a página inicial e a página dos produtos (127.0.0.1:8888/produtos.php) abrem normalmente.

Gostaria de acompanhar o curso fazendo as atividades aqui, só que assim não consigo passar da primeira parte (Curso de PHP com PDO parte 1: Persistindo os bancos de dados')

8 respostas

Você teria como informar aqui o seu código do arquivo com erro 500 aqui?

Bom dia, não modifiquei o código da aula 01.

Segue.

Categoria.php

<?php

class Categoria
{

    public $id;
    public $nome;

    public function listar()
    {
        $query = "SELECT id, nome FROM categorias";
        $conexao = new PDO('mysql:host=127.0.0.1;dbname=estoque', 'root', 'alura');
        $resultado = $conexao->query($query);
        $lista = $resultado->fetchAll();
        return $lista;
    }
}

categorias.php

<?php require_once 'classes/Categoria.php'; ?>
<?php
    $categoria = new Categoria();
    $lista = $categoria->listar();
?>
<?php require_once 'cabecalho.php' ?>
<div class="row">
    <div class="col-md-12">
        <h2>Categorias</h2>
    </div>
</div>

<div class="row">
    <div class="col-md-4">
        <a href="categorias-criar.php" class="btn btn-info btn-block">Crair Nova Categoria</a>
    </div>
</div>

<div class="row">
    <div class="col-md-12">
        <table class="table">
            <thead>
                <tr>
                    <th>Id</th>
                    <th>Nome</th>
                    <th class="acao">Editar</th>
                    <th class="acao">Excluir</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($lista as $linha): ?>
                    <tr>
                        <td><a href="/categorias-detalhe.php" class="btn btn-link"><?php echo $linha['id'] ?></a></td>
                        <td><a href="/categorias-detalhe.php" class="btn btn-link"><?php echo $linha['nome'] ?></a></td>
                        <td><a href="/categorias-editar.php?id=<?php echo $linha['id'] ?>" class="btn btn-info">Editar</a></td>
                        <td><a href="/categorias-excluir-post.php?id=<?php echo $linha['id'] ?>" class="btn btn-danger">Excluir</a></td>
                    </tr>
                <?php endforeach ?>
            </tbody>
        </table>
    </div>
</div>
<?php require_once 'rodape.php' ?>

categorias-criar.php:

<?php require_once 'cabecalho.php' ?>

<div class="row">
    <div class="col-md-12">
        <h2>Criar Nova Categoria</h2>
    </div>
</div>

<form action="#" method="post">
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="form-group">
                <label for="nome">Nome da Categoria</label>
                <input name="nome" type="text" class="form-control" placeholder="Nome da Categoria">
            </div>
            <input type="submit" class="btn btn-success btn-block" value="Salvar">
        </div>
    </div>
</form>

<?php require_once 'rodape.php' ?>

Me responde uma outra coisa. Qual o S.O. vc usa (windows/linux/mac)?

Você verificou se o PDO está presente no seu PHP?

Para tirar a duvida cria um arquivo chamado phpinfo.php dentro do seu projeto com o conteúdo:

<?php
echo phpinfo();

Daí você acessa ele em 127.0.0.1:8888/phpinfo.php e procure pelo modulo PDO. Veja se na lista de 'PDO Drivers' tem o MySQL

Eu uso o windows.

Seguindo os passos que você falou, o PDO está presento no meu PHP (tem o mysql na lisde de 'PDO Drivers').

solução!

Então, se é windows, faz o seguinte:

Abra o prompt de comando; Acesse a pasta de seu projeto

```
cd c:\caminho\do\seu\projeto
```

Execute

```
php -S localhost:8000'
```

Abra o navegador e acesse 'http://localhost:8000/categorias.php'

O terminal deverá mostrar qual é o erro.

Apareceu:

Not Found The requested resource /categorias.php' was not found on this server.

Você deixou a aspa simples na frente do endereço (/categorias.php' ).

Você deve acessar /categorias.php e observar a saída do terminal.

Eu peguei exatamente o código que você postou aqui no fórum e rodei na minha máquina, tudo funciona.

Uma última dúvida: Você criou o banco de dados 'estoque' em seu MySQL e a senha de seu 'root' é 'alura'?

Obrigada pelas dicas! Consegui!