Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di jegger
    Registrato dal
    Mar 2005
    Messaggi
    74

    htpasswd attraverso script php

    stavo provando a creare un file .htpasswd attraverso uno script php. premetto che sono sotto windows xp in locale e che htaccess mi funzia alla perfezione. però se eseguo il codice sottostante non mi crea nessun file con username e password relativa.

    $command="c:\programmi\apache group\apache\bin\htpasswd.exe -cb .htpasswd $username $password";
    exec($command);

    qualcuno sa il perchè? consigli? grazie 100.

  2. #2
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    scusa ma nn è necessario fare questo...il file .htpasswd ha questa sintassi

    nomeutenteassword

    la password è criptata in un modo strano, ma lo puoi fare anche in md5...quindi io provere qualcosa del tipo

    Codice PHP:
    $handle fopen(".htpasswd",w);
    fputs($nomeutente .":"md5($pass),$handle); 
    non mi ricordo se su fputs l'handle va prima o dopo...

  3. #3
    Utente di HTML.it L'avatar di jegger
    Registrato dal
    Mar 2005
    Messaggi
    74
    mumble mumble...forse hai ragione te.ma non dà problemi di sintassi quando dopo htaccess tenta di leggere il file? ora provo.

    fputs dovrebbe essere un alias di fwrite. in tal caso il puntatore va prima. grazie cmq. ora provo e dopo so dirti se funzia!

  4. #4
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    naturalmente il file .htpasswd dev'essere rikiamato con un percorso assoluto (es.: c:\htdocs\sito\.htpasswd).

    Cmq si, fputs è un alias di fwrite.

  5. #5
    Utente di HTML.it L'avatar di jegger
    Registrato dal
    Mar 2005
    Messaggi
    74
    ho provato a fare come dicevi ma non funzia.Cioè ho inserito il codice dentro una procedura di registrazione così:

    $handle = fopen("materiali\.htpasswd",a);
    fwrite($handle,$username.":".md5($password));


    ma quando tento di autenticarmi via htaccess non mi autentica. ho provato a creare le password nei 2 modi.
    nel modo che mi hai consiglito viene scritto questo nel file .htpasswd:
    bbianchi:92eb5ffee6ae2fec3ad71c777531578f

    mentre nel modo "classico" da shell avviene così:
    bbianchi:$apr1$UQ0.....$jb20kIXQwtm4KxjelZHAr/

    ovviamenet la password che ho provato era identica x entrambi i casi.forse la funzione md5 viene implementata diversamente in php e in apache?
    forse conviene tornare a pensare ad una soluzione col mio modo?

  6. #6
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Originariamente inviato da jegger
    ho provato a fare come dicevi ma non funzia.Cioè ho inserito il codice dentro una procedura di registrazione così:

    $handle = fopen("materiali\.htpasswd",a);
    fwrite($handle,$username.":".md5($password));


    ma quando tento di autenticarmi via htaccess non mi autentica. ho provato a creare le password nei 2 modi.
    nel modo che mi hai consiglito viene scritto questo nel file .htpasswd:
    bbianchi:92eb5ffee6ae2fec3ad71c777531578f

    mentre nel modo "classico" da shell avviene così:
    bbianchi:$apr1$UQ0.....$jb20kIXQwtm4KxjelZHAr/

    ovviamenet la password che ho provato era identica x entrambi i casi.forse la funzione md5 viene implementata diversamente in php e in apache?
    forse conviene tornare a pensare ad una soluzione col mio modo?
    posta qui la tua funzione così la posso provare anche io e così ti posso rispondere...e cmq md5 è md5 in tutti i posti

  7. #7
    Utente di HTML.it L'avatar di jegger
    Registrato dal
    Mar 2005
    Messaggi
    74
    ti posto le parti significative del codice:

    //parametri passati dal form
    $nome_post = trim($_POST['nome']);
    $cognome_post = trim($_POST['cognome']);
    $password = trim($_POST['password']);
    $conf_password = trim($_POST['conf_password']);
    $email = trim($_POST['email']);
    $laurea = $_POST['laurea'];
    $altro_corso = trim($_POST['altro_corso']);
    $note = trim($_POST['note']);
    $matricola =$_POST['matricola'];

    //creo l'username da nome e cognome che sono stati passati
    $prefisso=substr($nome_post,0,1);
    $suffisso=substr($cognome_post,0,7);
    $username=$prefisso.$suffisso;

    $handle = fopen("materiali\.htpasswd",a);
    fwrite($handle,$username.":".md5($password));

    infatti è parecchio strano cheusando md5 in 2 modi differenti dia 2 risultati diversi

  8. #8
    Utente di HTML.it L'avatar di jegger
    Registrato dal
    Mar 2005
    Messaggi
    74
    ora che ci ho dato un'occhiata meglio, mi sembra strano che col metodo di creazione da shell del file .htpasswd x qualunque pasword io inserisca mi vengono fuori password criptate che iniziano sempre con "$apr1$".
    una normale funzione md5 non dovrebbe funzionare così.
    non è che può essere una funzione md5 modificata dal team di apache?

    se qualcuno può fare la prova a creare una passwd col metodo standard e con il codice del post sopra e poi le confrontasse mi farebbe un grosso favore visto che a me vengono completamente diverse. :rollo:

  9. #9
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    si ma se tu fai sul prompt dei comandi così

    htpasswd -bcm .htpasswd finalfantasy passwordfinalfantasy

    vedi ke ti crea la pass in formato md5

  10. #10
    Utente di HTML.it L'avatar di jegger
    Registrato dal
    Mar 2005
    Messaggi
    74
    credevo che l'opzione m x md5 fosse di default. almeno così stava scritto.domani provo, ora son troppo cotto x fare un ultimo tentativo.ti ringrazio.speriamo. notte

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.