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

id/url

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Na minha pagina não retorna id na url http://localhost/blog/admin/excluir-artigo.php?%20id=

6 respostas

Olá, Victor! Tudo bem?

Você consegue mandar aqui o seu código dos arquivos excluir-artigo.php e index.php?

<?php

require '../config.php';
include '../src/artigo.php';
$artigo = new Artigo($mySql);
$artigos = $artigo ->exibir();

?>
<!DOCTYPE html>
<html lang="pt-br">

<head>
    <title>Página administrativa</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="../style.css">
</head>

<body>
    <div id="container">
        <h1>Página Administrativa</h1>
        <div>
        <?php foreach($artigos as $art) { ?>
            <div id="artigo-admin">
                 <p><?php echo $art['titulo']; ?></p>
                     <nav>
                        <a class="botao" href="editar-artigo.php? id= <?php $art['id'];?>" >Editar</a>
                         <a class="botao" href="excluir-artigo.php? id=<?php $art['id'];?>">Excluir</a>
                     </nav>
            </div>
        <?php } ?>
        </div>
        <a class="botao botao-block" href="adicionar-artigo.php">Adicionar Artigo</a>
</html>
<?php
require '../config.php';
include '../src/artigo.php';

if($_SERVER ['REQUEST_METHOD'] === 'POST'){
$artigo = new Artigo($mySql);
$artigo->excluir($_POST['id']);

header('Location:/blog/admin/index.php');
die();
}
?>

<!DOCTYPE html>
<html lang="pt-br">

<head>
    <link rel="stylesheet" type="text/css" href="../style.css">
    <meta charset="UTF-8">
    <title>Excluir Artigo</title>
</head>

<body>
    <div id="container">
        <h1>Você realmente deseja excluir o artigo?</h1>
        <form method="post" action="excluir-artigo.php">
            <p>
                <input type="hidden" name="id" value="<?php $_GET['id']; ?>" />
                <button class="botao">Excluir</button>
            </p>
        </form>
    </div>
</body>

</html>

Olá, Victor!

Você disse que está com problemas na página e que não retorna id.

Ao acessar uma página ou buscar algum recurso, usamos uma URL, e por enquanto sua URL está dessa forma:

http://localhost/blog/admin/excluir-artigo.php?%20id=

Podemos destacar 2 pontos importantes:

  • 1º Ponto: Uma URL não possui espaços entre as letras, então para lidar com esse problema o códificador URL, codifica o caractere de espaço em %20. Entretanto, para este caso, nossa URL não deve contar esse tipo de caractere ou codificação.

A gente resolve isso removendo os espaços que foram colocados no atributo href (Só não iremos remover os espaços que estão dentro da tag <?php ?>, pois eles não são interpretados.).

Troque isso:

index.php

<nav>
    <a class="botao" href="editar-artigo.php? id= <?php $art['id'];?>">Editar</a>
    <a class="botao" href="excluir-artigo.php? id=<?php $art['id'];?>">Excluir</a>
</nav>

Por isso:

index.php

<nav>
    <a class="botao" href="editar-artigo.php?id=<?php $art['id'];?>">Editar</a>
    <a class="botao" href="excluir-artigo.php?id=<?php $art['id'];?>">Excluir</a>
</nav>
  • 2º Ponto: O id não está aparecendo porque faltou imprimir o id no HTML, para isso, adicione o echo antes da variável:

    index.php

<nav>
    <a class="botao" href="editar-artigo.php?id=<?php echo $art['id'];?>">Editar</a>
    <a class="botao" href="excluir-artigo.php?id=<?php echo $art['id'];?>">Excluir</a>
</nav>

excluir-artigo.php

 <form method="post" action="excluir-artigo.php">
            <p>
                <input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" />
                <button class="botao">Excluir</button>
            </p>
        </form>

Realizando estas correções acredito que vá funcionar.

Bons estudos, Victor =)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓

Obrigado pela orientação. consegui resolver com essa solução !

solução!

Que bom que consegui sanar sua dúvida!

Não se esquece de marcar o tópico como solucionado =)