quando se trata de fazer sites para o mundo real, ter um formulário de inscrição simples para é vital. A internet é praticamente construída em sites de associação. Portanto, como parte da minha série de tutoriais do php member system, criaremos um formulário de registro simples em php.
muito rápido e fácil de escrever do zero, este formulário de registro simples permitirá que qualquer usuário se registre com apenas um nome de usuário, e-mail e senha, mas você pode facilmente adicionar um e-mail se quiser.
uma visão geral do código-fonte para o nosso php página de registo é esse:
<?php // connect to the database // check for a user being logged in // process the registration form data ?> <html> display a header display the error message (if there is one) display the registration form </html>
Como Fazer um Formulário de Cadastro em php
- Criar o banco de dados para o formulário de inscrição Fazer o simples formulário de registro em HTML/CSS Conectar ao banco de dados MySQL utilizando php Processo de registo de entrada de formulário Adicionar novas contas de usuário ao banco de dados
Passo 1: Criar o banco de dados para o formulário de inscrição
muitas vezes, o primeiro passo para fazer um site é criar o banco de dados. E com certeza, você provavelmente precisará fazer alterações em seu banco de dados mais tarde. Mas configurar seu banco de dados Primeiro, lhe dará um ótimo ponto de partida
criaremos um banco de dados simples para armazenar todas as informações da conta do usuário, incluindo seu nome de usuário e senha. Vá em frente e faça login no seu painel de controle phpMyAdmin no seu servidor. (se você é novo no phpMyAdmin, confira minha introdução ao artigo phpMyAdmin)
campos de banco de dados para nosso sistema de associação php
todo banco de dados precisa de um nome e, como gosto de manter a vida simples, vamos chamar nosso banco de dados de “usuários”.
nota: estou supondo que você já tenha pelo menos um entendimento básico de como usar o phpMyAdmin e como os bancos de dados MySQL funcionam. Caso contrário, você pode ler sobre o phpMyAdmin basics ou a operação do banco de dados MySQL aqui em HeyTuts.com. (esses links serão abertos em novas guias)
como estamos fazendo um formulário de registro simples, precisaremos apenas de 7 campos em nosso banco de dados. Desta forma, obtemos funcionalidade básica suficiente imediatamente. Mas ainda pode adicionar recursos extras, como um formulário de redefinição de senha.
- id – este será um identificador exclusivo para cada usuário. Precisamos ter certeza de que o campo id é um inteiro e definido como incremento automático com uma chave primária. Esta é uma obrigação!!! Quando o progresso para sistemas membros mais complexos, o uso do ID da conta do usuário torna super simples vincular registros de banco de dados.
- nome de usuário-isso deve ser autoexplicativo. Eu defini o meu para um varchar de 50 caracteres. Muito raramente o usuário vai querer um nome de usuário com mais de 10-15 caracteres, então 50 deve cuidar disso. Mas isso também lhe dará a capacidade de definir o comprimento de nome de usuário desejado em seu código php.
- email-o endereço de E-mail do Usuário. Defina-o como um varchar de 100 caracteres.
- senha-usaremos alguma criptografia básica para as senhas de nossos usuários. Então, um varchar de 50 caracteres fará bem. Mais tarde, você nos verá usar a função md5 () para criar um hash de senha básico para alguma segurança simples.
- date_created-isso armazenará um valor time () de quando o usuário criou sua conta.
- last_login – podemos acompanhar a última vez que o usuário fez login atualizando este registro aqui. Novamente será a partir da função time ().
- status-Acompanhe o status de ativação da conta. Podemos verificar esse valor para ver se o usuário ativou sua conta ou não e, com base nisso, deixá-los fazer login ou dar-lhes um aviso para ativar sua conta.Etapa 2: Faça o formulário de registro simples em HTML / CSS
com a configuração do banco de dados, podemos criar o formulário de registro real que o usuário usará para criar sua conta. Como praticamente todos os formulários do site, vamos fazê-lo com HTML e CSS.
criar um registo.arquivo php no seu servidor web
vou ligar para minha página de formulário de registro.php, então vá em frente e crie este arquivo em seu servidor web. Eu recomendo fazer todo este sistema membro em seu servidor web localhost com XAMPP (link externo).
crie um cabeçalho de navegação básico
o cabeçalho para este tutorial do sistema de membros do php também será simples. Com alguns links apenas para alguma navegação super básica. Abaixo está a configuração básica da página para nosso registro.arquivo php.
<html> <head> <title>php member system | registration form</title> </head> <body> <h1>member system tutorial - register</h1> <a href="./index.php">Home</a> | <a href="./register.php">Register</a> | <a href="./login.php">Login</a> <hr /> <!-- error message code here --> <!-- registration form html code here --> </body></html>
Crie o formulário de registro real
agora podemos criar o formulário com o qual o usuário verá e interagirá. Se você pensar em nossa configuração de banco de dados, temos apenas 3 campos que o usuário tem a capacidade de inserir: o nome de usuário, senha e endereço de E-mail. Não se esqueça de adicionar algum texto para exibir rótulos para os quais os campos são obrigatórios.
fora de boas práticas, gosto de adicionar um campo de senha adicional para o Usuário confirmar sua senha. E certifique-se de informar aos usuários a força da senha necessária.
Para obter uma senha segura para a conta do usuário, precisaremos de pelo menos 5 caracteres. Com pelo menos um caráter especial de um destes: !#$.,:;(). Isso não dará ao uso a senha mais segura, mas lhe dará uma idéia de como forçar senhas mais fortes para o seu posterior.
<form action="./register.php" class="form" method="POST"><h1>create a new account</h1><div class=""><?php// check to see if the user successfully created an accountif (isset($success) && $success == true){echo '<p color="green">Yay!! Your account has been created. <a href="./login.php">Click here</a> to login!<p>';}// check to see if the error message is set, if so display itelse if (isset($error_msg))echo '<p color="red">'.$error_msg.'</p>';?></div><div class=""><input type="text" name="username" value="" placeholder="enter a username" autocomplete="off" required /></div><div class=""><input type="text" name="email" value="" placeholder="provide an email" autocomplete="off" required /></div><div class=""><input type="password" name="passwd" value="" placeholder="enter a password" autocomplete="off" required /></div><div class=""><p>password must be at least 5 characters and<br /> have a special character, e.g. !#$.,:;()</font></p></div><div class=""><input type="password" name="confirm_password" value="" placeholder="confirm your password" autocomplete="off" required /></div><div class=""><input class="" type="submit" name="registerBtn" value="create account" /></div><p class="center"><br />Already have an account? <a href="<?php echo SITE_ADDR ?>/login">Login here</a></p></form>
se você perceber, estou colocando nosso formulário de registro em uma tabela simples apenas para alinhar tudo bem para o usuário. O importante a observar aqui é a ação do formulário (também conhecida como POST), os nomes das Caixas de texto e o nome do botão enviar.
todos esses nomes de campo são cruciais no script de back-end para recuperar os dados depois que o usuário envia o formulário. Observe também o método do formulário, POST, que ocultará os dados do formulário do usuário em vez de enviá-lo para o url como GET will.
exibir uma mensagem de erro, quando necessário
na página de registro, você e seu usuário acharão útil realmente mostrar uma mensagem de erro. Quando necessário. Vou colocá-lo abaixo da navegação e acima do formulário de registro. Esta mensagem dará ao usuário uma idéia do que ele fez de errado e precisa corrigir antes que ele possa criar sua conta.
basicamente, o que vou fazer é criar duas variáveis, uma chamada $success e $error_msg. Faremos uma verificação simples para essas duas variáveis sendo definidas. Com base em se eles estão definidos (também conhecido como criado e atribuído um valor), exibimos a mensagem de erro aplicável.
<?php // check to see if the user successfully created an account if (isset($success) && $success == true){ echo '<font color="green">Yay!! Your account has been created. <a href="./login.php">Click here</a> to login!<font>'; } // check to see if the error message is set, if so display it else if (isset($error_msg)) echo '<font color="red">'.$error_msg.'</font>'; else echo ''; // do nothing?>
a ideia é que, se houver um erro durante o processamento dos dados, podemos definir a mensagem de erro na variável $error_msg e, em seguida, ela será exibida para o Usuário e iremos strop processando as informações. Se o usuário criar sua conta com sucesso, definiremos $ success como true e exibiremos uma mensagem de sucesso em verde (porque o verde é sempre bom, estou certo??).
Passo 3: Conecte-se ao banco de dados MySQL usando php
agora podemos acessar alguns dos códigos php de back-end. Antes que você possa fazer qualquer Operação de banco de dados MySQL, você precisa se conectar ao banco de dados. A maioria dos sites se conecta ao banco de dados em uma configuração separada ou script de conexão. Então faremos o mesmo.
crie um novo script php chamado connect.php e salve-o no mesmo diretório que o registro.arquivo php.
<?php $conn = mysqli_connect("localhost", "root", "password", "code_projects");?>
Etapa 4: processe a entrada do formulário de registro
agora até a carne e as batatas deste formulário de registro simples. O código php para processar o formulário após o envio.
como já criamos nosso script de conexão de banco de dados, podemos usar a Função require_once() para carregar o script de conexão.
<?php // include our connect script require_once("connect.php"); // check to see if there is a user already logged in, if so redirect them session_start(); if (isset($_SESSION) && isset($_SESSION)) header("Location: ./index.php"); // redirect the user to the home page?>
em seguida, usando sessões php, rastrearemos se os usuários estão logados ou não. Por enquanto, vamos apenas verificar se as variáveis de sessão estão definidas. Entraremos em como definir as variáveis de sessão no tutorial do formulário de login. Se o usuário estiver logado, redirecionaremos para a página inicial.
obtenha todos os dados do formulário de inscrição
assim que estivermos prontos para obter todos os dados do formulário, primeiro verificamos se o botão Enviar foi Clique (também conhecido como formulário foi enviado). Se fosse, armazenamos todos os dados do formulário em variáveis. Se o formulário não foi enviado, então não fazemos nada, exceto exibir o formulário para o usuário.
como estamos usando um tipo de formulário de postagem, precisamos obter os dados da postagem usando nosso código php. Todos os dados “postados” do formulário estarão na variável de matriz $_POST. Você pode então usar o nome do elemento de formulário como as chaves de matriz. Permitindo-nos obter os dados específicos que você está procurando, como este:
if (isset($_POST)){ // get all of the form data $username = $_POST; $email = $_POST; $passwd = $_POST; $passwd_again = $_POST; // next code block }
Realizar verificações básicas sobre os dados do formulário
em seguida, verifique se o usuário completado o formulário de registro. Verificando o endereço de E-mail, nome de usuário e senhas. Se nos certificarmos de que cada variável não é uma string vazia, isso significa que há algum texto lá, certo?
em seguida, verificamos para garantir que a senha e a senha de confirmação sejam exatamente o mesmo texto. Caps e tudo. Usando três sinais iguais em uma linha (isso é ===) em nossa instrução if,as strings são casadas.
basicamente, f comparamos “Olá” com ” Olá ” usando dois sinais iguais, então você obtém um resultado verdadeiro. Isso ocorre porque nosso código diz “sim, Olá e Olá são a mesma palavra”. Mas se os compararmos usando três sinais iguais, nosso código é como ” não! Pára aí. Essas palavras não correspondem. Grande e velho falso!”Faz sentido?
// verify all the required form data was enteredif ($username != "" && $passwd != "" && $passwd_again != ""){ // make sure the two passwords match if ($passwd === $passwd_again){ // make sure the password meets the min strength requirements if ( strlen($passwd) >= 5 && strpbrk($passwd, "!#$.,:;()") != false ){ // next code block } else $error_msg = 'Your password is not strong enough. Please use another.'; } else $error_msg = 'Your passwords did not match.';}else $error_msg = 'Please fill out all required fields.';
em seguida, podemos garantir que as senhas atendam aos nossos requisitos de força. Nossos critérios ohhh tão impressionantes para uma senha segura. Pelo menos 5 caracteres de comprimento e usando pelo menos um caractere especial.
usando strlen (), garantimos que seja longo o suficiente para atender ao mínimo de 5 caracteres. Facil. Em seguida, usando a função strpbrk (), podemos verificar se algum dos caracteres especiais da lista está presente. Esta função retornará false se nenhum dos caracteres especiais estiver presente. Ele retornará uma string se houver.
você pode ler mais sobre a função no php.net referência. Basicamente, é apenas uma maneira super rápida e fácil de verificar se há uma lista de caracteres especiais existentes em uma string. Porque, além do existente, não nos importamos com eles.
Etapa 5: adicione novas contas de usuário ao banco de dados
agora que sabemos que todos os nossos dados de formulário estão bons e prontos para uso, podemos começar a fazer algumas verificações de banco de dados. Primeiro, verificamos se o nome de usuário já está no banco de dados. Se houver zero registros retornados, o nome de usuário não estará no banco de dados. Se alguma outra coisa for retornada, o nome de usuário será usado.
em seguida, precisamos criar algumas variáveis extras para armazenar alguns dos outros dados aleatórios que precisamos armazenar no registro do banco de dados para a conta de usuário que estamos prestes a criar. Abaixo deste bloco de código está uma explicação de cada uma das variáveis.
DISCLAIMER: eu quero salientar que, para o propósito deste tutorial, não estamos usando uma criptografia de senha muito complexa. Estou simplesmente fazendo isso pelo efeito de não armazenar a senha em texto simples (nunca faça isso, é apenas ruim). Se você quiser aprender a fazer algo mais substancial e seguro, confira nosso tutorial de segurança de senha. Eu entro em detalhes sobre diferentes métodos para criar e armazenar senhas mais seguras usando php.
// query the database to see if the username is taken$query = mysqli_query($conn, "SELECT * FROM users WHERE username='{$username}'");if (mysqli_num_rows($query) == 0){ // create and format some variables for the database $id = ''; $passwd = md5($passwd); $date_created = time(); $last_login = 0; $status = 1; // next code block}else $error_msg = 'The username <i>'.$username.'</i> is already taken. Please use another.';
- $id-precisamos de um suporte de local para o ID de incremento automático que o banco de dados atribuirá.
- $passwd – estamos adicionando alguma criptografia básica à senha do usuário usando o hash md5 ()
- $ date_created-usando a função time (), podemos obter um carimbo de data / hora no momento exato em que o usuário cria sua conta. Podemos usar isso mais tarde para exibir usando date ()
- $last_login – mais tarde, Usaremos isso para rastrear quando o usuário fizer login. Vamos defini-lo como zero porque eles ainda não fizeram login.
- $ status-usando este campo, podemos rastrear o status das contas, como ativar por e-mail ou desativá-lo para fins de administrador, ou realmente o que flutua seu barco. Vou definir como 1 (um) por padrão, ou seja, uma conta ativa e posso fazer login imediatamente.
agora podemos finalmente criar o registro do banco de dados para a conta do Usuário. Usando uma consulta de inserção, podemos listar com muito cuidado todas as nossas informações de registro de banco de dados.
se você precisar de Ajuda para entender o básico de como as consultas funcionam. Ou mesmo operações gerais de banco de dados, verifique meu outro tutorial sobre operações de banco de dados MySQLi.
depois de inserir o registro, como uma boa prática, vou ter certeza de que o registro foi realmente adicionado (porque você nunca sabe, poderia ter havido algum tipo de erro.) Desde antes de nos certificarmos de que o nome de usuário não existia, agora, se verificarmos se ele existe e encontrarmos um registro com ele atribuído, sabemos que nossa nova conta foi criada no banco de dados. Por fim, apenas definimos nossa variável $success como true porque o usuário concluiu seu registro e sua conta foi criada.
// insert the user into the databasemysqli_query($conn, "INSERT INTO users VALUES ( '{$id}', '{$username}', '{$email}', '{$passwd}', '{$date_created}', '{$last_login}', '{$status}')");// verify the user's account was created$query = mysqli_query($conn, "SELECT * FROM users WHERE username='{$username}'");if (mysqli_num_rows($query) == 1){ /* IF WE ARE HERE THEN THE ACCOUNT WAS CREATED! YAY! */ /* WE WILL SEND EMAIL ACTIVATION CODE HERE LATER */ $success = true;}else $error_msg = 'An error occurred and your account was not created.';
toques finais para o nosso formulário de inscrição
agora com todo o nosso registo.código php escrito, podemos visualizá-lo a partir do navegador da web. Você pode até testá-lo e criar sua própria conta em sua nova página de registro!
com o nosso formulário de registro simples criado, a próxima parte de um sistema membro php é criar o formulário de login. porque Qual é o sentido de ter um formulário de registro para criar uma conta se os usuários não puderem fazer login em sua conta?
Como Carregar…