Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

imastersforum

Outra forma para o IF ou uma que funciona

Recommended Posts

Boa tarde,

Ainda não entendi por qual motivo ao executar a aplicação não cai no if que tem o comentario "NÃO ESTA CAINDO NO IF"´, também ao tentar fazer o debug e imprimir a variavel $cookie não tenho retorno, ou seja não está armazenando alguém sabe me informar como posso resolver?

   <?php 
            
            if(isset($_POST['sendLogin'])){
                $f['email'] = mysql_real_escape_string($_POST['email']);
                $f['senha'] = mysql_real_escape_string($_POST['senha']);
                $f['salva'] = mysql_real_escape_string($_POST['remember']);
                
                if(!$f['email'] || !valMail($f['email'])){
                    echo '<span class="ms al">Campo de e-mail está vazio, ou não tem um formato válido!</span>';
                }
                elseif (strlen($f['senha']) < 8 || strlen($f['senha']) > 12) {
                    echo '<span class="ms al">A senha deve ter entre 8 e 12 caracteres!</span>';
                    
                }
                else {
                    $autEmail = $f['email'];
                    $autSenha = md5($f['senha']);
                    
                    $readAutUser = read('up_users', "WHERE email = '$autEmail'");
                    
                    if($readAutUser){
                        foreach($readAutUser as $autUser);
 
//NÃO ESTA CAINDO NO IF
                                               
                        if($autEmail == $autUser['email'] && $autSenha == $autUser['senha']){
                            if($f['salva']){
                                $cookiesalva = base64_encode($autEmail).'&'.base64_encode($f['senha']);
                                setcookie('autUser', $cookiesalva,time()+60*60*24*30,'/');
                            }
                            else{
                                setcookie('autUser', '',time()+3600,'/');
                            }
                            
                        }
                        else {
                            echo '<span class="ms no">Erro, senha informada não confere!</span>';
                        }
                    }
                    else {
                        echo '<span class="ms no">Erro, e-mail informado não é válido!</span>'; 
                    }
                    
                }
 
//                echo '<pre class="debug">';
//                print_r($f);
//                echo $_COOKIE['autUser'];
//                //echo md5('12121212');
//                echo '</pre>'; 66
                
            }  elseif(!empty($_COOKIE['autUser'])) {
                $cookie = $_COOKIE['autUser'];
                $cookie = explode('&', $cookie);
                $f['email'] = base64_decode($cookie[0]);
                $f['senha'] = base64_decode($cookie[1]);
                $f['salva'] = 1;
            }
//          echo '<pre class="debug">';
//          print_r($cookie);
//            echo '</pre>';
        
        ?>  

Compartilhar este post


Link para o post
Compartilhar em outros sites

talvez seja problema com esse Foreach antes,ou o if que vem acima dele, pois ja que ele não é executado entao a condição não é saisfeita,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Podes, me explicar como posso resolver?

E o meu if acima do foreach está executando, pois ao imprimir a variavel $readAutUser ela está carregada com os dados do banco.

Agora que o problema pode ser no foreach ou no if abaixo eu até acredito, mas não sei o que pode ser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo creio que seu problema deve estar no Foreach, tipo esse é um comando para se usar com Arrays.

ele tem 2 sintaxes

1

foreach($nome_array as $elemento){
     bloco de codigo
}

ou pode ser

foreach($nome_array as $chave => valor){
     bloco de codigo
}

essas são as forma de usar o foreach, sendo que pode ser assim tbm:

foreach($array as $chave => $valor):
		bloco de codigo
endforeach;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

Testei das duas formas já nenhuma funcionou.

Ai inverti a lógica no seguinte if:

if($autEmail == $autUser['email'] && $autSenha == $autUser['senha']){

Deixei ele da seguinte forma para testar:

if($autEmail !== $autUser['email'] && $autSenha !== $autUser['senha']){

Com isso ele entrou no if, mas sempre entra nesse if dai por mais que eu coloque a senha errada.

também tentei com a sintaxe dos === o que não resolveu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo creio que não exista esse operador "!==", ai seria "!=" os 2 iguais significa idêntico, ou seja se a !º condição é igual a segunda, e o != se a primeira e diferente da segunda, so que pedi pra você da uma olhada do foreach e nao if, porque a sintaxe dele estava errada

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.