![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola,
A ver si podemos ayudar en algo. Digo yo que, ¿el error que te aparece lo imprime PHP, o, según entiendo, es el navegador (acaso la extensión FireBug) la que te muestra el mensaje de error? Porque la variable "TREE_NODES" es una variable de JavaScript, ¿no?Por otro lado, en el código no veo que hagas uso de ninguna expresión regular... y, si seguimos los mensajes de error y miramos en la línea 22 y 39 del código que muestras, pareciera que ahí no hay ningún error, o que las líneas no coinciden, vaya... La cosa es que te funciona en un sitio y en otro no... ¿se trata de la misma versión de PHP? ¿Qué extensión tiene el Script problemático? A ver si va a ser un archivo ".js" y, en el sistema en que obtienes el error, este tipo de archivos no es procesado como PHP, como por otro lado es lo normal... No sé... a ver si damos con la tecla entre todos. ![]() |
|
#2
|
||||
|
||||
|
Primero que nada gracias por responder compañero Dec.
Cita:
Cita:
Cita:
![]() ese archivo php lo gatillo de la siguiente forma. Código PHP:
../../jscripts/structure_tree.php y que es el archivo encargado de generar el arbolito dinámico mediante Javascript y PHP en un archivo con extensión PHP. Dec, espero haber aclarado tus dudas y que tengas mas información para ver el problema que tengo, gracias nuevamente. Hasta Luego .-
__________________
No todo es como parece ser... |
|
#3
|
||||
|
||||
|
Hola,
Bueno. La expresión regular debe ponerla por su parte el Script que usas para crear el "treeview". Se me ocurren varias cosas, pero, te preguntaría si las pruebas las haces con la misma base de datos, con los mismos datos. Haces una cosa que acaso sea problemática y que tiene que ver con esto último. "Imprimes" los datos que traes de la base de datos "tal cual", cuando, a lo mejor es preciso "escaparlos", para evitar problemas. Más aún si estos datos van a ir dentro de "comillas", por ejemplo. Personalmente uso esta función cuando tengo que imprimir un dato procedente de la base de datos en HTML, para evitar problemas: Código PHP:
![]() |
|
#4
|
||||
|
||||
|
Cita:
¿Podrías darme un ejemplo? Gracias. Hasta Luego .-
__________________
No todo es como parece ser... |
|
#5
|
||||
|
||||
|
Hola,
Hombre, a cada "echo"... pero sí tienes que hacerlo "a discrección". El segundo parámetro es para indicárselo a la función en que es preciso y tiene que ver con el "charset" que estés utilizando, tanto en la página Web como en la base de datos. Yo tengo por defecto "utf-8", puesto que el "charset" que procuro usar. Respecto del ejemplo. Ahí va uno más bien sencillo, porque, te advierto que yo en esto tampoco me llego a aclarar del todo, si bien es cierto que, efectivamente, intuyo que por ahí pueden ir los tiros en este caso... lo mismo hasta en esto estoy equivocado. Código PHP:
Ahora, si "descomentas" la instrucción en que se hace pasar el "valor" por la función "Str2Htm()" verás que el "alert" de JavaScript funciona como se espera, porque, no se corta la cadena que se supone ha de mostrar. Sin embargo, no nos vamos a engañar, yo esperaba que algo así también funcionase: Código PHP:
No sé. Prueba por ese camino. Sobre esto del escapar cadenas hay que llevar cierto cuidado. Por ejemplo, si la cadena va a mostrarse dentro de un "input" o "textarea" yo, por lo pronto, no las escapo. Si ha de mostrarse en otro lugar sí que lo hago. Y, a la contra pasa lo mismo, me refiero a que cuando guardas valores en la base de datos estos han de ser previamente escapados, pero, no con la función que antes copié aquí. Yo, para estos menesteres, uso esta otra función, que me recomendó un conocido hace bastante tiempo: Código PHP:
Puede parecer "pesado" tener que hacer algo así cuando insertas registros, por un lado, y cuando los muestras, por otro, pero, no queda otra. A no ser que controles absolutamente a los usuarios de la aplicación y estos no vayan a pretender nunca "meter la pata", pero, aún así... Por ejemplo, si vas a imprimir un determinado valor dentro de HTML, como poco, es menester escapar las posibles etiquetas HTML que dicho valor contenga, como, por ejemplo, < script >... que puede estar ahí con mala idea... No sé si te estoy ayudando en algo o no Lúcas, pero, en fin, como he dicho más arriba, a ver si entre todos sacamos algo en claro. ![]() |
|
#6
|
||||
|
||||
|
Hola Dec,
Pues mi desconcierto es aún mayor cuando empecé hacer pruebas a "locas", pues me encuentro que al sacar el session_start() y reemplazar la variable de session por un valor fijo funciona de maravilla el script, y ojo !!!! que no estoy soñando, vuelvo agregar el session start y deja de funcionar........ ![]() Creo que las cosas de ahora en adelante cambian o no dec ?, pero eso de escapear las variables es una muy buena práctica de programación, pero los tiros no van por ahí por lo mencionado mas arriba. Hasta Luego .-
__________________
No todo es como parece ser... |
|
#7
|
||||
|
||||
|
Arreglado
Hola Dec
Asunto arreglado el session_start debe estar antes de una salida al navegador, lo puse al comienzo y asunto arreglado, ahora mi pregunta es ¿por qué diablos funciona en la otra máquina.? Hasta Luego .-
__________________
No todo es como parece ser... |
|
#8
|
||||
|
||||
|
Hola,
Bueno. Pues las cosas cambian, pero, permíteme insistir en lo dicho de escapar cadenas (de entrada en la base de datos y de salida para imprimir), puesto que, como ves, usas el valor de la variable de la sesión dentro de la consulta SQL sin escaparlo antes: y eso puede traer problemas de seguridad... alguien podría "inyectar" SQL ahí. Pero, dejando este tema aparte y volviendo al asunto primero de este hilo... pues... ¿qué hay exactamente en la variable de la sesión? Yo probaría a dejar el "session_start()", pero, a poner un valor fijo en la variable de marras. No creo que "session_start()" de problemas (vamos, no veo porqué), pero, el valor... quién sabe qué valor es... Yo echaría un vistazo al valor de esa variable, por un lado, y luego a lo que me retorna la consulta SQL, imprimiría lo que me retorna y vería qué puede haber raro ahí. Por otro lado, no has comentado al respecto, pero, ¿se supone que "juegas" con los mismos datos? En donde funciona y en donde no, me refiero, porque el problema podría estar en los datos... unos son problemáticos y los otros no. Y más aún... creo que los tiros siguen siendo por donde he mencionado, porque me ciño al mensaje de error: se encuentra algún carácter no esperado en la expresión regular que usa el Script que utilizas para componer el menú. Ahora bien, ¿de dónde sale ese carácter problemático? No puede ser de otro modo: vienen de la base de datos... Así que, resumiendo, vería qué contiene la variable de sesión. Y luego probaría, como has hecho, los resultados que obtengo con un valor fijo, pero, dicho valor ha de ser el que se supone que debería tener la variable de sesión, con el fin de que los datos que vienen de la base de datos sean los mismos: porque de no ser así, unos pueden contener caracteres "problemáticos", pero, otros no. Vamos... digo yo. ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Combo o menu desplegable dinamico | Andrea Martinez | PHP | 5 | 25-02-2007 00:38:28 |
| menú dinámico con eventos dinámicos | mguixot | OOP | 4 | 04-07-2006 16:05:05 |
| ¿Como crear menu dinamico. | JXJ | Varios | 3 | 10-09-2005 04:50:09 |
| Main Menu Dinamico | cahosoft | Varios | 2 | 30-06-2005 09:45:56 |
| Menu dinamico | xxxFALKORxxx | OOP | 1 | 23-03-2005 18:06:51 |
|