Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiago Dias_132983

Como posso editar um arquivo php com php ?

Recommended Posts

Estou criando um arquivo de configurações do sistema , por exemplo :

 

Host : localhost

User : root

Pass : NULL

Database : teste

 

em vez de ficar abrindo toda vez o arquivo pela raiz , gostaria de acessa-lo pela url ,e os dados apareceriam em um form que posso editar e salva novamente em um arquivo "Configs.php" como no Wordpress.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
if(isset($_POST["host"]) && isset($_POST["usuario"]) && isset($_POST["senha"]) && isset($_POST["bd"]))//Verificamos se foi postado
{
$host = $_POST["host"]; //Salvamos em variáveis.
$usuario = $_POST["usuario"];
$senha = $_POST["senha"];
$bd = $_POST["bd"];

$salvar =<<<SALVAR //Criamos uma string com os dados
$host = {$host}; //Eu não me lembro, mas se der erro aqui só coloqe \ antes das variáveis.
$usuario = {$usuario};
$senha = {$senha};
$bd = {$bd};
SALVAR; 

$fp = fopen("dados.php", "w");//Abrimos o arquivo aonde está salvo os dados, com o parâmetro w, que subistitui todo o conteúdo.
fwrite($fp, $salvar);
fclose($fp);
echo "Salvo!";
}
include "dados.php"; //Incluímos o arquivo com as variáveis.
?>
<form action="" method="post">
Host <input type="text" name="host" value="<?php echo $host; ?>"><br>
Usuário <input type="text" name="usuario" value="<?php echo $usuario; ?>"><br>
Senha <input type="password" name="senha" value="<?php echo $senha; ?>"><br>
BD <input type="text" name="bd"  value="<?php echo $bd; ?>"><br>
<input type="submit" value="Salvar">
</form>

 

* Escrevi o código agora, sem testar, então se der algum erro ou não funcionar só falar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho melhor fazer arquivos de configuração em formato .ini, que já é próprio para isso e é mais flexível. O PHP já tem uma função built-in para pegar os valores do arquivo para um array, chama-se parse_ini_file. Você só precisa então criar uma função de escrita (write_ini_file) para escrever no arquivo. É preciso tomar cuidado para deixar esse arquivo fora do alcance dos abelhudos, nem pensar em deixá-lo na pasta htdocs/www!

 

XML e YAML também são boas opções, mas eu prefiro INI.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só complementando o @mangakah, um usuário com um pouco conhecimento PHP que deseja ser mal intencionado, basta colocar algumas linha de código em seu form, salvar o .php e executá-lo. Você terá um sério problema de segurança.

 

As opções já passadas, são suficientes para resolver o seu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só complementando o @mangakah, um usuário com um pouco conhecimento PHP que deseja ser mal intencionado, basta colocar algumas linha de código em seu form, salvar o .php e executá-lo. Você terá um sério problema de segurança.

 

Bem lembrando... eu não havia pensado nisso ainda. Estava pensando apenas na versatilidade e nem me preocupei com os aspectos de segurança... E um baita buraco de segurança: pelo código que o @mhf (post #3) passou, por exemplo, poder-se-ia preencher o campo 'usuario' com...:

""; header("Location: http://www.site-suspeito.cc");

 

Isso iria para o arquivo PHP e em tese (não testei), haveria o redirecionamento... afora isso poderia-se executar qualquer outro comando PHP permitido ou disponível.

 

Mas claro, esse arquivo é feito para uma tarefa de alto nível: alterar as configurações do sistema. Este arquivo só deve estar disponível para o administrador do sistema e se um hacker chagar a ele significa que ele já possui a senha do administrador ou achou uma maneira de burlar a autenticação de usuários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

As vezes, até um colaborador mal intencionado, acontece e muito. Tenho casos(os mais comuns) de colaboradores que apagam bases inteiras. Um mais espertinho, vai fazer algo para não ser descoberto de imediato....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então , vlw pelos scripts e pelas dicas galera ! mas primeiro eu pego o script mais simples possivel para eu poder entender as funções e talz , ai depois eu vou implementando a "segurança" .

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.