Jump to content
FernandoG

Solicitação de Login PHP em aquivo Javascript

Recommended Posts

Pessoal, não sabia se postava no fórum PHP ou javascript pois na minha duvida estou manipulando ambos arquivos como a resposta vem de arquivos PHP talvez alguém aqui possa me ajudar.

A questão é que eu tenho uma condição em um arquivo javascript que recebe uma resposta de um arquivo PHP porem a condição do arquivo javacript nunca é atendida mesmo quando não existe retorno.

 

Função Java script:
Preciso que caso não exista o (res) ele execute a linha location.href="admin/"
function fctLogin(){
$.post("require/jp/jpLogin.php",
{
email:$('#eLogin').val(),
senha:$('#sLogin').val()
},function(res)
{ 
if (res){
alert(res);
var span = document.getElementById("myspan");
span.textContent = (res);}
else{
location.href="admin/";
}
}); 
}

Função PHP(jpLogin.php):

<?php
require_once"../class/ConDB.class.php";
$lgn=new Login;
echo $lgn->setLogin($_POST['email'],$_POST['senha']);

Classe PHP Login:

 

<?php
class Login
{
private $vem,$vsh,$cpt,$crud,$email,$senha,$log,$dds;


public function setLogin($email,$senha)
{
$this->vem=new ValidaEmail;
$this->vsh=new ValidaSenha;
$this->cpt=new Cripto;
$this->crud=new CRUD;


$this->email=$this->vem->setValidaEmail($email);
$this->senha=$this->vsh->setValidasenha($senha);


$this->log=$this->senha==$senha?
$this->crud->select('idUsuario','usuario','WHERE email=? && senha=?',
array($this->email, $this->cpt->setCripto($this->senha))):
FALSE;




if ($this->email<>$email)
{
return $this->email;
}else
if($this->senha<>$senha){
return $this->senha;
}else
{
if($this->log && $this->log->rowCount()>0)
{
foreach($this->log as $this->dds)
{$_SESSION['logado']=$this->dds;}
}else{
return 'Acesso negado.';}
}
}
}

A questão é que o sistema cai no laço a baixo da classe login e não deve me retornar nada sendo assim o (res) do arquivo javascript não existiria e o else deveria ser acionado, mais não estou tendo sucesso nessa questão.

if($this->log && $this->log->rowCount()>0)
{
foreach($this->log as $this->dds)
{$_SESSION['logado']=$this->dds;}
}

 

Share this post


Link to post
Share on other sites

Infelizmente não deu certo, mais muito obrigado pela resposta.

 

function fctLogin(){
$.post("require/jp/jpLogin.php",
{
email:$('#eLogin').val(),
senha:$('#sLogin').val()
},function(res)
{ 
if (res.length > 0){
alert(res);
var span = document.getElementById("myspan");
span.textContent = (res);}
else{
location.href="admin/";
}
}); 
}

Share this post


Link to post
Share on other sites

Se você der um alert no res.lenth, qual o valor exibido?

Share this post


Link to post
Share on other sites

No caso em questão, você deve retornar qualquer coisa, pois o javascript espera um retorno.

Share this post


Link to post
Share on other sites

Tentei retornar 0 ou 1, mais ele nunca passa das condições;

if($this->log && $this->log->rowCount()>0)
{
foreach($this->log as $this->dds)
{$_SESSION['logado']=$this->dds;
return 0;
}
if (res !== 0){

Share this post


Link to post
Share on other sites

O engraçado é que mesmo quando o sistema retorna uma erro, tipo "Email invalido" o res.lenth vem undefined mais o erro aparece no span.

Share this post


Link to post
Share on other sites

res.lenth não existe. É 'length'

 

Tente usar um retorno mais conciso, como JSON. Pode ser configurado, dessa forma, tudo que vier diferente de um JSON acusará erro.

Share this post


Link to post
Share on other sites

Na verdade o res.lenth está retornando 5, não sei de onde ele está tirando esses 5 caracteres. Inclusive nas mensagens de erro do tipo acesso negado ele acrescenta 5 caracteres. Mais eu resolvi com o teste de 5 if res.lenth > 5, sei que ficou feio mais é um sistema de simples cadastro para intranet. Em outro momento eu mudo o script de login. Obrigado a todos pela ajuda.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By _FelipeOlvr
      Talvez seja simples, ou não. Não sei.
      Mas gostaria de um esclarecimento/luz de gente que já tem bagagem na área. Ficarei muito agradecido pela informação.
       
      Dei umas pesquisadas por ai, e fiz testes com as duas maneiras que achei ( até agora ):
       
      file_get_contents ( 'http://......' ) ;
      curl () ;
       
      Pergunta: 
       
      Existem outras maneiras de consumir API via PHP ? Quais ?
      Essas duas aí estão corretas?
    • By santans
      <?php if(isset($_post['name']) && !empty($_post['name'])){ $nome = addslashes($_post['name']); $email = addslashes($_post['email']); $mensagem = addslashes($_post['mesage']); $to = "gabriel@symmetrycorp.com.br"; $subjet = "Formulario - Contato SITE"; $body = "Nome: ".$nome. "\r\n". "E-mail: ".$email. "\r\n". "Mensagem: ".$mesage. "\n"; $header = "From: gabriel@symmetrycorp.com.br "."\r\n"."Replay-to:".$email."\r\n"."X=Mailer:php/".phpversion(); if(mail($to, $subject, $body, $header)){ echo("E-mail enviado com sucesso"); }else{ echo("O e-mail não pode ser enviado"); } } ?> Gostaria de ajudar para conferir esse código para envio de email, quero ter certeza que não há nenhum erro de escrita do código...
    • By michael450
      Senhores, boa tarde.
       
      Estou com um probleminha... rss', preciso fazer a listagem de uma função da biblioteca "SPED-NFe"   na qual consulto quais as NFe que emitiram contra meu CNPJ, porém o ele executa toda a função e depois me trás o resultado, eu gostaria de trazer o resultado instantaneamente, como se fosse uma atualização segundo a segundo.
       
       
      Essas informações não são salvas em DB, é apenas para consulta.
      Se alguém puder ajudar serei muito grato,
       
      Abraço.
       
      Michael Douglas
    • By Lincoln Ferreira
      Eu estou tentando fazer um Jquery steps wizard mas não consigo colocar pra ele parar caso não tenha sido preenchido o formulario no segundo passo.
      http://www.jquery-steps.com/Examples
       
      if (newIndex === 2 && $("#Rua").val() == "") { return false; } $(document).ready(function() { $("#wizard").steps({ headerTag: "h2", bodyTag: "section", transitionEffect: "slideLeft", stepsOrientation: "vertical", labels: { current: "current step:", pagination: "Pagination", finish: "Finalizar", next: "Confirmar", previous: "Voltar", loading: "Carregando ..." }, onStepChanging: function(event, currentIndex, newIndex, cepError) { if (currentIndex > newIndex) { return true; } if (newIndex === 1) { return true; } if (newIndex === 2 && $("#Rua").val() == "") { return false; } } } ) }); <div id="wizard"> <h2>Verificação pedido</h2> <section> <h2><strong>Pedido:</strong></h2> <div class="lista-carrinho"></div> </section> <h2>Local de entrega</h2> <section> <div class="informações-usuario"> <form method="get" action="." id="#form-cep"> <div class="form-row"> <div class="form-group col-md-6"> <label for="cep">Cep:</label> <input name="cep" type="text" class="form-control" id="cep" placeholder="09572-660" value="" size="10" maxlength="9" required> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="rua">Rua:</label> <input name="rua" class="form-control" type="text" id="rua" placeholder="Sete de Dezembro" size="60" maxlength="" /> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="bairro">Bairro:</label> <input name="bairro" class="form-control" type="text" placeholder="Nova Gerty" id="bairro" size="40" maxlength="40" /> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="n">N°:</label> <input name="n" class="form-control" type="text" placeholder="2" id="n" size="6" maxlength="10" /> </div> </div> <div class="form-group col-md-6"> <label for="complemento">Complemento:</label> <input name="complemento" type="text" class="form-control" id="complemento" placeholder="Ao lado do extra" value="" size="10" maxlength="9" requerid> </div> <div class="form-row"> <div class="form-group col-md-11"> <label for="cidade">Cidade:</label> <input name="cidade" class="form-control" type="text" placeholder="São Bernardo do Carpo" id="cidade" size="40" maxlength="40" /> </div> </div> </div> </form> </div> </section> <h2>Forma de pagamento</h2> <section> <div class="row d-flex justify-content-center col-sm col-md col-lg m-5 "> <h2>Informe sua forma de pagamento :</h2> </div> <div class="row d-flex justify-content-center col-sm col-md col-lg m-5 "> <div class="col-2"> <li class="list-inline-item"> <div class="pure-radiobutton"> <input id="Dinheiro" name="dinheiro" type="radio" class="radio"> <label for="Dinheiro">Dinheiro</label> </div> </li> </div> <div class="row"> </div> <div class="col-2"> <li class="list-inline-item"> <div class="pure-radiobutton"> <input id="Cartao" name="cartao" type="radio" class="radio"> <label for="Cartao">Cartão</label> </div> </li> </div> </div> </section> </div>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.