Visualizzazione risultati 1 fino 4 di 4

Discussione: Problemi lista utenti.php e registrazione.php

  1. #1
    Guest

    Predefinito Problemi lista utenti.php e registrazione.php

    Salve.
    Ho utilizzato questo topic quì.

    In pratica il file registrazione.php va a creare e ad inserire nel file utenti.php il nome utente e la password di chi si iscrive. Però nel file utenti.php viene inserito il nick corretto, ma una password strana (probabilmente è un metodo di criptazione o forse è una cavolata ), non quella inserita in registrazione.

    Andando a fare il login, sia inserendo la password usata nella registrazione, sia inserendo quella che appare nel file utenti.php, esce il messaggio user o password errata.

    Inoltre quando apro il file utenti.php da sempre errori .

    Cosa bisogna procedere?

    Grazie.

  2. #2
    Guest

    Predefinito

    Revisionato e corretto tutto ;) scusa se c'è voluto un pò
    Ho ri-indentato un po tutto e messo un paio di commenti per i futuri programmatori che ci metteranno le mani XD

    infsa ma per caso prima ti dava anche parecchi messaggi d'errore? A me si,sia sulla registrazione che sul login...ma ho messo a posto tutto ;)

    Cmq per chi volesse sapere l'errore criptava la password in md5 (quel codice strano è un hash md5 infsa! XD) e poi quando andava a confrontare le password del DB (in questo caso file di testo) con quella inserita dal utente la ricriptava una seconda volta e quindi non corrispondevano ;)

    Questo è il codice corretto,da inserire al posto di quello vecchi in "registrazione.php"

    Codice PHP:
    <?php

    function controlla_presenza($nick){

    $file = file("utenti.php");

    foreach(
    $file as $rigo) {
    $ex = explode("|",$rigo);

    if(@
    $ex[1] == $nick) {
    return
    "presente";
    }
    }
    }

    function
    nick_pass_ok($nick,$pass) {

    $file = file("utenti.php");

    foreach(
    $file as $rigo) {

    $ex = explode("|",$rigo);
    if(@
    $ex[1] == $nick AND $ex[2] == $pass)
    {
    return
    "ok";
    }

    }

    }

    $nick = $_POST['nome'];
    $nick = str_replace("|","",$nick);
    $nick = str_replace("\\","",$nick);
    $vpass = $_POST['pass'];
    $vpass = str_replace("|","",$vpass);
    $vpass = str_replace("\\","",$vpass);
    $pass = md5($vpass);

    if(@
    $_POST['registrati'] OR @$_POST['login']){
    if(
    trim($nick) == "" || trim($pass) == "") {
    header("Location:form.html");
    }
    }

    //Parte della registrazione
    if(@$_POST['registrati']) {
    $check = controlla_presenza($nick);

    if(
    $check == "presente") {
    echo
    "Utente già presente!"; exit();
    }

    $fp = fopen("utenti.php","a+");
    fwrite($fp,"<?php|".$nick."|".$pass."|\n ?>");
    fclose($fp);
    echo
    "$nick registrato! Password: $vpass";
    echo
    "<br><a href='form.html'>Torna alla pagina di login</a>";
    }
    //Parte del login!
    else if(@$_POST['login']) {
    $contr = nick_pass_ok($nick,$pass);

    if(
    $contr == "ok") {
    echo
    "<b>$nick</b> sei loggato!";
    echo
    "Visualizza l'area riservata!";
    }
    else
    {
    echo
    "Nickname o password errati!";
    }
    }
    ?>
    Facci sapere se ora ti funziona correttamente ;)
    Byeee,buon login eheh
    Ultima modifica di pxy : 19-02-2010 alle ore 17.02.24 Motivo: Modifica alla linea 23 del codice,aggiunta del carattere '@'

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da pxy Visualizza messaggio
    infsa ma per caso prima ti dava anche parecchi messaggi d'errore? A me si,sia sulla registrazione che sul login...ma ho messo a posto tutto ;)
    In fase di registrazione no, nel login dava errori.

    Grazie per le correzioni , però utenti.php da ancora errori.

    Volevo chiederti un altro paio di cose:
    • nel file utenti.php la password è ancora criptata, come posso visualizzarla?

    • che codice devo mettere nelle pagine per tenere aperta la sessione e far comparire il messaggio es: "benvenuto $utente?"


    Grazie pxy

  4. #4
    Guest

    Predefinito

    Allora,se usi un file di testo e non cripti la password tutti potranno leggere nomi utente e password corrispondenti accedendo al file di testo stesso e semplicemente sfogliandolo...per questo viene crptata in md5 che è uno dei metodi più sicuri e veloci per criptarla (veramente la trasforma in un hash a 32 caratteri ma vabbè...lasciamo perdere le cose tecniche XD).
    Risalire da un hash Md5 alla password originale è impossibile,per questo viene usato molto ;)

    Cmq procedendo devi modificare la linea N° 38 del file registrazione.php in questo modo:
    Codice PHP:
    $pass = md5($vpass);
    //Da come sopra,modificala come sotto ed elimini la criptazione...
    $pass = $vpass;
    Per "ricoradare" invece chi è che è loggato basta che usi la variabile $_SESSION['cosa_vuoi_tu'] che si inizzializza con session_start();

    Quindi:

    Prendiamo in analisi delle line di codice dalla 64 alla 66

    Codice PHP:
    //Se arrivo qui ho già fatto il login quindi inizializzo e registro la variabile...da come sotto che è l'originale

    if($contr == "ok") {
    echo
    "<b>$nick</b> sei loggato!";
    echo
    "Visualizza l'area riservata ";
    }

    //lo fai diventare

    if($contr == "ok") {
    session_start(); //inizzializzo la variabile
    $_SESSION['nick'] = $nick; //le assegno il valore del nome del utente
    echo "<b>$nick</b> sei loggato!";
    echo
    "Visualizza l'area riservata ";
    }
    Successivamente se voglio recuperare quel valore dalla variabile session,se mi trovassi in un altra pagina basta fare il contrario (rinizzializzo la variabile e "pesco " il valore)

    Codice PHP:
    //questa è la nuova pagina

    session_start();

    $nick = $_SESSION['nick'];

    //e ora $nick avra il valore del nick del utente! Yuuuhuuu :P
    Spero sia tutto chiaro ;)

    P.s che errore ti da utenti.php? io ho provato tutto è va oook! se mi posti il bug vedo di risolverlo ^^
    Byeee spero di aver risolto tutti i tuoi dubbi ;) sennò non esitare a ripostare :P
    Ultima modifica di pxy : 20-02-2010 alle ore 08.38.15 Motivo: Un po di correzioni grammaticali...

Regole di scrittura

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