Ir para conteúdo
Fórum Script Brasil
  • 0

sistema de login por hora


Read

Pergunta

preciso de um sistema de login definido por hora

06:00 as 12:00 usuários manha

12:00 as 18:00 usuários tarde

18:00 as 00:00 usuários noite

00:00 as 06:00 usuários madrugada

o Usuário cadastrado em determinado período não devera conseguir logar fora do horário dele

não precisa ser nada sofisticado pois o login sera feito através de um programa.

se possível algo que não use Mysql.

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

<?php
$user = $_GET["user"];
$pass = $_GET["pass"];
$fp = fopen("AutoITdata.txt", "r");
$string = fgets($fp); 
$array = array(
    'user1'    => '123456',
    'user2'    => '654321',
    'user3'    => '456789',
    'user4'     => '987654');

while ($name = key($array)) {
    if ($name == $user) {
    if ($pass == current($array))
    {
        echo $string;
        break;
    }
    else
    {
        echo "01";
        break;
    }      
    }
    next($array);
}
echo "02";
?>

meu programa valida esses dados por meio de um sistema de login

onde só libera acesso a suas funções se os dados estiverem corretos

gostaria de saber como colocar intervalos de data e hora nesse script php

tipo o user1 só pode se logar das 12:00 as 18:00 do dia 07/07/11 ate 15/09/11 etc,

sendo q a data e a hora seja pega do servidor

para impedir q mudem a hora do pc pra burlar o sistema.

Editado por Read
Link para o comentário
Compartilhar em outros sites

  • 0
<?php

$hora_entrada_site = date("h:i:s"); // pega a hora atual do servidor
$entrada_intervalo = date("06:00:00"); // declara hora inicial do intervalo. no caso pode ser um campo do mysql
$saida_intervalo = date("12:00:00"); // declara hora final do intervalo. no caso pode ser um campo do mysql

echo "você entrou às: ".$hora_entrada_site."<br>";
echo "horário de entrada mínimo: ".$entrada_intervalo."<br>";
echo "horário de saída máximo: ".$saida_intervalo."<br>";

if($hora_entrada_site < $entrada_intervalo || $hora_entrada_site > $saida_intervalo)
{
    echo "ae negão! tá fazendo o que nesse horário?";
}
else
{
    echo "é nóis Dr. let's go";
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

como falei anteriormente a pagina php não é mostrada ao usuário

serve somente para validar os dados no programa ou seja a tela de login é mostrada pelo programa

e não pelo navegador, o código que preciso é um complemento do que eu postei no primeiro tópico que simplesmente

recuse o login fora do horário e data daquele usuário não fazendo nada como se o login estivesse errado.

como a pagina não e mostrada não precisa de nenhum tipo de msg pois o user não terá como vê-las.

estou usando um servidor gratuito para hospedar o php q não fornece BD mysql.

ao abrir meu programa ele abre uma tela de login que valida os dados por esse código php

se o login estiver correto o programa roda normalmente, más se o login estiver errado

o programa fecha, só que eu quero colocar tipo um sistema que force o usuário a usar o programa

em determinado turno ( manhã, tarde, noite ou madrugada ) com validade por data.

exemplo:

o user1 só pode usar o programa das 06:00 as 12:00 do dia 18/07/11 ate 18/07/11 ( mesmo dia )

o user2 só pode usar o programa das 12:00 as 18:00 do dia 18/07/11 ate 23/08/11

o user3 só pode usar o programa das 18:00 as 00:00 do dia 18/07/11 ate 19/07/11

o user4 só pode usar o programa das 00:00 as 06:00 do dia 18/07/11 ate 25/09/11

então o login do user1 no horário do user2 deveria ser impedido

Link para o comentário
Compartilhar em outros sites

  • 0
sei fazer mesmo não

da forma que tentei não funciono

já que você ta dizendo que tem como se puder me passar o código pronto pra min seria uma boa.

Então, a intenção do forum é auxiliar. Como você disse que não sabe fazer, acredito que tem bastantes freelancers aqui. Caso queira me contratar, pode me adicionar no skype/MSN.

Abs.

Link para o comentário
Compartilhar em outros sites

  • 0

aff

consegui essa solução gratuitamente em outro fórum :D

pode pelo-menos me auxiliar a colocar em funcionamento

MEU CODIGO

<?php
$user = $_GET["user"];
$pass = $_GET["pass"];
$fp = fopen("AutoITdata.txt", "r");
$string = fgets($fp); 
$array = array(
    'user1'     => '123456',
    'user2'     => '654321',
    'user3'     => '456789',
    'user4'     => '987654');

while ($name = key($array)) {
    if ($name == $user) {
        if ($pass == current($array))
        {
                echo $string;
                break;
        }
        else
        {
                echo "01";
                break;
        }      
    }
    next($array);
}
echo "02";
?>
SOLUÇÃO ( quem me passou esse código disse que simularia um banco de dados )
$dados = array();

$dados['user1']['chave'] = '12345';
$dados['user1']['hora_inicio'] = 6;
$dados['user1']['hora_fim'] = 12;

$dados['user2']['chave'] = '12345';
$dados['user2']['hora_inicio'] = 12;
$dados['user2']['hora_fim'] = 18;

$dados['user3']['chave'] = '12345';
$dados['user3']['hora_inicio'] = 18;
$dados['user3']['hora_fim'] = 24;

$dados['user4']['chave'] = '12345';
$dados['user4']['hora_inicio'] = 24;
$dados['user4']['hora_fim'] = 6;
tentei assim
<?php
$user = $_GET["user"];
$pass = $_GET["pass"];
$fp = fopen("AutoITdata.txt", "r");
$string = fgets($fp); 

$dados = array(
    'user1'     => '12345',
    'user2'     => '12345',
    'user3'     => '12345',
    'user4'     => '12345');

$dados['user1']['chave'] = '12345';
$dados['user1']['hora_inicio'] = 6;
$dados['user1']['hora_fim'] = 12;

$dados['user2']['chave'] = '12345';
$dados['user2']['hora_inicio'] = 12;
$dados['user2']['hora_fim'] = 18;

$dados['user3']['chave'] = '12345';
$dados['user3']['hora_inicio'] = 18;
$dados['user3']['hora_fim'] = 24;

$dados['user4']['chave'] = '12345';
$dados['user4']['hora_inicio'] = 24;
$dados['user4']['hora_fim'] = 6;

while ($name = key($dados)) {
    if ($name == $user) {
        if ($pass == current($dados))
        {
                echo $string;
                break;
        }
        else
        {
                echo "01";
                break;
        }      
    }
    next($dados);
}
echo "02";
?>

Editado por Read
Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia read

se o horário é padronizado e não individual... assim é meio sem lógica

$dados['user4']['hora_inicio'] = 24;

$dados['user4']['hora_fim'] = 6;

poderia ser assim

$dados['user4']['hora'] = 1;

aonde código 1 representa...24 até 0...

até ai é o d menos cara...

você pode usar a função mktime para comparar as datas (a da permissão do usuário, com a data atua do servidor)

olha esse exemplo que achei

$MaxDate = mktime(0, 0, 0, 04, 10, 2009); 
$MinDate = mktime(0, 0, 0, 06, 05, 2009); 

$GivenDateString = $_POST['date']; // 
$GivenDateArray = explode('/', $GivenDateString);

$GivenDate = mktime(0, 0, 0, $GivenDateArray[1], $GivenDateArray[0], $GivenDateArray[2]);

if($GivenDate > $MaxDate){    

 // Date is too large 

}else if($GivenDate < $MinDate){  

   // Date is too small 

}else{   

 // Date is valid

}

Aonde está assim... invez de post você poderia pegar a data do servidor usando a função date()

$GivenDateString = $_POST['date'];

E aqui, você colocaria a data que o usuário é permitido usar o seu sistema..

$MaxDate = mktime(0, 0, 0, 04, 10, 2009);

$MinDate = mktime(0, 0, 0, 06, 05, 2009);

Para você entender como funciona o mktime...

http://www.php.net/manual/pt_BR/function.mktime.php

Abrçs..

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...