PHP - Mantener imagen en el post php

 
Vista:
sin imagen de perfil
Val: 11
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Mantener imagen en el post php

Publicado por Rafael (2 intervenciones) el 06/03/2019 17:33:15
Como mantengo una imagen en el post, primero tengo que validar el formulario con los datos personales del que se inscribe, si el formulario tuvo errores entonces no debería de guardarse la imagen pero tampoco tendría que volver a subirla ya que la tendría en el una variable y la mostraría en una vista previa y luego poder volver a validar los datos, si son correctos hasta ese instante guardar la imagen.

Adjunto una captura de donde es que cargo la imagen
Mi codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//con este codigo capturo la imagen
 
<input type="file" name="fileToUpload" id="fileToUpload" src="imagenes/monigote.jpg">
   <br />
   <img id="imgSalida" width="304" src="imagenes/monigote.jpg" />
 
//codigo de javascript que uso para vista previa
 
<script>$(window).load(function(){
 
 $(function() {
  $('#fileToUpload').change(function(e) {
      addImage(e);
     });
 
     function addImage(e){
      var file = e.target.files[0],
      imageType = /image.*/;
 
      if (!file.type.match(imageType))
       return;
 
      var reader = new FileReader();
      reader.onload = fileOnload;
      reader.readAsDataURL(file);
     }
 
     function fileOnload(e) {
      var result=e.target.result;
      $('#imgSalida').attr("src",result);
     }
    });
  });</script>
//cuando recibo el post intento validar la imagen
 
$target_dir = "../../fotomentor/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
         $textoerror.= "File is an image - " . $check["mime"] . ".";
         $textoerror.="Nombre: " . $_FILES["fileToUpload"]["name"] . "<br />";
     $textoerror.= "Tipo: " . $_FILES["fileToUpload"]["type"] . "<br />";
     $textoerror.= "Tamaño: ". $_FILES["fileToUpload"]["size"]  . "<br />";
     $textoerror.= "Ruta: " . $_FILES["fileToUpload"]["tmp_name"];
    $fotoErr= '<i class="img-circle fa fa-check bg-green" aria-hidden="true"></i>';
    } else {
      $fotoErr= '<span class="badge bg-red">Tiene que subir una foto.</span>';
  $error=+1;
     $textoerror.=" foto.";
}
 
  #-------------------------------------
  #-Una validación de los datos de usuarios que valido*
  #-------------------------------------  
 
if (($_SERVER["REQUEST_METHOD"]== "POST") )
{
 
    //validación de Nombre
if (empty($_POST["nombre"]))
{
  $nombreErr= '<span class="badge bg-red">Su nombre es requerido.</span>';
  $error=+1;
  $textoerror.=" Nombre.";
}
else
{
  $nombre= test_input($_POST["nombre"]);
  if (!validaRequerido($nombre))
  {
    $nombreErr= ' <span class="badge bg-red">Su nombre es un campo obligatorio.</span>';
    $error=+1;
    $textoerror.=" Nombre.";
  }
  if (!validatexto($nombre))
  {
    $nombreErr=  '<span class="badge bg-red">Solamente se permiten letras y espacios vacíos.</span>';
    $error=+1;
    $textoerror.=" Nombre.";
  }
  else
  {
    $nombreErr= '<i class="img-circle fa fa-check bg-green" aria-hidden="true"></i>';
  }
}
}
  #fin nombre
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Mantener imagen en el post php

Publicado por Kathyu (905 intervenciones) el 06/03/2019 23:33:38
Raro, recuerdo que el $_POST mantiene los datos si luego de la validación no hay una respuesta que le permita hacer el insert/update o lo que sea, déjeme probar mañana un form por ahí y lo vemos.

Haga eso, una validación y póngale condición negativa de una vez y que regrese atrás.

Psudo
1
2
3
4
// Formulario
<from>
  <?php $var = 0; ?>
</form>

1
2
3
4
5
6
// recibe.php
 
if($var == 0){
   // Redirect atrás de JS
   echo '<script>history.back()</script>'
}

Vea si mantiene todo lo enviado...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Mantener imagen en el post php

Publicado por Rafael (2 intervenciones) el 07/03/2019 16:44:41
Gracias por la respuesta, ingrese el código pero al regresar a la pagina anterior no me carga la imagen previa, solamente el nombre del archivo y tampoco me muestra los mensajes de error que tengo configurados, te agradecería si me envías un ejemplo para así aplicarlo mejor.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   # -------------------------------------
  #-Código aplicado en fecha de nacimiento*
  #-------------------------------------  
if (empty($_POST["fechanac"]))
{
  $fechanacErr= '<span class="badge bg-red">Ingrese una fecha valida.</span>';
  $error=+1;
  $textoerror.=" Fecha de Nacimiento.";
  echo '<script>history.back()</script>';
}
else
{
  $fechanac=$_POST["fechanac"];
  $hoy = new DateTime($fechainscripcion);
  $tufecha = new DateTime($fechanac);
  $diff = $hoy->diff($tufecha);
  $anio=$diff->format('%y');
  if ($anio < $edadminima)
  {
    $error=+1;
    $textoerror.=" Fecha de Nacimiento.";
    $fechanacErr= '<span class="badge bg-red">No estas dentro del rango permitido de edades para estudiar en el CAM.</span>';
    echo '<script>history.back()</script>';
  }
  else
  {
    $fechanacErr= '<i class="img-circle fa fa-check bg-green" aria-hidden="true"></i>';
  }
}
  #fin fecha nacimiento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar