1

Tengo un archivo php que recoge datos y los manda mediante ajax a otro php que valida que los datos ingresados sean iguales a los guardados en $_SESSION
Si son iguales hace un UPDATE en mi base de datos. Quiero ver si hay un modo de regresar al ajax informacion de si los datos son validos y de si se hizo el UPDATE en la base de datos la funcion de js del php es esta:

<code>
function Check()
            {
                var newname = document.getElementById('newUserName').value;
                var newpass = document.getElementById('newPass').value;
                var ActualData = {
                    Nusuario: newname,
                    Npassword: newpass
                    };
                $.ajax({
                        type: 'POST',
                        url: 'check_data.php',
                        data:ActualData,
                        success: function(data)
                        {
                            //Manejar la respuesta del otro php
                        }
                    });
            }

y el php a donde mando los datos es este:

<?php
@session_start();
    include("BD/conexion.php");
    $Nus = $_POST['Nusuario'];
    $Npass = $_POST['Npassword'];
    $act_us = $_SESSION['usuario'];
    $act_pass = $SESSION['pass'];
    if ($us == $act_us && $ps == $act_pass)
    {
        mysqli_query($mysqli, "UPDATE usuarios SET username='$Nus', pass='$Npass' WHERE usuarios.username='$us'");
    }
    else
    {

    }
?>
</code>
Bender Paisa
  • 12,491
  • 4
  • 23
  • 41
Cead135
  • 13
  • 2
  • 1
    Advertencia para tanto el código en la pregunta como para la respuesta aceptada: [¿Qué es la inyección SQL y cómo puedo evitarla?](https://es.stackoverflow.com/questions/10518/qu%C3%A9-es-la-inyecci%C3%B3n-sql-y-c%C3%B3mo-puedo-evitarla) – sstan Nov 20 '17 at 16:12

1 Answers1

3

Devolver mensajes al Front-End después de ejecutar las peticiones del Back-End es simple, solo basta con colocar echo en los mensajes que desees devolver.

En tu PHP puedes hacer lo siguiente:

<?php
@session_start();
  include("BD/conexion.php");
  $Nus = $_POST['Nusuario'];
  $Npass = $_POST['Npassword'];
  $act_us = $_SESSION['usuario'];
  $act_pass = $SESSION['pass'];
  if ($us == $act_us && $ps == $act_pass)
  {
    $resultado = mysqli_query($mysqli, "UPDATE usuarios SET username='$Nus', pass='$Npass' WHERE usuarios.username='$us'");

    if($resultado){
      echo "Los datos fueron actualizados correctamente";
    }else{
      echo "Ocurrió un error al actualizar los datos";
    }
  }
  else
  {
    echo "Las credenciales no coinciden";
  }
?>

Y en el JS lo recibes de la siguiente forma:

function Check()
{
  var newname = document.getElementById('newUserName').value;
  var newpass = document.getElementById('newPass').value;
  var ActualData = {
    Nusuario: newname,
    Npassword: newpass
  };
  $.ajax({
      type: 'POST',
      url: 'check_data.php',
      data:ActualData,
      success: function(data)
      {
        alert(data);
      }
  });
}
Bender Paisa
  • 12,491
  • 4
  • 23
  • 41