Autor Tópico: [Ajuda PHP] HTML tags em text areas. como?  (Lida 2566 vezes)

Offline joxnas

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
[Ajuda PHP] HTML tags em text areas. como?
« em: Setembro 06, 2007, 06:37:34 pm »
Olá, este é o meu primeiro tópico neste forum.
Resgistei-me aqui para poder ter algum sitio pa postar as minhas duvidas de php..
é que ando a aprender PHP sozinho e dá jeito ter alguem pa nos responder..

heh.
bem a minha primeira questão é:
1-Dá para por tags HTML que funcionem dentro de uma text area de um formulário(que guarda as informações num ficheiro text) para depois funcionarem quando formos mostrar essas informações??

Por exemplo aqui:

EXEMPLO

Se metermos tags html como
Código: [Seleccione]
<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 uma barra e contrabarra no fim e no principio do link da imagem.
O codigo da pagina com a text area é este:
Citar
<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 que processa a informação é
Código: [Seleccione]

$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);
 

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 ?

Offline ilovehentai

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://
[Ajuda PHP] HTML tags em text areas. como?
« Responder #1 em: Setembro 07, 2007, 12:20:20 am »
Ola bem vindo.

Em relação a primeira dúvida penso que não seja possivel apresentar elementos com TAG Html dentro de um objecto de formulário, ou seja não me parece que irás conseguir visualizar assim tão directamente uma imagem dentro de uma textarea.

na 2ª dúvida estás a manipular ficheiros de texto com PHP, algo que já não via a muito agora que tudo é baseado em SQL, parece-me que o fpassthru() é para leres o ficheiro e enviar o conteúdo para o Buffer, no caso do teu script, tu o chamas para o ler apenas e não o modificar, se for esse o caso podes simplesmente usar a função readfile(), que te permite evitar o uso da função fopen().

Ps Depois de investigar no site do php.net vi que eles dão o seguinte conselho que penso que deverias seguir:

Citar
"...Note: When using fpassthru() on a binary file on Windows systems, you should make sure to open the file in binary mode by appending a b to the mode used in the call to fopen().

You are encouraged to use the b flag when dealing with binary files, even if your system does not require it, so that your scripts will be more portable..."

Offline joxnas

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
[Ajuda PHP] HTML tags em text areas. como?
« Responder #2 em: Setembro 07, 2007, 02:18:44 am »
Obrigado pla ajuda antes de mais.


Citar
Em relação a primeira dúvida penso que não seja possivel apresentar elementos com TAG Html dentro de um objecto de formulário, ou seja não me parece que irás conseguir visualizar assim tão directamente uma imagem dentro de uma textarea.
Não quero fazer uma imagem aparecer numa text area, algo como isso nunca vi..
Queria era que a tag html funcionasse depois de o formulario a guardar no ficheiro e de o sript a exibir.

simplificando:
Quando analizamos isto vemos que há 3 elementos:
A pagina do formulario ( http://pixelgalaxy.awardspace.com/paginaeditor.php )
O ficheiro onde é guardado o conteúdo do formulário: ( http://pixelgalaxy.awardspace.com/conteudo.txt )
A página que guarda a informação no ficheiro e que depois exibe a informação que guardou no ficheiro  (que por sua vez é a informação que foi inserida no formulário ( http://pixelgalaxy.awardspace.com/gravador.php ).

Imagina que queres que apareça uma imagem na página que exibe a informação do ficheiro. No formulário ias inserir a tag html para mostrar uma imagem na página de exibição, certo?
Experimenta meter isto no formulario
Código: [Seleccione]
<img src="http://www.elitebrasil.com.br/matogrosso/passaro.jpg"> no formulário e ve o que acontece:

-Na página de  exibição: vai aparecer apenas o numero de caracteres que inseriste (obra da função fpassthru() que eu dispensava. ( Eu queria que aparecesse a imagem correspondente àquilo que eu meti no formulário nera...

-No ficheiro: vai aparecer:
Código: [Seleccione]
<img src="http://www.elitebrasil.com.br/matogrosso/passaro.jpg">Ou seja aquilo que eu meti no formulário  com umas contrabarras ("") lá no meio que não foram solicitadas por ninguém né e que por sinal desconfio que não deixam a página de exibição ler a tag html como eu queria que ela lesse.


Acerca de trabalhar com ficheiros: eu sei que MySQL é melhor e mais prático mas para já tou a aprender isto superficialmente só pa ter algum conhecimento sobre a amtéria e porque poderá vir a dar jeito..

quanto à função readfile():
Citar
readfile -- Lê e exibe o conteúdo de um arquivo

int readfile ( string nomedoarquivo [, bool use_include_path [, resource context]])

Lê um arquivo e escreve o seu conteúdo para o buffer de saída (output buffer).

Retorna o número de bytes lido do arquivo. Se um error ocorrer, retorna FALSE e ao menos que a função seja chamada como @readfile(), uma mensagem de erro será impressa.
Acho que não serve porque temos um problema semelhante à fpassthru.
a fpassthru exibe o conteudo do ficheiro e o nº de caracteres e a readfile o conteudo do ficheiro e o numero de bytes.. Eu queria uma que sómente exibisse o conteudo do ficheiro.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49