Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 51
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555

    Difficoltà con autenticazione utenti via http

    Salve ragazzi,
    ho un problema con degli script di autenticazione in http. Lo script è questo:

    Codice PHP:
    <?
    if (!isset($PHP_AUTH_USER)) {
    header('WWW-Authenticate: Basic realm="Area privata"');
    header('HTTP/1.0 401 Unauthorized');
    echo 
    'Richiesta autorizzazione.';
    exit; }
    else {
    include (
    "conf.inc.php");
    $sql "SELECT id FROM utenti WHERE nome='$PHP_AUTH_USER'
             and password='
    $PHP_AUTH_PW'";
    $query mysql_query($sql) or die (errore_server());
    $num mysql_numrows($query);
    if (
    $num == 1) {
    echo 
    "

    Ok, sei autorizzato
    "
    ;
    echo 
    "Il tuo nome utente è  [b]$PHP_AUTH_USER[/b]
    "
    ;
    echo 
    "La tua passwd è  [b]$PHP_AUTH_PW[/b]</p>";
    }
    else if (
    $num == 0)
    {
    echo 
    "Nome utente o password non validi
    "
    ;
    echo 
    "<a href=\"iscriviti.php\">iscriviti</a>";
    }}
    ?>
    Allora, eseguendo lo scrip non accade nulla. O meglio, mi viene aperta la finestrella di autenticazione, ma inserendo nome utente e passowrd, clikko su Ok e mi riapre nuovamente la finestrella con i campi vuoti. Sembra che non peschi i dati dalla tabella utenti. Altrimenti dovrebbe uscirmi la scritta "Ok, sei autorizzato ecc.", oppure rimandarmi al file "iscriviti.php", per procedere all'iscrizione di un nuovo utente.
    Ebbene, nulla di tutto ciò. Come mai?

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    52
    prova con $_SERVER['PHP_AUTH_USER']
    invece di $PHP_AUTH_USER

    Ciauz

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Grazie,
    provo subito la modifica per vedere come va.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ho provatola modifica ma non funziona. Ho sostituito $PHP_AUTH_USER con $_SERVER[PHP_AUTH_USER] nella query e negli echo di conferma ma ancora non accade nulla. inserisco i dati che ho registrato ma clikkando sulla conferma mi riappare subito la finestrella http.
    Come mai?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    anche nell'isset lo hai sostituito?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    No,
    accipicchia, mi ero scordato! Riprovo.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ora ho corretto lo scritp, eccolo:

    Codice PHP:
    <?
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="Area privata"');
    header('HTTP/1.0 401 Unauthorized');
    echo 
    'Richiesta autorizzazione.';
    exit; }
    else {
    include (
    "config.php");
    mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi");
    mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");


    $sql "SELECT id FROM anagrafica WHERE nome=$_SERVER[PHP_AUTH_USER]
             and password=
    $_SERVER[PHP_AUTH_PW]";
    $query mysql_query($sql) or die (errore_server());
    $num mysql_num_rows($query);
    if (
    $num == 1) {
    echo 
    "

    Ok, sei autorizzato
    "
    ;
    echo 
    "Il tuo nome utente è  [b]$_SERVER[PHP_AUTH_USER][/b]
    "
    ;
    echo 
    "La tua passwd è  [b]$_SERVER[PHP_AUTH_PW][/b]</p>";
    }
    else if (
    $num == 0)
    {
    echo 
    "Nome utente o password non validi
    "
    ;
    echo 
    "<a href=\"formregistraz.php\">iscriviti</a>";
    }}
    mysql_close();

    ?>
    Mi viene fuori questo errore:

    Fatal error: Call to undefined function: errore_server() in c:\programmi\easyphp1-8\www\sito definitivoon line\autenticazione area amministrazione\loginadmin.php on line 15

    La linea 15 è questa:

    $query = mysql_query($sql) or die (errore_server());

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    52
    prova sostituendo
    $query = mysql_query($sql) or die (errore_server());

    con
    $query = mysql_query($sql) or die (mysql_error());

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ora, lanciando lo script, ecco che viene fuori:

    "Colonna sconosciuta 'html' in 'where clause'"



    Tenete conto che "html" è il nome utente della tabella "utenti"

    Ecco la struttura tabellare:

    CREATE TABLE `utenti` (
    `id` int(3) NOT NULL auto_increment,
    `nome` varchar(30) NOT NULL default '',
    `cognome` varchar(30) NOT NULL default '',
    `username` varchar(30) NOT NULL default '',
    `password` varchar(34) NOT NULL,
    `mail` char(255) NOT NULL default '',
    `data` char(255) NOT NULL default '',
    `ip` char(15) NOT NULL default '',
    PRIMARY KEY (`id`),
    UNIQUE KEY `id` (`id`),
    KEY `id_2` (`id`)
    )


    Dacosa può dipendere?

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Preciso che "html" è il nome utente che ho inserito io appositamente in tabella per fare un prova con nome utente e password. Ho creato cioè un record con il nome, cognome, username, password, email ecc.

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.