Form --> text file (php)

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Form --> text file (php)

Mensagempor Onyros » Sexta Ago 26, 2005 15:24

Estou a fazer um guestbook que registe os comentários de utilizadores num ficheiro .txt.

A princípio parecia-me bastante simples, mas agora encalhei completamente. Pura e simplesmente não funciona, nem dá qualquer mensagem de erro. Devo estar a fazer algum erro "daqueles", se alguém me puder dar uma ajuda, eu agradeço (MUITO).

html do form (que já experimentei com uma action mailto e funca)
Código: Seleccionar todos
<form enctype="text/plain"
method="post" action="submeter.php" name="guestbook">;
Nome:<input name="Nome" size="30"><br>
Email:<input name="Email"
size="30"><br>
Coment&aacute;rio:
                    <div style="text-align: center;"><textarea
cols="40" rows="6" name="Comentario"></textarea><br>
                    </div>
                    <div style="text-align: center;"><input
value="Enviar" type="submit">&nbsp;<input
value="Cancelar" type="reset"></div>
                  </form>


E o script php para escrever o conteúdo do form para o ficheiro .txt:
Código: Seleccionar todos
<?php
$content = "Nome:".$_POST["Nome"]." Email:".$_POST["Email"] Coment·rio:".$_POST["Comentario"];
$fp = fopen( "comentarios.txt", "rb" );

if( !$fp )
{
echo "Não foi possível abrir o ficheiro de dados. Por favor, tente mais tarde.";
exit;
}

fwrite( $fp, $content );
fclose( $fp );
?>


Posto isto, quando clico em "submeter"... não acontece nada. Está-me a falhar alguma coisa, e eu sei que é no php. Alguém tem ideias?
(nota: o ficheiro comentarios.txt já existe e está na raiz do site)

Agradeço, desde já!
Imagem
Onyros
Gurus
Gurus
 
Mensagens: 986
Registado: Quarta Jan 07, 2004 16:35
Localização: Lisboa

Mensagempor lquental » Sexta Ago 26, 2005 16:12

O erro está na chamada à função fopen

Código: Seleccionar todos
fopen( "comentarios.txt", "w" );


ou sejá deves abrir o ficheiro apenas para escrita.
lquental
Aprendiz
Aprendiz
 
Mensagens: 29
Registado: Terça Ago 23, 2005 14:03

Mensagempor Onyros » Sexta Ago 26, 2005 16:19

[modo comichão no cérebro] Isso não me vai apagar os dados que já estão guardados no ficheiro?

Se eu usar "a", ele escreve-me no fim do ficheiro, certo?

De qualquer forma, já experimentei de qualquer uma das formas, e continua a não funcionar. Nothing happens :|

[/modo comichão no cérebro]

Obrigado pela ajuda, de qualquer forma!
Imagem
Onyros
Gurus
Gurus
 
Mensagens: 986
Registado: Quarta Jan 07, 2004 16:35
Localização: Lisboa

Mensagempor lquental » Sexta Ago 26, 2005 19:33

Oops, de facto devia ser

Código: Seleccionar todos
fopen( "comentarios.txt", "a" );


a opção w abre o ficheiro para escrita, mas escreve por cima do que já existia.

Quanto ao código não funcionar, posso dizer fiz um teste na minha máquina e funciona (apenas o php). Se tiveres a desenvolver isto em Linux tem em atenção às permissões do ficheiro onde estás a escrever.

aqui vai o meu teste:

Código: Seleccionar todos
<?php
  $content = "linha\r\n";
  $fp = fopen( "ficheiro.txt", "a" );
  fwrite( $fp, $content );
  fclose( $fp );
?>
lquental
Aprendiz
Aprendiz
 
Mensagens: 29
Registado: Terça Ago 23, 2005 14:03

Mensagempor Onyros » Domingo Ago 28, 2005 9:05

lquental, obrigado pela ajuda! Ainda não percebi o que fiz, mas dum minuto para o outro começou a funcionar... Provavelmente um erro qualquer de sintaxe, um espaço a mais, um ponto e vírgula... não sei.

Como foi escrito à la manápula em notepad... são coisas que acontecem :P
Imagem
Onyros
Gurus
Gurus
 
Mensagens: 986
Registado: Quarta Jan 07, 2004 16:35
Localização: Lisboa


Voltar para Programação

Quem está ligado:

Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante

cron