Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

245
Visualizações
Error al usar php ajax para verificar datos de entrada con el sistema

Estoy aprendiendo a usar ajax para verificar si los datos de correo electrónico registrados ya existen en el sistema. Pero cuando se usa, el resultado devuelto por success:function(data) es siempre el código fuente de la página php original (como se muestra en la imagen a continuación). Aquí está mi código javascript

 $(document).ready(function(){ $("#email").change(function(){ $.ajax({ URL: "process-email.php", type: "post", data: {email:$(this).val()}, success:function(res) { console.log(res); } }) }) })

Este es el destino para el procesamiento de datos.

 <?php include "config/config.php"; $result = mysqli_query($conn,"SELECT * FROM tb_user WHERE email='" . $_POST['email'] . "'"); if(mysqli_num_rows($result) <= 0) { echo "OK."; }else{ echo "Already exist."; } ?>

Y aquí están los datos enviados a mi sitio principal.

ingrese la descripción de la imagen aquí

Hay alguna manera de arreglarlo? ¡Gracias a todos!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Todavía no me queda claro si la solicitud AJAX se envía a la misma página, pero independientemente de lo siguiente, podría ser de ayuda, ya que aborda un par de puntos, a saber, la posibilidad de inyección de sql, el vaciado de búferes para garantizar que solo se se envía una respuesta elaborada y también que no se envía ninguna solicitud a menos que haya un correo electrónico válido.

 <?php if( $_SERVER['REQUEST_METHOD']=='POST' && isset( $_POST['email'] ) ){ # flush any previous content ob_clean(); include "config/config.php"; /* Create a Prepared Statement Bind the placeholder to the POSTed email & execute. Obtain the number of rows returned & close statement. */ $sql='SELECT * FROM tb_user WHERE email=?'; $stmt=$conn->prepare( $sql ); $stmt->bind_param('s',$_POST['email']); $stmt->execute(); $stmt->store_result(); $rows=$stmt->num_rows; $stmt->free_result(); $stmt->close(); # terminate with response message exit( $rows == 0 ? 'OK.' : 'Already exists.' ); } ?>

Función de validación de correo electrónico

 const validateEmail=( email )=>{ return String( email ) .toLowerCase() .match( /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ ); }; $(document).ready(function(){ $("#email").change(function(){ let email=$(this).val(); if( validateEmail( email ) ){ /* No point sending the ajax request unless the email is valid. */ $.ajax({ URL: "process-email.php", type: "post", data:{ 'email':email }, success:function(res) { console.log(res); } }) } }) })
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda