Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Form Di Login E Registrazione In Php Con File .txt

    Buongiorno a tutti,
    sono il creatore di: http://mythacker.altervista.org/
    avrei una domanda da porvi.
    Allora per registrarsi al mio sito, le password e gli username veranno memorizzati in un file .txt, e fino a qui tutto funziona. Però quando registro un nome già registrato o una mail già registrato, crea un secondo account. io voglio però che quando una persona si registra, non può scegliere un nome già esistente o una mail già iscirtta.
    Riassumendo questi sono i mie file:

    login.php

    codice:
    <?php @session_start(); // Funzione necessaria per il funzionamento delle sessioni if(isset($_SESSION['login'])) { session_regenerate_id(); header('Location: index.html'); // Se l' utente è loggato, non può fare il login ovviamente } if(isset($_POST['login'])) { // Se è stato premuto il submit, eseguiamo i codici php... $username = (htmlspecialchars($_POST['username'])) ? $_POST['username'] : null; // Preleviamo l' username e se è vuoto avrà come valore NULL $password = (htmlspecialchars($_POST['password'])) ? $_POST['password'] : null; // Preleviamo la password e se è vuota avrà come valore NULL if(is_null($username) || is_null($password)) { echo 'Riempi tutti i campi.'; // Se almeno uno dei campi è vuoto, mandiamo un messaggio di errore } else { $fp = fopen('logphpformreg/db.txt','a+'); // Apriamo il db $contenuto = fread($fp, filesize('logphpformreg/db.txt')); // Ne leggiamo il contenuto fclose($fp); // Chiudiamo il db $utenti = explode("||", $contenuto); // Otteniamo tutti gli utenti in esso $login = false; // Login è falso e se lo rimarrà i dati saranno errati foreach($utenti as $utente) { // Per ogni elemento dell' array, quindi per ogni utente.. $dati = explode('|', $utente); // Otteniamo i suoi dati if($dati[0] == $username && $dati[1] == md5($password)) { // Se $dati[0] ovvero l' username corrisponde a quello scritto e $dati[1] ovvero la password corrisponde a quella scritta... $login = true; // La variabile login diventa vera, quindi i dati sono corretti break; // Usciamo dal foreach } } if($login === false) { // Se login è rimasto falso vuol dire che non sono stati trovati dati che coincidano echo 'Dati errati.
    &lt;&lt; Indietro'; } else { // Se invece è vera la variabile, i dati coincidono.. $_SESSION['login'] = $username; // Registriamo la sessione del login session_regenerate_id(); echo 'Login effettuato correttamente. Attendi..<meta http-equiv="refresh" content="2; URL=index.html" />'; } } } else { // Se invece non è premuto il submit, mostriamo il form ?> <fieldset><legend>LOGIN</legend> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> Username:
     <input type="text" name="username" maxlength="16" required />
    
     Password:
     <input type="password" name="password" maxlength="10" required />
    
     <input type="submit" name="login" value="Login" /></form> <?php } ?></fieldset> <style type="text/css"> fieldset legend { font-weight: bold; color: #ff0000; font-size: 18px; } fieldset { background: black; border: 1px solid #000; width: 200px; padding: 10px; } </style>
    registrati.php

    codice:
    <?php @session_start(); // Funzione necessaria per il funzionamento delle sessioni if(isset($_SESSION['login'])) { session_regenerate_id(); header('Location: index.html'); // Se l' utente è loggato, non può registrarsi ovviamente } if(isset($_POST['registrati'])) { // Se è stato premuto il submit, eseguiamo il php.... $username = (htmlspecialchars($_POST['username'])) ? $_POST['username'] : null; // Preleviamo l' username e se è vuoto avrà come valore NULL $password = (htmlspecialchars($_POST['password'])) ? $_POST['password'] : null; // Preleviamo la password e se è vuota avrà come valore NULL $password2 = (htmlspecialchars($_POST['password2'])) ? $_POST['password2'] : null; // Preleviamo la conferma password e se è vuota avrà come valore NULL $email = (htmlspecialchars($_POST['email'])) ? $_POST['email'] : null; // Preleviamo l' email e se è vuota avrà come valore NULL if(is_null($username) || is_null($password) || is_null($password2) || is_null($email)) { echo 'Riempi tutti i campi.'; // Se almeno uno dei valori è vuoto, mandiamo un messaggio di errore } elseif($password2 != $password) { echo 'Le password non corrispondono.
    &lt;&lt; Indietro'; // Se le due password sono diverse, mandiamo un messaggio di errore } elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo 'Inserisci un\' indirizzo email valido.
    &lt;&lt; Indietro'; // Se l' indirizzo email non è valido, mandiamo un messaggio di errore } else { $headers = "From: info@Mythacker.altervista.org"; mail($email, 'Registrazione Mythacker.Altervista.org', "Benvenuto $username,\r\nSiamo felici di averti con noi.\r\n\r\nI dati per accedere sono:\r\nUsername: $username\r\nPassword:$password\r\n\r\nBuon divertimento!\r\n\r\nClicca qui se vuoi iscriverti alla Newsletter:\r\n\r\nhttp://mythacker.altervista.org/newsletter.html", $headers); // Inviamo un' email con i dati $password = md5($password); // Cryptiamo la password $fp = fopen('logphpformreg/db.txt','a+'); // Apriamo il database fwrite($fp, "$username|$password|$email||\r\n\r\n"); // Scriviamo nel database fclose($fp); // Chiudiamo il database $_SESSION['login'] = $username; // Registriamo la sessione del login session_regenerate_id(); echo 'Registrazione effettuata correttamente. Ti abbiamo inviato un\' email con i dati. Attendi..<meta http-equiv="refresh" content="4; URL=index.html" />'; // Mandiamo un messaggio di conferma e rimandiamo all' index } } else { // Altrimenti mostriamo il form della registrazione ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> Username:
     <input type="text" name="username" maxlength="16" required />
    
     Password:
     <input type="password" name="password" maxlength="10" required />
    
     Conferma password:
     <input type="password" name="password2" maxlength="10" required />
    
     Email:
     <input type="email" name="email" required />
    
     <input type="submit" name="registrati" value="Registrati!" /></form> <?php } ?>
    Logout.php

    codice:
    <?php @session_start(); // Funzione necessaria per il funzionamento delle sessioni if(!isset($_SESSION['login'])) { // Se non è loggato, non può fare il logout e lo rimandiamo alla home header('Location: index.html'); } session_destroy(); // Distruggiamo le sessioni header('Location: index.html'); // Lo rimandiamo all' index ?>
    Index.php (controlla il tutto!)

    codice:
    <style type="text/css"> fieldset legend { font-weight: bold; color: #ff0000; font-size: 18px; } fieldset { background: black; border: 1px solid #000; width: 200px; padding: 10px; } </style> <?php @session_start(); if(isset($_SESSION['login'])) { session_regenerate_id(); // Se il login è stato effettuato.. $username = $_SESSION['login']; // Preleviamo l' username dalla sessione session_regenerate_id(); ?> Bentornato, <?php echo $_SESSION['login']; ?>
    
     Logout <?php } else { // Se non è loggato.. ?> <?php ?> </fieldset> LOGIN / REGISTRATI <?php } ?>

  2. #2
    mi sono dimenticato di dirvi che non dispongo di un database mysql.

  3. #3
    qualcuno mi può aiutare?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    4
    Ciao... scusa se mi intrometto..
    Io non posso darti una mano perchè sono alle prime armi...
    Sto infatti facendo una cosa simile con Altervista e avrei bisogno di una mano...
    Non riesco a far reindirizzare sulla pagina "protetta" una volta effettuato il LOGIN con account e password.

    In pratica non so cosa scrivere nel codice PHP per far si che premendo sul pulsante di invio (con account e password corretti) si apra la pagina protetta...

    Ecco qui:

    http://ruincartech.altervista.org/Pa...totecnico2.php

    Aprendo questa pagina (sul server è il file "error.htm"), se non si è loggati bisogna cliccare sul link nella pagina stessa.

    Inserendo nei campi account e password, rispettivamente:

    ruincar
    ruincar2012

    compare la shermata

    "ora sei loggato!".


    E stop.

    Voglio invece che cliccando su OK sulla pagina di login si apra la pagina protetta, ovvero il primo link che ho messo:

    http://ruincartech.altervista.org/Pa...totecnico2.php
    (se riprovate adesso ve lo apre perchè avete fatto il log....)

    Cosa devo aggiungere al codice della pagina login.php?

    Ecco qua il mio attuale:

    codice:
    <?
    session_start();  
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Login</title>
    
    </head>
    
    <body>
    <?
    function check($user,$password){
    		include("utenti.php");
    
    		foreach($utenti as $user_ => $password_){
    			if (($user==$user_) AND ($password==$password_)) {
    				return true;
    			}
    		}
    
    		return false;
    }
    
    function form_login(){
    ?>
    <form id="login" action="<?=$PHP_SELF?>" method="post">
    <div style="text-align:center;margin-left:auto;margin-right:auto;">
    	Utente:
    
    	<input type="text" name="utente" size="20" maxlength="255">
    
    	Password:
    
    	<input type="password" name="password" size="20" maxlength="255">
    
    
    	<input type="submit" value="   OK   ">
    </div>
    </form>
    <? }
    
    if(isset($_POST["utente"])){
    	if (check($_POST["utente"],$_POST["password"])){
    		$_SESSION["utente"] = $_POST["utente"];
    		$_SESSION["password"] = $_POST["password"];
    		echo "ora sei loggato!";
    	}else{
    		form_login();
    	}
    }else{
    	form_login();
    }		
    ?>
    
    </body>
    </html>
    Grazie per l'aiuto.
    Nicola.

  5. #5
    bhe, cosa c'è che non funzioni???

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    http://mythacker.altervista.org/


    ALTERVISTA OFFRE UN UPDATE DEL DATABASE OTTIMALE PERCIO' USARE FILE .TXT E' INUTILE E RISCHIOSO

  7. #7
    MI SERVIREBBE QUALCUNO CHE MI DICESSE COME FARE UN FORM DI LOGIN IN MySQL!!!!
    ho guardato migliaia di video e guide ma niente non riesco, so molto il html, ma con il php ci sto mettendo piede.
    Un altra domanda, non ho capito come fare una tabella in mysql (con nome, cognome, mail, password, e username)!
    GRAZIE MITH624

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    4
    Originariamente inviato da mith624
    bhe, cosa c'è che non funzioni???
    Ciao e grazie per l'interessamento, ora funziona perché il problema è stato risolto in un altro thread.

    Per i posteri: http://forum.html.it/forum/showthrea...readid=1510327

  9. #9
    Originariamente inviato da mith624
    MI SERVIREBBE QUALCUNO CHE MI DICESSE COME FARE UN FORM DI LOGIN IN MySQL!!!!
    ho guardato migliaia di video e guide ma niente non riesco, so molto il html, ma con il php ci sto mettendo piede.
    Un altra domanda, non ho capito come fare una tabella in mysql (con nome, cognome, mail, password, e username)!
    GRAZIE MITH624
    Prova a dare una letta a: Gestire gli utenti con PHP
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    @mith624
    Ciao,

    non stiamo andando per nulla bene, 4 thread aperti, 3 chiusi ... e questo lo lascio aperto solo perché è già avviato.

    Inoltre continui a spammare il link al tuo sito che non interessa a nessuno e/o non serve a risolvere il problema da te indicato.

    Per finire, qui nessuno ti da la pappa pronta ... qui si aiuta e basta.

    Se cerchi qualcuno che faccia il lavoro al posto tuo/per te c'è l'apposita sezione Offro/Cerco lavoro nella quale puoi postare (leggi il regolamento)

    @nikkpo
    evita di introdurti in discussioni non tue facendo domande ad hoc, apri nuovi thread!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.