Foros del Web » Programando para Internet » PHP »

Error insertar datos php + xajax

Estas en el tema de Error insertar datos php + xajax en el foro de PHP en Foros del Web. Hola gente, tengo una falla y no la encuentro. Mude un sitio aun servidor nuevo, y no me funcionan los script con xajax 1 - ...
  #1 (permalink)  
Antiguo 20/04/2013, 13:38
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 12
Error insertar datos php + xajax

Hola gente, tengo una falla y no la encuentro. Mude un sitio aun servidor nuevo, y no me funcionan los script con xajax



1 - Recibo los datos con xajax (hasta aca todo bien, hice pruebas y debug)

2 - Los meto en la consulta sql para insertarlos y ahi se produce el error, reemplaza los datos de la variable por "{" y me inserta todo con ese simbolo

Ejemplo: mysql_real_escape_string($form_entrada["mi dato"])



ya no se que mas mirar, alguien tiene alguna idea o ya le paso ?
  #2 (permalink)  
Antiguo 20/04/2013, 14:04
Avatar de jariza  
Fecha de Ingreso: agosto-2003
Ubicación: Málaga
Mensajes: 1.449
Antigüedad: 20 años, 8 meses
Puntos: 10
Respuesta: Error insertar datos php + xajax

¿Podrías poner un poco de código? Sobre todo la parte donde recibes de ajax e insertas en mysql. Algún dato de ejemplo también ayudaría.

Por cierto, ve dejando de usar las funciones mysql_ porque van a quedar obsoletas, empieza a usar mysqli_ o pdo.

Un saludo :)
  #3 (permalink)  
Antiguo 20/04/2013, 14:15
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 12
Respuesta: Error insertar datos php + xajax

Cita:
Iniciado por jariza Ver Mensaje
¿Podrías poner un poco de código? Sobre todo la parte donde recibes de ajax e insertas en mysql. Algún dato de ejemplo también ayudaría.

Por cierto, ve dejando de usar las funciones mysql_ porque van a quedar obsoletas, empieza a usar mysqli_ o pdo.

Un saludo :)
si ya estoy en eso, pasa que me estoy mudando de server jeje


el codigo:

Código PHP:
require_once ('../inc/xajax/xajax_core/xajax.inc.php');
$xajax = new xajax();
$xajax->register(XAJAX_FUNCTION'procesar_vista_previa');

function 
procesar_vista_previa($form_entrada){
include(
'../bbcode/bbcode-parser.php');
 
if (
$form_entrada["dato5"] != ''){

$salida '<div style="display:" id="vista">
<div id="visualizar">
<table align="center" border="0" cellspacing="0" cellpadding="0" id="contenedorvisualizar">
  <tr>
    <td align="center" valign="top">
<div class="visualizarheader">
<div align="left" style="background-image:url('
.URL.'contenido/new/config_white.png); background-repeat:no-repeat; background-position: center left;"><span style="padding-left:20px">Vista previa</span></div>
</div>

<div align="left" class="contenidovisualizar">'
.BBCode2Html(htmlentities(utf8_decode($form_entrada["dato5"]))).'</div>

<div align="right" id="ocultarvisualizar"><span class="botonout" onclick="vistaout(\'vista\');">Ocultar vista previa</span></div></td>
  </tr>
</table>
</div>
</div>'
;

}else{

$salida '<div class="mnocerrar" style="width:714px" onclick="this.className=\'ocultarmensaje\'">
<div class="mno">Para utilizar la vista previa debe completar el detalle</div>
</div>'
;

}





$respuesta = new xajaxResponse();
$respuesta->assign("mensaje","innerHTML",$salida);
return 
$respuesta;
}
$xajax->processRequest(); 

pongo este codigo (para afinar el error), que no inserto nada a la base de datos, solo hago una vista previa de los datos del form, pero me hace lo mismo, me reemplaza el dato enviado por el simbolo "{"


abz
  #4 (permalink)  
Antiguo 20/04/2013, 15:45
Avatar de jariza  
Fecha de Ingreso: agosto-2003
Ubicación: Málaga
Mensajes: 1.449
Antigüedad: 20 años, 8 meses
Puntos: 10
Respuesta: Error insertar datos php + xajax

Hola,

Creo que el problema es que $respuesta es un objeto propio de xajax, no puedes imprimirlo así como así. Los datos que quieres insertar en la base de datos deberían aparecer en la función registrada.

Un saludo :)
  #5 (permalink)  
Antiguo 20/04/2013, 16:06
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 12
Respuesta: Error insertar datos php + xajax

antes funcionaba asi como esta, pero estaba alojado en un hosting y ahora en un vps

me parece que no es ese error, por que estuve analizando el comportamiento con diferentes debugs, y funciona todo lo mas bien, recibe los parametros, status ok y toda la pelota.. todo barbaro

el problema esta cuando hago algo con el dato "$form_entrada['algo']"

mire las configuraciones y veo todo normal, codificacion tambien. json, etc etc
  #6 (permalink)  
Antiguo 19/06/2013, 18:22
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 12
Respuesta: Error insertar datos php + xajax

gente se me presento de vuelta este error: me cambie de un vps a un hosting normal.

al enviar los forms con xajax, enviaba los datos pero no los recibia, los reemplazaba con este simbolo "{"



Antes lo solucionamos con (en el VPS)

Cita:
- desactivar Magic Quotes a nivel global y el despliegue de errores en OFF.
- Tambien desactivar magic_quotes_runtime


solucion del proveedor (en el hosting compartido):

Cita:
Luego de pruebas realizadas, encontramos que magic_quotes podía ser des-habilitado mediante php.ini, pero su script dejaba de funcionar dado que se perdía la sesión de usuario al hacerlo. Esto nos indica que hay un conflicto entre su script y el uso de un archivo php.ini.

Debido a la limitación, nuestra única opción para resolver el problema fue agregar código php a su script, que en lugar de desactivar magic_quotes, eliminara sus efectos sobre el script. Para hacerlo, agregamos el siguiente código al archivo set.php que notamos es usado en la mayoría de formularios

Cita:
<?php
if (get_magic_quotes_gpc()) {
$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($key, $val) = each($process)) {
foreach ($val as $k => $v) {
unset($process[$key][$k]);
if (is_array($v)) {
$process[$key][stripslashes($k)] = $v;
$process[] = &$process[$key][stripslashes($k)];
} else {
$process[$key][stripslashes($k)] = stripslashes($v);
}
}
}
unset($process);
}
?>


ahora funciona, pero no entiendo el error, y lo que hace ese script que agregaron... alguien entiende ?

Última edición por softmaster; 19/06/2013 a las 18:24 Razón: + info
  #7 (permalink)  
Antiguo 20/06/2013, 05:16
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 12
Respuesta: Error insertar datos php + xajax

Nueva respuesta del soporte tecnico:

Pregunte si me podian orientar sobre el error...

Cita:
1. Nos parece que hay algún código en el script que "reacciona" a la creación de un php.ini, pues al solo crearlo dentro del folder (aún cuando esté vacío), el scriot pierde la capacidad de mantener abiertas las sesiones. No somos expertos en el código de su script, por lo que no podríamos detallarle cual es el conflicto.

2. Magic_quotes sustituye algunos caracteres por el "\" en los datos cuando está activo. Esto hace que algunos scripts fallen. Lo que hace el código que incluimos, es prevenir que los efectos de magic_quotes se apliquen, modificando las funciones de paso de datos como POST, GET, etc. Cabe destacar que hemos usado el código recomendado por el manual de PHP, exactamente ese código.
  #8 (permalink)  
Antiguo 20/06/2013, 12:22
 
Fecha de Ingreso: agosto-2008
Mensajes: 272
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Error insertar datos php + xajax

no uses Xajax es un dolor de webos, usa jquery con ajax o el metodo load, es mucho mas facil de lo que crees
  #9 (permalink)  
Antiguo 20/06/2013, 16:06
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 12
Respuesta: Error insertar datos php + xajax

si, pero me gustaria saber por que falla, la verdad no entiendo, funcionaba bien... alguna configuracion del servidor no se...

Etiquetas: sql, xajax
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 08:13.