Ir para conteúdo
Fórum Script Brasil
  • 0

Uma mãozinha...


Pedro Augusto

Pergunta

Olá, estou trabalhando neste sisteminha para um site meu, mas estou iniciando em php... queria saber se há algo que eu posso fazer pra deixar o sistema mais limpo, ou se eu usei algum código que está em desuso e pode ser substituído... Se puderem me ajudar a deixa-lo melhor, sou grato! Aí vai:

<?php
    require("log_enter.php");
?>
    <form method="post" action="<?php echo $PHP_SELF ?>">
    <input type="submit" name="escrever" value="Nova Notícia"></p>
    </form>
<?php
    include('config.php');
    if(isset($_POST['inserir']))
    {
        $conexao = mysql_connect("$dbhost","$dbuser","$dbpass");
        mysql_select_db("$dbname");

        $titulo    = $_POST['titulo'];
        $corpo     = $_POST['corpo'];
        $data      = $_POST['data'];
        $hora      = $_POST['hora'];

        # Insere os novos dados no Banco de Dados
        $sql = "insert into noticias (titulo, corpo, data, hora) Values ('$titulo','$corpo','$data','$hora')";

        $query = mysql_query($sql);

        # Apos inserir os dados
        echo "<p>Sua notícia foi inserida com sucesso.<p>\n";

    }

    else if(isset($_POST['escrever']))
    {
        $data = date ("d/m/Y",time());
        $hora = strftime("%Hh%M");
       
        # Mostra formulario para escrever os dados
        echo "<form method=\"post\" action=\"$PHP_SELF\">
        <p>Título:<br><input type=\"text\" name=\"titulo\" size=\"30\"></p>
        <p>Corpo:<br><textarea name=\"corpo\" rows=\"6\" cols=\"40\"></textarea></p>
        <p><input type='hidden' name='data' value='$data'>
        <input type='hidden' name='hora' value='$hora'>
        <input type='hidden' name=\"pass\" value=\"$senha\">
        <input type=\"submit\" name=\"inserir\" value=\"Publicar\"></p>
        </form>";

    }
    
    // Deletar
    else if(isset($_POST['deletar']))
    {
        $conexao = mysql_connect("$dbhost","$dbuser","$dbpass");
        mysql_select_db("$dbname");

        $id = $_POST['id'];

        # Deleta os dados no Banco de Dados
        $sql = mysql_query("delete from noticias where id = $id");

        # Apos deletar a noticia
        echo "<p>Sua notícia foi deletada com sucesso.</p>\n";
    }
    
    // Atualizar
    else if(isset($_POST['update']))
    {
        $conexao = mysql_connect("$dbhost","$dbuser","$dbpass");
        mysql_select_db("$dbname");

        $id        = $_POST['id'];
        $titulo    = $_POST['titulo'];
        $corpo     = $_POST['corpo'];
        $data      = $_POST['data'];
        $hora      = $_POST['hora'];

        # Atualiza os dados no Banco de Dados
        $sql = "update noticias set titulo = '$titulo', corpo = '$corpo', data = '$data', hora = '$hora' where id = $id";

        $query = mysql_query($sql);

        # Apos atualizar a noticia
        echo "<p>Sua notícia foi atualizada com sucesso.<p>\n";
    }
    else if(isset($_POST['recuperar']))
    {
        $conexao = mysql_connect("$dbhost","$dbuser","$dbpass");
        mysql_select_db("$dbname");

        $id  = $_POST['id'];
       
        # Procura os dados no Banco de Dados
        $sql = "select * from noticias where id = $id";
        $query = mysql_query($sql);

        $linha = mysql_fetch_array($query);
    {
        # Mostra os dados a serem atualizados
        echo "<form method=\"post\" action=\"$PHP_SELF\">
        <p>Titulo da notícia:<br><input type=\"text\" name=\"titulo\" size=\"30\" value=\"" . $linha["titulo"] . "\"></p>
        <p>Corpo da notícia:<br><textarea name=\"corpo\" rows=\"6\" cols=\"40\">" . $linha["corpo"] . "</textarea></p>
        <p><input type='hidden' name=\"id\" value=\"" . $linha["id"] . "\">
        <input type='hidden' name=\"pass\" value=\"$senha\">
        <input type='hidden' name=\"data\" value=\"" . $linha["data"] . "\">
        <input type='hidden' name=\"hora\" value=\"" . $linha["hora"] . "\">
        <input type=\"submit\" name=\"update\" value=\"Atualizar\"></p>
        </form>";
    }
    }
?>
        
<?
        $sql = "select * from noticias order by id DESC";

        $conexao = mysql_connect("$dbhost","$dbuser","$dbpass");
        mysql_select_db("$dbname");

        $query = mysql_query($sql);

    while($linha = mysql_fetch_array($query))
    {
        # Mostra os dados que estao no Banco de Dados
        echo "<form method=\"post\" action=\"$PHP_SELF\">
        <p><b>" . $linha["id"] . " | " . $linha["titulo"] . "</b><br /><i>" . $linha["data"] . " - " . $linha["hora"] . "</i></p>
        <p>" . $linha["corpo"] . "</p>
        <p><input type='hidden' name=\"id\" value=\"" . $linha["id"] . "\">
        <input type='hidden' name=\"pass\" value=\"$senha\">
        <input type=\"submit\" name=\"recuperar\" value=\"Editar\"> <input type=\"submit\" name=\"deletar\" value=\"Deletar\"></p>
        </form>";
    }
?>

Falow, até mais.

Pedro Augusto

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Cada um tem um jeito de fazer... dois detalhes:

$data = date ("d/m/Y",time());

Você não precisa colocar o time(), o segundo argumento é opcional, se você não incluir nada o PHP vai entender que você quer o timestamp atual (ou seja, o time())...

$data = date ("d/m/Y");

Outro detalhe:

$hora = strftime("%Hh%M");

Em vez de strftime, você também poderia ter utilizado a função date (ai é questão de gosto mesmo):

$hora = date("H\hi");

Coisa interessantes pra você aprender, utilize a função mysql_real_escape_string() para dar uma boa aliviada na questão do sql injection... ela faz algo muito semelhando ao popular addslashes...

Sempre que possível só passar números para serem verificados, por exemplo:

else if(isset($_POST['deletar']))
    {
        $conexao = mysql_connect("$dbhost","$dbuser","$dbpass");
        mysql_select_db("$dbname");

        $id = $_POST['id'];

        # Deleta os dados no Banco de Dados
        $sql = mysql_query("delete from noticias where id = $id");

        # Apos deletar a noticia
        echo "<p>Sua notícia foi deletada com sucesso.</p>\n";
    }
id geralmente é um número, então você poderia utilizar o is_numeric para ver se ele é válido, por exemplo:
else if(isset($_POST['deletar']) AND is_numeric($_POST['id']))
    {
        $conexao = mysql_connect("$dbhost","$dbuser","$dbpass");
        mysql_select_db("$dbname");

        $id = $_POST['id'];

        # Deleta os dados no Banco de Dados
        $sql = mysql_query("delete from noticias where id = $id");

        # Apos deletar a noticia
        echo "<p>Sua notícia foi deletada com sucesso.</p>\n";
    }

Isso dai também é uma questão de segurança, pra evitar que o cara passe outra coisa ali que não seja número, por exemplo, no seu caso se o cara quiser ele pode mandar algo do tipo:

0 OR id = '%%'

Pronto, tá feito a caca...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...