Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema Login

  1. #1

    Problema Login

    Salve ho un prob con il login.

    Ho una index.php che contiene le variabile con i link a tutte le pagine dunque io per esempio x andare alla pagina di login devo scrivere cosi nell'url www.sito.it/index.php?act=login e mi porta alla pagina di login, se invece non è settato act include la homepage.

    Ho creato un piccolo script di login ed ora lo sto testando e vorrei bloccare tt le pagine.. ma ho un problema.. io inserisco la funzione:

    Codice PHP:
    if(empty($_SERVER['username'])) { header('Location: index.php?act=login'); exit(); } 
    Facendo cosi dovrebbe effettuare il redirect alla pagina di login. Ma succede una cosa sgradita.. ovvero: continua a ricaricare la pagina xke?

    Vi posto il codice della index:
    Codice PHP:
    require_once('conf.php');
    session_start();
    connessione();

    $act= array( 'login' =>  'login.php''films' => 'films.php');

    if(!isset(
    $_GET['act']))
    {
    if(empty(
    $_SERVER['username'])) { header('Location: index.php?act=login'); exit();
    include(
    'home.php');
    } else {
    if(empty(
    $_SERVER['username'])) { header('Location: index.php?act=login'); exit();
    include(
    $act[$_GET['act']);

    Lo inserisco 2 volte di modo che funzioni su tutte le pagine.
    Xo nn capisco xke continui a ricaricare la pagina!
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

  2. #2
    Non capisco un po' di cose nel tuo script.

    1) Perché vai a recuperare lo username di chi si logga da $_SERVER? Semmai in $_SESSION!

    2) Ma perché, visto che richiami una stessa pagina, il cui contenuto cambia in relazione al contenuto della variabile passata via GET, non usi lo switch().

    Potresti fare una cosa del genere.

    Codice PHP:
    require_once('conf.php'); 

    session_start(); 
    connessione(); 

    $act$_GET['act']; 

    switch(
    $act) {

    case 
    "login":
         include(
    "login.php");
    break;

    case 
    "films":
         include(
    "films.php");
    break;

    case 
    "xxx":
    // altro include 
    break;

    default:
       
    header('Location: index.php?act=login');
    break;


    Non è più carino e semplice così????
    Naturalmente, dovresti mettere un controllo in ogni pagina che vai ad includere: se il tuo utente, in poche parole è loggato gli fai visualizzare quanto contenuto nella pagina che includi, altrimenti messaggio di cortesia.

    Ripeto però, perché usi $_SERVERe non $_SESSION per recuperare i dati passati dalla form di login??

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

  3. #3
    Ho sbagliato a scrivere è che nn ho fatto copy 'n' paste ma ho scritto il codice a mano,
    cmq ora provo con lo switch() e ti faccio sapere.

    grazie
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

  4. #4
    Ho risolto, ho aggiunto una condizione if nella quale indico se la variabile di sessione username è vuota e l'act è diverso da login allora utilizza il redirect alla pagina di login.

    Cosi funziona alla perfezione!
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

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.