Foros del Web » Programando para Internet » PHP »

Problema con header location PHP, AJAX y JSON

Estas en el tema de Problema con header location PHP, AJAX y JSON en el foro de PHP en Foros del Web. Hola Buenas tardes. Miren tengo mi formulario de login y me va perfectamente, muestra los mensajes de error en caso de que así sea pero ...
  #1 (permalink)  
Antiguo 01/09/2015, 12:43
 
Fecha de Ingreso: junio-2014
Mensajes: 60
Antigüedad: 9 años, 11 meses
Puntos: 0
Problema con header location PHP, AJAX y JSON

Hola Buenas tardes.
Miren tengo mi formulario de login y me va perfectamente, muestra los mensajes de error en caso de que así sea pero cuando los valores son correctos no me re-direcciona la pagina que debe de ser, así tengo mi código:

login.html
Código HTML:
Ver original
  1. <div id='login'>
  2.     <form action='' method='post' id='FLoginS'>
  3.         <input type='email' name='mail' placeholder='Email' id='mail'>
  4.         <input type='password' name='password' placeholder='Contraseña' id='password'>
  5.         <button type='submit' class='button'>Entrar</button>
  6.     </form>
  7. </div>

login.js
Código Javascript:
Ver original
  1. $("#FLoginS").submit(function(event){
  2.         event.preventDefault();
  3.         $.ajax({
  4.             url:'Login.php',
  5.             type:'POST',
  6.             dataType:'json',
  7.             data:$("#FLoginS").serializeArray()
  8.         }).done(function(Result){
  9.             if($("#mail").hasClass("error")) {
  10.                 $("#mail").removeClass("error");
  11.                 setTimeout(function() {
  12.                     $("#mail").addClass("error");
  13.                 },1);
  14.             }else {
  15.                 $("#mail").addClass("error");
  16.             }
  17.             if($("#password").hasClass("error")) {
  18.                 $("#password").removeClass("error");
  19.                 setTimeout(function() {
  20.                     $("#password").addClass("error");
  21.                 },1);
  22.             }else {
  23.                 $("#password").addClass("error");
  24.             }
  25.         });
  26.     });

Login.php
Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     require 'Config.php';
  4.     $Result = new stdClass();
  5.    
  6.     if(isset($_POST['mail'], $_POST['password'])): 
  7.         $mail = $_POST['mail'];
  8.         $password = $_POST['password'];
  9.  
  10.         $Query_User = $Mysqli->query("SELECT Mail, Password FROM users WHERE Mail = '".$mail."'");
  11.         $lied = $Query_User->fetch_array();
  12.        
  13.         if($mail == NULL || $password == NULL):
  14.             $Result->Error = 'Has dejado algun campo en balnco.';
  15.         elseif($lied['Mail'] != $mail):
  16.             $Result->Error = 'Email incorrecto.';
  17.         elseif(!hash_equals($lied['Password'], crypt($password, $lied['Password']))):
  18.             $Result->Error = 'Contraseña incorrecta.';
  19.         else:
  20.             $_SESSION['mail'] = $lied['Mail'];
  21.             header('Location: '.$Path.'/principal');
  22.         endif;
  23.     endif;
  24. ?>
No se si sea error del PHP o del JS, ¿Pueden orientarme?
Gracias.
Pdta: No supe si debía colocar el post en esta sección o en otra, lamento eso.
  #2 (permalink)  
Antiguo 01/09/2015, 13:17
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: Problema con header location PHP, AJAX y JSON

Así como validas las casillas de texto dentro de tu petición AJAX porque no utilizas
una condición ahí en la que sí la condición se cumple utilizas la instrucción
window.location="pagina_respuesta.php";

No puedes redireccionar una página a través de php sí utilizas AJAX de por medio, al menos eso creo.

Última edición por oggy_15_3; 01/09/2015 a las 13:39
  #3 (permalink)  
Antiguo 01/09/2015, 13:42
 
Fecha de Ingreso: enero-2015
Ubicación: Cordoba, Andalucía
Mensajes: 111
Antigüedad: 9 años, 4 meses
Puntos: 15
Respuesta: Problema con header location PHP, AJAX y JSON

puedes sustituir hedader(location:'tu_pagina') por

echo <script>location.href="tu_pagina";</script>
  #4 (permalink)  
Antiguo 01/09/2015, 14:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con header location PHP, AJAX y JSON

Exacto, las redirecciones por medio de Ajax no funcionan igual.

Al final, al ser Javascript (ajax) tendrás que hacer la redirección usando Javascript.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: ajax, formulario, header, html, json, location, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:39.