Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Formulario de registro

Estas en el tema de Formulario de registro en el foro de PHP en Foros del Web. Buenos días, tengo un formulario de registro, que se conecta a la BD y inserta los usuarios que se registran. El asunto esta, en que ...
  #1 (permalink)  
Antiguo 12/01/2017, 05:33
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Formulario de registro

Buenos días, tengo un formulario de registro, que se conecta a la BD y inserta los usuarios que se registran.

El asunto esta, en que ahora tengo que añadir para que puedan subir foto de perfil, en principio no tendrías que ser un problema, pero me encuentro con esto.

Si al formulario le añado el - enctype="multipart/form-data", me sube la foto al servidor pero no a la BD. Y por lo contrario si no se lo pongo, me lo escribe en la BD pero no me la sube al servidor. Vamos que me estoy quedando pez con esto...

ESTO ES EL FORMULARIO

Código PHP:
Ver original
  1. <form data-toggle="validator" role="form1" action="" method="post" name="form1" id="form1" >
  2.  
  3.  
  4.                     <div class="cabe_registro">Formulario de registro LABTOLIFE</div>
  5.                     <div class="p_registro">Rellena los campos para completar tu registro y poder realizar pedidos.</div>
  6.  
  7.                     <div class="row">
  8.                         <div class="col-xs-6 col-md-6">
  9.                           <input type="text" name="Nombre" id="Nombre" value="<?php echo $_POST['Nombre'];?>" class="form-control input-lg" placeholder="Nombre"  />
  10.  
  11.                         </div>
  12.                         <div class="col-xs-6 col-md-6">
  13.                             <input type="text" name="Apellidos" id="Apellidos" value="<?php echo $_POST['Apellidos'];?>" class="form-control input-lg" placeholder="Apellidos"  />
  14.  
  15.                         </div></div>
  16.  
  17.                      <input name="foto" type="file" id="foto" value="<?php echo $_POST['foto'];?>" lass="form-control input-lg" />
  18.  
  19.  
  20.  
  21.                     <input type="text" name="Username" id="Username" value="<?php echo $_POST['Username'];?>" class="form-control input-lg" placeholder="E-mail"  />
  22.  
  23.  
  24.                     <input type="password" name="Password" id="Password" value="" class="form-control input-lg" placeholder="Contraseña"  />
  25.  
  26.  
  27.  
  28.                     <div class="row">
  29.                         <div class="col-xs-8 col-md-8">
  30.                             <input type="text" name="Dni" id="Dni" value="<?php echo $_POST['Dni'];?>" class="form-control input-lg" placeholder="Documento de Identidad"  />
  31.                         </div>
  32.                         <div class="col-xs-2 col-md-4">
  33.                             <select name="month" class = "form-control input-lg">
  34.                                 <option value="">Tipo de documento</option>
  35.                                 <option value="DNI">DNI</option>
  36.                                 <option value="NIF">NIF</option>
  37.                                 <option value="NIE">NIE</option>
  38.                                 <option value="PASAPORTE">PASAPORTE</option>
  39.                             </select>
  40.                         </div>
  41.                     </div>
  42.                     <input type="text" name="Direccion" id="Direccion" value="<?php echo $_POST['Direccion'];?>" class="form-control input-lg" placeholder="Direccion"  />
  43.                     <input type="text" name="Ciudad" id="Ciudad" value="<?php echo $_POST['Ciudad'];?>" class="form-control input-lg" placeholder="Provincia"  />
  44.                     <div class="row">
  45.                         <div class="col-xs-8 col-md-8">
  46.                             <input type="text" name="Poblacion" id="Poblacion" value="<?php echo $_POST['Poblacion'];?>" class="form-control input-lg" placeholder="Poblacion"  />
  47.                         </div>
  48.                         <div class="col-xs-8 col-md-4">
  49.                             <input type="text" name="Postal" id="Postal" value="<?php echo $_POST['Postal'];?>" class="form-control input-lg" placeholder="Codigo Postal"  />
  50.                         </div>
  51.                     </div>
  52.  
  53.                     <input type="text" name="Telefono" id="Telefono" value="<?php echo $_POST['Telefono'];?>" class="form-control input-lg" placeholder="Telefono"  />
  54.  
  55.  
  56.  
  57.  
  58.  
  59.                     <span>
  60.                       <div class="alert alert-warning alert-dismissable">
  61.                       <button type="button" class="close" data-dismiss="alert">&times;</button>
  62.                      Al continuar con el registro acepta los <a href="#" class="term">terminos y condiciones</a> sobre nuestra politica de privacidad.
  63.                     </div>
  64.  
  65.  
  66.                     </span>
  67.                     <input type="submit" name="enviar" class="bt-reg"  value="Registrate">
  68.  
  69.                     </div>
  70.  
  71.                     <input type="hidden" name="MM_insert" value='<?php echo rawurlencode($_SERVER["REQUEST_URI"]); ?>'>
  72.             </form>

EL PHP QUE SUBE LA IMAGEN

Código PHP:
Ver original
  1. <?php
  2. // En versiones de PHP anteriores a la 4.1.0, debería utilizarse $HTTP_POST_FILES en lugar
  3. // de $_FILES.
  4.  
  5. $target_path = "images/clientes/";
  6. $target_path = $target_path . basename( $_FILES['foto']['name']); if(move_uploaded_file($_FILES['foto']['tmp_name'], $target_path)) { echo "El archivo ". basename( $_FILES['foto']['name']). " ha sido subido";
  7. } else{
  8. echo "Ha ocurrido un error, trate de nuevo!";
  9. }
  10.  
  11. ?>


No se si con eso me podeis ayudar a ver el error, o necesitais lo que es escribe los datos en la BD, pero es por no cargar mucho el POST.

Gracias
  #2 (permalink)  
Antiguo 12/01/2017, 07:19
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Formulario de registro

y el codigo que registra al usuario en la DB?.. muestranos ese
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 12/01/2017, 08:26
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Formulario de registro

Cita:
Iniciado por petit89 Ver Mensaje
y el codigo que registra al usuario en la DB?.. muestranos ese
Gracias por contestar, aquí lo tienes.

<?php



Código PHP:
Ver original
  1. if(isset($_POST['enviar']))
  2. {
  3.     if($_POST['Nombre'] == '')
  4.     {
  5.         echo '<span class="error">Ingrese su Nombre</span>';
  6.     }
  7.     else if($_POST['Apellidos'] == '')
  8.     {
  9.         echo '<span class="error">Ingrese sus Apellidos</span>';
  10.     }
  11.  
  12.      else if($_POST['Username'] == '')
  13.     {
  14.         echo '<span class="error">Ingrese su Corrreo Electronico</span>';
  15.     }
  16.     else if($_POST['Password'] == '')
  17.     {
  18.         echo '<span class="error">Ingrese su Contraseña</span>';
  19.     }
  20.     else if($_POST['Dni'] == '')
  21.     {
  22.         echo '<span class="error">Ingrese un DNI</span>';
  23.     }
  24.     else if($_POST['Direccion'] == '')
  25.     {
  26.         echo '<span class="error">Ingrese una Direccion</span>';
  27.     }
  28.     else if($_POST['Ciudad'] == '')
  29.     {
  30.         echo '<span class="error">Ingrese una Provincia</span>';
  31.     }
  32.     else if($_POST['Poblacion'] == '')
  33.     {
  34.         echo '<span class="error">Ingrese una Poblacion</span>';
  35.     }
  36.     else if($_POST['Postal'] == '')
  37.     {
  38.         echo '<span class="error">Ingrese un Codigo Postal</span>';
  39.     }
  40.     else if($_POST['Telefono'] == '')
  41.     {
  42.         echo '<span class="error">Ingrese un Teléfono</span>';
  43.     }
  44.  
  45.  
  46.     else
  47.     {
  48.  
  49.         $sql = 'SELECT * FROM Usuario';
  50.         $rec = mysqli_query($con, $sql);
  51.         $verificar_usuario = 0;
  52.  
  53.         while($result = mysqli_fetch_object($rec))
  54.         {
  55.             if($result->Username == $_POST['Username'])
  56.             {
  57.                 $verificar_usuario = 1;
  58.             }
  59.         }
  60.  
  61.         if($verificar_usuario == 0)
  62.         {
  63.             if($_POST['Password'])
  64.             {
  65.                 $usuario = $_POST['Nombre'];
  66.                 $apellidos = $_POST['Apellidos'];
  67.                 $foto = $_POST['foto'];
  68.                 $username = $_POST['Username'];
  69.                 $password = $_POST['Password'];
  70.                 $direccion = $_POST['Direccion'];
  71.                 $postal = $_POST['Postal'];
  72.                 $poblacion = $_POST['Poblacion'];
  73.                 $ciudad = $_POST['Ciudad'];
  74.                 $telefono = $_POST['Telefono'];
  75.                 $dni = $_POST['Dni'];
  76.                 $fecha=date('y,m,d');
  77.                 $sql = "INSERT INTO Usuario (Nombre,Apellidos,foto, Username, Password, Direccion, Postal, Poblacion, Ciudad, telefono, Dni, fecha)
  78.                        VALUES ('$usuario','$apellidos', '$foto', '$username', '$password','$direccion','$postal', '$poblacion', '$ciudad','$telefono','$dni', '$fecha')";
  79.                 mysqli_query($con,$sql);
  80.  
  81.                 echo '<span class="aciert">Usted se ha registrado correctamente. <br>
  82.                          ¡Sera redireccionado enseguida!
  83.                              </span>';
  84.  
  85.                 echo"
  86.  
  87.    <script>
  88.  
  89.    function goAway(){
  90.    location.replace('index.php');
  91.    }
  92.  
  93.    setTimeout(goAway,2000);
  94.    </script>";
  95.  
  96.  
  97.  
  98.             }
  99.  
  100.             else
  101.             {
  102.                 echo '<span class="error">Las claves no son iguales, intente nuevamente.</span>';
  103.             }
  104.  
  105.         }
  106.  
  107.         else
  108.         {
  109.             echo '<span class="error">Este usuario ya ha sido registrado anteriormente.</span>';
  110.         }
  111.  
  112.  
  113.  
  114.  
  115.     }
  116. }
  117.  
  118. ?>
  #4 (permalink)  
Antiguo 12/01/2017, 08:39
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Formulario de registro

Pues no veo donde agregas que se guarde en la base de datos el nombre de la imagen... todo ese codigo esta en un solo PHP no?...

Primero, en definitiva tienes que tener agregado el enctype="multipart/form-data" en la etiqueta FORM... tu campo se llama foto segun veo y el nombre lo obtienes:

Código PHP:
Ver original
  1. //$_FILES['foto']['name']
  2. $foto = $_FILES['foto']['name']; // es lo que tienes que mandar a la base de datos, no el $_POST
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #5 (permalink)  
Antiguo 12/01/2017, 08:46
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Formulario de registro

Cita:
Iniciado por petit89 Ver Mensaje
Pues no veo donde agregas que se guarde en la base de datos el nombre de la imagen... todo ese codigo esta en un solo PHP no?...

Primero, en definitiva tienes que tener agregado el enctype="multipart/form-data" en la etiqueta FORM... tu campo se llama foto segun veo y el nombre lo obtienes:

Código PHP:
Ver original
  1. //$_FILES['foto']['name']
  2. $foto = $_FILES['foto']['name']; // es lo que tienes que mandar a la base de datos, no el $_POST
Si, esta to en estas lineas de código que te he puesto. Entonces:

Donde hago el
Código PHP:
Ver original
  1. if($_POST['Password'])

Tengo que cambiar esto?

Código PHP:
Ver original
  1. $foto = $_POST['foto'];

Por esto?

Código PHP:
Ver original
  1. $foto = $_FILES['foto']['name'];

Pero donde esta la consulta de INSERT INTO, que esta el campo foto y el value $foto, sigo poniendo foto o "name"???

Gracias por tu ayuda de verdad!
  #6 (permalink)  
Antiguo 12/01/2017, 08:58
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Formulario de registro

Si, tienes que cambiar.... $foto = $_POST['foto']; por esto: $foto = $_FILES['foto']['name'];
y en el insert no tienes que cambiar nada mas...

unicamente esa linea y agregar a la etiqueta form lo antes dicho

ahora para mostrarla vas a tener que recuperar asi:

Código PHP:
Ver original
  1. $target_path = "images/clientes/";
  2. $nombre_imagen = "ejemplo.jpg"; //nombre recuperado de la base de datos segun usuario
  3.  
  4. $ruta_completa = $target_path.$nombre_imagen;
  5.  
  6. echo "<img src=\".$ruta_completa."\">";// Y asi ya te mostraria la imagen
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #7 (permalink)  
Antiguo 12/01/2017, 09:05
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Formulario de registro

Cita:
Iniciado por petit89 Ver Mensaje
Si, tienes que cambiar.... $foto = $_POST['foto']; por esto: $foto = $_FILES['foto']['name'];
y en el insert no tienes que cambiar nada mas...

unicamente esa linea y agregar a la etiqueta form lo antes dicho

ahora para mostrarla vas a tener que recuperar asi:

Código PHP:
Ver original
  1. $target_path = "images/clientes/";
  2. $nombre_imagen = "ejemplo.jpg"; //nombre recuperado de la base de datos segun usuario
  3.  
  4. $ruta_completa = $target_path.$nombre_imagen;
  5.  
  6. echo "<img src=\".$ruta_completa."\">";// Y asi ya te mostraria la imagen
Solucionado, muchisimas gracias.... . Puesto que tengo un post abierto, me gustaria consultar una cosa que me acabo de encontrar, ayer pase la web a https con un SLL, me encontre algún fallo, pero la mayoria los solucione. Pero ahora me encuentro que Google Chrome no abre la web... ahora si que no entiendo nada....

Etiquetas: formulario, registro, select, usuario
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 23:15.