Visualizzazione risultati 1 fino 12 di 12

Discussione: php txt login

  1. #1
    Guest

    Question php txt login

    Allora penso che sia la sessione giusta, io sono marco e sono nuovo del forum...
    Comunque veniamo al dunque io ho un sito web con questo hosting altervista e avevo pensato di creare una sessione privata, ovvero, una sessione nella quale
    ci puoi accedere solo se sei registrato quindi immettendo un username e una
    password... premetto che non voglio usare un database per fare cio, voi dire e'
    una cosa impossibile ma penso che si puo fare, il mio progetto stava nel creare
    un index con un link che ti manda a una pagina di registrazione dove tu metti
    tipo username, password, nome, cognome e altre cose del genere e quando
    clicchi sul tasto invia i tuoi dati vengono inviati a una pagina php che prende le
    variabili (username e password) e le scrive in un file .txt, poi quando ti devi
    loggare per entrare nelle sessioni protette devi inserire username e password,
    quando clicchi invia vieni inviato a una pagina protetta (solo se nel file .txt ci
    sono scritti l username e la password che ha scritto l utente in quei campi), se non
    se l username e la password sono errati il php ti manda a una pagina dove c/e scritto non sei loggato quindi non puoi accedere al materiale privato... una figata vero?
    pero sara realizzabile solo se mi date una mano, grazie comunque!
    il mio sito:http://www.graphicalternati.altervista.org/

  2. #2
    Guest

    Predefinito

    Premettiamo che risulta essere molto più semplice lavorare con il database a questo punto se non puoi fare altro allora ti consiglio di seguire questi passi:

    - Crea una cartella a parte dove inserire il solo file degli utenti.
    - In questa cartella crei un file .htaccess che blocchi l'accesso al file, altrimenti chiunque potrebbe guardarsi username e password degli utenti.
    - Nel file ogni riga corrisponde ad un utente dove username e password sono separati da uno spazio.
    - Tutti gli username e le password vengono salvate in MD5 durante la registrazione.
    - Tutti gli username e password scritti nel login vengono convertiti in MD5 e confrontati riga per riga con i dati nel file durante il login.
    - Fidati, è molto ma molto più semplice lavorare con i database.

  3. #3
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito

    Si è vero ci si impiega due attimi con il database a fare ciò che vuoi fare tu graficaangelbeta, ma comunque si può fare anche con i file di testo.

    Comunque io ti faccio vedere un esempio fatto così alla cavolo, c'è sicuramente molto meglio:

    crei una pagina chiamata index.php
    Codice PHP:
    <?php
    session_start
    (loggato);
    session_start(utente);
    if (!isset(
    $_SESSION['loggato'])){
    echo
    "<form action='' method='POST'>
    Compila questo form per registrarti<br/>
    Username:<input type='tex' name='user'><br/>
    Password:<input type='text' name='pass'><br/>
    <input type='submit' name='register' value='Registrati'>
    </form>

    <br/>

    <form action='' method='POST'>
    Compila questo form per loggarti<br/>
    Username:<input type='tex' name='user'><br/>
    Password:<input type='password'' name='pass'><br/>
    <input type='submit' name='login' value='Loggati'>
    </form>
    "
    ;

    if(
    $_POST['register']){
    $user=$_POST['user'];
    $pass=$_POST['pass'];
    $md5=md5($pass);
    $userfp =fopen('account.txt', 'w+');
    fputs ($userfp, "$user");
    $passfp =fopen('password.txt', 'w+');
    fputs ($passfp, "$md5");
    $_SESSION['loggato']="si";
    $_SESSION['login']=$user;
    header("Location:index.php");
    }


    if(
    $_POST['login']){

    $user=$_POST['user'];
    $pass=$_POST['pass'];
    $md5=md5($pass);
    $userfp = fopen("account.txt", "r");
    $data = fread($userfp, 100);
    echo
    $data;
    $passfp = fopen("password.txt", "r");
    $data2 = fread($passfp, 100);
    if(
    $user==$data && $md5==$data2){
    $_SESSION['loggato']="si";
    $_SESSION['login']=$user;
    header("Location:index.php");
    }

    else{
    echo
    "<script>alert('username o password errata!');</script>";
    }


    }
    }
    else{
    $user=$_SESSION['user'];
    echo
    "Ciao ".$user." ti sei appena loggato! <a href='?esci=esci'>esci</a>";

    if(
    $_GET[esci]=="esci"){
    session_destroy();
    }
    }
    Ultima modifica di karl94 : 06-07-2011 alle ore 09.48.04 Motivo: formattazione del codice

  4. #4
    Guest

    Question risposta

    allora io ringrazio entrambi gli utenti che hanno, pero a me servirebbe una cartella con queste caratteristiche:
    index php che ti da la possibilità di loggarti inserendo username e password, tali devono essere presenti in un file di testo .txt, quindi ricapitolando la pagina dopo che hai inserito username e password controllo se tali sono presenti nel file di testo txt, se sono presenti ti manda a una pagina (segreta), se non sono presenti ti dice "username e password errati, se non ti sei registrato registrati qui!" (e ti manda a una paggina di registrazione) tale pagina ti da la possibilità di inserire username password e altre cose (solo username e password alla fine serviranno) comunque una volta inserite cliccando sul tasto registrati vieni inviato a una pagina che dice ti sei reggistrato ora ti devi loggare per visualizzare pagine protette... e quindi di nuovo la procedura che fa la pagina index.php

    devo dire per quanto voi potete essere bravi io di php non capisco molto quindi neanche di .htcasses e cose varie... quindi vi prego e vi scongiuro o mettete qualche
    commento nei php o spiegate meglio... perpiacere rispondetemi e scusate le mie troppe caratteristiche

  5. #5
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito

    Ok, è molto facile ti spiego io: tu ti crei uno o più file dipendentemente da come vuoi lavorare, ovvero ci serviranno un file per loggarsi, uno per registrarsi e uno per la pagina segreta,

    la parte del login la puoi mettere direttamente sul file: index.php così come il form per la registrazione puoi sempre inserirlo nella medesima pagina (index.php) ma se vuoi puoi crearti una nuova pagina che potrai chiamare come vuoi, esempio: registrazione.php.

    se il nostro lavoro sarà composto su tre file: index.php , registrazione.php e segreta.php allora lavoreremo così;

    crei il file index.php dove scriverai:

    Codice PHP:
    <!--creo il form di login -->
    <form action="" method="POST">
    Inserisci username:<input type="text" name="user""><br/>
    Inserisci password:<input type="text" name="pass""><br/>
    <input type="submit" name="invia" value="Accedi"></form>
    <br/>
    Non sei registrato? Registrati allora <a href="registrazione.php">Clicca qui!</a>


    <?php
    //startiamo una sessione che chiameremo login vedremo poi perchè, ti consiglio comunque di cercare qualche guida a riguardo
    session_start(login);
    //ora creiamo il codice per definire quando clicchiamo sul bottone "Accedi" che ha come nome "invia" ricordati che abbiamo definito come metodo del form "post" e quindi faremo così
    if($_POST['invia']){
    //richiamiamo i valori dell'username e della password in variabili
    $user=$_POST['user'];
    $pass=$_POST['pass'];
    //Ora cripto la variabile della password con un algoritmo per aumentare la sicurezza, si può non usare ma è consigliato
    $md5=md5($pass);

    //ora leggo il file .txt vedremo dopo come crearlo questo file che si chiamerà account.txt per l'account e password.txt per la password per leggere si usa la funzione fopen("nomefile" , 'r') ti consiglio di leggere qualche guida in proposito
    $userfp=fopen("account.php" , 'r');
    //preleviamo ciò che c'è scritto nel file account.txt, si usa la funzione fread(variabile da utilizzare, numero caratteri da leggere nel file); io uso 100 così per fare amemttiamo che un user usi un nome svedese o stranissimo (dico svedese così perchè c'avevo voglia)
    $userdati = fread($userfp, 100);
    //facciamo lo stesso come per la password
    $passfp=fopen("password.php" , 'r');
    $passdati = fread($passfp, 100);

    //ora creiamo due condizioni , se user combacia con userdati e se pass combacia ccon passdati allora saremo spediti alla pagina segreta.php
    if($user==$userdati && $md5==$passdati){
    //qua apriremo una sessione, quella del login che definniremo come il nome dell'username che abbiamo registrato
    $_SESSION['login']=$user;
    //ora ci creiamo un redirect che ci porterà alla pagina segreta.php
    header("Location:segreta.php");
    }
    //invece se sono diversi ci darà errore che possiamo farlo come testo normale o come messaggio d'errore con un alter oppure come più ti aggrada
    else{
    echo
    "<script>alert('Username o password errati!');</script>";
    }
    }

    ?>


    Ora creiamo il file registrazione.php

    Codice PHP:
    <!--creiamo il form -->
    Registrati!<br/>
    <form action="" method="POST">
    Username:<input type="text" name="user"><br>
    Password:<input type="text" name="pass"><br/>
    <input type="submit" name="invia" value="Registrati"></form>

    <?php
    //facciamo la stessa cosa di prima cerifichiamo che il bottone sia stato premuto
    if($_POST['invia']){
    //richiamiamo in variabili i dati che ci interessano
    $user=$_POST['user'];
    $pass=$_POST['pass'];
    $md5=md5($pass);
    //creiamo il file account.txt e password.txt w serve per scrivere
    $userfp =fopen('account.txt', 'w+');
    //Decidiamo cosa inserire all'interno del file
    fputs ($userfp, "$user");
    //creiamo il file password.txt
    $passfp =fopen('password.txt', 'w+');
    ////stessa cosa per la password
    fputs ($passfp, "$md5");
    //messaggio di registrazione avvenuta con successo
    echo "<script>alert('Ti sei registrato con successo');</script>";
    //crea un link per tornare indietro cosa che si può mettere anche nella pagina html fuori dal codice if($_POST['invia'])
    echo "<a href='index.php'>Vai a loggarti!</a>";
    }

    }
    ?>
    Ora creiamo la pagina segreta.php
    Codice PHP:
    <?php
    //startiamo la sessione login
    session_start(login);
    //e ora diciamo se quuesta sessione sta lavorando cosa succede
    //Se sta lavorando succederà questo isset= lavora !isset= non lavora
    if(isset($_SESSION['login']){
    //diciamo di richiamare in variabile per facilitarci i compiti la sessione['login'] che contiene la variabile $user
    $user=$_SESSION['login'];
    //mostriamo questa variabile
    echo "Ciao ".$user;
    //per distruggere ovvero tornare alla pagina iniziale basta utilizzare la funzione session_destroy();

    }

    //mentre se non lavora e siamo sulla pagina segreta.php ci reinderizza automaticamente alla pagina index.php
    //in questo caso si può fare sia con else{} che con if(!isset($_SESSION['login']){}
    else{
    header("Location:index.php");
    }
    ?>
    Ultima modifica di alemoppo : 06-07-2011 alle ore 18.53.22 Motivo: +tag [php]

  6. #6
    Guest

    Predefinito risposta

    ecco adesso vorrei ringraziare @memai che e stato molto gentile e sopratutto molto utile...
    pero siccome io sono uno che deve fare sempre domande su domande quindi chie
    -Il file di testo password.txt e account.txt si possono unire in un unico file utenti .txt?
    Se si me lo puoi spiegare rifacendo il codice?
    -La pagina segreta puo essere compilata in html, se scrivo dei codici html dopo il codice php vengono visualizzati se sono loggato?
    - ("Location:index.php"); In questa funzione posso specificare un percorso?
    - Infine mi puoi dare i link delle guide che hai detto nei commenti?

    comunque sei strato troppo gentile, spero che continuerai a rispondere, scusami ma sono alle prime armi e un database non lo voglio aprire per mie ragioni... ti ringrazio comunque...

  7. #7
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito

    1)Si, si può fare però sarebbe opportuno creare per ogni utente che si registra un proprio file di testo, per farlo basta semplicemente aggiunge la variabile davanti al nome del file :utenti.txt,

    esempio: fopen('$userutenti.txt' ,'w+'); oppure fopen($user.'utenti.txt' ,'w+'); ammetto non sono sicuro del funzionamento, più precisamente non so quale non vadi, ma tecnicamente potrebbe andare
    e poi ci scrivi dentro i valori con fputs

    2)Il file dovrà essere in php, ma comunque si puoi aggiungere dei codici in html, sia dentro che fuori la parte fatta col php

    3) Si Location: è come un link che tramite l'header è come se fosse azionato automaticamente e quindi appena su una riga inserisci questa riga di codice: header("Location.index.php"); ti reinderizzerà alla pagina index.php come potrebbe reinderizzarti a chebello.php qual'ora ci fosse scritto chebello.php

    4)Non so se infrango qualche regolamento, ma vabbè pazienza, mi scuso in primis ma comunque pubblico lo stesso questi url pr per rispondere alla domanda http://php.html.it/guide/ http://php.html.it/guide/leggi/77/gu...mysql-pratica/ e questo è ottimo http://www.w3schools.com/php/default.asp (se sai l'inglese per me è stato davvero utile in certe situazioni, quando studiavo i vari linguaggi) più nel dettaglio il fopen: http://www.w3schools.com/php/func_filesystem_fopen.asp e http://php.net/manual/en/function.fopen.php
    Ultima modifica di memai : 06-07-2011 alle ore 22.50.58 Motivo: Migliorare la risposta

  8. #8
    Guest

    Question Risposta

    scusa ancora memai, ma nella pagina secreta con quel codice non va ,ovvero, mi da un errore di sintassi, quindi ti chiedo di riguardare il codice... e ti chiedo anche se puoi effettuare un login nel mio sito perche a me da sempre un errore dicendo password o username errati, quindi mi affido a te visita questo sito perfavore, non lo faccio per pubblicita anche perche nel mio sito non ci sono pubbilicita, ma lo faccio per necessita e per voglia di finire questo sito... ti prego agliutami... http://www.graphicalternati.altervis.../Lab/index.php (si trova in Lab/ perche non voglio che gli altri visualizzano il mio sito con errori) comunque grazie.

  9. #9
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito

    Leggi in file .txt, viene creato per ogni utente il file? Se si cosa viene scritto? Viene scritto su più righe? Se si sulla prima riga c'è username e sulla seconda c'è scritto la password?

  10. #10
    Guest

    Question Risposta

    allora caro memai il problema e che quando mi registro gli username e le password vengono sovrascritti da quelli nuovi, quindi mi trovo con un account.txt con un username e una password.txt con username (secondo me sostituibile con "a+" correggimi se sbaglio!), altro errore e che se anche sono registrato e mi voglio loggare non ci riesco, altra pecca e che nella pagina secreta abbiamo un errore di php quindi dobbiamo cercare di migliorare il testo! aiutami!

  11. #11
    Guest

    Predefinito

    allora il codice lo sto sistemando, rimane solo l errore nella paggina secreta qui ci vuoi tu?

  12. #12
    L'avatar di memai
    memai non è connesso Utente
    Data registrazione
    10-02-2010
    Residenza
    Bergamo
    Messaggi
    175

    Predefinito errore

    Se questo è il codice che usi per la pagina segreta:
    <?php
    session_start(login);
    if(isset($_SESSION['login']){
    $user=$_SESSION['login'];
    echo "Ciao ".$user;
    }
    if(!isset($_SESSION['login'])){
    header("Location:index.php");
    }
    ?>


    Usando questa pagina che dice, che se la sessione login esiste mostrerà la stringa Ciao + il nome dell'user mentre se la sessione non lavora tornerà all'index, per ovviare a degli errori ricordati di startare la riga di codice session_start(login); anche nella pagina dell'ndex e anche creare una sessione (nella parte in cui dirai di reinderizzare la pagina alla pagina segreta) ovvero inserirai prima dell'header("Location:segreta.php"); la riga: $_SESSION['login']=il "tuo valore"; o $_SESSION['login']=$tuovaloreinvariabile;

Regole di scrittura

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