Pregunta:
Fecha: 03-01-2020 14:11:55
(En Español)
Tengo un serio problema al cual no le encuentro la solución desde ayer, resulta que he desarrollado un input para subir archivo y funciona casi a la perfección, es solo que la validación no me esta funcionando y no se cual es la razón, me deja subir archivos de vídeo y hasta archivos .pdf y he creado una validación para que solo me deje subir archivos autorizado pero la validación no me esta funcionando y ya la he revisado mas de mil veces y no encuentro el error, aqui les voy a dejar el código.
backend:
Frontend
Verificar si el formato del archivo es de tipo "image/jpg" || "image/png" || "image/jpeg" etc...[Resuelta]
Hola amigos.Tengo un serio problema al cual no le encuentro la solución desde ayer, resulta que he desarrollado un input para subir archivo y funciona casi a la perfección, es solo que la validación no me esta funcionando y no se cual es la razón, me deja subir archivos de vídeo y hasta archivos .pdf y he creado una validación para que solo me deje subir archivos autorizado pero la validación no me esta funcionando y ya la he revisado mas de mil veces y no encuentro el error, aqui les voy a dejar el código.
backend:
<?php
require_once './conexion.php';
$email = $_SESSION['email'];
$success = '';
$errors = '';
// Validar que el usuario no exista en la base de datos
$sentencia = $conexion->prepare("SELECT * FROM users WHERE email = :email LIMIT 1");
$sentencia->execute(array(
':email' => $email
));
if(isset($_FILES['foto'])){
$foto = $_FILES['foto'];
$nameFoto = $foto['name'];
$type = $foto['type'];
if($type == "image/jpg" || $type == "image/jpeg" || $type == "image/png" || $type || "image/git" || $type || "image/gif"){
if(!is_dir('image')){
mkdir('image', 0777);
}
move_uploaded_file($foto['tmp_name'], 'image/'.$nameFoto);
// Insertar la foto en la base de datos
if(empty($errors)){
$statement = $conexion->prepare("UPDATE users SET foto = :nameFoto WHERE email = '$email'"
);
$statement->execute(array(
':nameFoto' => $nameFoto
));
}
$success = "Has colocado una foto de perfil";
// header("Refresh:4; url=page2.php");
}else{
$errors = "El tipo de imagen $type no es soportado";
}
}
?>Frontend
<?php session_start();
// Comprobar si el usuario ha inciado sesion
if(empty($_SESSION['email'])){
header('Location: index.php');
}
require_once 'backend/foto.php';
require_once 'conexion.php';
$email = $_SESSION['email'];
// Sacar el nombre de la persona que ha iniciado sesion
$stmt = $conexion->query("SELECT * FROM users WHERE email = '$email'");
$stmt->execute(['email' => $email]);
while ($row = $stmt->fetch()) {
$name = $row['name'];
$surname = $row['surname'];
$message = $row['message'];
$sexo = $row['sexo'];
$nameFoto = $row['foto'];
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Completa tus datos | Blog_master</title>
<!-- Favicon -->
<link rel="shortcut icon" href="img/favicon.png" type="image/x-icon">
<!-- Estilos CSS -->
<link rel="stylesheet" href="css/style.css">
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css?family=Livvic&display=swap" rel="stylesheet">
</head>
<body>
<!-- Header de la pagina -->
<?php require 'header.php'; ?>
<main>
<section id="contenedor">
<a href="cerrar.php" class="salir">Cerrar Sesion</a>
<article>
<h3><?php echo $name . " " . $surname; ?>, coloca una foto de perfil</h3>
<?php if($nameFoto == false){ ?>
<!-- Si el usuario no tiene foto de perfil, coloco una por defecto -->
<?php if($sexo == 'masculino') { ?>
<p><img src="img/hombre.png" class="perfil" alt="Imagen de usuario de <?=$name?>" title="Foto de perfil de <?=$name?>" height="150"></p>
<?php } else{ ?>
<p><img src="img/mujer.png" class="perfil" alt="Imagen de usuario de <?=$name?>" title="Foto de perfil de <?=$name?>" height="150"></p>
<?php } ?>
<?php }else{ ?>
<!-- Si tiene foto de perfil, coloco la que tiene -->
<p><img src="image/<?=$nameFoto?>" class="perfil" alt="Imagen de usuario de <?=$name?>" title="Foto de perfil de <?=$name?>" height="150"></p>
<?php } ?>
<!-- Formulario de envio de foto -->
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data">
<div id="center">
<div id="div_file">
<p id="texto">Seleccionar</p>
<p><input type="file" name="foto" id="my_foto"></p>
</div>
</div>
<button type="submit" class="enviar_foto" name="submit_foto">Enviar</button> <br/>
<!-- Mensaje de error o exito -->
<?php if(isset($errors) || isset($success)) : ?>
<p class="verde"><?php echo $success; ?></p>
<p class="rojo"><?php echo $errors; ?></p>
<?php endif ?>
</form>
<br/>
<hr/>
<p><a href="home.php">Saltar este paso</a></p>
</article>
</section>
</main>
<!-- Header de la pagina -->
<?php require 'footer.php'; ?>
</body>
</html>
Votos: 0 -
Respuestas: 1 -
Vistas: 9
Compartir en: Google
Facebook
Twitter
LinkedIn
Link
Respuestas:
-
Fecha: 03-01-2020 14:15:26 El error estaba en la condición y es que de manera muy entorpecida yo estaba escribiendo mal la condición y en realidad la sintaxis correcta es de esta forma
if($type == "image/jpg" || $type == "image/jpeg" || $type == "image/png" || $type == "image/git" || $type == "image/gif"){ }
Doy por resuelta esta pregunta, disculpen por ese gran error mio del cual no me había dado de cuenta.
Un saludo y buen código... Votos: 1 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
