Foros del Web » Programando para Internet » PHP »

MI foro php

Estas en el tema de MI foro php en el foro de PHP en Foros del Web. Hola, temgo un problema al estar programando mi foro, veran, he metido una funcion para colorear el codigo php hightlight_string y el problema no es ...
  #1 (permalink)  
Antiguo 10/11/2003, 04:59
 
Fecha de Ingreso: mayo-2003
Ubicación: Cuernavaca, Mor.
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 2
MI foro php

Hola, temgo un problema al estar programando mi foro, veran, he metido una funcion para colorear el codigo php hightlight_string
y el problema no es que lo haga mal, si no que las comillas simples y dobles me ponen una "\" si quiero poner este codigo:
Código PHP:
<?php
echo "<table width=\"99%\" border=\"0\" cellpadding=\"6\" cellspacing=\"4\" align=\"center\">
<tr bgcolor=\"F2F5F7\">
<td valign=\"top\"><center>Previsualizar Mensaje de <b>$autor</b></center>
Asunto: <b>$tema</b><br>
Mensaje:<br>
"
.emoticon($mensaje)."
</td></tr>
</table>\n"
;
?>
y justo abajo me pongo un texto asi "hola"
hola's
me pone la barra \ antes de la comilla
intente con str_replace pero al pone rcodigo php lo pondria mal por que eliminaria las \ cuando son necesarias
intente con stripslashes y paso lo mismo... no se si me explicado bien que me esta fallando?

hay manera de no afectar a las "\" cuando es necesario... por ejemplo el los codigos php., en pocas palabras hacer lo que hace este foro, poner codigos php y parsearlos bien.
  #2 (permalink)  
Antiguo 10/11/2003, 05:24
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Re: MI foro php

Cita:
Mensaje Original por vic_mx
hay manera de no afectar a las "\" cuando es necesario... por ejemplo el los codigos php., en pocas palabras hacer lo que hace este foro, poner codigos php y parsearlos bien.
Este foro tiene problemas con los \. Mas de una vez se "pierden" \. Sobre todo cuando se ponen rutas windows, o expresiones regulares.

De todas formas, solo deberias aplicar el highlight_string() al trozo de mensaje que esta entre [ PHP ] y [ /PHP ] (o las etiquetas que usas), no a todo el mensaje.

Y tambien deberias ver si esas \ existen en la BD (o donde almacenes los mensajes). Revisa los valores de las directivas magic_quotes_gpc y magic_quotes_runtime. Si esas directivas estan a ON, PHP escapa las cadenas que vienen de los formularios, de la URL, sesion, cookie, ficheros, base de datos, ... sin avisar, "automagicamente". Asi que puede ser que PHP meta esas \, y no sea un problema de highligth_string().

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 10/11/2003, 09:44
 
Fecha de Ingreso: mayo-2003
Ubicación: Cuernavaca, Mor.
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 2
Código:
las directivas magic_quotes_gpc y magic_quotes_runtime. Si esas directivas estan a ON, PHP escapa las cadenas que vienen de los formularios, de la URL, sesion, cookie, ficheros, base de datos, ... sin avisar, "automagicamente". Asi que puede ser que PHP meta esas \, y no sea un problema de highligth_string
Hay forma de cambiar esto a off, en caso de que asi sea?
gracias!
  #4 (permalink)  
Antiguo 10/11/2003, 09:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
mm usa la función:

stripslashes() a la hora de presentar tus datos ($mensaje y el resto de variables).

El hecho de que "PHP" automáticamente añada un "escape" a tus caracteres tipo comillas, (simples o dobles) .. etc asegura que no tendrás problemas con HTML común .. ejemplo un name="algo" .. y un name="algo"comilla" .. esa comilla por médio te dará problemas .. por eso se "escapa" .. y si ese texto viene de un formulario (por GPC) ya lo hace PHP por tí .. por eso debes de aplicar dicha función para "quitarle" el \ (escape).

Tambien con
set_magic_quote() o similar (no recuerdo la función exacta) o incluso con ini_set() puedes forzar a tus scripts a trabajar con cierta configuración ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 10/11/2003, 10:16
 
Fecha de Ingreso: mayo-2003
Ubicación: Cuernavaca, Mor.
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 2
Gracias Cluster, investigare cual es la funcion adecuada, para ello, saludos!

por cierto ya use stripslashes, pero si el codigo php necesita de \
por ejemplo en el echo " \"Hola\" ";
para que salaga "Hola", me los quitaria... sigo investigando mas...
  #6 (permalink)  
Antiguo 10/11/2003, 10:19
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Lo que pasa es que si el texto a meter en la base de datos contiene caracteres que deben ser escapados, tienes que escaparlos. Si el texto contiene una ', y tu guardas de la forma "INSERT ... ('$texto')", si $texto no esta escapado, te dara un error de sintaxis.

Asi que debes guardarlo escapado, pero debes "desescaparlo" al leer de la base de datos.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 10/11/2003, 17:01
 
Fecha de Ingreso: mayo-2003
Ubicación: Cuernavaca, Mor.
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 2
Aunque bastante enredoso todo este asunto, seguire molestandolos para solcitar ayuda, jeje, gracias a todos!
  #8 (permalink)  
Antiguo 10/11/2003, 23:12
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Cita:
Mensaje original por josemi
Este foro tiene problemas con los \. Mas de una vez se "pierden" \. Sobre tod.....
Sí josemi... puede que más de una vez.. pero la mayoría de veces todo sale bien...
En el foro de NokTemplates existía ese problema... no sé si ya se habrá arreglado.
Creo que la pregunta es ¿Cómo trabajan las etiquetas de vB code para no confundir los caracteres de escape introducidos por el usuario de los que añade php automáticamente?
Yo también voy a averiguar por ahí...
Saludos
  #9 (permalink)  
Antiguo 11/11/2003, 09:22
 
Fecha de Ingreso: mayo-2003
Ubicación: Cuernavaca, Mor.
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 2
Pues si encuentras algo, ya sabes dinoslo jeje, saludos!
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:22.