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

    [login] Non fa il redirect corretto

    Ciao ragazzi, ho già fatto una ricerca ma pare che non ci sia la soluzione che cerco...

    Ho creato una pagina di login in PHP con DWMX sfruttando la tabella "tbl_login" dentro MySQL, comparando dal form di login le variabili con i campi della tabella "user" e "password". Funziona tutto, ma nelle pagine riservato anche se il login è corretto mi fa il redirect a una pagina di rilogin mettendo in URL "Access Denied". Provo a postare il codice:

    login.php
    codice:
    <?php require_once('../Connections/prova.php'); ?>
    <?php
    session_start();
    $FF_LoginAction = $HTTP_SERVER_VARS['PHP_SELF'];
    if (isset($HTTP_SERVER_VARS['QUERY_STRING']) && $HTTP_SERVER_VARS['QUERY_STRING']!="") $FF_LoginAction .= "?".htmlentities($HTTP_SERVER_VARS['QUERY_STRING']);
    if (isset($HTTP_POST_VARS['username'])) {
      $FF_valUsername=$HTTP_POST_VARS['username'];
      $FF_valPassword=$HTTP_POST_VARS['pass'];
      $FF_fldUserAuthorization="";
      $FF_redirectLoginSuccess="riservato.php";
      $FF_redirectLoginFailed="riloggati.php";
      $FF_rsUser_Source="SELECT user, password ";
      if ($FF_fldUserAuthorization != "") $FF_rsUser_Source .= "," . $FF_fldUserAuthorization;
      $FF_rsUser_Source .= " FROM tbl_login WHERE user='" . $FF_valUsername . "' AND password='" . $FF_valPassword . "'";
      mysql_select_db($database_prova, $prova);
      $FF_rsUser=mysql_query($FF_rsUser_Source, $prova) or die(mysql_error());
      $row_FF_rsUser = mysql_fetch_assoc($FF_rsUser);
      if(mysql_num_rows($FF_rsUser) > 0) {
        // username and password match - this is a valid user
        $MM_Username=$FF_valUsername;
        session_register("MM_Username");
        if ($FF_fldUserAuthorization != "") {
          $MM_UserAuthorization=$row_FF_rsUser[$FF_fldUserAuthorization];
        } else {
          $MM_UserAuthorization="";
        }
        session_register("MM_UserAuthorization");
        if (isset($accessdenied) && false) {
          $FF_redirectLoginSuccess = $accessdenied;
        }
        mysql_free_result($FF_rsUser);
        session_register("FF_login_failed");
    	$FF_login_failed = false;
        header ("Location: $FF_redirectLoginSuccess");
        exit;
      }
      mysql_free_result($FF_rsUser);
      session_register("FF_login_failed");
      $FF_login_failed = true;
      header ("Location: $FF_redirectLoginFailed");
      exit;
    }
    ?>
    riservato.php
    codice:
    <?php
    // *** Restrict Access To Page: Grant or deny access to this page
    $FF_authorizedUsers=" ";
    $FF_authFailedURL="riloggati.php";
    $FF_grantAccess=0;
    session_start();
    if (isset($HTTP_SESSION_VARS["MM_Username"])) {
      if (true || !(isset($HTTP_SESSION_VARS["MM_UserAuthorization"])) || $HTTP_SESSION_VARS["MM_UserAuthorization"]=="" || strpos($FF_authorizedUsers, $HTTP_SESSION_VARS["MM_UserAuthorization"])) {
        $FF_grantAccess = 1;
      }
    }
    if (!$FF_grantAccess) {
      $FF_qsChar = "?";
      if (strpos($FF_authFailedURL, "?")) $FF_qsChar = "&";
      $FF_referrer = "Restricted Area";
      $FF_authFailedURL = $FF_authFailedURL . $FF_qsChar . "accessdenied=" . urlencode($FF_referrer);
      header("Location: $FF_authFailedURL");
      exit;
    }
    ?>
    Son sicuro che il login funzioni perchè se metto in $FF_redirectLoginSuccess una pagina che non ha un sistema di area riservata, avviene correttamente; invece se sbaglio il login mi manda a riloggati.php. Ma se effettuo correttamente il login e rindirizzo ad una pagina che ha il sistema di area riservata, mi manda lo stesso a riloggati.php, perche?

    Spero di essermi spiegato e grazie in anticipo!

  2. #2

    news dell'ultimora

    Ho provato lo stesso codice con lo stesso db etc...su pc al posto che su mac e mi da questo errore su "riservato.php"

    -----------------------------------------------------------
    Warning: open(/tmp\sess_5af1415cf6be1dceee93e6f72b507cdb, O_RDWR) failed: m (2) in c:/programmi/abria merlin/apache/htdocs/prova/admin/riservato.php on line 6

    Warning: Cannot add header information - headers already sent by (output started at c:/programmi/abria merlin/apache/htdocs/prova/admin/riservato.php:6) in c:/programmi/abria merlin/apache/htdocs/prova/admin/riservato.php on line 17
    ------------------------------------------------------------

    in linea 6 c'è:
    session_start();

    e in linea 17 c'è:
    header("Location: $FF_authFailedURL");

    help me, please...

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372

    Re: news dell'ultimora

    Originariamente inviato da oscarlogoteta
    Ho provato lo stesso codice con lo stesso db etc...su pc al posto che su mac e mi da questo errore su "riservato.php"

    -----------------------------------------------------------
    Warning: open(/tmp\sess_5af1415cf6be1dceee93e6f72b507cdb, O_RDWR) failed: m (2) in c:/programmi/abria merlin/apache/htdocs/prova/admin/riservato.php on line 6

    Warning: Cannot add header information - headers already sent by (output started at c:/programmi/abria merlin/apache/htdocs/prova/admin/riservato.php:6) in c:/programmi/abria merlin/apache/htdocs/prova/admin/riservato.php on line 17
    ------------------------------------------------------------

    in linea 6 c'è:
    session_start();

    e in linea 17 c'è:
    header("Location: $FF_authFailedURL");

    help me, please...
    Non deve esserci neppure il minimo spazio tra il primo carattere del file e <?php
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4

    Re: Re: news dell'ultimora

    Originariamente inviato da badaze
    Non deve esserci neppure il minimo spazio tra il primo carattere del file e <?php
    Non credo di aver capito, credo che sia così, no?

    Però e successa una cosa strana, ho provato il tutto online e funziona...perchè?

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372

    Re: Re: Re: news dell'ultimora

    Originariamente inviato da oscarlogoteta
    Non credo di aver capito, credo che sia così, no?

    Però e successa una cosa strana, ho provato il tutto online e funziona...perchè?
    Se ti dice che un output è già stato mandato, significa che almeno un carattere è stato inviato prima della funzione header.

    Prova a guardare il sorgente della pagina html.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.