Como aceptar solo links .jpg o .png en este codigo?

  • Autor Autor krvaM
  • Fecha de inicio Fecha de inicio

krvaM

Eta
Verificación en dos pasos activada
Hola, necesito saber como hacer para que en este codigo solo acepte un link que sea .jpg o .png?


PHP:
  <label for="video_thumb"><?php _e('Image URL', WPSEVST_LANG) ?> <?php if(get_theme_mod('wpsevst_enable_video_thumbnail_required_field', true) == true ) : ?><span class="required">*</span><?php endif; ?></label>
                                <input type="text" name="video_thumb" id="video_thumb" value="<?php if(isset($_POST['video_thumb'])) echo $_POST['video_thumb'];?>" <?php if(get_theme_mod('wpsevst_enable_video_thumbnail_required_field', true) == true ) : ?>class="required"<?php endif; ?> />
 
usa jquery y mira que los ultimos 3 caracteres sean .jpg o .png... desde ya eso no te salva, porque podes poner: url.com/file.php?a=.jpg....
.submit() | jQuery API Documentation ahi tienes como capturar el submit del formularo... solo ves si el campo que quieres controlar contiene .jpg o .png
 
Hola

Puedes utilizar una funcion de php por ejemplo

PHP:
<?php
function tipo_archivo($url,$tipo)
{
	$pos = strpos($url, $tipo);
	if ($pos !== false) {
     //existe
	 return 1;
	} 
        else
        {
          return false;
         }
}

?>

<?php if(isset($_POST['video_thumb'] &  (tipo_archivo($_POST['video_thumb'],"jpg")==1 or tipo_archivo($_POST['video_thumb'],"png")==1 )) echo $_POST['video_thumb'];?>

Saludos
 
Si estas procesando las imágenes con variables tipo file que es lo normal puedes obtener la extensión con "type" mas o menos de la siguiente manera:

PHP:
<?php 
$tipoimagen=$_FILES["imagen"]["type"];
?>

después puedes hacer condiciones:

PHP:
if ($tipoimagen=='png'){
//la imagen es tipo PNG
}

salu2
 
La solución del post 2 falla si pones como nombre imagenjpg.gif ya que existe jpg en el nombre

La solución 3 aplica solo a archivos de subida

Prueba con esta:

PHP:
<?php

if(permitido('imagenes/subidas/nombre.jpg', array('jpg', 'png'))){
	//mostrar
}

function permitido($ruta, $array){
	$archivo = pathinfo($ruta);
	if(array_search($archivo['filename'],$array) !== false){
		return false;
	}
	return true;
}
 

Pero asi facilmente se puede editar la url de cualquier archivo con .htaccess y devolve .jpg y subir un archivo dañino sin problemas, lo mejor si el archivo es una imagen jpg o png.
 
Pero asi facilmente se puede editar la url de cualquier archivo con .htaccess y devolve .jpg y subir un archivo dañino sin problemas, lo mejor si el archivo es una imagen jpg o png.

Lo que dices no tiene sentido, por la sintaxis de lo que él subió la respuesta anterior más acertiva era la del post 2 ya que es sintaxis de wordpress, lo que tu dices no tiene ningún sentido por que wordpress no modifica el tipo de archivo en su configuración (si, por htaccess puedes pero no hace sentido. Además, no puedes subir un archivo de esta forma, solo recorrer los registros que ya existen en la base de datos. Respecto a lo que intentas decir de subir un archivo, las validaciones van par por el MIME del archivo que por su extensión. Saludos