Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Problema login con php 5.1.6

    Ciao a tutti
    ho un problema con un file login.php che uso per l'autenticazione delle pagine protette.
    Premetto che con versioni php precedenti a 5.1.6 questo script funzionava benissimo.
    Premetto anche che ho trovato questo script nella sezione php dedicata, quindi non è farina del mio sacco!
    Il file interroga il DB dove c'è una tabella amministratori ($table1) con 4 campi: id, nome, utente, password.

    il file é:
    Codice PHP:
    <?
    if(!isset($PHP_AUTH_USER)){
    Header("WWW-authenticate: basic realm=\"Area protetta SGS\"");
    Header("HTTP/1.0 401 Unauthorized");

    echo 
    " <link rel=\"STYLESHEET\" type=\"text/css\" href=\"../css.css\">\n";

    echo 
    "<p class=\"centrato\"><span class=\"TESTO\"><h1>Autorizzazione richiesta</h1></p></span>\n";
    echo 
    "<p class=\"centrato\"><span class=\"TESTO\">Inserire Username e Password corretti per accedere all'area protetta</p></span>\n";
    exit();
    }

    else{

    DB_Connect();

    $query DB_Query("SELECT Amministratori_Login, Amministratori_Password FROM $table1 WHERE Amministratori_Login = '" $PHP_AUTH_USER "' AND Amministratori_Password = '" $PHP_AUTH_PW "' ");


    //Il risultato potr‡ essere 0 (zero) l'utente non esiste o ha inserito dati sbagliati e 1, l'utente esiste e si logga

    $esiste mysql_num_rows($query);
    if (
    $esiste ){
    Header("WWW-authenticate: basic realm=\"Area Protetta SGS\"");
    Header("HTTP/1.0 401 Unauthorized");
    echo 
    "<p class=\"centrato\"><span class=\"TESTO\"><h1>Autorizzazione richiesta</h1></p></span>\n";
    echo 
    "<p class=\"centrato\"><span class=\"TESTO\">Inserire Username e Password corretti per accedere all'area protetta</p></span>\n";
    exit();
    }
    }
    ?>
    Pensavo che fosse sufficiente aggiungere modificare $PHP_AUTH_USER con $_GET[PHP_AUTH_USER] ma non funziona.
    Non so proprio dove mettere le mani.
    Qualcuno può darmi una mano?
    Grazie a tutti

  2. #2
    scusa ma i dati li mandi via POST o GET?

    Cmq se li mandi via POST fai così:
    $_POST[PHP_AUTH_USER]

  3. #3
    Ciao Angelo86
    no questo file login.php lo includo nel file che devo proteggere (es. index.php).
    Percui quando mi linko a index.php il file login.php mi apre il prompt del browser e mi chiede password e username e successivamente(o contemporaneamente, boh?) manda,la query al DB.
    Se user e PW esistono, mi apre index.php altrimenti mi visualizza il messaggio di errore contenuto nel file login.php
    E' per questo che non so se è giusto usare GET o POST o forse è l'header.
    Proprio non lo so.

    Ho provato anche con POST ma non va.

  4. #4
    se le mandi con il prompt "java-script", allora sono varibili GET.
    prova a fare così:

    Codice PHP:
    <?
    $php_user 
    $_GET['PHP_AUTH_USER']; 
    $php_pwd $_GET['PHP_AUTH_PW']; 


    if(!isset(
    $php_user)){ 
    Header("WWW-authenticate: basic realm=\"Area protetta SGS\""); 
    Header("HTTP/1.0 401 Unauthorized"); 

    echo 
    " <link rel=\"STYLESHEET\" type=\"text/css\" href=\"../css.css\">\n"

    echo 
    "<p class=\"centrato\"><span class=\"TESTO\"><h1>Autorizzazione richiesta</h1></p></span>\n"
    echo 
    "<p class=\"centrato\"><span class=\"TESTO\">Inserire Username e Password corretti per accedere all'area protetta</p></span>\n"
    exit(); 


    else{ 

    DB_Connect(); 

    $query DB_Query("SELECT Amministratori_Login, Amministratori_Password FROM $table1 WHERE Amministratori_Login = '" $php_user "' AND Amministratori_Password = '" $php_pwd "' "); 


    //Il risultato potr‡ essere 0 (zero) l'utente non esiste o ha inserito dati sbagliati e 1, l'utente esiste e si logga 

    $esiste mysql_num_rows($query); 
    if (
    $esiste ){ 
    Header("WWW-authenticate: basic realm=\"Area Protetta SGS\""); 
    Header("HTTP/1.0 401 Unauthorized"); 
    echo 
    "<p class=\"centrato\"><span class=\"TESTO\"><h1>Autorizzazione richiesta</h1></p></span>\n"
    echo 
    "<p class=\"centrato\"><span class=\"TESTO\">Inserire Username e Password corretti per accedere all'area protetta</p></span>\n"
    exit(); 


    ?>
    Fammi sapere

  5. #5
    Ho provato ma non funziona nemmeno così.

    Ho provato a modificare anche l'isset con $_GET['PHP_AUTH_USER'] ma non funziona.

    Mi sa tanto che devo cambiare sistema, anche se mi dispiace perchè questo mi sembrava più sicuro.

    Comunque secondo me è qualcosa nell'header, magari mi sbaglio - non sono molto ferrato sull'argomento.

    Tu come faresti?

  6. #6
    fa un'attimo questa prova:

    Codice PHP:
    <?
    session_start
    ();
    ##############################
    if (!ini_get('register_globals')) {
      
    $superglobals = array($_SERVER$_ENV$_FILES$_COOKIE$_POST$_GET);
      if (isset(
    $_SESSION)) {
          
    array_unshift($superglobals$_SESSION);
       }
       foreach (
    $superglobals as $superglobal) {
          
    extract($superglobalEXTR_SKIP);
       }
    }
    ##############################

    if(!isset($PHP_AUTH_USER)){ 
    Header("WWW-authenticate: basic realm=\"Area protetta SGS\""); 
    Header("HTTP/1.0 401 Unauthorized"); 

    echo 
    " <link rel=\"STYLESHEET\" type=\"text/css\" href=\"../css.css\">\n"

    echo 
    "<p class=\"centrato\"><span class=\"TESTO\"><h1>Autorizzazione richiesta</h1></p></span>\n"
    echo 
    "<p class=\"centrato\"><span class=\"TESTO\">Inserire Username e Password corretti per accedere all'area protetta</p></span>\n"
    exit(); 


    else{ 

    DB_Connect(); 

    $query DB_Query("SELECT Amministratori_Login, Amministratori_Password FROM $table1 WHERE Amministratori_Login = '" $PHP_AUTH_USER "' AND Amministratori_Password = '" $PHP_AUTH_PW "' "); 


    //Il risultato potr‡ essere 0 (zero) l'utente non esiste o ha inserito dati sbagliati e 1, l'utente esiste e si logga 

    $esiste mysql_num_rows($query); 
    if (
    $esiste ){ 
    Header("WWW-authenticate: basic realm=\"Area Protetta SGS\""); 
    Header("HTTP/1.0 401 Unauthorized"); 
    echo 
    "<p class=\"centrato\"><span class=\"TESTO\"><h1>Autorizzazione richiesta</h1></p></span>\n"
    echo 
    "<p class=\"centrato\"><span class=\"TESTO\">Inserire Username e Password corretti per accedere all'area protetta</p></span>\n"
    exit(); 


    ?>
    Fammi sapere

  7. #7
    E' andato!
    Mitico, funziona, grazie.

    Tanto per capire, come mai ora riconosce i valori e prima no?
    Un'ultima domanda: la session rimane attiva fino a quando non chiudo il browser o gli do un comando di chiusura, giusto?

    Sei proprio un angelo86.

  8. #8
    ops ho messo una sessione di troppo

    Togli "session_start();" dallo script

  9. #9
    OK è perfetto.

    Grazie ancora, ciao e a buon rendere

  10. #10
    Tanto per capire, come mai ora riconosce i valori e prima no?

    Quello script che ti ho fatto aggiungere serve per attivare le 'register_globals', che con php 5.-- sono disattivate di defaut...

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.