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
por 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á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"> <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á!

-
Onyros
- Gurus

-
- Mensagens: 986
- Registado: Quarta Jan 07, 2004 16:35
- Localização: Lisboa
por 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

-
- Mensagens: 29
- Registado: Terça Ago 23, 2005 14:03
por 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!
-
Onyros
- Gurus

-
- Mensagens: 986
- Registado: Quarta Jan 07, 2004 16:35
- Localização: Lisboa
por 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

-
- Mensagens: 29
- Registado: Terça Ago 23, 2005 14:03
por 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

-
Onyros
- 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