Visualizzazione risultati 1 fino 16 di 16

Discussione: Login in PHP/Cookie con esito di "Accesso Negato"

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Wink Login in PHP/Cookie con esito di "Accesso Negato"

    Buonasera a tutti,
    ultimamente non avendo niente da fare sto studiano un po' di php dal sito ufficiale e cosi oggi ho deciso di mettere in pratica una piccola idea ma quando eseguo lo script mi dice sempre che non sono loggato e che non posso visualizzare la pagina. Quello che segue è ciò che ho costruito in un quarto d'ora ma che non sono riuscito a capire perchè non funzionava in mezz'ora:

    accedi.php
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">

    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    title>Username</title>
    </
    head>

    <
    body>
    <
    form action="login.php" method="post">
    <
    p>Username:</p>
    <
    input type="text" name="user" value="" />
    <
    br /><p>Password:</p><input type="password" name="pass" value="" />
    <
    br /><input type="submit" value="Login" />
    </
    form>
    </
    body>

    </
    html>
    login.php
    Codice PHP:
    <?
    $pw1
    = "ciao";

    $us = $_POST["user"];
    $pw = $_POST["pass"];

    if (
    $pw == $pw1){
    setcookie("login_miki92", "OK", time() +3600);
    echo
    "<a href=\"riservata.php?utente=$us\">Login Effettuato Correttamente, clicca qui per accedere all'area riservata</a>.";
    }else{
    echo
    "Accesso Negato";
    }
    ?>
    riservata.php
    Codice PHP:
    <? if ($_COOKIE["login_miki92"] == "OK")
    {
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Area Riservata</title>
    </head>

    <body>
    <?
    $us
    = $_GET['utente'];
    ?>
    <p>Benvenuto nell'area riservata <? $us ?>, di seguito sono elencate opzioni riservate a cui tu <u>puoi</u> accedere.</p>

    <p>Se stai usando un pc che non è tuo, prima di uscire ricordati di fare il <a href="logout.php">Logout</a>.</p>
    </body>

    </html>
    <?}else{
    echo
    "Accesso Negato: <a href=\"accedi.php\">Clicca qui per effettuare il login è visualizzare quest'area.</a>";
    }
    ?>
    logout.php
    Codice PHP:
    <? setcookie("login_miki92");
    echo
    "Grazie Per Esserti Collegato a Miki92, arrivederci e a presto!";
    ?>
    Naturalmente come base di partenza di codice scritto da me ho usato i cookie.

    Dimenticavo la pagina login.php mi restituisce questa riga: Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\login.php:1) in C:\AppServ\www\login.php on line 8
    Login Effettuato Correttamente, clicca qui per accedere all'area riservata.
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    Guest

    Predefinito

    Perchè al posto dei cookie non usi le sessioni?a me verrebbe più facile credo.

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Per ora preferisco usare i cookie. Poi semmai alla conclusione di questo problema ci potrei fare un pensiero...
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    Guest

    Predefinito

    Boh io i cookie non l so usare: alternativa con sessioni:
    login.php
    Codice PHP:
    <?
    session_start
    ();
    $pw1 = "ciao";

    $us = $_POST["user"];
    $pw = $_POST["pass"];

    if (
    $pw == $pw1){
    $_SESSION['login']=TRUE;
    $_SESSION['utente']=$_POST['user'];
    echo
    "<a href=\"riservata.php\">Login Effettuato Correttamente, clicca qui per accedere all'area riservata</a>.";
    }else{
    echo
    "Accesso Negato";
    }
    ?>
    Riservata.php
    Codice PHP:
    <?
    session_start
    ();
    if (
    $_SESSION["login"] == TRUE)
    {
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Area Riservata</title>
    </head>

    <body>
    <p>Benvenuto nell'area riservata <? echo "{$_SESSION['user']}" ?>, di seguito sono elencate opzioni riservate a cui tu <u>puoi</u> accedere.</p>

    <p>Se stai usando un pc che non è tuo, prima di uscire ricordati di fare il <a href="logout.php">Logout</a>.</p>
    </body>

    </html>
    <?}else{
    echo
    "Accesso Negato: <a href=\"accedi.php\">Clicca qui per effettuare il login è visualizzare quest'area.</a>";
    }
    ?>
    Logout.php
    Codice PHP:
    <?
    session_start
    ();
    if(
    $_SESSION['login']==TRUE){
    session_unset();
    session_destroy();
    echo
    "Grazie Per Esserti Collegato a Miki92, arrivederci e a presto!";
    }else{echo
    "Non sei collegato";}
    ?>
    Ultima modifica di phelpp : 10-10-2007 alle ore 20.02.32

  5. #5
    Ospite Guest

    Predefinito

    Sicuro che prima di setcookie(...) in login.php non ci sia già dell'output?
    Essendo i cookies degli headers, è necessario evitarlo.
    Inoltre, non è molto sicuro il tuo script, perchè io potrei creare un cookie chiamato "login_miki92" dandogli valore "OK" e navigare indisturbato per le pagine protette del tuo sito, e addirittura potrei collegarmi come qualsiasi utente, semplicemente visitando riservata.php?utente=nome_utente.
    Per questo io invece di impostare il valore del cookie a "OK" lo imposterei nel formato:
    sha1(nomeutente.passwordutente), e in riservata.php oltre a verificare l'esistenza del cookie controllerei se sha1(nome.utente.passwordutente) è uguale al valore del cookie e solo in quel caso mostrerei il contenuto della pagina.
    L'uso delle sessioni che ti è stato già suggerito eviterebbe, o almeno limiterebbe questi problemi, in quanto le sessioni vengono registrate sul server e non sono perciò direttamente modificabili.
    Ciao!

  6. #6
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Certo, sha1 ne ho sentito parlare, quindi ammettiamo che volessi usare questo metodo come dovrebbe divenire il nuovo script?

    Pappapronta Alert !
    Probid ti ha scritto esattamente cosa devi fare, quindi se non hai capito, leggi e rileggi il suo post.
    -Dreadnaut


    P.S. "volessi", non "vorrei"
    Ultima modifica di miki92 : 11-10-2007 alle ore 21.19.56
    Apprezzi l'aiuto? Offrimi un caffè!

  7. #7
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    metti questa funzione in alto alla pagina:
    Codice PHP:
    <?php ob_start(); ?>

    <?
    $pw1
    = "ciao";

    $us = $_POST["user"];
    $pw = $_POST["pass"];

    if (
    $pw == $pw1){

    setcookie("login_miki92", "OK", time() +3600);
    echo
    "<a href=\"riservata.php?utente=$us\">Login Effettuato Correttamente, clicca qui per accedere all'area riservata</a>.";
    //Interrompo il buffering e rilascio il contenuto
    ob_end_flush();
    }else{
    echo
    "Accesso Negato";
    }
    ?>
    questa dovrebbe essere una soluzione, l'altra è quella di modificare il tuo script.
    edito: pensavo di aver visto l echo prima del setcookie :°D
    Ultima modifica di dreadnaut : 12-10-2007 alle ore 11.22.17 Motivo: +tag [php]
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  8. #8
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    EDIT: Ho deciso, utilizzerò le sessioni, però c'è un problema: se volessi accesso multiplo?
    Ultima modifica di miki92 : 11-10-2007 alle ore 21.45.19
    Apprezzi l'aiuto? Offrimi un caffè!

  9. #9
    Ospite Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    EDIT: Ho deciso, utilizzerò le sessioni, però c'è un problema: se vorrei accesso multiplo?
    Citazione Originalmente inviato da EDIT di Dreadnaut
    P.S. "volessi", non "vorrei"
    A quanto pare hai capito perfettamente...

    Comunque, cosa significa "accesso multiplo"?
    Vuoi abilitare più utenze?
    Se è così, come lo sai fare con i cookies lo dovresti saper fare anche utilizzando le sessioni, il concetto è lo stesso.
    Altrimenti spiega meglio cosa non riesci a fare.
    Ciao!

  10. #10
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Beh si vorrei fare più password. Naturalmente ci dovrebbe essere solo il controllo sulla password perchè l'user serve solo in riservata a salutare l'utente.
    Apprezzi l'aiuto? Offrimi un caffè!

  11. #11
    Ospite Guest

    Predefinito

    Ti ho creato questo script, non l'ho provato e l'ho scritto velocemente, quindi non so se funzioni.
    Devi creare un file "utenti.txt" dove aggiungere un utente in ogni riga, nel formato:
    nomeutente|password
    login.php
    Codice PHP:
    <?
    session_start
    ();
    foreach(
    file("utenti.txt") as $line){
    $p=explode("|",$line);
    $user[$p['0']]=$p['1'];
    }
    if(
    trim($user[$_POST['user']])==$_POST['pass']){
    $_SESSION['loggato']=TRUE;
    $_SESSION['utente']=$_POST['user'];
    echo
    "<a href=\"riservata.php\">Login Effettuato Correttamente, clicca qui per accedere all'area riservata</a>.";
    }else
    echo
    "Accesso Negato";
    ?>
    riservata.php

    Codice PHP:
    <?
    session_start
    ();
    if (isset(
    $_SESSION['loggato'])){
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Area Riservata</title>
    </head>

    <body>
    <p>Benvenuto nell'area riservata <? echo $_SESSION['utente']; ?>, di seguito sono elencate opzioni riservate a cui tu <u>puoi</u> accedere.</p>

    <p>Se stai usando un pc che non è tuo, prima di uscire ricordati di fare il <a href="logout.php">Logout</a>.</p>
    </body>

    </html>
    <?}else
    echo
    "Accesso Negato: <a href=\"accedi.php\">Clicca qui per effettuare il login è visualizzare quest'area.</a>";
    ?>
    logout.php
    Codice PHP:
    <?
    session_start
    ();
    if (isset(
    $_SESSION['loggato'])){
    session_destroy();
    echo
    "Grazie Per Esserti Collegato a Miki92, arrivederci e a presto!";}
    else
    echo
    "Non sei collegato";
    ?>

  12. #12
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Grazie probid della fatica ma non mi occorre un nuovo script. Utilizzerò quello di phelpp con qualche piccola modifica. Quello che mi occorre e poter far effettuare l'accesso a più password. Praticamente questo è un login di sola password, l'utente qualsiasi user inserirà servirà solo per salutarlo in riservata.php quindi quello che intendevo fare è una cosa del genere (su login.php):
    Codice PHP:
    <?
    session_start
    ();
    include(
    'database.inc.php');

    $us = $_POST["user"];
    $pw = $_POST["pass"];

    if (
    $pw == $pw1){
    $_SESSION['login']=TRUE;
    $_SESSION['utente']=$_POST['user'];
    echo
    "<a href=\"riservata.php?nome=$us\">Login Effettuato Correttamente, clicca qui per accedere all'area riservata</a>.";
    }else{
    echo
    "Accesso Negato";
    }
    ?>
    database.inc.php
    Codice PHP:
    $pw1 = "password1";
    $pw2 = "password2";
    Apprezzi l'aiuto? Offrimi un caffè!

  13. #13
    Ospite Guest

    Predefinito

    Allora puoi modificare lo script così:

    Codice PHP:
    <?
    session_start
    ();

    $us = $_POST['user'];
    $pw = $_POST['pass'];

    foreach(
    file("database.inc.php") as $line){
    $vpsw[]=trim($line);
    }

    if(
    in_array($pw,$vpsw)){
    $_SESSION['login']=TRUE;
    echo
    "<a href=\"riservata.php?nome=".$us."\">Login Effettuato Correttamente, clicca qui per accedere all'area riservata</a>.";
    }else{
    echo
    "Accesso Negato";
    }
    ?>
    E nello script di Phelpp, in riservata.php devi sostituire:

    Codice PHP:
    <? echo "{$_SESSION['user']}" ?>
    con:

    Codice PHP:
    <? echo $_GET['nome']; ?>
    In database.inc.php devono esserci le password abilitate al login, una per riga:

    password1
    password2
    password3
    Ciao!

  14. #14
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Lo script funziona, ma il problema sorge quando clicco sul link per essere reindirizzato a riservata.php dopo il login: li mi dice che l'accesso mi è negato.
    Apprezzi l'aiuto? Offrimi un caffè!

  15. #15
    Ospite Guest

    Predefinito

    Prova a modificare lo script di Phelpp in questo modo:

    Codice PHP:
    <?
    session_start
    ();
    if (isset(
    $_SESSION['login']))
    {
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Area Riservata</title>
    </head>

    <body>
    <p>Benvenuto nell'area riservata <? echo $_GET['nome']; ?> , di seguito sono elencate opzioni riservate a cui tu <u>puoi</u> accedere.</p>

    <p>Se stai usando un pc che non è tuo, prima di uscire ricordati di fare il <a href="logout.php">Logout</a>.</p>
    </body>

    </html>
    <?}else{
    echo
    "Accesso Negato: <a href=\"accedi.php\">Clicca qui per effettuare il login è visualizzare quest'area.</a>";
    }
    ?>

  16. #16
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Ottimo funziona.
    Apprezzi l'aiuto? Offrimi un caffè!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •