red_sonja 0 Denunciar post Postado Dezembro 19, 2004 Ois de novo! :unsure: Bom, estou com mais um problema:estou usando um código para abrir e gravar dados num arquivo, só que eu quero que eles sejam inseridos assim:3ª inserção2ª inserção1ª inserçãoresumindo, colocar o ponteiro no início do arquivo no fopen. Eu sei que dá pra fazer isso com o r+, então fiz.Só que a cada inserção nova, ele apaga as outras anteriores!!!O que será que pode ser??? :wacko: :wacko: :wacko: PS - o código if (!$abrir = fopen($arquivo, "r+")) { echo "Erro abrindo arquivo ($arquivo)"; exit; } Compartilhar este post Link para o post Compartilhar em outros sites
Arzanardi 0 Denunciar post Postado Dezembro 20, 2004 ao inves do "r+" utilize "a+"... qq coisa da uma olhada : Função fopen() espero ter te ajudado Compartilhar este post Link para o post Compartilhar em outros sites
red_sonja 0 Denunciar post Postado Dezembro 20, 2004 pode parecer incrivelmente estranho, mas o r+ coloca o ponteiro no início do meu arquivo, e o a+ coloca o ponteiro no final... o problema é q qdo uso o r+ continua dando o mesmo problema(apagando as linhas) e qdo uso a+ dá certo, só que coloca o ponteiro no final do arquivo, e fica ao contrário do que eu quero... veja você mesmo: Para inserir um texto no arquivo: Formulário de Postagem Para ver o que tem no arquivo: Arquivo de texto Recomendo fazer duas inserções... q estranho, parece q tá tudo ao contrário!!! :wacko: :wacko: :wacko: Compartilhar este post Link para o post Compartilhar em outros sites
Arzanardi 0 Denunciar post Postado Dezembro 20, 2004 é estranho o r+ não dar certo...será que não é aqueles esquemas de colcar o b ou t na frente...por ex. "rb+"?.....tenta ver na referencia (http://br.php.net/manual/pt_BR/function.fopen.php) mais alguma coisa...senão faz uma "gambiarrinha" (não te recomendo isso ta!):1 - Você abre o txt como leitura "r"2 - Le seu conteudo com fread()3 - Concatena com o que você quiser4 - Feche e Abra novamento o txt5 - E coloca seu texto inteiro..concatenadoé meio feio mas acho que da sim....Bom, ja era pra ter funcionado com o comando "r+", mas...t+ Compartilhar este post Link para o post Compartilhar em outros sites
red_sonja 0 Denunciar post Postado Dezembro 20, 2004 e você pode me ajudar com a "gambiarra"??? é pq realmente eu não sei o q está acontecendo...eu sou iniciante no php e ainda não sei lidar direito com tudo... isso de concatenar complicou um pouco minha cabeça... você pode me ajudar com o código? ou me dar um exemplo que faz isso q você me falou no post acima?obrigada! Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Dezembro 20, 2004 uhnnn, no site q postou ta fazendo como você quer, ñ?!?! :huh: Compartilhar este post Link para o post Compartilhar em outros sites
red_sonja 0 Denunciar post Postado Dezembro 20, 2004 nãoele tá colocando o ponteiro na parte de cima do arquivo (com r+,,,), até aí tudo bemsó que cada vez que eu insiro algo novo, ele apaga o inserido anterior!!! Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Dezembro 20, 2004 ele paga só o ultimo!!! hummmm....Abre o arquivo le todo o conteúdo, armazena temporariamente, depois quando for salvar, salva td de uma vez... (apesar q se fizer isso com arquivos grandes não é mto bom!!! :huh) ;) Compartilhar este post Link para o post Compartilhar em outros sites
red_sonja 0 Denunciar post Postado Dezembro 20, 2004 bom, seriam só "posts" de blog... juntar todo o conteúdo seria o "concatenar"??? tipo, pegar o conteúdo do arquivo, jogar numa string, e "concatenar" com a nova string gerada? (na teoria ficou fácil, mas como eu faria isso???) http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Compartilhar este post Link para o post Compartilhar em outros sites
Arzanardi 0 Denunciar post Postado Dezembro 21, 2004 Isso mesmo...concatenar=juntar seus posts Por exemplo... - você le e joga o seu txt numa variável ($posts) - joga seu novo post numa outra variável ($newpost) - dai você cocatena: $post.=$newpost; //você pode usar para pular linha tbm colocando um <br> ou um \n na grente do $newpost Qq duvida entre em contato novamente...ok!? t+ Compartilhar este post Link para o post Compartilhar em outros sites
red_sonja 0 Denunciar post Postado Dezembro 21, 2004 Por mais que eu tente, não dá certo!!! O cursor fica na parte de cima, mas continua apagando a linha de baixo!!! olha só o código: PHP [/tr][tr]<? include 'form_post.html'; //PEGA OS DADOS ENVIADOS PELO FORMULÁRIO $newpost = $_POST["txt_post"]; $data = date("d/m/Y - H:i"); //PREPARA O CONTEÚDO A SER GRAVADO $conteudo="$newpost,$data\r\n"; //ARQUIVO TXT $arquivo = "teste_blog.txt"; //TENTA ABRIR O ARQUIVO TXT if (!$abrir = fopen($arquivo, "r+")) { echo "Erro abrindo arquivo ($arquivo)"; exit; } //JOGA O CONTEÚDO DO ARQUIVO NUMA STRING $posts = $_GET['$arquivo']; //CONCATENA TUDO - Q CHIK $conteudo.=$posts; //ESCREVE NO ARQUIVO TXT if (!fwrite($abrir, $conteudo)) { print "Erro escrevendo no arquivo ($arquivo)"; exit; } echo "Arquivo gravado com Sucesso !!"; //FECHA O ARQUIVO fclose($abrir); ?> [/tr] Eu não sei mais o que fazer... :wacko: :wacko: Compartilhar este post Link para o post Compartilhar em outros sites
Arzanardi 0 Denunciar post Postado Dezembro 21, 2004 Tenta com esse código: PHP [/tr][tr]<? include 'form_post.html'; //PEGA OS DADOS ENVIADOS PELO FORMULÁRIO $newpost = $_POST["txt_post"]; $data = date("d/m/Y - H:i"); //PREPARA O CONTEÚDO A SER GRAVADO $conteudo="$newpost,$data\r\n"; //ARQUIVO TXT $arquivo = "teste_blog.txt"; //TENTA ABRIR O ARQUIVO TXT if (!$abrir = fopen($arquivo, "r+")) { echo "Erro abrindo arquivo ($arquivo)"; exit(); }else{ $posts=fread($abrir, filesize ($arquivo)); //CONCATENA TUDO - Q CHIK $conteudo.=$posts; //ESCREVE NO ARQUIVO TXT if (!fwrite($abrir, $conteudo)) { print "Erro escrevendo no arquivo ($arquivo)"; exit; }else{ echo "Arquivo gravado com Sucesso !!"; //FECHA O ARQUIVO fclose($abrir); } } ?> [/tr] Vamos ver se agora vai... Compartilhar este post Link para o post Compartilhar em outros sites
red_sonja 0 Denunciar post Postado Dezembro 21, 2004 vix... acho que não deu certo...fiz três inserções:123 elas tinham q aparecer assim321mas olha só como ficou:1213121AFF Q Q EU FAÇO???? Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Dezembro 22, 2004 Código: (Só adaptei seu código!!! ;) ) PHP [/tr][tr]<?php//PEGA OS DADOS ENVIADOS PELO FORMULÁRIO $newpost = "5MSP"; $data = date("d/m/Y - H:i"); //PREPARA O CONTEÚDO A SER GRAVADO $conteudo="\r\n$newpost,$data"; //ARQUIVO TXT $arquivo = "teste_blog.txt"; //TENTA ABRIR O ARQUIVO TXT if (!$abrir = fopen($arquivo, "r+")) { echo "Erro abrindo arquivo ($arquivo)"; exit(); }else{ $posts=fread($abrir, filesize ($arquivo)); //ESCREVE NO ARQUIVO TXT if (!fwrite($abrir, $conteudo)) { print "Erro escrevendo no arquivo ($arquivo)"; exit; }else{ echo "Arquivo gravado com Sucesso !!"; //FECHA O ARQUIVO fclose($abrir); } } ?>[/tr] Resultado: 1MSP,22/12/2004 - 09:522MSP,22/12/2004 - 09:523MSP,22/12/2004 - 09:524MSP,22/12/2004 - 09:525MSP,22/12/2004 - 09:52 Compartilhar este post Link para o post Compartilhar em outros sites
Arzanardi 0 Denunciar post Postado Dezembro 22, 2004 Bom...olhao que eu fiz.......fiz o teste e deu certo... PHP [/tr][tr]<? $new_post=$_POST["new_post"]; $arquivo="teste_blog.txt"; if($abre=fopen($arquivo,"r")){ $old_post=fread($abre,filesize($arquivo)); fclose($abre); $conteudo=$new_post."\r\n".$old_post; if($abre=fopen($arquivo,"w+")){ if(fwrite($abre, $conteudo)){ echo "Arquivo gerado com sucesso!"; fclose($abre); }else{ echo "Não foi possível incluir novo post!"; } }else{ echo "Erro ao abrir arquivo para escrita!"; } }else{ echo "Erro ao abrir arquivo para leitura!"; } ?> [/tr] Compartilhar este post Link para o post Compartilhar em outros sites
red_sonja 0 Denunciar post Postado Dezembro 22, 2004 Nossa quantas respostas obrigada meninos!!! Bom, o código do Arzandi não deu certo... o do michelsp faz o mesmo que o meu primeiro código: insere os posts na ordem. Só que o que eu queria é q a ordem ficasse 3/2/1 e não 1/2/3... mas acabei resolvendo meu problema de outra forma... "comprei" um host com banco de dados ilimitado... e vou usar o "TheBlog" para o que eu quero... Aproveitando para fazer uma propaganda: O sistema melhor e mais simples que eu já vi! E além de tudo é em português! Vale a pena experimentar... Para quem quiser dar uma olhada, o endereço é :TheBlog Agradeço a todos que me ajudaram nessa "árdua" tarefa... porque a cada dia que posto aqui, aprendo muito mais... obrigada a todos vocês que fazem o imasters cada dia melhor! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
Arzanardi 0 Denunciar post Postado Dezembro 22, 2004 Que bom red_sonja...legal...você poderia me falar o erro que deu no meu código?...pq eu fiz aqui na minha máquina e está tudo okSó pra tirar uma duvida..talvez seja a nossa máquina[]'s Compartilhar este post Link para o post Compartilhar em outros sites
red_sonja 0 Denunciar post Postado Dezembro 23, 2004 Olá Arzandi! Bom, no seu código, alguns textos aparecem, outros não, e em posicionamentos meio "randômicos"... eu realmente não sei pq isso tá acontecendo, deve ser problema do meu server.... Mas muito obrigada pela ajuda, foi muito útil!!! abraços http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites