Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/12/2010, 11:51
nusee
 
Fecha de Ingreso: diciembre-2008
Mensajes: 38
Antigüedad: 16 años
Puntos: 0
Respuesta: Sesión con jQuery, PHP y base de datos

Cita:
Iniciado por maycolalvarez Ver Mensaje
estas utilizando AJAX, por lo tanto es inútil redirecconar con las cabeceras:

header("Location: http://www.google.com.ar/");

lo que debes hacer es dumpear a la salida del script, algún valor que sea recibido por el XMLHttpRequest y así puedas compararlo con javascript, ejemplo:

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. if(!isset($_SESSION['username'])){
  5.     if(isset($_POST['username'])){
  6.         $db = new mysqli("localhost", "username", "password", "bd");
  7.         $stmt = $db->prepare("SELECT username FROM users WHERE username = ? AND password = ?");
  8.         $stmt->bind_param('ss', $_POST['username'], $_POST['password']);
  9.         $stmt->execute();
  10.         $stmt->store_result();
  11.        
  12.         if($stmt->num_rows() == 1){
  13.             $stmt->bind_result($username);
  14.             $stmt->fetch();
  15.             $_SESSION['username'] = $username;
  16.             echo "1"; //1 que si valida
  17.             exit; //salir
  18.             //header("Location: http://www.google.com.ar/"); //con AJAX es inútil
  19.         }
  20.     }
  21.     echo "0"; //no valido
  22. }

y en js:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     $("#username").focus();
  3.    
  4.     $("#submit").click(function(){
  5.         $.ajax({
  6.             url: "php/session.php",
  7.             cache: false,
  8.             type: "POST",
  9.             data: "username=" + $("#username").val() + "&password=" + $("#password").val(),
  10.             success: function(data){
  11.                 if (data == '1') {
  12.                      alert('success');
  13.                 }else{
  14.                      alert('NO valido');
  15.                 }
  16.             },
  17.             error: function(){
  18.                                 $("#form").effect("shake", {times:2}, 100);
  19.                 $("#errorMessage")
  20.                     .css('margin', '30px 0 10px 9px')
  21.                     .attr('class', 'ui-state-error')
  22.                     .html('<strong>ERROR - </strong>Los datos ingresados son incorrectos');
  23.             }
  24.         });
  25.     });
  26. });
Muchísimas gracias maycolalvarez! Ya funciona!

Y gracias por avisarme lo del header, ahora aprendí algo nuevo