SdevLab – Exemplo de Código | PHP Exec

Eae galera!

Este código é muito legal, porém é um pouco perigoso. Ele executa um programa externo via PHP. Com ele podemos por exemplo inserir uma funcionalidade que executa um arquivo bat, abre algum programa do windows, e por aí vai. O uso depende da criatividade do usuário. Vamos para o post!

Exemplo de código – PHP Exec

Como o próprio nome já sugere, esta função executa um programa externo.  No trecho abaixo o exec vai abrir o notepad e a calculadora do windows quando a página que ele estiver contido for carregada:

<?php
exec('notepad');
exec('calc');
?>

Como esta não é a única aplicação do exec (na verdade é o exemplo mais simples que poderia existir) segue abaixo uma idéia do poder desta função:

<?php
exec ("teste.bat");
$redirecionar = "http://seusite";
header("Location: $redirecionar");
?>

Note que desta vez coloquei um arquivo .bat na chamada da função, e depois na linha abaixo um endereço para redirecionamento. Quando a página for carregada, este arquivo bat vai ser executado e depois o usuário será levado à página definida em $redirecionar. Isto pode ser muito útil para várias coisas, por exemplo eu já usei este comando para baixar a versão mais nova de um arquivo que estava em um repositório cvs e jogar dentro da pasta de downloads para evitar o trabalho manual. Assim como esta aplicação, várias outras são possíveis, tudo dependendo da sua imaginação.

Até a próxima!
😉

6 comentários sobre “SdevLab – Exemplo de Código | PHP Exec

    • Kara, eu usei no windows xp isso, qual SO você ta usando?

      Outra coisa que você pode testar é o seguinte, entre no seu prompt de comando e digite “notepad”. Se abrir o Notepad com este comando significa que a sintaxe pelo menos está correta. Se não funcionar, tente digitar “call notepad” no prompt.
      A idéia disso é ver se o problema está no php ou no comando bat. Se não funcionar de jeito nenhum, tente escrever o comando e salvar em um arquivo .bat e chame o arquivo bat pelo exec, conforme o exemplo acima.

      Aqui no meu trabalho já aconteceu deo EXEC funcionar em um computador e não funcionar no outro. Aí o que você pode ver é o seguinte:

      – Os comandos funcionam quando você digita no terminal porque você provavelmente é o administrador da sua máquina.
      – Quando você joga este comando no php e roda no navegador, é como se o usuário do apache executasse este comando. Aí pode ser que o apache não esteja subindo o serviço como administrador, aí o problema é mais nas configurações do serviço que no código…..

      Veja estes pontos que eu acho que pode ajudar.

      att
      sanoj
      😉

  1. Amigo, gostaria e saber se é possível criar nm campo de texto um comando, e quado a pessoa clicasse em “salvar e executar” por exemplo, o php salve este comando em .bat e depois o execute ?? Para eexecutar eu utilizo esta função ae, mas para salvar em .bat ? será que se eu usar o comando de salvar em txt mas na hora de colocar o nome + a extenção eu trocar a extenção para .bat funciona ?

    • Cara, se salvar como .bat mas o tipo de arquivo for “texto” não vai rolar….tem que ser .bat mas o tipo do arquivo tem que ser tipo aqueles “all files” que tem nos editores…..
      a teoria sua funfa, só tem que ver se vai ou não rolar esse “all files” na prática…só testando mesmo…
      Só um aviso…cuidado com esses .bat aí hein kra, todo mundo ta ligado na malícia deles, as vezes sua intenção é boa, mas pode ser mal compreendida!
      valeu aí o coment, e se der certo posta aki outro comentário só pra compartilhar com a galera!

      Valeu!
      😉

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s