• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

joxnas

[Ajuda PHP] HTML tags guardadas no ficheiro..

7 mensagens neste tópico

Bem ando a aprender php sozinho e tenho pai 5 dias disto  lol. por isso sou alto noob nisto. Este é o meu primeiro topico aqui..

bem a minha primeira questão é:

1-Porque é que as tags HTML que ponho dentro de uma text area de um formulário(que guarda as informações num ficheiro text) não funcionam quando posterormente exibo a informação do ficheiro?

Por exemplo aqui:

EXEMPLO

Se metermos tags html como

<img src="*">

Elas nem aparecem  na pagina que depois mostra o conteúdo. e no ficheiro que armazena as informaçãoes (este: INFORMACOES); aparecem mas adicionadas de algumas contrabarras.

O codigo da pagina com a text area é este:

<form id="form1" name="form1" method="post" action="gravador.php">

  <label>

  <textarea name="pagina" cols="50" rows="50"><? $conteudo=fopen("conteudo.txt","r");

$mostrar=fpassthru($conteudo);

echo "$mostrar" ;

fclose($conteudo);?></textarea>

  </label>

  <p>

    <label>

    <input type="submit" name="Submit" value="Submit" />

    </label>

 

</form>

o código do script(gravador.php) que processa a informação é

$conteudo=fopen("conteudo.txt","r");
if($conteudo!="")
{
fclose($conteudo);
$conteudo=fopen("conteudo.txt","w");
fputs($conteudo, $pagina);
fclose($conteudo);
}
?>
<?
$conteudo=fopen("conteudo.txt","r");

$mostrar=fpassthru($conteudo);
echo "$mostrar" ;

fclose($conteudo);

 

Links:

PAGINA COM TEXT AREA

FICHEIRO QUE ARMAZENA INFORMAÇÃO

SCRIPT QUE GUARDA A INFORMAÇÃO E A EXIBE

Agradecia se me pudessem esclareer se a dúvida e já agora mais a esta pequena duvida:

Existe alguma função semelhante a fpassthru() mas que não devolva o número de caracteres ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vou-te mostrar como podes fazer o que queres fazer. ;)

Página do textarea:

<form id="form1" name="form1" method="post" action="gravador.php">
  <label>
  <textarea name="texto" id="texto" cols="50" rows="50">
<?php
$ficheiro = file_get_contents("conteudo.txt");
if(!empty($ficheiro)){
    echo $ficheiro;
}
?>
</textarea>
  </label>
  <p>
    <label>
    <input type="submit" name="Submit" value="Submit" />
    </label>

</form>

gravador.php:

$conteudo = $_POST['texto'];
if(!empty($conteudo)){
    $stream = fopen("conteudo.txt", "w");
    fwrite($stream, $conteudo);
    fclose($stream);
}

echo file_get_contents("conteudo.txt");

Lê isto:

http://pt2.php.net/manual/pt_BR/function.fopen.php

http://pt2.php.net/manual/pt_BR/function.fwrite.php

http://pt2.php.net/manual/pt_BR/function.fclose.php

http://pt2.php.net/manual/pt_BR/function.file-get-contents.php

http://pt2.php.net/manual/pt_BR/function.empty.php

Se precisares de uma explicação melhor disto, diz. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já actulizei, mas o problema continua a ser o mesmo. Se eu escrever por exemplo na text area:

o script (gravador.php) guarda no ficheiro :

Eu acho que mesmo que eu não consiga fazer o script escrever exactamente aquilo que eu ponho na text area posso fazelo remover os "\" com a função explode não?

EDIT:

Consegui remover os "\" com a função explode mas a função explode divide em arrays.

Não há uma função semelhante à explode mas que não divida uma variável em arrays ou para isso tinha de ser eu a cria.la?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois, eu quero mesmo que o codigo html seja interpretado por gravador.php..

o problema é que parece que quando se mete uma aspa (") ou um apostrofe (') na textarea  , ao gravar no ficheiro, o script acrescenta sempre uma contrabarra por trás destes caracteres...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pá aleluia lol... tive 1hora a sem saber como substituir contrabarras... agora já sei tem de se meter duas..

o código final ficou assim

<?

//escreve informação do formulário no ficheiro

$mostrar=$_POST['text'];

if(!empty($mostrar))

{

$stream=fopen("conteudo.txt","w");

fwrite($stream, $mostrar);

fclose($stream);

}

$coisas=file_get_contents("conteudo.txt") ;

//substituicao de \" por "

$pesquisa='\\"';

$substitui='"';

$tirabarras=str_replace($pesquisa,$substitui,$coisas);

//mostra pagina com tags html funcionais gerada por formulario

echo $tirabarras;

?>

A pagina é esta se alguem quiser testar ;)

AQUI

Brigado pela ajuda de todos.. em breve virão mais duvidas lol xD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora