Duvida em como comparar array :

61 views
Skip to first unread message

Gabriel Prudencio

unread,
Apr 14, 2020, 7:46:40 AM4/14/20
to LISTA PHP
Preciso Comparar uma informação que vem do formulário via POST ( login -  senha ) 
ele vai entrar  num array $login , preciso verificar se $login digitado esta correto ,
 comparar com o $usuarios_cadastrados ( sem banco de dados é tudo direto na página)
eu  tentei utilizar foreach , mas sem sucesso. 
Alguém consegue me dar uma luz?
Obrigado!
<?php



$usuarios_cadastrados = [
   'usua...@teste.com' => '123456', 'usua...@teste.com' => '123456',
   'usua...@teste.com' => '123456', 'usua...@teste.com' => '123456',
   'usua...@teste.com' => '123456',
];
$login = [];
$email = $_POST["email"];
$senha = $_POST["senha"];
$login[$email] = $senha;


if (in_array($login,$usuarios_cadastrados))  {
   echo "Proseguir"; // deixei assim para o teste se tava funcionando ou  não
} else {
   echo "stop";
}
?>


Cassiano Ricardo Mourão

unread,
Apr 14, 2020, 7:49:40 AM4/14/20
to list...@googlegroups.com

--
--
============================================================
JQUERY MAGAZINE > http://www.jquerymagazine.com.br
--
PHP MAGAZINE > http://www.phpmagazine.com.br
--
LISTA NODE.JS > https://groups.google.com/group/lista-nodejs?hl=pt-br
--
AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
--
PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
--
DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
============================================================

---
Você recebeu essa mensagem porque está inscrito no grupo "LISTA PHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para listaphp+u...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/listaphp/1a7df1e4-7bef-4a6f-bf43-7610d79d2f5b%40googlegroups.com.

Samuel Aiala

unread,
Apr 14, 2020, 8:31:19 AM4/14/20
to list...@googlegroups.com

Rapaz, tirando todos os problemas com essa sua abordagem, segue o que tu precisa. O in_Array só vai pesquisar por valores do array, no caso 123456 (ou seja, se usar o in_array e tiver 2 usuários com a mesma senha, vai dar problema)

<?php

$usuarios_cadastrados = [
    'usua...@teste.com' => '123456', 'usua...@teste.com' => '123456',
    'usua...@teste.com' => '123456', 'usua...@teste.com' => '123456',
    'usua...@teste.com' => '123456',
];
$login = [];
$email = 'usua...@teste.com';
$senha = '123456';
$login[$email] = $senha;

foreach ($usuarios_cadastrados as $key => $value) {
    if ($key == $email && $value == $senha) {

        echo "Proseguir"; // deixei assim para o teste se tava funcionando ou  não
        //TODO: Aqui tu salva seu usuário
        break;
    } else {
        echo "stop";
    }
}

----------------------------------------------------------------------
Samuel Aiala Ferreira

sam...@samuca.com
31-8449-8313


Em ter., 14 de abr. de 2020 às 08:46, Gabriel Prudencio <gabrielpr...@gmail.com> escreveu:

Rafael Pepino

unread,
Apr 14, 2020, 8:31:19 AM4/14/20
to LISTA PHP
<?php



$usuarios_cadastrados = [
    'a...@teste.com' => '123456', 'b...@teste.com' => '123456',
    'c...@teste.com' => '123456', 'd...@teste.com' => '123456',
    'e...@teste.com' => '123456',
];
$login = [];
$email = $_GET["email"];
$senha = $_GET["senha"];
$login[$email] = $senha;
if(@$usuarios_cadastrados[$email]==$senha )
{
echo 'Proseguir';
}
else
{
echo 'stop';
}


?>

cuidado com o que faz
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para list...@googlegroups.com.

Gabriel Prudencio

unread,
Apr 15, 2020, 7:46:16 AM4/15/20
to LISTA PHP
galera obrigado pelas rápidas respostas que tive, porém fiquei acordado até muito tarde fazendo varias tentativas e consegui , mas agradeço a todos!!!
PS:sou inciante estou cursando técnico a 4 meses ,estou gostando muito.. e de novo muito obrigado pela atenção de vocês.
vou postar de como fiz , esta funcionando esse método, não sei se tem outro de melhor performance .. mas to aprendendo obrigado ai galera são de mais!!!!!!!
$usuarios_cadastrados = [
            'usua...@teste.com' => '123456''usua...@teste.com' => '123456',
            'usua...@teste.com' => '123456''usua...@teste.com' => '123456',
            'usua...@teste.com' => '123456',
        ];
        $login = [];
        $email = $_POST["email"];
        $senha = $_POST["senha"];
        $login[$email] = $senha;

        foreach ($usuarios_cadastrados as $usuario => $pass) {
        }
        if (in_array($pass, $login) && !in_array($usuario, $login)) {
        } elseif ($pass <> $login) {
            echo "Usuário ou senha incorretas";
            header("location: login.html");
            

        }


Cassiano Ricardo Mourão

unread,
Apr 15, 2020, 7:58:23 AM4/15/20
to list...@googlegroups.com
Impossível esse código estar rodando.

--
--
============================================================
JQUERY MAGAZINE > http://www.jquerymagazine.com.br
--
PHP MAGAZINE > http://www.phpmagazine.com.br
--
LISTA NODE.JS > https://groups.google.com/group/lista-nodejs?hl=pt-br
--
AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
--
PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
--
DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
============================================================

---
Você recebeu essa mensagem porque está inscrito no grupo "LISTA PHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para listaphp+u...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/listaphp/7bcc29d9-b394-46ac-b8e5-d851ff8fac61%40googlegroups.com.

Gabriel Prudencio

unread,
Apr 15, 2020, 7:28:08 PM4/15/20
to LISTA PHP
Em quarta-feira, 15 de abril de 2020 08:58:23 UTC-3, Cassiano Ricardo Mourão escreveu:
Impossível esse código estar rodando.


por que ? aqui ta rodando tranquilo por enquanto vou postar aqui ele inteiro só para tu ver como que ta.. eu postei só os códigos, não postei o restante ali na outra 

<!DOCTYPE html>
<html lang="pt-br">

<head>
   <meta charset="UTF-8">
   <title>Lança Notas</title>
</head>


<body>

    <form method="POST">
       Total de notas para o lançamento:
       <input type="number" name="turma_alunos" placeholder="Digite o tamanho da turma">

        <?php
       echo "<input type='hidden' name='email'  value='" . $_POST["email"] . "'>";
       echo "<input type='hidden' name='senha'  value='" . $_POST["senha"] . "'>";


        ?>

        <input type="submit" name="submit" value="Gerar">
       <br>
   </form>

    <form action="resumo.php" method="post">
       <?php

        $usuarios_cadastrados = [
           'usua...@teste.com' => '123456', 'usua...@teste.com' => '123456',
           'usua...@teste.com' => '123456', 'usua...@teste.com' => '123456',
           'usua...@teste.com' => '123456',
       ];
       $login = [];
       $email = $_POST["email"];
       $senha = $_POST["senha"];
       $login[$email] = $senha;

        foreach ($usuarios_cadastrados as $usuario => $pass) {
       }
       if (in_array($pass, $login) && !in_array($usuario, $login)) {
       } elseif (isset($_POST["turma_alunos"]) && $_POST["turma_alunos"] > 0) {
           $turma_alunos = $_POST["turma_alunos"];

            for ($i = 0; $i < $turma_alunos; $i++) {
               echo "Nome:  ";
               echo "<input type='text' placeholder='Digite seu nome'name='nome_alunos'required>  ";
               echo "G1: ";
               echo "<input type='number' placeholder='Digite Sua G1' name='g1'>   ";
               echo "G2: ";
               echo "<input type='number' placeholder='Digite Sua G2' name='g2'>   ";
               echo "<input type='submit' value='Salvar'>";
               echo "<br>";
               echo "<br>";
           }
       } elseif ($pass <> $login) {
           echo "Usuário ou senha incorretas";
           header("location: login.html");
       }


        ?>
   </form>
</body>

</html>

Vem login e senha lá do formulário, passa para esse guarda a informação no hidden , dps eu digito quantos alunos é necessário ver as notas e ele abre os campos para digitar.. você vê algo de errado cassiano?? se sim me diz ai por favor para eu corrigir, mas a principio esta funcionando aqui .... depois que é digitado nos campos nomes e g1 g2 vai para outra pagina dando media  se aprovado se reprovaou etc.... mas to fazendo ela ainda...to em aprendizado! obrigado.

Cassiano Ricardo Mourão

unread,
Apr 15, 2020, 8:44:47 PM4/15/20
to list...@googlegroups.com
Pra mim daria erro (seus erros podem estar suprimidos) por causa dessas linhas:

foreach ($usuarios_cadastrados as $usuario => $pass) {
        }
        if (in_array($pass, $login) && !in_array($usuario, $login)) {
        } 

Imaginei que o PHP obrigava ter algo dentro das chaves... Se não obriga, então realmente não dá problema como você comentou, porém o foreach não faz nada.. tampouco o if.

--
--
============================================================
JQUERY MAGAZINE > http://www.jquerymagazine.com.br
--
PHP MAGAZINE > http://www.phpmagazine.com.br
--
LISTA NODE.JS > https://groups.google.com/group/lista-nodejs?hl=pt-br
--
AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
--
PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
--
DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
============================================================

---
Você recebeu essa mensagem porque está inscrito no grupo "LISTA PHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para listaphp+u...@googlegroups.com.

Caio Guilherme

unread,
Apr 16, 2020, 8:21:36 AM4/16/20
to LISTA PHP
Concordo com o Samuel com o BD é mais seguro e existem inúmeras coisas que podem ser feitas, para colocar uma segurança maior na sua aplicação.

Mas vai uma resolução para seu problema sem usar o FOREACH:

$usuarios_cadastrados = [                                                                                                             
        'usua...@teste.com' => '123456''usua...@teste.com' => '123456',
        'usua...@teste.com' => '123456''usua...@teste.com' => '123456',
        'usua...@teste.com' => '123456',
    ];
    
    $email = $_POST["email"];
    $senha = $_POST["senha"];

    $pass = in_array($emailarray_keys($usuarios_cadastrados)) ? $usuarios_cadastrados[$email] : false;
   
    if ($pass && $pass == $senha)  {
        echo "Logado";
    } elseif ($pass <> $login) {
        echo "Usuário ou senha incorretas";
        header("location: login.html");        

    }

O array_keys retorna um array com todas as chaves de um array, se o e-mail do POST for uma das chaves do seu array, você tem um 'usuário' com esse e-mail, sendo assim você recupera a senha e coloca na variável $pass, caso não alimenta a variável com FALSE para impedir o login. No caso de existir, comparamos a senha enviada no POST com a senha recuperada do array de 'usuários', sendo iguais loga, sendo diferentes não loga.
Reply all
Reply to author
Forward
0 new messages