• User Newbie

    protezione accesso al Blog

    Ciao a tutti 🙂

    sono nuova di questo forum, vi scrivo per esporvi il mio problema.

    E' tutta la sera che provo a mettere una protezione di questo tipo all'accesso al mio blog:

    image

    Solo che non riesco a trovare il codice.

    Inoltre volevo chiedervi se sapete quali sono e dove si impostano la login e la password e nel caso fossero già state impostate dove si modificano?

    Grazie mille per l'aiuto!

    Ary


  • Super User

    [php]
    function authenticate() {
    header('WWW-Authenticate: Basic realm="Nome Pagina"');
    header('HTTP/1.0 401 Unauthorized');
    echo "Per poter accedere a questa risorsa occorre inserire una coppia login e password valide\n";
    exit;
    }

    if (!isset($_SERVER['PHP_AUTH_USER'])) {
    authenticate();
    } else {
    $u=$_SERVER['PHP_AUTH_USER'];
    $p=$_SERVER['PHP_AUTH_PW'];
    //test password
    if($user)
    {
    //mostra blog
    }
    else
    {
    echo "login errato, verrete rimandati automaticamente alla pagina per effettuare un corretto login.";
    echo "<form action='{$_SERVER['PHP_SELF']}' METHOD='POST'>\n";
    echo "<input type='submit' value='Ri autentifica'>\n";
    echo "</form></p>\n";
    }
    }[/php]

    se lo snippet risultasse poco chiaro: http://www.goldenweb.it/manuale_php/features.http-auth.php


  • User

    Ma dove vanno impostate le password e gli user id? Scusate in anticipo per l'ignoranza.


  • Super User

    dipende da blog a blog il controllo e la gestione delle utenze...


  • User

    Io lo dovrei implementare in wordpress...che usa mysql...come dovrei fare?


  • Super User

    grossomodo così

    [php]
    /* Nel template dell'header all'inizio subito dopo require(ABSPATH . 'wp-blog-header.php'); */

    function authenticate() {
    header('WWW-Authenticate: Basic realm="Nome Pagina"');
    header('HTTP/1.0 401 Unauthorized');
    echo "Per poter accedere a questa risorsa occorre inserire una coppia login e password valide";
    exit;
    }

    if (!isset($_SERVER['PHP_AUTH_USER']) && !isset($_POST['reauth'])) {
    authenticate();
    } else {

    $u=$_SERVER['PHP_AUTH_USER'];
    $p=md5($_SERVER['PHP_AUTH_PW']);

    global $wpdb;

    if(!$wpdb->get_var("SELECT ID FROM wp_users WHERE user_login = '".$u."' AND user_pass = '".$p."' LIMIT 1"))
    {

    echo "login errato, verrete rimandati automaticamente alla pagina per effettuare un corretto login.";
    echo "<form action='{$_SERVER['PHP_SELF']}' METHOD='POST'>\n";
    echo "<input type='hidden' name='reauth' value='1'><input type='submit' value='Ri autentifica'>\n";
    echo "</form></p>\n";
    exit;
    }
    } [/php]

    così però nessuno si può registrare, perchè non visualizzerebbe mai la pagina, solo tu dal pannello admin potresti aggiungere nuovi utenti.