Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Header e login

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178

    Header e login

    In un mio sito le sessioni sono portate avanti con il sid che viaggia con metodo LINK.
    Quando mi loggo nella index viene eseguito un semplice header:
    Codice PHP:
    header("Refresh: 2;URL=index.php?sid=".$sid); 
    Incorrò però in un fastidioso problema.
    Se l'utente lascia scadere la sessione e viene bloccato nella sua navigazione, sull destra riappare giustamente il modulo di login ma se lui lo utilizza nuovamente torna alla index (Normale direte voi).
    Ecco, io vorrei che tornasse alla pagina che stava visitando, che dovrebbe avere una path simile a:

    index.php?ctrl=news
    index.php?ctrl=profilo

    Stavo pensando di usare l'array superglobale $HTTP_REFERER, così da indirizzarlo esattamente da dove proveniva appendendo il nuovo sid al posto del vecchio.
    Codice PHP:
    $origine $HTTP_REFERER
    header
    ("Refresh: 2;URL=$origine&sid=".$sid); 
    Come facilmente intuirete in $origine però è già compreso il vecchio sid essendostampato nella barra di navigazione per cui devo trovare un modo per elidere il vecchio e appiccicarci il nuovo.

    Consigli?

  2. #2
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Puoi mettere un campo "hidden" nel form di login, il cui valore è la pagina di provenienza senza querystring:

    Codice PHP:
    <input type="hidden" name="provenienza" value="<?php print($_SERVER['PHP_SELF']); ?>" />
    Cosi ti porti dietro alla pagina di login la pagina da cui si è loggato l'utente, ma senza il GET del sid.

    bye^^

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178
    Lo avrei fatto ma sfortunatamente sarebbe sempre inde.php, visto che utilizzo moduli caricati da uno switch nella index tramite il sistema index.php?ctrl=

    Ho risolto passando la variabile $ctrl da index a login.php, impostando l'header in questa maniera:

    Codice PHP:
    if ($ctrl == "") { $redir ""; } else { $redir "&ctrl=$ctrl"; }
            
    header("Refresh: 2;URL=index.php?uid=".$uid.$redir); 
    Così da evitare anche la fastidiosa pagina index.php?ctrl="" che tanto bella da vedere non era.

    Immagino che quella condizione avrei potuto scriverla meglio cmq.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.