PHP - Crear variable de sesión en AJAX

 
Vista:

Crear variable de sesión en AJAX

Publicado por Vicente Ponce (3 intervenciones) el 18/07/2017 10:30:15
Hola buenas!

tengo una página html que hace una llamada AJAX cuando pulsas el botón de login.

En esa llamada a login.php, se comprueba si el usuario/password son correctos, y se devuelve un json con datos como el nombre, apellido,...

Lo que no consigo hacer es crear una variable de sesión en ese AJAX. ¿Cuál sería la manera de hacerlo? He probado a que el archivo sea php en vez de html por si acaso ese era el problema... pero debe ser que al ser una llamada a un archivo que retorna json, no se crea la variable de sesión...

Gracias por vuestra ayuda!

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Crear variable de sesión en AJAX

Publicado por xve (6935 intervenciones) el 18/07/2017 11:25:56
Hola Vicente, que archivo devuelve el json? en principio tendrías que crear la variable de sesión en el archivo que valida el usuario en la base de datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear variable de sesión en AJAX

Publicado por Vicente Ponce (3 intervenciones) el 18/07/2017 11:36:20
Buenas xve!

en el html, llamo por ajax a login.php, el cual comprueba en la BD el usuario, y devuelve un json:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
 
session_start();
require_once('../connections/cnn_accude.php');
if(isset($_POST['login'])){
	$usuario=mysql_real_escape_string(htmlspecialchars(trim($_POST['usuario'])));
	$password=md5(mysql_real_escape_string(htmlspecialchars(trim($_POST['password']))));
	$jsondata = array();
	mysql_select_db($database_accude, $accude);
	$query_rsLogin = "select * from usuarios where login='$usuario' and contrasena='$password'";
	$rsLogin = mysql_query($query_rsLogin, $accude) or die(mysql_error());
	$totalRows_rsLogin = mysql_num_rows($rsLogin);
	if($totalRows_rsLogin!=0){
		$resultado = mysql_fetch_array($rsLogin);
		$jsondata["success"] = true;
		$jsondata["user"] = $resultado["nombre"].' '.$resultado["apellido1"].' '.$resultado["apellido2"];
		$jsondata["id_usuario"] = $resultado["id_usuarios"];
		$jsondata["mail"] = $resultado["mail"];
		//echo "success";
	} else {
		$jsondata["success"] = false;
		//echo "failed";
	}
	header('Content-type: application/json; charset=utf-8');
	header("access-control-allow-origin: *");
  	echo json_encode($jsondata, JSON_FORCE_OBJECT);
}
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Marco Antonio
Val: 12
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Crear variable de sesión en AJAX

Publicado por Marco Antonio (3 intervenciones) el 18/07/2017 19:16:01
Que tal

Es facil

1.- declara la funcion session al inicio del archivo, con esta linea php sabe que haras el uso de sessiones

session_start();


2.- En la parte de //echo "success";
Aqui mismo crea la session
$_SESSION['user'] = array('user_id'=>1,'username'=>'Juan');
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear variable de sesión en AJAX

Publicado por Vicente (3 intervenciones) el 19/07/2017 01:58:42
Así ya lo intenté... no es la solución
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Marco Antonio
Val: 12
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Crear variable de sesión en AJAX

Publicado por Marco Antonio (3 intervenciones) el 19/07/2017 02:08:13
En php es la única manera de hacerlo, o al menos que quieras implementar alguna otra herramienta de cache memcache ó oauth pero es mas complicado.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar