Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Función php para ocultar etiquetas img

Hola a todos:

Estoy siguiendo el tutorial "pagina web multiusos" y me he encontrado con un pequeño problema. Para quitar el formato al texto que se envia en las entradas se usa la función Strip_tags. Como a mí no me interesa quitar el formato de las entradas, he buscado la forma de impedir que se envien imágenes. buscando en google me ha salido un resultado que dirige a este foro, pero me indica que el mensaje está eliminado. ¿Alguien me podría decir como impido que se envien fotos al hacer una entrada?

Añado que he eliminado la opción en el editor de textos, pero si la pego de otro sitio o la arrastro desde mi pc aparece al abrir la entrada.

Gracias
0
Puntos
2634
Visitas
6
Resp
Por LuzEsmeralda hace 128 meses
Principiante
Respuesta #1
la función que buscas es esta:
<?php 
//Funcion php para ocultar etiquetas imagen img
echo $texto=preg_replace("/<img (.+?)>/", ' ', $texto); 

?>
0
Puntos
Por zeuskx hace 128 meses
Administrador Sitio web
Respuesta #2
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO relatos (titulo, resumen, categoria, relato, seo, keywords, autor, fecha) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['titulo'], "text"),
GetSQLValueString($_POST['resumen'], "text"),
GetSQLValueString($_POST['categoria'], "int"),
GetSQLValueString(strip_tags($_POST['relato']), "text"),
GetSQLValueString($_POST['titulo'], "text"),
GetSQLValueString($_POST['titulo'], "text"),
GetSQLValueString($_POST['autor'], "int"),
GetSQLValueString($_POST['fecha'], "text"));
Como he dicho, estoy siguiendo el curso y voy por el video 22. en la línea
GetSQLValueString(strip_tags($_POST['relato']), "text"),
tu pones 'mensajes' y yo pongo 'relato'. Strip_tags sirve para que mysql devuelva el texto sin formato. Como yo quiero el texto tal y como lo envie el autor no he incorporado el strip_tags (lo he puesto aquí a modo de ejemplo), pero quiero algo parecido que evite enviar fotos o que mysql no la devuelva.

En lugar de poner el ckeditor (no me gusta y da problemas en los telefonos móviles) he instalado el tinymce (es mas práctico y cómodo de configurar), pero no creo que el problema esté ahí, porque he quitado el botón de agregar imagenes. Esto no impide que se peguen directamente en el editor.
0
Puntos
Por LuzEsmeralda hace 128 meses
Principiante
Respuesta #3
me acabo de enterar que estas siguiendo el curso.. bueno lo puedes hacer de muchas formas pero yo te explico dos de ellas, la mas fácil con css solo tienes que aplicar display:none en el css por ejemplo si la div donde muestras la entrada se llama #container haces esto:
#container {
	height: 208px;
	max-width: 831px;
}
#container img{
	display:none;
}
o si no quieres que se guarde en la base de datos seria algo así:
	$relatosinimagenes= $_POST['relato'];
	$relatosinimagenes=preg_replace("/<img (.+?)>/", ' ', $relatosinimagenes); 
	if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
				$insertSQL = sprintf("INSERT INTO relatos (titulo, resumen, categoria, relato, seo, keywords, autor, fecha) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
				GetSQLValueString($_POST['titulo'], "text"),
				GetSQLValueString($_POST['resumen'], "text"),
				GetSQLValueString($_POST['categoria'], "int"),
				GetSQLValueString($relatosinimagenes, "text"),
				GetSQLValueString($_POST['titulo'], "text"),
				GetSQLValueString($_POST['titulo'], "text"),
				GetSQLValueString($_POST['autor'], "int"),
				GetSQLValueString($_POST['fecha'], "text"));
espero que te sirva de ayuda!
0
Puntos
Por zeuskx hace 128 meses
Administrador Sitio web
Respuesta #4
Hola de nuevo. Anoche introduje el código tal y como lo pusiste y me muestra un error por encima del encabezado:

Notice: Undefined index: relato in C:\xampp\htdocs\relatilandia\enviarRelato.php on line 38.

La línea 38 en mi código se corresponde con esta: $relatosinimagenes= $_POST['relato'];

Como ya era tarde, traté de buscar alternativas al error sin éxito (el dreamweaver no muestra errores). El caso es que introduzco un texto con una foto y me lo guarda en la base de datos (texto y foto), aunque luego, al ver la entrada, me muestra el texto y la foto no. Podríamos decir que he conseguido la mitad porque, si bien no quiero que se muestre la foto, tampoco me interesa que se guarde en la base de datos por el espacio que ocupa y el consiguiente peso en KB. Si no hay alternativas a este fallo, me tocaría ir eliminando el código correspondiente a las imágenes en la base de datos para aligerar peso (algún caprichoso le podría dar por meter un montón de fotos de gran tamaño y ocupar demasiado espacio).

Siento las molestias, Zeus, y si tienes alguna idea me gustaría conocerla. De todas formas te doy las gracias por tu ayuda.

Por cierto, hace tiempo que te dije que seguía el curso y el martes te comenté, en otro sitio, que había enviado la donación y que ya tengo acceso al resto del curso en mi correo Isbiliya (así es como los moros llamaron a Sevilla y de ahí viene su nombre actual). Es posible que no lo hayas leído.

Un saludo.
0
Puntos
Por LuzEsmeralda hace 128 meses
Principiante
Respuesta #5
prueba así:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

$relatosinimagenes= $_POST['relato'];
	$relatosinimagenes=preg_replace("/<img (.+?)>/", ' ', $relatosinimagenes); 

				$insertSQL = sprintf("INSERT INTO relatos (titulo, resumen, categoria, relato, seo, keywords, autor, fecha) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
				GetSQLValueString($_POST['titulo'], "text"),
				GetSQLValueString($_POST['resumen'], "text"),
				GetSQLValueString($_POST['categoria'], "int"),
				GetSQLValueString($relatosinimagenes, "text"),
				GetSQLValueString($_POST['titulo'], "text"),
				GetSQLValueString($_POST['titulo'], "text"),
				GetSQLValueString($_POST['autor'], "int"),
				GetSQLValueString($_POST['fecha'], "text"));
0
Puntos
Por zeuskx hace 128 meses
Administrador Sitio web
Respuesta #6
Bueno, Zeuskx, me paso por aquí para informarte que todo ha salido a pedir de boca... ¡Eres un solete!

Viendo la última disposición del código, me doy cuenta de lo tonta que fui anoche al no caer en la cuenta y probar a cambiar la que ahora es la primera fila y que en el código anterior estaba en tercer lugar. Es obvio que al añadir dos nuevas líneas de código ese podía ser el error. He aprendido mucho con esta lección y la tendré presente en el futuro.

Te comento, a modo de conclusión y por si sirve para quienes lean este post, que la textarea donde meto la entrada me permite intruducir imágenes; sin embargo, y lamentablemente para quienes lo hagan, dicha imagen no se guarda en la base de datos y sí el texto que la acompaña. Por consiguiente, jamás de los jamases podrá salir publicada una foto. Para este tema tengo que estudiar la forma de crear un campo para que los usuarios puedan enviar solo una de determinado tamaño que aparezca en un lugar predeterminado por mí y concreto. Para este asunto esperaré por si me sirve el mismo método que se use para el avatar (aun me falta para llegar al vídeo donde lo explicas).

Te agradezco sinceramente, y con una amplia sonrisa, la ayuda. Esta noche dormiré mucho mejor.

Por mi parte puedes cerrar el tema.
0
Puntos
Por LuzEsmeralda hace 128 meses
Principiante
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate