Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2008, 11:46
eurodoblon
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 3 meses
Puntos: 0
Cambio de contraseña

Buenas tardes.
En el script de abajo, actualizo una tabla para el cambio de contraseña.

La primera vez que accedo para cambiar lo hace todo bien, incluso los controles de errores que he puesto.
Pero la segunda vez que entro, ya hace la actualización saltándose todos los controles de los errores. Por ejem. cambia la contraseña aunque tenga solo r dígitos.

Llevo varias horas intentando ver el fallo, pero no lo veo. Si alguien puede echarme una mano se lo agradezco.

$colname_usuario = "-1";
if (isset($_GET['id'])) {
$colname_usuario = $_GET['id'];
}
mysql_select_db($database_remota, $remota);
$query_usuario = sprintf("SELECT * FROM users WHERE id = %s", GetSQLValueString($colname_usuario, "int"));
$usuario = mysql_query($query_usuario, $remota) or die(mysql_error());
$row_usuario = mysql_fetch_assoc($usuario);
$totalRows_usuario = mysql_num_rows($usuario);

if (isset($_POST['envio'])){

if($_POST['passant'] != $row_usuario['pass'])
$error_ant="*Error: La contraseña antigua no es la suya, inténtelo de nuevo";

if ((isset($_POST["pass"])) && ($_POST["pass"] == "") || strlen($_POST["pass"])<6 || strlen($_POST["pass"])>10)
$passfalta="* Ponga una contraseña valida entre 6 y 10 caracteres";

if (!es_email($_POST["email"]))
$emailmal="* Ponga una dirección email válida";


else{
$editFormAction = $_SERVER['PHP_SELF'];

if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$updateSQL = sprintf("UPDATE users SET pass=%s, email=%s, `level`=%s WHERE id=%s",
GetSQLValueString($_POST['pass'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['level'], "int"),
GetSQLValueString($_POST['id'], "int"));

mysql_select_db($database_remota, $remota);
$Result1 = mysql_query($updateSQL, $remota) or die(mysql_error());

$updateGoTo = "#";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}
}
}