Foros del Web » Programando para Internet » PHP »

Como evitar cadenas HTML al enviar un objeto json_encode

Estas en el tema de Como evitar cadenas HTML al enviar un objeto json_encode en el foro de PHP en Foros del Web. Saludos amigos, es mi primera vez por aquí. Tengo un formulario que envía los valores del mismo a través de ajax a un archivo llamado ...
  #1 (permalink)  
Antiguo 26/12/2013, 14:12
 
Fecha de Ingreso: diciembre-2013
Ubicación: San Juan
Mensajes: 5
Antigüedad: 10 años, 3 meses
Puntos: 0
Pregunta Como evitar cadenas HTML al enviar un objeto json_encode

Saludos amigos, es mi primera vez por aquí. Tengo un formulario que envía los valores del mismo a través de ajax a un archivo llamado common.php que es el que se encarga de hacer el insert de los datos en la tabla. Luego que hace el insert, necesito enviar un objeto devuelta con la función json_encode() para entonces recibir ese objeto como callback en el archivo JS. El problema es que cuando envío el objeto json, también me envía el encabezado HTML y solo necesito enviar el objeto, no cadenas HTML. He intentado de mil formas y no tengo exito. Gracias de antemano!
  #2 (permalink)  
Antiguo 26/12/2013, 17:34
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Como evitar cadenas HTML al enviar un objeto json_encode

Podrías al menos indicar las mil formas que has intentado para no darte un consejo repetido... como por ejemplo usar strip_tags()
  #3 (permalink)  
Antiguo 27/12/2013, 08:01
 
Fecha de Ingreso: diciembre-2013
Ubicación: San Juan
Mensajes: 5
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Como evitar cadenas HTML al enviar un objeto json_encode

Gracias por tu pronta respuesta, tienes razón debo decir las cosas que he intentado:

Ya habia intentado con la función ya dicha strip_tags(), intenté cambiando el Content del header a tipo text/plain, a tipo json, intenté con la función header("Content-type: text/plain"), Intenté poniendo las etiquetas <head> en otro archivo aparte utilizando luego include(), entre las que recuerdo, y con ninguna tuve exito. Si de lo antes mencionado hay algo que estoy haciendo mal se lo agradeceré. Lo que me está raro es que ya tengo un proyecto basicamente igual y me funciona a la perfección. Gracias de antemano.
  #4 (permalink)  
Antiguo 27/12/2013, 19:10
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Como evitar cadenas HTML al enviar un objeto json_encode

Publica tu código, para hacerse mejor la idea, aunque si dices que ya tienes algo funcionando bien, aunque no das más detalles me inclino a que si tienes el script en un servidor gratuito, éste esté agregando datos a la salida, como publicidad o cosas así.
  #5 (permalink)  
Antiguo 30/12/2013, 16:05
 
Fecha de Ingreso: diciembre-2013
Ubicación: San Juan
Mensajes: 5
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Como evitar cadenas HTML al enviar un objeto json_encode

Tienes razón, debo explicar mejor. Trabajo local. El objetivo de mi codigo es subir un archivo de diferentes tipos de formatos de videos. Se abre una ventana bootstrap para el formulario de subida de archivo. Una vez llenado y enviado, envia los parametros juntos con el archivo a traves de jquery al archivo common.php que se encarga de hacer la subida de archivo y el INSERT. Luego debe enviar el "json object" para poder saber si el archivo fue subido correctamente. Si el archivo fue subido correctamente se supone que cierre la ventana modal bootstrap.





El archivo common.php lo unico que tiene en el header es:

echo '<script src="controller.php"></script>';






Cuando verifico el json que envía, envía esto:


<script src="controller.php"></script>{verify: 1}






Código JS controller.js:

//Insert
$("#frmAddChapter").submit(function(event){
event.preventDefault();

var title = $("#chtitle").val();

var page = 'common.php?call=addChapter&title=' + title;
var formData = new FormData($("#frmAddChapter")[0]);

if (title == ""){

$("#chtitle").css("background", "#fcd41b");

}else{

$.ajax({
url: page,
type: 'POST',
// Form data
//datos del formulario
data: formData,
//necesario para subir archivos via ajax
cache: false,
contentType: false,
processData: false,
success: function(data){

response = jQuery.parseJSON(data);
if(parseInt(response.verify) == 0){
alert("No Fue Subido");
}else{
alert("Correcto");
$('#myModal').modal('hide');

$('#myModal').on('hidden.bs.modal', function () {
stepbystep(2);
});
}

}
});
}
});










Código PHP common.php:


/************************File Upload*************************/
$user = $_SESSION["username"];
$path = '../usersfiles/' . $user;

if (!file_exists($path)) {

mkdir($path);
}
//Detalles del archivo
$file = $_FILES['file']['name']; //Nombre oroginal
$filetype = $_FILES["file"]["type"]; // Tipo
$filesize = $_FILES["file"]["size"]; //Tamaño
$file_no_space = str_replace(' ', '', $file); //Nombre sin espacios en blanco
$ext = substr(strrchr($file_no_space,'.'),1); //Extension
$length = rand(5, 30);
$randomString = substr(str_shuffle("0123456789abcdefghijklmnopqrst uvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
$finalname = time() . $randomString . "." . $ext;

$accept = array(
"mp4",
"webm",
"ogg",
"flv",
"mpg",
"mov",
"mpeg",
"wmv",
"avi",
"jpg"
);
$type = array(
"video/mp4",
"video/webm",
"videl/ogg",
"video/flv",
"video/mpg",
"video/mov",
"video/mpeg",
"video/wmv",
"video/avi",
"image/jpg"
);

$mega = array(
"m50" => 52428800, //50M
"m100" => 104857600, //100M
"m200" => 209715200 //200M
);

if (in_array($ext, $accept)) {

//if (in_array($filetype, $type)) {

if($filesize < $mega["m200"]){

move_uploaded_file($_FILES['file']['tmp_name'], $path. "/". $finalname);
}

//}

}


if(file_exists($path. "/". $finalname)){
echo json_encode(array("verify" => 1));
}else{
echo json_encode(array("verify" => 0));
}


/************************End File Upload*************************/
  #6 (permalink)  
Antiguo 30/12/2013, 16:09
 
Fecha de Ingreso: diciembre-2013
Ubicación: San Juan
Mensajes: 5
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Como evitar cadenas HTML al enviar un objeto json_encode

Me falto colocar el INSERT pero lo podemos obviar, se encuentra despues que termina la función completa de subida de archivo.
  #7 (permalink)  
Antiguo 30/12/2013, 18:14
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Como evitar cadenas HTML al enviar un objeto json_encode

tal vez necesites indicar explícitamente el tipo de salida con

header('Content-type: application/json');

al inicio de tu archivo php
  #8 (permalink)  
Antiguo 01/01/2014, 13:45
 
Fecha de Ingreso: diciembre-2013
Ubicación: San Juan
Mensajes: 5
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Como evitar cadenas HTML al enviar un objeto json_encode

Feliz año nuevo, lo intente con header('Content-type: application/json'); al inicio del archivo y no me envía los parametros al archivo common.php.

Etiquetas: ajax, jquery, json, objeto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:57.