Foros del Web » Programando para Internet » PHP »

Problema al subir imagen a base de datos

Estas en el tema de Problema al subir imagen a base de datos en el foro de PHP en Foros del Web. Bueno hola gente. Estoy teniendo un problema y no lo puedo solucionar... Quiero realizar un formulario de registro en el cual se suban ciertos datos ...
  #1 (permalink)  
Antiguo 07/12/2014, 21:08
 
Fecha de Ingreso: julio-2014
Mensajes: 2
Antigüedad: 10 años, 4 meses
Puntos: 0
Pregunta Problema al subir imagen a base de datos

Bueno hola gente. Estoy teniendo un problema y no lo puedo solucionar...
Quiero realizar un formulario de registro en el cual se suban ciertos datos (ya los mostrare). El problema surge cuando ingreso la imagen y pongo registrar me tira el error de que no se ha ingresado ninguna imagen.

Aca les muestro parte del codigo para que vean y se fijen si se dan cuenta de lo que pasa...

registro.php

Código PHP:
<?php
    
include('acceso_db.php'); // incluimos el archivo de conexión a la Base de Datos
?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
     <?php
          
        
if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos desde el formulario
            // creamos una función que nos parmita validar el email
            
function valida_email($correo) {
                if (
preg_match('/^[A-Za-z0-9-_.+%]+@[A-Za-z0-9-.]+\.[A-Za-z]{2,4}$/'$correo)) return true;
                else return 
false;
            }
            
// Procedemos a comprobar que los campos del formulario no estén vacíos
            
$sin_espacios count_chars($_POST['email'], 1);            
            if(!empty(
$sin_espacios[100])) { // comprobamos que el campo "email" no tenga espacios en blanco
                
echo "El campo <em>email</em> no debe contener espacios en blanco. <a href='javascript:history.back();'>Reintentar</a>";
                
            }elseif(empty(
$_POST['nombre'])) { // comprobamos que el campo "nombre" no esté vacío
                
echo "No se ha ingresado ningún nombre. <a href='javascript:history.back();'>Reintentar</a>";
                
            }elseif(empty(
$_POST['apellido'])) { // comprobamos que el campo "apellido" no esté vacío
                
echo "No se ha ingresado ningún apellido. <a href='javascript:history.back();'>Reintentar</a>";
                
            }elseif(empty(
$_POST['email'])) { // comprobamos que el campo "email" no esté vacío
                
echo "No se ha ingresado ningún correo electrónico. <a href='javascript:history.back();'>Reintentar</a>";
                            
            }elseif(empty(
$_POST['password'])) { // comprobamos que el campo "password" no esté vacío
                
echo "No se ha ingresado ninguna contraseña. <a href='javascript:history.back();'>Reintentar</a>";
                
            }elseif(
$_POST['password'] != $_POST['password_conf']) { // comprobamos que las contraseñas ingresadas coincidan
                
echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>";    
                
            }elseif(empty(
$_POST['tipo'])) { // comprobamos que el campo "tipo" no esté vacío
                
echo "No se ha ingresado ningún tipo. <a href='javascript:history.back();'>Reintentar</a>";
                
            }elseif(empty(
$_POST['pais'])) { // comprobamos que el campo "pais" no esté vacío
                
echo "No se ha ingresado ningún país. <a href='javascript:history.back();'>Reintentar</a>";
                
            }elseif(empty(
$_POST['imagen'])) { // comprobamos que el campo "imagen" no esté vacío
                
echo "No se ha ingresado ninguna imagen. <a href='javascript:history.back();'>Reintentar</a>";
                
            }elseif(empty(
$_POST['dia'])) { // comprobamos que el campo "día" no esté vacío
                
echo "No se ha ingresado ningún día. <a href='javascript:history.back();'>Reintentar</a>";
                
            }elseif(empty(
$_POST['mes'])) { // comprobamos que el campo "mes" no esté vacío
                
echo "No se ha ingresado ningún mes. <a href='javascript:history.back();'>Reintentar</a>";
                
            }elseif(empty(
$_POST['ano'])) { // comprobamos que el campo "año" no esté vacío
                
echo "No se ha ingresado ningún año. <a href='javascript:history.back();'>Reintentar</a>";
                
            }elseif(!
valida_email($_POST['email'])) { // validamos que el email ingresado sea correcto
                
echo "El email ingresado no es válido. <a href='javascript:history.back();'>Reintentar</a>";
                
            }else {
                
// "limpiamos" los campos del formulario de posibles códigos maliciosos
                
$nombre mysqli_real_escape_string($link$_POST['nombre']);
                
$apellido mysqli_real_escape_string($link$_POST['apellido']);
                
$email mysqli_real_escape_string($link$_POST['email']);
                
$password mysqli_real_escape_string($link$_POST['password']);
                
$tipo mysqli_real_escape_string($link$_POST['tipo']);
                
$pais mysqli_real_escape_string($link$_POST['pais']);
                
$imagen mysqli_real_escape_string($link$_POST['imagen']);
                
$dia mysqli_real_escape_string($link$_POST['dia']);
                
$mes mysqli_real_escape_string($link$_POST['mes']);
                
$ano mysqli_real_escape_string($link$_POST['ano']);
                
                
// comprobamos que el email ingresado no haya sido registrado antes
                
$sql mysqli_query($link"SELECT email FROM usuarios WHERE email='".$email."'");
                if(
mysqli_num_rows($sql) > 0) {
                    echo 
"El email ingresado ya ha sido registrado anteriormente. <a href='javascript:history.back();'>Reintentar</a>";
                }else {
                    
$password md5($password); // encriptamos la contraseña ingresada con md5
                    // ingresamos los datos a la BD
                    
$reg mysqli_query($link"INSERT INTO usuarios (nombre, apellido, email, password, tipo, pais, imagen, dia, mes, ano, fecha) VALUES ('".$nombre."', '".$apellido."', '".$email."', '".$password."', '".$tipo."', '".$pais."', '".$imagen."', '".$dia."', '".$mes."', '".$ano."', NOW())");
                    if(
$reg) {
                        echo 
"Datos ingresados correctamente.";
                    }else {
                        echo 
"ha ocurrido un error y no se registraron los datos.";
                    }
                }
            }
            
            if(
is_uploaded_file($_FILES['imagen']['tmp_name'])) { // verifica haya sido cargado el archivo
            
$tipo $_POST["tipo"];
            
$ruta"images/$tipo".$_FILES['imagen']['name'];
            
move_uploaded_file($_FILES['imagen']['tmp_name'], $ruta);
            }
            
        }else {
    
?>
    
        <form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
            <input type="text" name="nombre" id="nombre" placeholder="Nombre" />
            
            <input type="text" name="apellido" id="apellido" placeholder="Apellido" />

            <input type="text" name="email" maxlength="50" placeholder="Email" /><br />            

            <input type="password" name="password" maxlength="15" placeholder="Contraseña" /><br />            

            <input type="password" name="password_conf" maxlength="15" placeholder="Confirmar Contraseña" /><br />
            
            <div id="seleccion-tipo-pais">    
                <p id="select-tipo">
                    <select name="tipo" id="tipo" >
                        <option>Hombre</option>
                        <option>Mujer</option>
                    </select>
                 </p>
                
                <p id="select-pais">
                    <select name="pais" id="pais" >
                        <option>Argentina</option>
                        <option>Brasil</option>
                    </select>
                 </p>
            </div>    

             <p>Imagen</p>
            <input type="file" name="imagen" id="imagen" />

            <p>Fecha de Nacimiento:</p>
                <select name="dia" id="dia">

                                      ...

                </select>

                <select name="mes" id="mes">

                                      ...

                </select>

                <select name="ano" id="ano">

                                      ...

                </select>            
            
            <input type="submit" name="enviar" value="Registrar" />
            <input type="reset" value="Borrar" />
        </form>
        
    <?php
        
}
    
?> 
</body>
</html>
y esta es la base de datos

`id` int(4) NOT NULL AUTO_INCREMENT,
`nombre` varchar(50) NOT NULL,
`apellido` varchar(50) NOT NULL,
`password` varchar(30) NOT NULL DEFAULT '',
`email` varchar(100) NOT NULL DEFAULT '',
`imagen` varchar(1500) NOT NULL,
`tipo` varchar(30) NOT NULL,
`dia` varchar(2) NOT NULL,
`mes` varchar(30) NOT NULL,
`ano` varchar(4) NOT NULL,
`pais` varchar(100) NOT NULL,
`fecha` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)

---------------------------------------------------------------------------------------

retomemos... yo quiero que aparezca la url de la imagen en la base de datos y que la imagen se guarda en la carpeta "images/tipo" (segun si es hombre o mujer)

Etiquetas: mysql
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 22:34.