Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TiagoMaker

[Resolvido] Alterar ordem de exibição

Recommended Posts

Dae galera, to desenvolvendo um sistema sem mysql de narração em tempo real, até agora está tudo bem, mas quando eu insiro uma frase da narração... elas vao aparecendo uma embaixo da outra, e não uma em cima da outra como ficaria melhor. Será que tem como mudar isso?

 

Segue o código da página:

 

CODE
<?php

include("funcoes.php");

proteger();

?>

<head>

<title>administração</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style type="text/css">

<!--

body {

background-color: #61A5F8;

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

}

-->

</style></head>

<html><body>

<table width="620" height="460" border="0" align="center" cellpadding="0" cellspacing="0" background="imagens/narracoes_BG.gif">

<tr>

<td><div align="center">

<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<td><div align="center">

<?php

$arquivo = 'base_dados.php';

$conteudo = $_POST['conteudo'];

if(!empty($conteudo))

{

if (is_writable($arquivo))

{

if (!$handle = fopen($arquivo, 'a'))

{

echo("Não foi possível acessar a base de dados!");

exit;

}

if (fwrite($handle, "<p>$conteudo</p>") === FALSE)

{

echo("Não foi possível adicionar à base de dados!");

exit;

}

fclose($handle);

}

else{echo("O arquivo $arquivo não pode ser alterado");}

}

?>

<br>

</div></td>

</tr>

</table>

<br>

</div>

<form name="gravar" method="post" action=""><p align="center"><textarea name="conteudo" cols="60" rows="6" id="conteudo"></textarea>

<br>

<br>

<br>

<input name="Submit" type="submit" id="Submit" onClick="alert('Narração inserida com sucesso!')" value="ADICIONAR">

</form></td>

</tr>

</table>

</body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

alguem me disse que isso resolveria:

 

1 - Leia tudo que está no arquivo atualmente e guarde

2 - Abra o arquivo e truque ele (apague tudo)

3 - Grave o novo dado

4 - Após gravar o dado novo pegue o que você guardou (passo 1) e grave também

 

 

mas como passo isso para codigo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui:

if (!$handle = fopen($arquivo, 'a'))

Mude para:

if (!$handle = fopen($arquivo, 'r+'))

"'r+' Abre para leitura e escrita; coloca o ponteiro do arquivo no começo do arquivo. "

http://br.php.net/fopen/

 

Tá faltando pesquisa hein amigo... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi mal, eu tenho dda, dai eu começo e a ler e passo por cima de alguma coisas

 

skyo... eu coloquei la... mas ele vai substituindo uma frase pela outra... e vai comando as tags que tem tambem

 

<?php

$linha = file(\"arquivo.txt\");

$linha = array_reverse($linha);

$total = count($linha);

?>

 

alguem como aplico esse codigo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de tudo, TiagoMaker, por favor tenha paciência.

Você chegou a postar três vezes em menos de 40 minutos. Leia as Regras, em especial a regra 10.

 

 

Usar fopen() e fwrite() é uma coisa. Usar file(), montar um novo array e salvar tudo de novo no arquivo é outra.

Leia a documentação das funções que você está tentando usar. Você entenderá para quê serve cada uma delas e como usá-las.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta eu vo para de posta

Não vi motivo pra essa mensagem.

 

Você pode pensar que postei somente o link pois estava com má vontade para ajudar. Mas a intenção é a oposta. Apenas não escrevi nada, pois a documentação é bem explicativa. Por isso pedi para você ler a documentação das funções que estava tentando usar.

 

 

file_put_contents():

Esta função é idêntica à chamar fopen(), fwrite() e fclose() sucessivamente para escrever dados em um arquivo.

 

Se filename não existir, o arquivo é criado. Do contrário, o arquivo existente é sobrescrito, a não ser que a flag FILE_APPEND seja definida.

 

file_get_contents()

Esta função é semelhante à file(), exceto que file_get_contents() retorna o arquivo em uma string, começando a partir de offset até maxlen bytes. Em caso de falha, file_get_contents() retornará FALSE.

 

file_get_contents() é o método preferível para ler o conteúdo de um arquivo em uma string. Ela usa técnicas de mapeamento de memória suportadas pelo seu SO para melhorar a performance.

Essa função lê um arquivo. Pelo que entendi, não é isso que quer.

 

 

 

file()

Retorna o arquivo em um array. Cada elemento do array corresponde a uma linha no arquivo, ainda com a quebra de linha. Em caso de falha, file() retorna FALSE

 

fwrite()

Exemplos

 

Example#1 Um simples exemplo de fwrite()

<?php
$filename = 'teste.txt';
$conteudo = "Acrescentar isso ao arquivo\n";

// Primeiro vamos ter certeza de que o arquivo existe e pode ser alterado
if (is_writable($filename)) {

	// Em nosso exemplo, nós vamos abrir o arquivo $filename
	// em modo de adição. O ponteiro do arquivo estará no final
	// do arquivo, e é pra lá que $conteudo irá quando o 
	// escrevermos com fwrite().
	if (!$handle = fopen($filename, 'a')) {
		 echo "Não foi possível abrir o arquivo ($filename)";
		 exit;
	}

	// Escreve $conteudo no nosso arquivo aberto.
	if (fwrite($handle, $conteudo) === FALSE) {
		echo "Não foi possível escrever no arquivo ($filename)";
		exit;
	}

	echo "Sucesso: Escrito ($conteudo) no arquivo ($filename)";

	fclose($handle);

} else {
	echo "O arquivo $filename não pode ser alterado";
}
?>

 

 

Tente usar uma ds formas e veja se obtém sucesso. Se não obtiver, poste o código usado e informe o erro.

 

Nossa (pelo menos a minha) intenção aqui é orientar, não passar a solução já pronta logo no primeiro post. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa parte de inserir os textos no arquivo já está funcionando... o que eu não estou conseguindo fazer, é que cada novo texto seja colocado acima do antigo mas sem subscrever o antigo... eu sei que voces tentam fazer de um modo que a gente pense, mas como so novato, nessas documentações aparecem umas palavras que eu não entendo o uso delas.

 

<?php
include("funcoes.php");
proteger();
?>
<head>
<title>administração</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
	background-color: #61A5F8;
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
-->
</style></head>
<html><body>
<table width="620" height="460" border="0" align="center" cellpadding="0" cellspacing="0" background="imagens/narracoes_BG.gif">
  <tr>
	<td><div align="center">
	  <table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
	<tr>
	  <td><div align="center">
		<?php
$arquivo = 'base_dados.php';
$conteudo = $_POST['conteudo'];
if(!empty($conteudo))
{
if (is_writable($arquivo)) 
{
	if (!$handle = fopen($arquivo, 'a')) 
	{
		 echo("Não foi possível acessar a base de dados!");
		 exit;
	}
	if (fwrite($handle, "<p>$conteudo</p>") === FALSE) 
	{
		echo("Não foi possível adicionar à base de dados!");
		exit;
	}
	fclose($handle);
	} 
	else{echo("O arquivo $arquivo não pode ser alterado");}
}
?>
		<br>
	  </div></td>
	</tr>
  </table>
  <br>
</div>
<form name="gravar" method="post" action=""><p align="center"><textarea name="conteudo" cols="60" rows="6" id="conteudo"></textarea>
	<br>
	<br>
	<br>
	<input name="Submit" type="submit" id="Submit" onClick="alert('Narração inserida com sucesso!')" value="ADICIONAR">
</form></td>
  </tr>
</table>
</body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para inserir no início, você terá de selecionar o conteúdo do arquivo (com file_get_contents()), gravar a nova string e depois gravar novamente o conteúdo selecionado anteriormente.

 

Por exemplo:

$string_a_ser_gravada = "Novo Post\r\n";

$conteudo_anterior = file_get_contents('file.txt');

$nova_string = $string_a_ser_gravada . $conteudo_anterior;

file_put_contents('file.txt', $nova_string);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou quase chegando lá... tentei colocar isso modificando os nomes na página, mas sempre da algum erro, tenho que por isso na mesma página do código ali que mandei? E antes ou depois da inserção?

Compartilhar este post


Link para o post
Compartilhar em outros sites

é que eu não sei onde por esses códigos que você passou, não sei se tenho que substituir por alguma coisa...

 

<?php
include("funcoes.php");
proteger();
?>
<head>
<title>administração</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
	background-color: #61A5F8;
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
-->
</style></head>
<html><body>
<table width="620" height="460" border="0" align="center" cellpadding="0" cellspacing="0" background="imagens/narracoes_BG.gif">
  <tr>
	<td><div align="center">
	  <table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
	<tr>
	  <td><div align="center">
		<?php
$arquivo = 'base_dados.php';
$conteudo = $_POST['conteudo'];
if(!empty($conteudo))
{
if (is_writable($arquivo)) 
{
	if (!$handle = fopen($arquivo, 'a'))
	{
		 echo("Não foi possível acessar a base de dados!");
		 exit;
	}
	if (fwrite($handle, "<p>$conteudo</p>") === FALSE) 
	{
		echo("Não foi possível adicionar à base de dados!");
		exit;
	}
	fclose($handle);
	} 
	else{echo("O arquivo $arquivo não pode ser alterado");}
}

$string_a_ser_gravada = "Novo Post\r\n";

$conteudo_anterior = file_get_contents('base_dados.php');

$nova_string = $string_a_ser_gravada . $conteudo_anterior;

file_put_contents('base_dados.php', $nova_string);
?>
		<br>
	  </div></td>
	</tr>
  </table>
  <br>
</div>
<form name="gravar" method="post" action=""><p align="center"><textarea name="conteudo" cols="60" rows="6" id="conteudo"></textarea>
	<br>
	<br>
	<br>
	<input name="Submit" type="submit" id="Submit" onClick="alert('Narração inserida com sucesso!')" value="ADICIONAR">
</form></td>
  </tr>
</table>
</body></html>

coloquei assim, dai ele imprimi a palavra novo post em cima e o que eu digitei embaixo igual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que resolvi...

 

$string_a_ser_gravada = "<p>$conteudo</p>";

$conteudo_anterior = file_get_contents('base_dados.php');

$nova_string = $string_a_ser_gravada . $conteudo_anterior;

file_put_contents('base_dados.php', $nova_string);

aparentemente parece estar funcionando... ehehehe

valeu beraldo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Código final

 

<?php
include("funcoes.php");
proteger();
?>
<head>
<title>administração</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
	background-color: #61A5F8;
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
-->
</style></head>
<html><body>
<table width="620" height="460" border="0" align="center" cellpadding="0" cellspacing="0" background="imagens/narracoes_BG.gif">
  <tr>
	<td><div align="center">
	  <table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
	<tr>
	  <td><div align="center">
		<?php
$arquivo = 'base_dados.php';
$conteudo = $_POST['conteudo'];

$string_a_ser_gravada = "<p>$conteudo</p>";

$conteudo_anterior = file_get_contents('base_dados.php');

$nova_string = $string_a_ser_gravada . $conteudo_anterior;

file_put_contents('base_dados.php', $nova_string);
?>
		<br>
	  </div></td>
	</tr>
  </table>
  <br>
</div>
<form name="gravar" method="post" action=""><p align="center"><textarea name="conteudo" cols="60" rows="6" id="conteudo"></textarea>
	<br>
	<br>
	<br>
	<input name="Submit" type="submit" id="Submit" onClick="alert('Narração inserida com sucesso!')" value="ADICIONAR">
</form></td>
  </tr>
</table>
</body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.