- Como faço para que o usuário só tenha acesso ao sistema de 1 ou mais meses dependendo da quantidade de dias que eu determine através de um campo input?
- Como faria isso?
Observação: linguagem PHP
com Banco MySQL
?.
Observação: linguagem PHP
com Banco MySQL
?.
Faça assim:
No cadastro de usuário que servirá como base para os logins dos seus usuários, na hora que o usuário digitar usuário e senha (para entrar no sistema, fazer login), você confere no seu código se a data cadastrada é maior ou igual a data atual do sistema, se sim se deixa o usuário entrar normalmente se não, envie uma mensagem na tela dizendo que o seu tempo expirou.
O que eu te expliquei logo acima é uma regra de negócio, como na sua pergunta não tem código acredito que queria saber a lógica do processo …
Certo, mais o problema é o seguinte amigo, ao salvar o usuário irei salvar com a data de hoje e dar a ele 30 dias de acesso ao sistema, ai eu teria que decrementar esses 30 dias abatendo na data atual e ao chegar em 0 ele não permitir acesso ao sistema entendeu ? só que não sei como faria isso no código, saberia como me ajudar com algum exemplo ?
Basicamente:
<?php
//data atual do sistema
$data_atual = date_create("2015-01-01");
//intervalo de acrescimento de dias em
//uma data que no caso especifico é 30 dias
$day30 = new DateInterval('P30D');
echo 'Data Atual antes dos 30 dias: ';
echo $data_atual->format('d/m/Y');
echo PHP_EOL;
echo 'Data Atual com mais 30 dias: ';
$data_atual->add($day30);
echo $data_atual->format('d/m/Y');
Esse simples código seria pegar a data atual e somar 30 dias, ou seja, a data atual poderia vir da sua base de dados e você acrescentar os 30 dias e agora faça uma comparação de datas assim:
<?php
$data0 = date_create("2015-01-01");
$data1 = date_create("2015-01-02");
if ($data >= $data1)
{
echo "Não pode logar";
}
else
{
echo "pode logar";
}
Comparar é o mais simples, você pode criar uma função para resolver todo o seu problema:
<?php
function date_30dias($data)
{
$data_do_banco = date_create($data);
$data_atual = date_create("2015-01-01");
$data_do_banco->add(new DateInterval('P30D'));
if ($data_do_banco >= $data_atual)
{
return true;
}
return false;
}
echo date_30dias("2014-12-01") ? "Pode logar" : "Não pode logar";
echo PHP_EOL;
echo date_30dias("2014-12-02") ? "Pode logar" : "Não pode logar";
Leitura:
Obrigado amigo, seria isso mesmo! Irei por em meu projeto e qualquer coisa falo, mas ajudou muito!