Jump to content
Fórum Script Brasil
  • 0

sistema de login por hora


Read

Question

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 to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 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.

Edited by Read
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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";
?>

Edited by Read
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...