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

Como escrever um arquivo txt com dados de um formulário?


Ricardoss

Pergunta

Ola, como estão?

To precisando de uma ajuda com um código. Preciso fazer o seguinte, na pagina inicial de um site que to fazendo tem o espaço para uma mensagem, essa mensagem é exibida de um arquivo de texto, já consegui montar essa parte, agora preciso do seguinte:

Preciso fazer um formulário, com um campo só, que o que for digitado nesse campo ao clicar em enviar, o texto será gravado em um arquivo chamado msg.txt porem, cada vez que alterar a mensagem, o texto antigo que já estava gravado deve ser deletado e o novo texto vai ficar no lugar, assim junto com o sistema que falei antes, a mensagem nova é exibida na pagina inicial.

Ou seja, preciso que um formulário grave o texto digitado nele em um arquivo msg.txt que cada vez que uma nova mensagem for enviada para esse arquivo a antiga seja excluída, ficando apenas a mais recente.

Acho que deu pra entender né kkk?

Se alguém puder ajudar agradeço muito.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Um exemplo extremamente simples (porém funcional) pra você poder trabalhar em cima:

<?php
 
if (isset($_POST['texto'])) {
   $texto = $_POST['texto'];
 
   $arquivo = fopen('msg.txt', 'w');
   fwrite($arquivo, $texto);
   fclose($arquivo);
}
?>
<!DOCTYPE html>
<html>
   <body>
      <form method="post">
         <textarea name="texto"></textarea>
         <button>Enviar</button>
      </form>
   </body>
</html>
Editado por MLeandroJr!
Link para o comentário
Compartilhar em outros sites

  • 0

Um exemplo extremamente simples (porém funcional) pra você poder trabalhar em cima:

<?php
 
if (isset($_POST['texto'])) {
   $texto = $_POST['texto'];
 
   $arquivo = fopen('msg.txt', 'w');
   fwrite($arquivo, $texto);
   fclose($arquivo);
}
?>
<!DOCTYPE html>
<html>
   <body>
      <form method="post">
         <textarea name="texto"></textarea>
         <button>Enviar</button>
      </form>
   </body>
</html>

Ola, realmente é uma forma super simples, ajudou muito a entender e fazer o código.

Consegui resolver o problema! Observei vários códigos na internet, peguei partes de códigos, pesquisei bastante até que consegui montar o código pra fazer o que eu precisava, vou deixar aqui o sistema com o código de gravar o arquivo txt que estou usando e também o que pega e exibe a mensagem!

Segue o código:

Pagina cadmsgini.php (pagina com o formulário que envia o texto digitado no form para o arquivo msg.txt que já existe.)

<link rel="stylesheet" type="text/css" href="css/msgindex.css"/>

<div id="digitarmsg" class="central">
<form name="msgindex" method="post" action="gravar.php">
<h2>MENSAGEM</h2> 
<p>caracteres restantes: <span id="cont">580</span>)</p>
<textarea onkeyup="blocTexto(this.value)" id="texto" name="texto" cols="30" rows="5" tabindex="2" style="width:400px; height:300px;"></textarea>
<p> <input type="submit" name="Submit" value="Enviar"></p>
</form>
 

<script type="text/javascript">
function blocTexto(valor)
{
    quant = 580;
    total = valor.length;
    if(total <= quant)
    {
        resto = quant - total;
        document.getElementById('cont').innerHTML = resto;
    }
    else
    {
        document.getElementById('texto').value = valor.substr(0,quant);
    }
}
</script>

</div>

Pagina gravar.php

<link rel="stylesheet" type="text/css" href="css/msgindex.css"/>
<div id="pgravar" class="central">
<?php  
//PEGA OS DADOS ENVIADOS PELO FORMULÁRIO 
$mensagem = $_POST["texto"]; 

//PREPARA O CONTEÚDO A SER GRAVADO 
$conteudo = "$mensagem\r\n"; 

//ARQUIVO TXT 
$arquivo = "msg.txt"; 

//TENTA ABRIR O ARQUIVO TXT 
if (!$abrir = fopen($arquivo, "w+")) { 
echo "Erro abrindo arquivo ($arquivo)"; 
exit; 
} 

//ESCREVE NO ARQUIVO TXT 
if (!fwrite($abrir, $conteudo)) { 
print "Erro escrevendo no arquivo ($arquivo)"; 
exit; 
} 

echo "Arquivo gravado com Sucesso !!<p></p>";
 

//FECHA O ARQUIVO  
fclose($abrir);  
?>

<form style="text-align:center">
<input type="button" value="Voltar" onClick="JavaScript: window.history.back();">
</form>
</div>

Trecho do código para pegar a mensagem do arquivo msg.txt

Esse trecho de código deve ficar em uma página que esteja no mesmo diretório que os arquivos anteriores, para colocar em outro lugar, os links devem ser revistos (coisa simples e comum rsrs)

<?php
//abrimos o arquivo em leitura
$arquivo = 'msg.txt';
$fp = fopen($arquivo,'r');
//lemos o arquivo
$texto = fread($fp, filesize($arquivo));
//transformamos as quebras de linha em etiquetas <br>
$texto = nl2br($texto);
?>
<p class="textomsgini"> <? echo mb_strtolower( $texto, 'UTF-8' ); ?> </p>

Esse finalzinho do código é o que vai mostrar a mensagem, onde ele estiver a mensagem vai aparecer (é o que deve acontecer rsrs)

<p class="textomsgini"> <? echo mb_strtolower( $texto, 'UTF-8' ); ?> </p>

O código não é todo meu, peguei muitas partes de outros códigos, exemplos da internet e parte é pesquisa tambem, não pude colocar créditos pois não sei ao certo de quem são, alguns que peguei como exemplo já estavam no pc e dentro do arquivo não tinham créditos.

De qualquer forma agradeço aos que contribuíram!!!

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...