Newsgroup: it.comp.www.php
Titolo: Re: refresh no!

 meglio, a non visualizzare questo salto?
Se non posti il codice e' difficile capire che cosa realmente stai
facendo/tentando di fare.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

ciao,		


 
Hai ragione:
if ($_SESSION['id_wm']==="8099")
                 {
                      $result=" <meta http-equiv=\"refresh\" 
content=\"0;url=index.php?tpl=superuser_menu\">";
                      $_SESSION['loggedON']=80995432;
                 }
                 else
{
                   if ($pp->wm_parent!=null)
                   {
                      $result=" <meta http-equiv=\"refresh\" 
content=\"0;url=index.php?tpl=sub_wm_menu\">";
                      $_SESSION['loggedON']=3232;
                   }
                   else
                   {
	                  $result=" <meta http-equiv=\"refresh\" 
content=\"0;url=index.php?tpl=wm_menu\">";
	                  $_SESSION['loggedON']=5454;
	                  }
                 }
questa è una parte di codice di una funzione che in base al tipo di 
utente mi ridirige su una determinata pagina! Il problema è che quando 
clicco sul submit per un attimo, 1 secondo, viene visualizzato il 
contenuto di $result! Al quanto fastidioso da vedere, mi chiedevo se era 
possibile evitarlo!

 
Perchè invece di mandare un meta tag con il refresh non fai un 
header("Location: path_file?parametro=valore");
http://it2.php.net/header
questo ti ridirige automaticamente alla pagina che ti serve senza avere 
problemi di inviare nuovamente informazioni al Browser.
jumpaolo

 vedere, mi chiedevo se era possibile evitarlo!
http://www.php.net/header
 location
http://setecastronomy.stufftoread.com/go.php?ID=8


jumpaolo ha scritto:

ho provato a sostituire meta tag con  header("Location: 
path_file?parametro=valore"); ma usandolo la pagina si blocca e 
visualizza path_file?parametro=valore!

luca ha scritto:

questa è la funzione completa che uso:
function dial_login()
{
  $result=null;
  if ($_POST['user_wm'] && $_POST['pwd_wm'] )
  {
       $_SESSION['wm_nome']=$_POST['user_wm'];
       $username=$_POST['user_wm'];
       $passwd=$_POST['pwd_wm'];
       if ( $DB_DB->Query("select * from wm where user=\"".$username."\" 
and pwd=\"".$passwd."\" and attivo='1'" ,$error) )
       {
           if ( $DB_DB->ReturnNum() > 0 )
           {
                 $pp=$DB_DB->fetchObj() ;
                 $_SESSION['id_wm']=$pp->id;
                 $_SESSION['user']=$username;
                 if ($_SESSION['id_wm']==="8099")
                 {
                      $result=" <meta http-equiv=\"refresh\" 
content=\"0;url=index.php?tpl=superuser_menu\">";
                      $_SESSION['loggedON']=80995432;
                 }
                 else
{
                   if ($pp->wm_parent!=null)
                   {
                      $result=" <meta http-equiv=\"refresh\" 
content=\"0;url=index.php?tpl=sub_wm_menu\">";
                      $_SESSION['loggedON']=3232;
                   }
                   else
                   {
	                  $result=" <meta http-equiv=\"refresh\" 
content=\"0;url=index.php?tpl=wm_menu\">";
	                  $_SESSION['loggedON']=5454;
	                  }
                 }
                get_wmdata();
           }
           else
           {
              $result="ATTENZIONE dati immessi non validi !!!";
           }
         }
    }
    $DB_DB->FreeResult(true);
    return $result;
}
se metto header(location ...) mi si blocca !

 visualizza path_file?parametro=valore!
error_reporting = E_ALL (headers already sent), attiva l'output
buffering oppure inserisci og_start (); prima di qualsiasi output.


 
scusa, non ho capito bene come inserire og_start ();

 scusa, non ho capito bene come inserire og_start ();
Intendevo ob_start ();
Lo devi inserire nello script PHP PRIMA di qualsiasi output (es.
all'inizio dello script).


 
nn mi va!
function dial_login()
{
  $result=null;
  if ($_POST['user_wm'] && $_POST['pwd_wm'] )
  {
       $_SESSION['wm_nome']=$_POST['user_wm'];
       $username=$_POST['user_wm'];
       $passwd=$_POST['pwd_wm'];
       if ( $DB_DB->Query("select * from wm where user=\"".$username."\" 
and pwd=\"".$passwd."\" and attivo='1'" ,$error) )
       {
           if ( $DB_DB->ReturnNum() > 0 )
           {
                 $pp=$DB_DB->fetchObj() ;
                 $_SESSION['id_wm']=$pp->id;
                 $_SESSION['user']=$username;
                 if ($_SESSION['id_wm']==="8099")
                 {
                      $result=" <meta http-equiv=\"refresh\" 
content=\"0;url=index.php?tpl=superuser_menu\">";
                      $_SESSION['loggedON']=80995432;
                 }
                 else
{
                   if ($pp->wm_parent!=null)
                   {
                      $result=" <meta http-equiv=\"refresh\" 
content=\"0;url=index.php?tpl=sub_wm_menu\">";
                      $_SESSION['loggedON']=3232;
                   }
                   else
                   {
                       $result=" <meta http-equiv=\"refresh\" 
content=\"0;url=index.php?tpl=wm_menu\">";
                       $_SESSION['loggedON']=5454;
                       }
                 }
                get_wmdata();
           }
           else
           {
              $result="ATTENZIONE dati immessi non validi !!!";
           }
         }
    }
    $DB_DB->FreeResult(true);
    return $result;
}
uso qst funzione!

 ha scritto:

Come ben dice Setec, puoi intercettare l'output con ob_start()... ma se hai 
problemi a capirlo devi stare ben attento che per fare funzionare l'header non 
devi aver inviato niente, ovvero non ci deve essere nessun spazio vuoto e 
nessun echo o  print.
Esempio 1:
Procedimento sbagliato....
<?php require_once(file); ?>
<?php 
header("Location: ....."); 
exit;
?>
come vedi c'è uno spazio vuoto che mi darà sicuramente problemi....
Esempio 2:
Procedimento sbagliato....
<?php 
echo '<html><head>.......';
header("Location: ....."); 
exit;
?>
anche se non ci sono spazi prima dell'header hai inviato dati al browser 
tramite l'echo....
spero di esserti stato d'aiuto
jumpaolo

 nn mi va!
Definisci "nn mi va".
Inoltre, non c'e' da nessuna parte header location ne ob_start.
