PHP - Problema al actualizar columnas en base de datos por medio de PHP

 
Vista:
sin imagen de perfil

Problema al actualizar columnas en base de datos por medio de PHP

Publicado por Gabriel (3 intervenciones) el 13/03/2018 00:26:09
Tengo un problema:
al intentar cambiar el rango a una persona con id; por ejemplo; 3, no se actualiza.

Este sería el formulario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Update Mod</title>
</head>
<body>
	<h1>ACTUALIZAR RANGO</h1>
	<form action="updatemod.php" method="post">
		Username:<br>
		<input type="text" name="user"><br>
		Contraseña:<br>
		<input required type="password" name="pw"><br>
		ID de rango:<br>
		<input type="text" name="roleid"><br>
		Account ID:<br>
		<input type="text" name="accountid"><br><br>
		<input type="submit" value="Actualizar rango"><br><br>
	</form>
</body>
</html>

Y este sería el archivo updatemod.php:

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
56
57
<?php
// roleid, accountid
// Datos
$servername = "localhost";
$username = "id4454810_dataserv";
$pw = "*******************";
$dbname = "id4454810_dataserv";
 
// Crear conexión
$conn = new mysqli($servername, $username, $pw, $dbname);
// Verificar conexión
if ($conn->connect_error) {
    die("No conectado... " . $conn->connect_error);
}else{
	echo "Conectado correctamente!<br>";
}
 
//Usuarios
include "users+pass.php";
 
//Comandos
//Error
if ($_POST[user] != $U1 || $_POST[user] != $U2 || $_POST[user] != $U3){
	echo "Error!<br>";
}else{
	if ($_POST[pw] != $P1 || $_POST[pw] != $P2 || $_POST[pw] != $P3){
	echo "Error!<br>";
	}
}
//Accion
if ($_POST[user] == $U1 || $_POST[user] == $U2 || $_POST[user] != $U3){
	if ($_POST[pw] == $P1 || $_POST[pw] == $P2 || $_POST[pw] != $P3){
		if ($_POST[roleid] == 2){
			echo "NO PUEDES SELECCIONAR ESTE RANGO!";
		}else{
			if ($_POST[accountid] == 71){
				echo "NO PUEDES CAMBIAR EL RANGO AL ADMIN.";
			}else{
				if ($_POST[roleid] >= 6){
					echo "Ese rango no existe!";
					if ($_POST[roleid] == 4){
						echo "No puedes darle este rango a nadie.";
					}
				}else{
					$sql = "UPDATE roleassign SET roleID='$_POST[roleid]' WHERE accountID='$_POST[accountid]'";
					if ($conn->query($sql) === TRUE){
						echo "Rango actualizado!";
					}else{
						echo "Error actualizando rango: " . $conn->error;
					}
					$conn->close();
				}
			}
		}
	}
}
?>

Y este el archivo users+pass.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//1
 
$U1 = "usuario1";
$P1 = "contraseña1";
 
//2
 
$U2 = "usuario2";
$P2 = "contraseña2";
 
//3 (yo)
 
$U3 = "usuario3"
$P3 = "contraseña3"
?>

Digamos que intento actualizar el rango de un usuario con id "3" y rango "1"
En el formulario escribo:

Username: usuario3
Contraseña: contraseña3
ID de rango: 3
Account ID: 3

Y al intentar enviar el formulario NO me dice "Rango actualizado!" Solo me dice "Conectado correctamente!"
¿Tengo algún problema en el código?

Añado:
La web esta hosteada en https://www.000webhost.com, lo digo por si se necesita saber.

Gracias por leer.
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

Problema al actualizar columnas en base de datos por medio de PHP

Publicado por xve (6935 intervenciones) el 13/03/2018 07:47:43
Hola Gabriel, no se si sera este el problema, pero cuando haces referencia a una key del $_POST, esta tiene que ir entre comillas... algo así:
$_POST["user"] en vez de $_POST[user]

Puedes modificar-lo en todos los $_POST para ver si es este el problema?


También puedes ver de habilitar los errores de PHP para que te indique que esta pasando!!
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

Problema al actualizar columnas en base de datos por medio de PHP

Publicado por Gabriel (3 intervenciones) el 13/03/2018 21:30:20
Pero en la línea 45 de updatemod.php

1
$sql = "UPDATE roleassign SET roleID='$_POST[roleid]' WHERE accountID='$_POST[accountid]'";

Y al abrir una variable con " Si hago esto:

1
$sql = "UPDATE roleassign SET roleID='$_POST["roleid"]' WHERE accountID='$_POST["accountid"]'";

Me da error, y al intentar enviar el formulario no carga la página.

Gracias por responder.
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema al actualizar columnas en base de datos por medio de PHP

Publicado por xve (6935 intervenciones) el 14/03/2018 07:26:54
Es que lo tienes mal puesto!!! tiene que ser así:

1
$sql = "UPDATE roleassign SET roleID='".$_POST["roleid"]."' WHERE accountID='".$_POST["accountid"]."'";
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

Problema al actualizar columnas en base de datos por medio de PHP

Publicado por Gabriel (3 intervenciones) el 04/05/2018 02:13:57
Gracias por responder nuevamente, ya lo solucioné, la verdad se solucionó sólo. Gracias por tomar tu tiempo en mi duda :)
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