Come configurare smartphone e PC. Portale informativo
  • casa
  • Interessante
  • Modulo di registrazione php mysql. Creazione di un semplice sistema di registrazione degli utenti in PHP e MySQL

Modulo di registrazione php mysql. Creazione di un semplice sistema di registrazione degli utenti in PHP e MySQL

Reg.ru: domini e hosting

Il più grande registrar e provider di hosting in Russia.

Più di 2 milioni di nomi di dominio in servizio.

Promozione, posta dominio, soluzioni aziendali.

Più di 700mila clienti in tutto il mondo hanno già fatto la loro scelta.

*Passa il mouse sopra per mettere in pausa lo scorrimento.

Indietro avanti

Creazione di un semplice sistema di registrazione degli utenti in PHP e MySQL

Creare un sistema di registrazione richiede molto lavoro. Devi scrivere un codice che convalidi gli indirizzi e-mail, invii un'e-mail di conferma della registrazione e convalidi anche altri campi del modulo e molto altro.

E anche dopo aver scritto tutto questo, gli utenti saranno riluttanti a registrarsi, perché... ciò richiede un certo sforzo da parte loro.

In questo tutorial creeremo un sistema di registrazione molto semplice che non richiede né memorizza alcuna password! Il risultato sarà facile da modificare e aggiungere a un sito PHP esistente. Vuoi scoprire come funziona? Leggere sotto.



Ecco come funzionerà il nostro semplicissimo sistema:

Uniremo il modulo di autorizzazione e la registrazione. Questo modulo avrà un campo per inserire il tuo indirizzo email e un pulsante di registrazione;
- Quando si compila il campo con un indirizzo e-mail, facendo clic sul pulsante di registrazione verrà creato un record relativo a un nuovo utente, ma solo se l'indirizzo e-mail inserito non è stato trovato nel database.

Successivamente, viene creato un insieme casuale di caratteri univoci (token), che viene inviato all'e-mail specificata dall'utente sotto forma di collegamento che sarà rilevante per 10 minuti;
- Il collegamento porta l'utente al nostro sito web. Il sistema rileva la presenza di un token ed autorizza l'utente;

Vantaggi di questo approccio:

Non è necessario memorizzare password o convalidare campi;
- Non è necessario recuperare password, domande di sicurezza, ecc.;
- Dal momento in cui un utente si registra/accede, puoi sempre essere sicuro che questo utente sarà nella tua zona di accesso (che l'indirizzo email è vero);
- Processo di registrazione incredibilmente semplice;

Screpolatura:

Sicurezza dell'account utente. Se qualcuno ha accesso alla posta dell'utente, può accedere.
- L'e-mail non è sicura e può essere intercettata. Tieni presente che questa domanda è rilevante anche nel caso in cui la password sia stata dimenticata e debba essere ripristinata, o in qualsiasi sistema di autorizzazione che non utilizzi HTTPS per il trasferimento dei dati (login/password);
- Mentre configuri correttamente il tuo server di posta, c'è la possibilità che i messaggi con collegamenti di autorizzazione finiscano nello spam;

Confrontando vantaggi e svantaggi del nostro sistema, possiamo dire che il sistema ha un'elevata usabilità (massima comodità per l'utente finale) e, allo stesso tempo, ha un basso indicatore di sicurezza.

Quindi si consiglia di utilizzarlo per registrazioni su forum e servizi che non funzionano con informazioni importanti.

Come utilizzare questo sistema

Nel caso in cui tu abbia solo bisogno di utilizzare un sistema per autorizzare gli utenti sul tuo sito e non vuoi frammentare questa lezione, ecco cosa devi fare:

È necessario scaricare i sorgenti allegati alla lezione
- Trova il file tables.sql nell'archivio e importalo nel tuo database utilizzando l'opzione di importazione in phpMyAdmin. Modo alternativo: aprire questo file tramite un editor di testo, copiare la query SQL ed eseguirla;
- Apri includes/main.php e compila le impostazioni per la connessione al tuo database (specifica l'utente e la password per la connessione al database, nonché l'host e il nome del database). Nello stesso file è necessario specificare anche l'e-mail, che verrà utilizzata come indirizzo originale per i messaggi inviati dal sistema. Alcuni host bloccano le email in uscita a meno che il modulo non contenga un indirizzo email reale, creato dal pannello di controllo dell'host, quindi fornisci un indirizzo reale;
- Carica tutti i file e le risorse index.php, protected.php e include le cartelle tramite FTP sul tuo host;
- Aggiungi il codice qui sotto a ciascuna pagina PHP in cui desideri visualizzare il modulo di accesso;

Require_once "include/main.php"; $utente = nuovo Utente(); if(!$utente->loggedIn())( reindirizza("index.php"); )
- Pronto!

Per coloro che sono interessati a come funziona il tutto, continua a leggere qui sotto!

Il primo passo è scrivere il codice HTM per il modulo di autorizzazione. Questo codice si trova nel file index.php. Questo file contiene anche il codice PHP che gestisce i dati del modulo e altre utili funzioni del sistema di accesso. Puoi saperne di più a riguardo nella sezione sottostante dedicata alla revisione del codice PHP.

indice.php

Tutorial: sistema di registrazione semplicissimo con accesso o registrazione PHP e MySQL

Inserisci il tuo indirizzo email qui sopra e ti invieremo
un link di accesso.

Accedi/Registrati

Nella sezione head (tra i tag e ) ho incluso gli stili principali (non sono trattati in questo tutorial, quindi puoi guardarli tu stesso. Cartella asset/css/style.css). Prima del tag di chiusura ho incluso la libreria jQuery e il file script.js, che scriveremo e analizzeremo di seguito.


JavaScript

jQuery tiene traccia dello stato del pulsante "Registrati/Accedi" utilizzando la funzione e.preventDefault() e invia richieste AJAX. A seconda della risposta del server, visualizza l'uno o l'altro messaggio e determina ulteriori azioni/

asset/js/script.js

$(funzione())( var form = $("#login-register"); form.on("invia", funzione(e)( if(form.is(".loading, .loggedIn"))( return false ; ) var email = form.find("input").val(), messageHolder = form.find("span"); e.preventDefault(); $.post(this.action, (email: email), funzione (m)( if(m.error)( form.addClass("errore"); messageHolder.text(m.message); ) else( form.removeClass("errore").addClass("loggedIn"); messageHolder . text(m.message); ) )); )); $(document).ajaxStart(function())( form.addClass("loading"); )); $(document).ajaxComplete(function()) (form. rimuoviClass("caricamento"); )); ));

è stato aggiunto al form per visualizzare lo stato attuale della richiesta AJAX (questo è stato possibile grazie ai metodi ajaxStart()) E ajaxCompleto(), che puoi trovare verso la fine del file).

Questa classe visualizza un file GIF animato che gira (come per suggerirci che la richiesta è in fase di elaborazione) e funge anche da flag per impedire che il modulo venga inviato nuovamente (quando il pulsante di registrazione è già stato cliccato una volta). La classe .loggedIn è un altro flag: viene impostata quando è stata inviata l'e-mail. Questo flag blocca immediatamente qualsiasi ulteriore azione con il modulo.

Schema della banca dati

Il nostro sistema di registrazione incredibilmente semplice utilizza 2 tabelle MySQL (il codice SQL si trova nel file tables.sql). Il primo memorizza i dati sugli account utente. Il secondo memorizza le informazioni sul numero di tentativi di accesso.


Schema della tabella utente.

Il sistema non utilizza password, come si può vedere nello schema. Su di esso puoi vedere la colonna token con i token adiacenti alla colonna token_validity. Il token viene installato non appena l'utente si connette al sistema e imposta la propria email per inviare un messaggio (ne parleremo più avanti nel blocco successivo). La colonna token_validity imposta l'ora 10 minuti dopo, dopodiché il token non è più valido.


Schema di tabella che conta il numero di tentativi di autorizzazione.

In entrambe le tabelle l'indirizzo IP viene memorizzato in forma elaborata, utilizzando la funzione ip2long in un campo di tipo intero.

Ora possiamo scrivere del codice PHP. La funzionalità principale del sistema è assegnata alla classe User.class.php, che puoi vedere di seguito.

Questa classe utilizza attivamente idorm (documenti), queste librerie sono gli strumenti minimi necessari per lavorare con i database. Gestisce l'accesso al database, la generazione di token e la convalida dei token. Fornisce un'interfaccia semplice che semplifica la connessione di un sistema di registrazione al tuo sito se utilizza PHP.

Utente.class.php

Class User( // Private ORM case private $orm; /** * Trova un utente in base al token. Vengono accettati solo token validi a titolo oneroso. Il token viene generato solo per 10 minuti dal momento in cui è stato creato * @param string $token Questo è il token che stiamo cercando * @return User Restituisce il valore della funzione User */ public static function findByToken($token)( // trova il token nel database e assicurati che sia impostato il timestamp corretto $result = ORM::for_table("reg_users") ->where ("token", $token) ->where_raw("token_validity > NOW()") ->find_one(); if(!$risultato)( return false; ) return new User($result); ) /** * Autorizza o registra un utente * @param string $email. Indirizzo email dell'utente * @return User */ public static function loginOrRegister($email)( // Se tale utente è già esiste, restituisce il valore della funzione Utente dall'indirizzo email specificato memorizzato nel database if(User::exists($email))( return new User($email); ) // Altrimenti, crea un nuovo utente nel database e restituire il valore della funzione User::create dall'e-mail return User::create($email ); ) /** * Crea un nuovo utente e salva nel database * @param string $email. Indirizzo email dell'utente * @return User */ private static function create($email)( // Scrivi un nuovo utente e restituisci il risultato della funzione User da questi valori $result = ORM::for_table("reg_users")- >create(); $risultato->email = $email; $risultato->save(); return new User($risultato); ) /** * Controlla se tale utente esiste nel database e restituisce il valore booleano di la variabile * @param stringa $email. Indirizzo email dell'utente * @return booleano */ public static function esiste($email)( // L'utente esiste nel database? $result = ORM::for_table("reg_users") ->where("email", $email ) ->count(); return $result == 1; ) /** * Crea un nuovo oggetto utente * @param istanza $param ORM , id, email o 0 * @return Utente */ funzione pubblica __construct($param = null) ( if($param istanza di ORM)( // Controllo ORM superato $this->orm = $param; ) else if(is_string($param))( // Controllo email superato $this->orm = ORM:: for_table ("reg_users") ->where("email", $param) ->find_one(); ) else( $id = 0; if(is_numeric($param))( // il valore della variabile $param è passato all'identificatore utente $id = $param; ) else if(isset($_SESSION["loginid"]))( // Altrimenti, vedere sessione $id = $_SESSION["loginid"]; ) $this->orm = ORM::for_table( "reg_users") ->where("id", $id) ->find_one(); ) ) /** * Genera un nuovo token di autorizzazione SHA1, lo scrive nel database e restituisce il suo valore * @return string */ public function generateToken( )( // Genera un token per un utente autorizzato e lo salva nel database $token = sha1($this->email.time().rand(0, 1000000)); // Salva il token nel database // E contrassegnalo in modo che sia valido solo per i prossimi 10 minuti $this->orm->set("token", $token); $this->orm->set_expr("token_validity", "ADDTIME(NOW(),"0:10")"); $this->orm->save(); restituire $ gettone; ) /** * Autorizza l'utente * @return void */ public function login())( // Contrassegna l'utente come loggato $_SESSION["loginid"] = $this->orm->id; // Aggiorna il valore del campo del database last_login $this->orm->set_expr("last_login", "NOW()"); $this->orm->save(); ) /** * Distrugge la sessione e disconnette l'utente * @return void */ public function logout ()( $_SESSION = array(); unset($_SESSION); ) /** * Controlla se l'utente ha effettuato l'accesso * @return boolean */ public function loggedIn())( return isset($this->orm->id) && $_SESSION["loginid"] == $this->orm->id; ) /** * Controlla se l'utente è un amministratore * @return boolean */ public function isAdmin())( return $this->rank() = = "amministratore"; ) /** * Trova il tipo di utente, può essere amministratore o normale * @return string */ public function rango())( if ($this->orm->rank == 1)( return "administrator" "; ) return "regular"; ) /** * Metodo che consente di ottenere le informazioni private dell'utente come * proprietà dell'oggetto Utente * @ param string $key Il nome della proprietà a cui viene concesso l'accesso * @return mixed */ public function __get($key)( if(isset($this->orm->$key))( return $this->orm-> $chiave; ) restituisce null; ) )

I token vengono generati utilizzando l'algoritmo SHA1 e archiviati nel database. Sto utilizzando le funzioni di temporizzazione di MySQL per impostare un limite di tempo di 10 minuti per la validità di un token.

Quando un token viene convalidato, diciamo direttamente al gestore che stiamo considerando solo i token non ancora scaduti, memorizzati nella colonna token_validity.

Tieni presente che sto usando il metodo magico __Ottenere libreria docs alla fine del file per intercettare l'accesso alle proprietà dell'oggetto Utente.

Grazie a ciò diventa possibile accedere alle informazioni archiviate nel database grazie alle proprietà $user->email, $user->token, ecc. Nel prossimo frammento di codice vedremo come utilizzare queste classi come esempio .


Pagina protetta

Un altro file che memorizza funzionalità utili e necessarie è il file Functions.php. Esistono diversi cosiddetti helper: funzioni di assistente che consentono di creare codice più pulito e leggibile in altri file.

funzioni.php

Function send_email($from, $to, $subject, $message)( // Helper che invia email $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Tipo di contenuto: testo /plain; charset=utf-8" . "\r\n"; $headers .= "Da: ".$from . "\r\n"; return mail($a, $oggetto, $messaggio, $headers ); ) function get_page_url())( // Determina l'URL del file PHP $url = "http".(empty($_SERVER["HTTPS"])?"":"s")."://" .$_SERVER ["NOME_SERVER"]; if(isset($_SERVER["RICHIESTA_URI"]) && $_SERVER["RICHIESTA_URI"] != "")( $url.= $_SERVER["RICHIESTA_URI"]; ) else( $url. = $_SERVER["PATH_INFO"]; ) return $url; ) function rate_limit($ip, $limit_hour = 20, $limit_10_min = 10)( // Numero di tentativi di accesso nell'ultima ora a questo indirizzo IP $ count_hour = ORM: :for_table("reg_login_attempt") ->where("ip", sprintf("%u", ip2long($ip))) ->where_raw("ts > SUBTIME(NOW(),"1:00 ")") ->count(); // Numero di tentativi di accesso negli ultimi 10 minuti a questo indirizzo IP $count_10_min = ORM::for_table("reg_login_attempt") ->where("ip", sprintf("%u ", ip2long($ ip))) ->where_raw("ts > SUBTIME(NOW(),"0:10")") ->count(); if($count_hour > $limit_hour || $count_10_min > $limit_10_min)( lancia una nuova eccezione("Troppi tentativi di accesso!"); ) ) function rate_limit_tick($ip, $email)( // Crea un nuovo record nella tabella che conta il numero di tentativi di accesso $login_attempt = ORM::for_table("reg_login_attempt")->create(); $login_attempt->email = $email; $login_attempt->ip = sprintf("%u", ip2long($ip )); $login_attempt->save(); ) funzione reindirizzamento($url)( header("Location: $url"); exit; )

Funzioni tasso_limit E rate_limit_tick monitorare il numero di tentativi di autorizzazione nel periodo di tempo trascorso dal primo tentativo. Il tentativo di accesso viene registrato nel database nella colonna reg_login_attempt. Queste funzioni vengono chiamate quando i dati del modulo vengono elaborati e inviati, come puoi vedere dal seguente frammento di codice.

Il codice seguente è preso dal file index.php e gestisce l'invio del modulo. Restituisce una risposta JSON, che a sua volta viene elaborata da jQuery nel file asset/js/script.js che abbiamo esaminato in precedenza.

indice.php

Try( if(!empty($_POST) && isset($_SERVER["HTTP_X_REQUESTED_WITH"]))( // Emette un'intestazione JSON header("Content-type: application/json"); // Questo indirizzo email è valido se (!isset($_POST["email"]) || !filter_var($_POST["email"], FILTER_VALIDATE_EMAIL))( lancia una nuova eccezione("Inserisci un indirizzo email valido."); ) // Controlla. È il utente autorizzato ad accedere, ha superato il numero di connessioni consentite? (file Functions.php per ulteriori informazioni) rate_limit($_SERVER["REMOTE_ADDR"]); // Registra questo tentativo di accesso rate_limit_tick($_SERVER["REMOTE_ADDR"] , $ _POST["email"]); // Invia un'email all'utente $message = ""; $email = $_POST["email"]; $subject = "Il tuo link di accesso"; if(!User:: esiste($email) )( $subject = "Grazie per la registrazione!"; $message = "Grazie per la registrazione al nostro sito!\n\n"; ) // Tentativo di autorizzare o registrare un utente $user = Utente ::loginOrRegister($_POST[ "email"]); $message.= "Puoi accedere da questo URL:\n"; $messaggio.= get_page_url()."?tkn=".$user->generateToken()."\n\n"; $message.= "Il collegamento scadrà automaticamente dopo 10 minuti."; $risultato = send_email($fromEmail, $_POST["email"], $oggetto, $messaggio); if(!$result)( lancia una nuova eccezione("Si è verificato un errore durante l'invio della tua email. Riprova."); ) die(json_encode(array("message" => "Grazie! Abbiamo inviato un collegamento nella tua casella di posta. Controlla anche la cartella spam."))); ) ) catch(Exception $e)( die(json_encode(array("error"=>1, "message" => $e->getMessage() ))); )

Dopo aver effettuato con successo l'accesso/registrazione, il codice sopra invierà all'utente un collegamento di accesso. Il token diventa disponibile perché viene passato come variabile nel collegamento generato dal metodo $_OTTIENI con indicatore tkn

indice.php

If(isset($_GET["tkn"]))( // Questo token è valido per l'autorizzazione? $user = Utente::findByToken($_GET["tkn"]); if($user)( // Sì, è. Reindirizzamento a una pagina protetta $user->login(); reindirizzamento("protected.php"); ) // No, il token non è valido. Reindirizzamento a una pagina con un modulo di autorizzazione/registrazione reindirizza("index. php"); )

$utente->accedi()

creerà le variabili necessarie per la sessione, in modo che l'utente, visualizzando le pagine successive del sito, rimanga sempre autorizzato.

L'elaborazione della funzione per uscire dal sistema è organizzata in modo simile.

indice.php

If(isset($_GET["logout"]))( $utente = nuovo Utente(); if($utente->loggatoIn())( $utente->logout(); ) reindirizzamento("index.php") ;)

Alla fine del codice, ho nuovamente impostato un reindirizzamento su index.php, quindi il parametro ?disconnessione=1 trasmesso tramite URL non è richiesto.

Il nostro file index.php richiede ulteriori. protezione: non vogliamo che le persone che hanno effettuato l'accesso al sistema vedano nuovamente il modulo di registrazione. Per questi scopi utilizziamo il metodo $utente->loggato().

indice.php

$utente = nuovo Utente(); if($utente->loggato())(reindirizzamento("protected.php"); )

Infine, ecco un pezzo di codice che ti permette di proteggere le pagine del tuo sito e di renderlo accessibile solo previa autorizzazione.

protetto.php

// Per proteggere ogni pagina del tuo sito, includi un file main.php // e crea un nuovo oggetto Utente. È così facile! require_once "include/main.php"; $utente = nuovo Utente(); if(!$utente->loggato())( reindirizzamento("index.php"); )

Dopo questo controllo, puoi essere sicuro che l'utente sia stato autorizzato con successo. È inoltre possibile accedere alle informazioni archiviate nel database utilizzando le proprietà dell'oggetto $utente. Per visualizzare l'e-mail e lo stato dell'utente, utilizza questo codice:

Echo "La tua email: ".$utente->email; echo "Il tuo grado: ".$utente->grado();

Metodo rango() viene utilizzato qui perché il database solitamente memorizza dei numeri (0 per un utente normale, 1 per un amministratore) e dobbiamo convertire questi dati negli stati a cui appartengono, ed è ciò in cui questo metodo ci aiuta.

Per rendere un utente normale un amministratore, modifica semplicemente la voce dell'utente tramite phpMyAdmin (o qualsiasi altro programma che ti consenta di gestire i database). Lo stato di amministratore non fornisce alcun privilegio; in questo esempio, la pagina mostrerà che sei un amministratore - e il gioco è fatto.

Ma cosa fare con questo è lasciato alla tua discrezione; puoi scrivere e comporre tu stesso il codice che imposta determinati privilegi e capacità per gli amministratori.

Sono state fatte!

Abbiamo finito con questa forma incredibilmente super quasi semplice! Puoi usarlo nei tuoi siti PHP, è abbastanza semplice. Puoi anche modificarlo tu stesso e renderlo come desideri.

Il materiale è stato preparato da Denis Malyshok appositamente per il sito web

PS Vuoi progredire ulteriormente nella padronanza di PHP e OOP? Presta attenzione alle lezioni premium su vari aspetti della creazione di siti Web, inclusa la programmazione in PHP, nonché a un corso gratuito sulla creazione del tuo sistema CMS in PHP da zero utilizzando OOP:

Ti è piaciuto il materiale e vuoi ringraziarmi?
Condividi con i tuoi amici e colleghi!


Porto alla vostra attenzione uno script molto semplice e funzionale per la registrazione e l'autorizzazione al sito, composto da 3 file PHP con la connessione di 2 script Java, con l'ausilio dei quali vengono visualizzati gli errori nel modulo stesso senza ricaricare la pagina.

Lo script è stato testato con successo sulle versioni PHP 5.3.3 e PHP 5.6.3.

Cosa può fare e cosa ha la sceneggiatura

  • Registrare nuovi utenti;
  • Autorizzare gli utenti e registrare i cookie per un determinato periodo (non è necessario effettuare il login ogni volta);
  • Mostrare e nascondere determinate informazioni rispettivamente per gli utenti autorizzati e non autorizzati;
  • Dispone di un PANNELLO AMMINISTRATIVO dove è possibile modificare tutti i dati ed eliminare gli utenti.

Sono presenti anche DEMO e pannelli di amministrazione

PASSO 1.
Se si utilizza lo script di registrazione e autorizzazione locale utilizzando DENWER, non è necessario apportare modifiche ai file per connettersi al database.
Altrimenti apri i file: stayt.php, classi/Auth.class.php e adminka/connect.php, e in alto sostituisci i dati per la connessione al database con i tuoi.

PASSO 2.
Vai (se usi DENWER) all'indirizzo: http://localhost/Tools/phpmyadmin/, se su hosting, quindi fai clic su Database e crea un nuovo database con il nome: registr e confronto: utf8_general_ci.
Ovviamente puoi impostare il tuo nome, ma assicurati di sostituirlo nei file per connetterti al database (vedi passaggio 1).

PASSO 3.
Fare clic sul database di registrazione creato, quindi sulla scheda SQL in alto e nella finestra di input visualizzata, incollare questo codice e fare clic su OK. CREA TABELLA SE NON ESISTE `my_users` (`id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `names` varchar(15) NOT NULL, `password` varchar(255) NOT NULL, `salt` varchar(100) NOT NULL, CHIAVE PRIMARIA (`id`)) MOTORE=SET DI CARATTERI PREDEFINITO MyISAM=utf8; Tutto! Vai al tuo indirizzo nel browser, prova e sperimenta.

Pannello di Amministrazione

Dopo aver completato almeno una registrazione potrai accedere alla sezione ADMIN.
Accedi al PANNELLO AMMINISTRATIVO:

http://tuo_sito.ru/adminka/

Non dimenticare di proteggere questa cartella e puoi anche rinominarla.
Quando apri il Pannello di amministrazione, fai clic sul pulsante CERCA e ti verranno visualizzati tutti gli utenti registrati, dove quando fai clic su un numero ID specifico, vedrai i dati dell'utente per la modifica.

Puoi anche trovare velocemente un utente tramite la sua E-mail; per fare questo basta inserire un'e-mail conosciuta nel campo CERCA e cliccare sul pulsante.
Non consiglio di utilizzare il pulsante AGGIUNGI, poiché l'utente viene aggiunto al sistema senza password. E non ho nemmeno idea del perché ce l'abbiano fatta.

Questo è tutto, se non funziona o non è chiaro, fai domande.

Allo stesso tempo puoi provare

Istruzioni

Inizia a creare un modulo di registrazione con il tag, tra il quale devi inserire tag aggiuntivi che consentano agli utenti di inserire i propri dati nel modulo.

Apri il file html e inizia a inserire il codice. Il tag responsabile della creazione del modulo è “form”. Scriviamo il tag insieme agli attributi “form action=”obrabotka.php” metodo=”post” nome”forma1””. Iniziamo a creare elementi del modulo. Quasi tutti gli elementi sono realizzati utilizzando il tag e il suo attributo “type”, che è responsabile del tipo di dati, ad esempio testo, password, ecc. Impostiamo sempre il nome "nome" su uno qualsiasi degli attributi.

Inserisci: "br" Inserisci il tuo nome: "br"

"tipo di input="nome testo"="fio""

"br" Inserisci la password: "br"

"tipo di input="password" nome="pass""

"br"Inserisci l'e-mail:l"br"

"tipo di input="testo" nome="e-mail"".

Successivamente, creiamo un elemento di selezione del pulsante di opzione. Un pulsante di opzione è un elemento del modulo su cui, quando si fa clic su di esso con il cursore, gli altri pulsanti di opzione vengono disattivati. Spieghiamo con un esempio del nostro modulo. Quando ordini un corso, la scelta sarà tra CD o DVD, quindi dovrai sceglierne uno. L’elemento dell’attributo “tipo” – “radio” è responsabile della creazione di tale pulsante. Specificheremo lo stesso nome per il tipo di supporto, quindi specificheremo l'attributo "valore" in modo che il gestore possa determinare con precisione il valore della variabile. Scriviamo il codice: "br"Seleziona l'opzione del supporto di memorizzazione: "br"

"tipo di input="nome radio"="valore disco="cd"" CD "br"!}

"tipo di input="nome radio"="valore disco"="dvd"" DVD "br"!}

Se l'attributo "valore" viene aggiunto al testo, il modulo mostrerà immediatamente il valore che abbiamo assegnato a questo attributo. Ad esempio, in modo che il modulo del nome completo contenga già un qualche tipo di nome (valore = “nome”).

Inserisci un elemento diverso e imposta il tipo su "casella di controllo" per consentire agli utenti di selezionare più di un'opzione nel modulo. Per esempio:
(Contattami una volta spedito)
(Iscriviti a )

Crea un pulsante "Invia" digitando tag e digita uguale a "invia", valore impostato su "Invia". Inoltre, in un altro tag, crea un pulsante “Reset”, impostando rispettivamente il tipo su “reset” e il valore su “Reset”. Ad esempio, in questo modo:


Il pulsante Invia serve per inviare i dati e il pulsante Reimposta serve per cancellare il modulo, se necessario.

Inserisci un tag di chiusura per completare il modulo. Salva la pagina.

Fonti:

  • Sito web del Consorzio W3C
  • modulo d'ordine del prodotto per il sito web

Il modulo di registrazione è un modulo integrato del pannello Joomla. Non è necessario essere esperti di programmazione web per aggiungerlo. Tuttavia, se decidi di modificarlo, puoi implementarlo utilizzando il componente Community Builder o manualmente. Devi solo modificare gli elementi necessari studiando le basi della creazione di un sito web.

Istruzioni

Vai al pannello di amministrazione di Joomla e apri le impostazioni dei moduli integrati. Vai alla scheda "Avanzate" e fai clic sul pulsante "Crea". Apparirà la finestra “Gestione Moduli”, nella quale è necessario selezionare e attivare il modulo di registrazione. Specificare il titolo desiderato per il titolo e selezionare la casella accanto alla riga "Mostra titolo".

Apri la sezione "Testo iniziale" nel modulo del modulo di registrazione e modifica il testo standard per i visitatori se non ti soddisfa. Nella voce “Login” puoi scegliere come verrà chiamato l'utente sul sito: sotto il tuo nome o login. Fare clic sul pulsante "Salva" per rendere effettive le modifiche.

Carica il componente Community Builder sul tuo sito. Per fare ciò, vai alla sezione “Carica file del pacchetto” e fai clic sul pulsante “Sfoglia”. Dopo aver selezionato i documenti richiesti, fare clic sul pulsante “Scarica e installa”. Vai al pannello di amministrazione ed esegui il componente installato.

Apri la scheda “Registrazione” e apporta tutte le modifiche necessarie al modulo di registrazione. Questa applicazione è molto comoda da usare, ma se desideri modificare solo uno o due campi, sarà più conveniente modificarli manualmente.

Crea una copia di backup dei file che modificherai per apportare modifiche al modulo di registrazione. Ciò ti consentirà di ripristinare tutte le azioni e ripristinare la funzionalità del sito in caso di errore. Determina quali campi desideri modificare o aggiungere. Ad esempio, desideri aggiungere un campo "Città" al modulo di registrazione.

Apri il file default.php, che si trova in Components/com_user/views/register/tmpl. Aggiungi una visualizzazione “Città” inserendo il codice HTML appropriato nel modulo di registrazione. Per fare ciò, puoi copiare qualsiasi altro elemento e modificarlo per la città. Apporta queste modifiche alla tabella jos_users. Apri il file user.php, che si trova in librerie/joomla/database/table. Aggiungi una nuova variabile ad esso. Salva le impostazioni e riavvia il sito.

Fonti:

  • come cambiare modulo in joomla
Suggerimento 7: come effettuare una registrazione temporanea senza proprietario

I nuovi coloni felici non sono sempre in grado di soddisfare i requisiti della legge sulla registrazione nel luogo di residenza (effettuare una registrazione temporanea) entro il periodo stabilito di 90 giorni. A volte la ragione di ciò può essere la riluttanza o l'incapacità del proprietario dell'appartamento di presentarsi presso l'organizzazione competente per svolgere azioni di registrazione.

Naturalmente, se il proprietario non ha espresso il desiderio di legalizzare il tuo soggiorno temporaneo nella sua abitazione, non potrai registrarti. L'eccezione è quando iscrivi tuo figlio minorenne nel luogo di registrazione. In questo caso non è necessario acquisire il consenso del titolare.

Ma se il problema con la registrazione temporanea è solo la mancanza di desiderio del proprietario di visitare con te i dipendenti responsabili dell'accettazione dei documenti per la registrazione, allora la normativa prevede la possibilità di ottenere la registrazione temporanea senza la presenza del proprietario.

Se la base per il trasferimento è un contratto di affitto, puoi inviare un contratto notarile per posta con i restanti documenti allegati (copia del passaporto, domanda compilata). In una situazione del genere, le persone responsabili dell'accettazione dei documenti non hanno l'obbligo di autenticare una copia del presente accordo e il proprietario dei locali non firma la domanda.

Se è possibile presentare il contratto solo in forma scritta semplice, le persone responsabili sono tenute ad autenticare nella domanda la firma del proprietario e della persona registrata. In questa situazione la presenza del proprietario non può essere evitata.

Un certificato di registrazione nel luogo di residenza può essere ottenuto anche per posta.

Sebbene non sia richiesta la presenza del proprietario al momento dell'ottenimento della registrazione temporanea, non bisogna sperare che non venga a conoscenza dei nuovi residenti. Una volta completate le azioni di registrazione, le autorità FMS gli invieranno una notifica sulla persona registrata nel suo spazio abitativo.

Suggerimento 8: come compilare il modulo 3-NDFL per la vendita di un'auto

Se hai venduto un’auto che possiedi da più di tre anni non devi leggere oltre: dal 2011 ti viene riconosciuto automaticamente il diritto alla detrazione dell’imposta immobiliare. Ciò significa che non è necessario presentare una dichiarazione. Ma se lo possiedi da un periodo di tempo più breve, dovrai compilare i documenti necessari. Il modo più semplice per farlo è utilizzare il programma Dichiarazione.

Avrai bisogno

  • - computer;
  • - Accesso ad Internet;
  • - Programma “Dichiarazione” del GNIIVS del Servizio fiscale federale della Federazione Russa;
  • - contratto di compravendita di autoveicoli;
  • - documenti che confermano gli altri redditi e il pagamento dell'imposta sul reddito delle persone fisiche su di essi nell'ultimo anno.

Istruzioni

Puoi scaricare l'ultima versione del programma sul sito web del Centro principale di ricerca del Servizio fiscale federale (GNIVC FTS) della Russia. Si diffonde

Ciao! Ora proveremo a implementare la registrazione più semplice sul sito utilizzando PHP + MySQL. Per fare ciò, Apache deve essere installato sul tuo computer. Il principio di funzionamento del nostro script è mostrato di seguito.

1. Iniziamo creando una tabella utenti nel database. Conterrà i dati dell'utente (login e password). Andiamo su phpmyadmin (se stai creando un database sul tuo PC http://localhost/phpmyadmin/). Creiamo una tabella users, avrà 3 campi.

Lo creo nel database mysql, puoi crearlo in un altro database. Successivamente impostare i valori come in figura:

2. È necessaria una connessione a questa tabella. Creiamo un file bd.php. Il suo contenuto:

Nel mio caso assomiglia a questo:

Salva bd.php .
Grande! Abbiamo una tabella nel database e una connessione ad essa. Ora puoi iniziare a creare una pagina in cui gli utenti lasceranno i propri dati.

3. Crea un file reg.php con il contenuto (tutti i commenti all'interno):



Registrazione


Registrazione


Il tuo accesso:




La tua password:








4. Creare un file che inserirà i dati nel database e salverà l'utente. save_user.php (commenti all'interno):

5. Ora i nostri utenti possono registrarsi! Successivamente, è necessario creare una “porta” per consentire agli utenti già registrati di accedere al sito. index.php (commenti all'interno):




Pagina iniziale


Pagina iniziale


Il tuo accesso:


La tua password:






Registrati



OK, è tutto finito adesso! La lezione può essere noiosa, ma molto utile. Qui viene mostrata solo l'idea della registrazione, quindi puoi migliorarla: aggiungi sicurezza, design, campi dati, caricamento avatar, disconnessione dal tuo account (per fare ciò, distruggi semplicemente le variabili dalla sessione con la funzione unset) e Presto. Buona fortuna!

Ho controllato tutto, funziona correttamente!

I moduli HTML sono elementi di interfaccia complessi. Includono vari elementi funzionali: campi di input, elenchi, tooltip, ecc. Tutto il codice del modulo è contenuto nel file .

La maggior parte delle informazioni sui moduli Web vengono trasmesse utilizzando l'estensione . Per inserire una riga di testo viene utilizzato l'elemento; per più righe viene utilizzato l'elemento. L'elemento crea un elenco a discesa.

L'elemento crea etichette per i campi del modulo. Esistono due modi per raggruppare etichette e campi. Se il campo è all'interno di un elemento, non è necessario specificare l'attributo for.

Cognome Cognome Cognome

I campi del modulo possono essere divisi in blocchi logici utilizzando l'elemento. A ciascuna sezione può essere assegnato un nome utilizzando l'elemento.

Informazioni di contatto Nome E-mail
Riso. 1. Raggruppamento dei campi del modulo

Per rendere il modulo più comprensibile agli utenti, viene aggiunto del testo ai campi del modulo per fornire un esempio dei dati di input. Questo tipo di testo è chiamato testo con caratteri jolly e viene creato utilizzando l'attributo segnaposto.

Anche i campi obbligatori devono essere evidenziati. Prima di HTML5, il simbolo asterisco * veniva utilizzato accanto al nome del campo. La nuova specifica introduce uno speciale attributo obbligatorio, che consente di contrassegnare un campo obbligatorio a livello di markup. Questo attributo indica al browser (presupponendo che supporti HTML5) di non inviare dati dopo che l'utente ha fatto clic su Invia fino al completamento dei campi specificati.

Per modificare l'aspetto di un campo di testo quando si riceve il focus, utilizzare la pseudo-classe focus. Ad esempio, puoi rendere più scuro lo sfondo del campo corrente o aggiungere un bordo colorato per farlo risaltare dal resto:

Ingresso:focus ( sfondo: #eaeaea; )

Un altro utile attributo HTML5 è l'attributo autofocus. Ti consente di impostare automaticamente il focus sul campo iniziale desiderato per gli elementi e (solo un elemento di ciascun modulo).

Esempio di creazione di un modulo di registrazione

Markup HTML

Registrazione Nome Sesso maschio femmina E-mail Paese Seleziona paese di residenza Russia Ucraina Bielorussia Invia

Nota
action="form.php" - collegamento al file del gestore del modulo. Crea un file con codifica UTF-8, caricalo sul server e sostituisci action="form.php" con il percorso del file sul tuo server.


Riso. 2. Aspetto del modulo predefinito

Come puoi vedere dalla figura, ogni elemento del modulo ha stili del browser predefiniti. Cancellamo gli stili e diamo uno stile agli elementi del modulo.

Form-wrap ( larghezza: 550px; sfondo: #ffd500; raggio bordo: 20px; ) .form-wrap *(transizione: .1s lineare) .profile ( larghezza: 240px; float: sinistra; allineamento testo: centro; riempimento : 30px; ) modulo ( sfondo: bianco; float: sinistra; larghezza: calc(100% - 240px); imbottitura: 30px; raggio bordo: 0 20px 20px 0; colore: #7b7b7b; ) .form-wrap:dopo, modulo div:dopo ( contenuto: ""; display: tabella; cancella: entrambi; ) modulo div ( margine inferiore: 15px; posizione: relativa; ) h1 ( dimensione carattere: 24px; peso carattere: 400; posizione: relativa ; margin-top: 50px; ) h1:after ( content: "\f138"; font-size: 40px; font-family: FontAwesome; posizione: assoluta; top: 50px; sinistra: 50%; trasformazione: TranslateX(-50 %); ) /************************ stile degli elementi del modulo ***************** * **/ etichetta, span ( display: blocco; dimensione carattere: 14px; margine inferiore: 8px; ) input, input ( larghezza bordo: 0; contorno: nessuno; margine: 0; larghezza: 100%; riempimento: 10px 15px; sfondo: #e6e6e6; ) input:focus, input:focus ( box-shadow: inset 0 0 0 2px rgba(0,0,0,.2); ) .radio etichetta ( posizione: relativa; riempimento-sinistra: 50px; cursore: puntatore; larghezza: 50%; float: sinistra; altezza linea: 40px; ) .radio input ( posizione: assoluta; opacità: 0; ) .radio -control ( posizione: assoluta; superiore: 0; sinistra: 0; altezza: 40px; larghezza: 40px; sfondo: #e6e6e6; raggio bordo: 50%; allineamento testo: centro; ) .male:prima ( contenuto: " \f222"; font-family: FontAwesome; font-weight: bold; ) .female:before ( content: "\f221"; font-family: FontAwesome; font-weight: bold; ) .radio label:hover input ~ . radio-controllo, .radiol input: focus ~ .radio-control ( box-shadow: inset 0 0 0 2px rgba(0,0,0,.2); ) .radio input: selezionato ~ .radio-control ( colore: red; ) select ( larghezza: 100%; cursore: puntatore; riempimento: 10px 15px; contorno: 0; bordo: 0; sfondo: #e6e6e6; colore: #7b7b7b; -webkit-appearance: none; /* deseleziona webkit -browser */ -moz-appearance: none; /*deseleziona in Mozilla Firefox*/ ) select::-ms-expand ( display: none; /*deseleziona in IE*/ ) .select-arrow ( posizione: assoluta ; in alto: 38px; destra: 15px; larghezza: 0; altezza: 0; eventi puntatore: nessuno; /*attiva la visualizzazione dell'elenco quando si fa clic sulla freccia*/ border-style: solid; larghezza del bordo: 8px 5px 0 5px; colore bordo: #7b7b7b trasparente trasparente trasparente; ) pulsante (imbottitura: 10px 0; larghezza bordo: 0; display: blocco; larghezza: 120px; margine: 25px automatico 0; sfondo: #60e6c5; colore: bianco; dimensione carattere: 14px; contorno: nessuno; trasformazione testo : maiuscolo; ) /************************ aggiungi adattabilità al modulo ***************** ** **/ @media (larghezza massima: 600px) ( .form-wrap (margine: 20px automatico; larghezza massima: 550px; larghezza: 100%;) .profile, modulo (float: nessuno; larghezza: 100% ;) h1 (margine-superiore: auto; riempimento-inferiore: 50px;) modulo (raggio-bordo: 0 0 20px 20px;) )

File Form.php

Nota
Nella variabile $subject, specifica il testo che verrà visualizzato come titolo della lettera;
Your_name - qui puoi specificare il nome che verrà visualizzato nel campo "da chi proviene la lettera";
sostituire your_site_url con l'indirizzo del sito dove si trova il modulo di registrazione;
sostituisci your_email con il tuo indirizzo email;
$headers .= "Ccn: tua_email". "\r\n"; invia BCC al tuo indirizzo email.

I migliori articoli sull'argomento