Quiza el problema este en el condicional
Este ejemplo funciona: muestra $_POST['texto'] solo cuando hay envio post, al refrescar (a lo que puedes ponerle solo 1 segundo) no lo muestra, ya que $_POST['texto'] viene vacio.
Código PHP:
<form action="" method="post">
<input type="hidden" name="texto" value="Valor" />
<input type="submit" value="Enviar" />
</form>
<?
if($_POST['texto'] != ""){
echo "<br >".$_POST['texto'];
?>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="refresh"
content="3;URL=?">
<?php
}
?>