Problema al comparar dos variables
Publicado por Fede (10 intervenciones) el 13/11/2018 00:42:36
Hola. Estoy teniendo un problema super básico y es la comparación de dos variables con el uso de IF.
Tengo un formulario para editar email y contraseña. Cada uno, tiene un checkbox para habilitar los input correspondientes (nuevo email, repetir email - nuevo password, repetir password). Resulta que al pasar el resutlado a PHP, puedo comprobar correctamente si el valor de los input de email coinciden y cuando da como resultado TRUE, ejecuta la consulta SQL.
Hasta ahí todo bien. El problema es que si el resultado es FALSE (es decir, los campos de email no coinciden) la consulta sql NO se ejecuta, pero tampoco redirecciona al header indicado:
De una forma u otra, siempre termina redireccionando a "&go=success" como si todo hubiera salido correctamente, aunque en la base de datos no se producen cambios.
Les dejo el código a ver si me pueden dar una mano:
PD: Se que no estoy verificando lo que ingresa y es vulnerable a posibles inyecciones SQL, pero se trata de un sistema interno que vamos a utilizar entre 3 o 4 personas. En breves, lo corregiré con PDO.
Gracias.
Tengo un formulario para editar email y contraseña. Cada uno, tiene un checkbox para habilitar los input correspondientes (nuevo email, repetir email - nuevo password, repetir password). Resulta que al pasar el resutlado a PHP, puedo comprobar correctamente si el valor de los input de email coinciden y cuando da como resultado TRUE, ejecuta la consulta SQL.
Hasta ahí todo bien. El problema es que si el resultado es FALSE (es decir, los campos de email no coinciden) la consulta sql NO se ejecuta, pero tampoco redirecciona al header indicado:
1
header('Location: cpanel.php?opc=editarPerfil&go=eFailed');
De una forma u otra, siempre termina redireccionando a "&go=success" como si todo hubiera salido correctamente, aunque en la base de datos no se producen cambios.
Les dejo el código a ver si me pueden dar una mano:
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
45
46
47
48
49
50
51
52
53
54
55
<?php
require('funciones.php');
session_start();
conectarBD();
if(isset($_SESSION['Usuario']) && time() < $_SESSION['Limite'] && $_SESSION['Permisos'] >= "1") {
$usuario = $_SESSION['Usuario'];
$email_check = $_POST['editar_email'];
$password_check = $_POST['editar_password'];
if($email_check == "on") {
$email_1 = $_POST['email_1'];
$email_2 = $_POST['email_2'];
if($email_1 == $email_2) {
$query_email = mysqli_query($conexion, 'UPDATE usuarios SET email = "'.$email_1.'" WHERE usuario = "'.$usuario.'"') or die ('Error: '.mysqli_error($conexion));
} else {
header('Location: cpanel.php?opc=editarPerfil&go=eFailed');
}
}
if($password_check == "on") {
$password_1 = $_POST['password_1'];
$password_2 = $_POST['password_2'];
if($password_1 == $password_2) {
$pswd_final = password_hash($password_1, PASSWORD_DEFAULT);
$query_password = mysqli_query($conexion, 'UPDATE usuarios SET password = "'.$pswd_final.'" WHERE usuario = "'.$usuario.'"') or die ('Error: '.mysqli_error());
} else {
header('Location: cpanel.php?opc=editarPerfil&go=pFailed');
}
}
header('Location: cpanel.php?opc=editarPerfil&go=success');
} else {
header('Location: index.php');
}
?>
PD: Se que no estoy verificando lo que ingresa y es vulnerable a posibles inyecciones SQL, pero se trata de un sistema interno que vamos a utilizar entre 3 o 4 personas. En breves, lo corregiré con PDO.
Gracias.
Valora esta pregunta


0