PHP - Una variable funciona y otra no

 
Vista:
sin imagen de perfil

Una variable funciona y otra no

Publicado por Sergio (26 intervenciones) el 28/06/2017 18:27:38
Saludos, gracias de antemano. tengo este codigo y es que la variable de $_SESSION["email"] = $datos['email']; si se ve cuando carga el formulario de mi-cuenta.php pero estas dos no $_SESSION["nombre"] = $datos['nombre'];
$_SESSION["apellidos"] = $datos['apellidos']; no se por que, las he comprobado con echo y si devuelve los valores pero no los pone, ni idea.¿Alguna sugerencia?

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
/*INICIAR SESION */
session_start();
$_SESSION["id_cliente"] = "";
$_SESSION["nombre"] = "";
$_SESSION["apellidos"] = "";
$_SESSION["email"] = "";
 
$mysqli = new mysqli("p:localhost","root","","cf_db");
$mysqli->set_charset('utf8');
 
$email = $_POST['email'];
$pass = $_POST['pass'];
 
$query = "SELECT * FROM `Alta_Cliente` WHERE `email`='$email' LIMIT 1";
 
$resultado = $mysqli->query($query) or trigger_error($mysqli->error."[$query]");
$datos = $resultado->fetch_array(MYSQLI_ASSOC);
 
 
 
if($resultado == true) {
 
    if (password_verify($pass, $datos['pass'])){
 
$_SESSION["id_cliente"] = $datos['ID_Cliente'];
$_SESSION["nombre"] = $datos['nombre'];
$_SESSION["apellidos"] = $datos['apellidos'];
$_SESSION["email"] = $datos['email'];
 
echo 1;
 
}
else {
    echo 2;
 
}
    $resultado->free();
}
 
 
$mysqli->close();
 
?>

HTML hay una pagina principal que carga esta a través de un include, tambien tiene session_start(); al principio.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form id="frm1" style="margin: 0px 0px 0px 20px;">
 
            <h2 class="sm-colort-blanco">Datos Personales</h2>
 
            <p>
                <label class="contenedor-50" style="margin: 10px 0px 0px 20px;">Nombre</label>
                <input class="contenedor-90 sm-input" type="text" style="margin: 10px 0px 0px 20px;" id="nombre" name="nombre" value="<?php echo $_SESSION["nombre"] ;?>" required disabled></p>
            <p>
                <label class="contenedor-50" style="margin: 10px 0px 0px 20px;">Apellidos</label>
                <input class="contenedor-90 sm-input" type="text" style="margin: 10px 0px 0px 20px;" id="apellidos" name="apellidos" value="<?php echo $_SESSION["apellidos"]; ?>" required disabled></p>
            <p>
                <label class="contenedor-50" style="margin: 10px 0px 0px 20px;">Email</label>
                <input class="contenedor-90 sm-input" type="email" style="margin: 10px 0px 0px 20px;" id="email" name="email" value="<?php echo $_SESSION["email"]; ?>" required disabled></p>
 
            <p>
                <a class="sm-btn sm-colorb-rosa sm-colort-blanco" id="actucliente" style="margin: 20px 0px 20px 20px; text-decoration: none;">Actualizar</a>
            </p>
 
    </form>
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
sin imagen de perfil

Una variable funciona y otra no

Publicado por Sergio (26 intervenciones) el 28/06/2017 20:01:21
Solucionado el problema estaba en otra pagina, gracias de todas formas
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

Una variable funciona y otra no

Publicado por Jorge (2 intervenciones) el 28/06/2017 20:41:10
Leí que ya resolviste. Sin embargo entiendo que te estás introduciendo en esto y tal vez valga más un consejo temprano que un problema futuro =)

Intentá siempre que sea posible no poner los valores de las variables directamente en el SQL, porque estás incurriendo en SQL Inyection (vulnerabilidad en la cual manipulando el valor de las variables se puede alterar la query para hacer otras cosas como un drop table xxxx; o cosas peores). Lo que siempre tenés que hacer es reemplazar:

1
2
3
4
5
$query = "SELECT * FROM `Alta_Cliente` WHERE `email`='$email' LIMIT 1";
 
$resultado = $mysqli->query($query)
 
$datos = $resultado->fetch_array(MYSQLI_ASSOC);

por su versión utilizando algún método de "bind", y "prepared statements", los cuales suelen estar con distinto nombre en todos los motores:

1
2
3
4
5
6
$stmt = $mysqli->prepare("SELECT * FROM `Alta_Cliente` WHERE `email`='? LIMIT 1");
/* Bind parameters. Types: s = string, i = integer, d = double,  b = blob */
$stmt->bind_param('s', $email);
mysqli_stmt_execute($stmt);
$res = $stmt->get_result();
$datos = $res->fetch_array(MYSQLI_ASSOC);

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Una variable funciona y otra no

Publicado por Sergio (26 intervenciones) el 29/06/2017 10:04:33
OK, si que es verdad que estoy empezando en esto y te agradezco muchísimo tu comentario. voy investigar y ponerme manos a ello.

GRACIAS.
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