Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/11/2014, 22:35
Avatar de berkeleyPunk
berkeleyPunk
 
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
Pregunta Inyectar contenido de BD dentro de HTML...

Hola!

La idea es la sig. Tengo una base de datos con 4 campos:
  1. id
  2. usuario
  3. contrasena
  4. formulario_upload (contiene unos 1,200 caracteres de puro HTML)
También tengo un formulario de login. Mediante AJAX checo que si usuario y contraseña sean correctos. Si son correctos entonces intento inyectar el contenido de formulario_upload dentro de un simple div en mi página.

Pero no me sale. He hecho pruebas y veo que si reduzco el HTML a unos 30 ó 40 caracteres, la cosa funciona bien.

Código PHP:
$usuario    $_POST["usuario"];
$contrasena $_POST["contrasena"];
$query      "SELECT * FROM usuarios";
$respuesta  = new stdClass();
$mysqli     = new mysqli("localhost""root""""mi_base_de_datos");


if( (!empty(
$_POST["usuario"])) && (!empty($_POST["contrasena"])) )
{
    if ( 
$resultado $mysqli->query($query) ) {

        while (
$fila $resultado->fetch_array(MYSQLI_ASSOC))
        {
            
$user  $fila["usuario"];
            
$pass  $fila["contrasena"];
            
$forma $fila["formulario_upload"];

              if ( (
$user == $usuario) && ($pass == $contrasena) )  {
                  
$respuesta->mensaje $forma;  // Si en vez de $forma ponemos $user o $pass, se inyecta bien el valor de éstos.
                  
break;
              }
              else {
                  
$respuesta->mensaje 'El usuario y contraseña introducidos son incorrectos.';
              }
        }
    }
}

echo 
json_encode($respuesta);
mysqli_close($mysqli); 

Nota: El campo formulario_upload es VARCHAR con cotejamiento utf8_general_ci, y con longitud de hasta 2,000 caracteres (le puse así por si acaso me quedaba corto).

¿Alguna idea de por qué no se inyecta el valor de dicho campo?

Saludos!


Última edición por berkeleyPunk; 02/11/2014 a las 22:44