Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Refresh PHP che non funziona

    Ciao a tutti non mi funziona un refresh:
    Codice PHP:
    <table>
    ...
    /*quando viene caricata la pagina viene effettuato un controllo: */
    <?php
            
    switch($status){
        case 
    AUTH_LOGGED:
         
    header("Refresh: 1;URL=./secure/memberssecure.php"); //se l'utente risulta loggato voglio che salti direttamente alla pagina memberssecure.php
        
    break;
        case 
    AUTH_NOT_LOGGED// nel caso risulata non loggato vi è un form per loggarsi
                
    ......
      break;
    }
      ?
    php>
    </
    table>
    Nel caso l'utente risulta loggato voglio che venga caricata una pagina precisa, ma non si refresha, qualcuno sa darmi qualche consiglio??
    Ciao grazie

  2. #2

  3. #3
    scusa l'ignoranza ma come faccio? non sto lavorando in locale ma su server.

  4. #4

  5. #5
    In questo caso, però, mi sembra di potere dire che lanci l'header dopo avere già stampato qualcosa a video, per cui non dovrebbe mai funzionare così!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Oltre quanto già detto controlla il tag di chiusura di PHP

  7. #7
    ma xké usi una cosa del genere?

    fai direttamente questo:

    header("Location: ./secure/memberssecure.php");
    exit();

    ed il gioco è fatto

    (ovviamente non devi far printare niente prima del comando header!!! altrimenti PHP non può scrivere gli HEADER se ha già outputtato qualcosa).

    Quindi lo script và in cima alla pagina, prima di ogni output
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  8. #8
    Usare il Refresh o Location è uguale! Il primo mi da il vantaggio di impostare il timer che intercorre nel refresh.

    Il fatto è che il codice funziona bene nel [case AUTH_NOT_LOGGED] ma non funziona nel [case AUTH_LOGGED].

    (Questo giochino lo utilizzo in altre pagine solo a parti invertite e funziona correttamente)

    Ad ogni modo ho controllato tutto, chiusure dei tag e possibili print prima del comando, ma non funziona lo stesso. Ora il codice anzichè inserirlo all'interno del <body> l'ho messo direttamente all'interno dell'<head> per evitare possibili stampe.

    Codice PHP:
    <html>
    <head>
    <?php
        
    switch($status){
        case 
    AUTH_LOGGED:
        
    header("Location: ./secure/memberssecure.php"); //nel caso l'utente sia loggato la pagina deve refreshare ma non accade proprio un bel niente.
        
    exit();
    ?>
    </head>
    <body>
      <table>
          .....
          ......

       <?php
        
    break;
        case 
    AUTH_NOT_LOGGED//nel caso l'utente non è loggato appare la form di user e pass
       
    ?>


      <form action="./login.php" method="post" name="frmLogin"> 
      ........
      </form>

    <?php
        
    break;
        }
    ?>
        </body>
    </html>

  9. #9
    Codice PHP:
    <html>
    <head>
    <?php
        
    switch($status){
        case 
    AUTH_LOGGED:
        
    header("Location: ./secure/memberssecure.php"); //nel caso l'utente sia loggato la pagina deve refreshare ma non accade proprio un bel niente.
        
    exit();
    ?>
    Questo pezzo non può funzionare! Php ha gia inviato in uotput 2 stringhe e, nel caso l'utente risulti loggato, da errore.

    Puoi far si che PHP stampi al stringa "<meta http-equiv="Refresh"... "
    oppure l'unica possibilità che funzioni questo pezzo di codice è che in cima alla tua pagina (ma in cima in cima, non ci deve essere proprio niente) metti questo:
    Codice PHP:
    <?php ob_start(); ?>
    mette tutto l'output dentro un buffer di memoria, in questo modo puoi mettere i vari comandi che vogliono essere messi al primo posto(tipo session_start(), header e cosi via) dove vuoi

    ovviamente ti consiglio di leggere il manuale a proposito di questa funzione
    http://it.php.net/ob_start


    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.