Ir para conteúdo

POWERED BY:

Arquivado

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

estevao_lucas

Como faço para mostrar os outputs fora do body

Recommended Posts

Olá,

 

Gostaria de saber como faço para mostrar os output fora do body:

 

ex: posso botar um 'echo' antes do incio do HTML que ele é mostrado no 'body'.

 

Alguem sabe porque isso acontece?

 

Att,

Estevão Lucas

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que é o "body" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você fizer:

 

<?php
echo "teste";
?>
<html>
<head>...</head>
<body>...</body>
</html>
Não imprime antes da tag html ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser sim. Deixa eu ver o código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?

if( isset( $_REQUEST[ "uid" ] ) && isset( $_REQUEST[ "friends" ] ) )

{

setcookie( "uid", $_REQUEST[ "uid" ] );

setcookie( "friends", $_REQUEST[ "friends" ] );

}

 

define( "ZOEIRA_DIR", "./" );

define( "SMARTY_DIR", "../smarty/" );

include( ZOEIRA_DIR . "libs/setup.php" );

 

$zoeira = new Zoeira( $_COOKIE[ "uid" ] );

$_action = isset( $_REQUEST[ "action" ] )

? $_REQUEST[ "action" ]

: "config";

 

switch( $_action )

{

case "saveZoation":

$zoeira->saveZoation( $_GET );

break;

case "zoations":

$condition = "";

$type = isset( $_REQUEST[ "type" ] )

? $_REQUEST[ "type" ]

: "friends";

 

if( $type == "friends" )

{

$condition = $_COOKIE[ "friends" ];

}

elseif( $type == "teams" )

{

$condition = $_REQUEST[ "id" ];

}

 

$xhr = isset( $_GET[ "ajax" ] ) && $_GET[ "ajax" ] == "true"

? $_GET[ "ajax" ]

: false;

 

$zoeira->displayZoations( $zoeira->getZoations( $type, $condition ), $xhr );

break;

case "saveConfig":

if( $zoeira->isValidForm( $_POST ) )

{

$zoeira->saveUser( $_POST );

//$zoeira->displayConfig( $zoeira->getTeams(), $zoeira->getUserTeams( $zoeira->uid ) );

}

else

{

/// $zoeira->displayForm( $_POST );

}

break;

case "config":

default:

$zoeira->displayConfig( $zoeira->getTeams() );

break;

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que percebi, este arquivo é um controlador, não é ele quem exibe as infomações na tela. Você deve estar usando algum framework e/ou algum template engine.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso, estou usando o Smarty PHP.

 

A view config.php:

{include file="inc/head.php"}
</head>

<body class="zoation">
	<div id="geral">
		{include file="inc/header.php"}
		<div id="conteudo">
			<p class="error"></p>
			<form action="index.php" method="post">
				<ul>
					<li>
						<label for="like_id">Time que gosta:</label>
						<select name="like_id" id="like_id">
							{html_options options=$teams selected=$like}
						</select>
					</li>
					<li>
						<label for="unlike_id">Time que odeia:</label>
						<select name="unlike_id" id="unlike_id">
							{html_options options=$teams selected=$unlike}
						</select>
					</li>
				</ul>
				{if !$marty.post.uid}{$marty.now}{/if}
				<input type="hidden" name="uid" value="123123" />
				<input type="hidden" name="action" value="saveConfig" />
				<button type="submit" class="bt_salvar">Salvar</button>
			</form>
		</div>
		{include file=inc/rodape.php}
	</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lá no template, você pode adicionar uma chamada para a variável que quer imprimir, antes do body.

 

Ou você pode dar um 'echo' antes de dar um 'display' no template.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema de está mostrando os outputs dentro do body não é nem porque estou querendo usar o echo não, é porque estou querendo gravar Cookies aquele famoso erro "Cannot modify header information - headers already sent", pois está renderizandod primeiro a pagina e depois tenta gravar o cookie.

 

Eu já tentei usar o ob_start() no começo do index.php (o primeiro arquivo), porem não funciona.

 

Entende?

 

Atenciosamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa eu ver o index.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sevocê coloca um 'echo', lá no index.php, e ele é chamado diretamente pela URL, não faz sentido ele ser impresso dentro do body, porque alí não tem controle de buffer... Tem que ter uma explicação, e não estou entendendo o que está acontecendo...

Este arquivo está na internet pra eu ver ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://209.20.87.172/yanswers/answers/trun...7176,1224097197

 

Se você for olhar o codigo, ele está fora da tag HTML, com o desejado. Porem se voce olhar o codigo gerado ("View generated source" ) com o plugin do Firefox, Web Developer Toolbar, verá que o codigo está dentro da tag "body", e erro está sendo mostrado dentro da área cinza que é a área do body, pois dei essa cor no para o body no CSS.

 

 

Att

Estevão Lucas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah sim, está certo então.

É que quando você olha o código gerado pelo plugin do firefox, ele vai te mostrar a estrutura DOM em memória, onde todos os elementos estão dentro do body.

Não há nada de errado nisso. Este é o comportamento esperado, representando a estrutura que o borwser montou na memória.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Manda o arquivo index.php que você está usando pro meu e-mail, te mandei uma MP com ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu disconfiava, há um espaço e um caractere que não pude identificar antes da tag de abertura do php

 

{espaço}<?

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.