Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Imagen PHP problemas en actualización

Estas en el tema de Imagen PHP problemas en actualización en el foro de PHP en Foros del Web. Buen día, tengo el siguiente problema tengo un sistema que solicita nombre, apellido, telefono, email y FOTO. El problema radica cuando el administrador quiere actualizar ...
  #1 (permalink)  
Antiguo 12/06/2016, 16:41
 
Fecha de Ingreso: septiembre-2015
Ubicación: caracas
Mensajes: 75
Antigüedad: 8 años, 7 meses
Puntos: 0
Imagen PHP problemas en actualización

Buen día, tengo el siguiente problema tengo un sistema que solicita nombre, apellido, telefono, email y FOTO.

El problema radica cuando el administrador quiere actualizar un registro aparece toda la data que la capturo de la base de datos, pero no necesita actualizar la foto sino el numero telefónico por decir algo, cuando trato de actualizar me indica que el campo foto esta vacio perfecto es entendible el administrador debe de cargar nuevamente la foto, la idea es que no la cargue ya que dicho campo no lo quiere actualizar.

Como hago para que pueda registar sin actualizar la foto, pense en traer la ruta e indexar la misma al input pero nada si algun compañero me puede ayudar se lo agradeceria

aqui esta el php de actualización donde pueden observar que traigo todos los campos menos el valor de la foto - pero si coloque que muestre la foto, de antemano gracias

<?php


$server = "localhost";
$usuario = "root";
$contraseña = "";
$bd = "agenda";


$conexion = mysqli_connect($server,$usuario,$contraseña,$bd)
or die ("error en conexión favor verificar la conexión");

$nombres = $_POST['nombres'];

$consulta = mysqli_num_rows(mysqli_query($conexion,"SELECT nombres from agendap where nombres='$nombres'"));

if($consulta==0){
echo '<center><h1>No hay nombre registrado para actualizar';
echo '</br>';
echo '</br>';
echo '<center><a class="btn btn-primary btn-md" href="actualizar.html" role="button">Intentar actualizar nuevamente</a></center>';
echo '</br>';
echo '</center><br><br><br><br><br><br><br><footer><div class="container-fluid"><div class="col-xs-4" style="background-color:#2c3e50;"><h2>IT Knowledge House S.A. </h2></div></div></footer>';

return;

}

$consulta = (mysqli_query($conexion,"SELECT nombres,apellidos,correo,telf1,telf2,imagen from agendap where nombres='$nombres'"));

$extraer=mysqli_fetch_object($consulta);

?>

<div class="container">


<form action="actualizar2.php" method="POST" enctype="multipart/form-data" class="form-horizontal">
<div class="form-group">

<div class="col-md-3">

</div>

<label for="nombre" class="control-label col-md-1">Nombres:</label>
<div class="col-md-5">
<input class="form-control" type="text" name="nombres" value="<?php echo $extraer->nombres;?>"/>
</div>
<div class="col-md-3">

</div>
</div>



<div class="form-group">

<div class="col-md-3">

</div>

<label for="apellido" class="control-label col-md-1">Apellidos:</label>
<div class="col-md-5">
<input class="form-control" type="text" name="apellidos" value="<?php echo $extraer->apellidos;?>"/>
</div>
<div class="col-md-3">
</div>
</div>

<div class="form-group">

<div class="col-md-3">

</div>

<label for="email" class="control-label col-md-1">E_mail:</label>
<div class="col-md-5">
<input class="form-control" type="text" name="correo" value="<?php echo $extraer->correo;?>">
</div>

<div class="col-md-3">

</div>

</div>

<div class="form-group">

<div class="col-md-2">

</div>

<label for="telf1" class="control-label col-md-2">Telf-móvil:</label>
<div class="col-md-5">
<input class="form-control" type="text" name="telf1" value="<?php echo $extraer->telf1;?>"/>
</div>

<div class="col-md-3">

</div>

</div>


<div class="form-group">

<div class="col-md-3">

</div>

<label for="telf2" class="control-label col-md-1">Telf-fijo:</label>
<div class="col-md-5">
<input class="form-control" type="text" name="telf2" value="<?php echo $extraer->telf2;?>"/>

</div>

<div class="col-md-3">

</div>

</div>


<div class="form-group">

<div class="col-md-2">

</div>

<label for="archivo" class="control-label col-md-2">Foto personal:</label>

<div class="col-md-5">

<table width="562" border="0">
<tr>
<td width="315"> <input type="file" name="imagen" />
Máximo 100 kb en tamaño - Dimensiones 200x200</td>
<td width="200" height="200" rowspan="2"><center><img height="200px" src="data:imeg/jpg;base64,<?php echo base64_encode($extraer->imagen);?>"/></center></td>
</tr>

</table>

</div>

</div>

<center><div class="form-group">

<input type="button" value="Actualizar registro" onClick="validar()" class="btn btn-primary btn-md"> <input type="reset" value="Borrar actualización" button class="btn btn-success">
<button type="button" class="btn btn-info btn-md" data-toggle="modal" data-target="#myModal">Información</button>
__________________
ymanol caires z
  #2 (permalink)  
Antiguo 12/06/2016, 18:07
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Imagen PHP problemas en actualización

Estás mandando a llamar una función "validar" en JavaScript, la cuál no muestras y mucho menos es problema de éste foro.

Es de muuuuy pésima práctica guardar las imagenes como base64 directamente en la base de datos, veo que en la foto dice "máximo 100kb", ¿qué entran en esos 100kb? :O
Lo ideal sería guardar únicamente el nombre, y colocar manualmente la ruta general.

Sin poder ver dicha función (validar), con que elimines alguna validación que tengas antes de mandar a actualizar los datos bastaría
  #3 (permalink)  
Antiguo 12/06/2016, 20:15
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Imagen PHP problemas en actualización

Además no muestras en donde se hace la actualización de la tabla de la BD en el código que posteas y así queda difícil saber qué está fallando.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #4 (permalink)  
Antiguo 16/06/2016, 14:32
 
Fecha de Ingreso: septiembre-2015
Ubicación: caracas
Mensajes: 75
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Imagen PHP problemas en actualización

La idea no es caer en polémicas si es pregunta del foro o no la idea es sumar y no restar, aqui la solucionado.


AQUI ESTA LA VALIDACION ANTES DE ENVIAR AL ARCHIVO DE PHP PARA MODIFICAR LA DATA AQUI VARIA YA QUE TIENE QUE PREGUNTAR SI EL USUARIO CAMBIO O NO LA FOTO SI CAMBIO CHEQUE EXTENSION Y TAMAÑO


<!DOCTYPE html PUBLIC >
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>

<!-- transparencia de cajas y color de letras de input -->
<style>
.transparente {
background-color: transparent;
border: 1px solid #FFC;
color: #FFC;
}
</style>


<style>
textarea {
scrollbar-face-color: #5a5e66;
scrollbar-highlight-color: #666666;
scrollbar-shadow-color: #666666;
scrollbar-3dlight-color: #ffffc0;
scrollbar-arrow-color: #ffffc0;
scrollbar-track-color: #5a5e66;
scrollbar-darkshadow-color: #666666;
}
</style>

<script>
function validar(){

if(document.forms[0].id.value==""){
alert("El campo id esta vacio");
return false;
}

if(isNaN(document.forms[0].id.value)){
alert("el campo Id debe de contener datos numericos");
return false;
}

if(document.forms[0].id.value.length>8){
alert("El campo id no puede contener mas de 8 cifras");
return false;
}

if(document.forms[0].id.value.length<1){
alert("El campo id no puede menos de 1 cifras");
return false;
}

if(document.forms[0].id.value==0){
alert("El campo iid no puede tener un valor 0");
return false;
}

if(document.forms[0].id.value<0){
alert("El campo id no puede ser menos a 0");
return false;
}

var valor_txt = document.forms[0].id.value;
if (valor_txt % 1 == 0) { //verifica si es entero
}

else{

alert ("El campo id debe de ser un número entero");
return false;
}

/////////

if(document.forms[0].nombre.value==""){
alert("El campo nombre esta vacio");
return false;
}

var letras="qwertyuiopasdfghjklñzxcvbnm QWERTYUIOPASDFGHJKLÑZXCVBNMáéíóúÁÉÍÓÚ";
var texto=document.forms[0].nombre.value;
var bandera=true;

for(i=0;i<texto.length;i++){
ch=texto.charAt(i);
for(j=0;j<letras.length;j++){
if(ch==letras.charAt(j)){
break;
}

if(j==letras.length-1){
bandera=false;
break;
}
}
}

if(!bandera){
alert("El campo nombre solo debe de tener letras");
return false;
}

/////////

//if(document.forms[0].tipo.value=="Seleccione Tipo"){
//alert("debe seleccionar alguna tipo de mascota");
//return false;

//}

//////////////////////

//if(document.forms[0].raza.value=="Seleccione Raza"){
//alert("debe seleccionar alguna raza animal");
//return false;

//}

if(document.forms[0].sexo[0].checked==false && document.forms[0].sexo[1].checked==false){
alert("Debe de seleccionar algun sexo")
return false;

}

///////////////////

if(document.forms[0].imagen.value!=""){

var expr=/.(jpg)|(gif)|(png)|(jpeg)$/;
if(!expr.test(document.forms[0].imagen.value)){
alert("El campo imagen no posee alguna de estas extesiones: jpg - png - gif - jpeg");
return false;
}


var input = document.forms[0].imagen;
var file = input.files[0];
if (file.size > 102400) {
alert ("El archivo Imagen excede el tamaño de 100Kb");
return false;
}
}
////////////////

////fecha

if(document.forms[0].fecha.value==""){
alert("debe de escribir una fecha valida");
return false;
}

var fecha=new String(document.forms[0].fecha.value);

var realfecha=new Date();

var anno=new String(fecha.substring(fecha.lastIndexOf("/")+1,fecha.length));

var mes=new String(fecha.substring(fecha.indexOf("/")+1,fecha.lastIndexOf("/")));

var dia=new String(fecha.substring(0,fecha.indexOf("/")));

if(isNaN(anno)|| anno.length<4 || parseFloat(anno)<1900){
alert('año invalido');
return false;
}

if(isNaN(mes) || parseFloat(mes)<1 || parseFloat(mes)>12){
alert('mes invalido');
return false;
}

if(isNaN(dia) || parseFloat(dia, 10)<1 || parseInt(dia, 10)>31){
alert('dia invalido');
return false;
}

if(mes==4 || mes==6 || mes==9 || mes==11 || mes==2){
if(mes==2 && dia>28 || dia>30){
alert('dia invalido');
return false;
}
}



///nombre

if(document.forms[0].dnombre.value==""){
alert("El campo nombre esta vacio");
return false;
}

var letras="qwertyuiopasdfghjklñzxcvbnm QWERTYUIOPASDFGHJKLÑZXCVBNMáéíóúÁÉÍÓÚ";
var texto=document.forms[0].dnombre.value;
var bandera=true;

for(i=0;i<texto.length;i++){
ch=texto.charAt(i);
for(j=0;j<letras.length;j++){
if(ch==letras.charAt(j)){
break;
}

if(j==letras.length-1){
bandera=false;
break;
}
}
}

if(!bandera){
alert("El campo nombre solo debe de tener letras");
return false;
}

////cedula

if(document.forms[0].cedula.value==""){
alert("El campo cedula esta vacio");
return false;
}

if(isNaN(document.forms[0].cedula.value)){
alert("el campo cedula debe de contener datos numericos");
return false;
}

if(document.forms[0].cedula.value.length>8){
alert("El campo cedula no puede contener mas de 8 cifras");
return false;
}

if(document.forms[0].cedula.value.length<5){
alert("El campo cedula no puede menos de 5 cifras");
return false;
}

if(document.forms[0].cedula.value==0){
alert("El campo cedula no puede tener un valor 0");
return false;
}

var valor_txt = document.forms[0].cedula.value;
if (valor_txt % 1 == 0) { //verifica si es entero
}

else{

alert ("El campo cedula debe de ser un número entero");
return false;
}

document.forms[0].submit();

}
</script>



AQUI LES DEJO EL ARCHIVO DE PHP DONDE SE PREGUNTA SI LA IMAGEN ES NULA QUE CARGUE LOS DEMAS CAMPOS EN UN UPDATE Y SI LA IMEGEN ES DIFERENTE A NULA LA CARGA EN OTRO UPDATE


<!DOCTYPE html PUBLIC >
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>

<?php
include("menu.html");
include ('conexion.php');

$id=$_POST['id'];
$nombre=$_POST['nombre'];
$tipo=$_POST['tipo'];
$raza=$_POST['raza'];
$sexo=$_POST['sexo'];

$fecha=$_POST['fecha'];
$dnombre=$_POST['dnombre'];
$cedula=$_POST['cedula'];

$rutaEnServidor='imagenes';
$rutaTemporal=$_FILES['imagen']['tmp_name'];
$nombreImagen=$_FILES['imagen']['name'];
$rutaDestino=$rutaEnServidor.'/'.$nombreImagen;

// Pregunto si el usuario manda un archivo de imagen vacio y el usuario modifico otros campos guardo la data modificada de otros campos y excluyo en el UPDATE el campo imagen para que se mantenga la imagen anterior

if($_FILES["imagen"]["name"]=="") {


mysqli_query($conexion,"UPDATE mascota set id='$id',nombre='$nombre',tipo='$tipo',raza='$raza ',sexo='$sexo',fecha='$fecha',dnombre='$dnombre',c edula='$cedula' where id=$id")

or die ("<br><br><br><br><center><font color='#FFFF99'><h2>ERROR EN EL INTENTO DE MODIFICAR REGISTRO...</h2></font>
<br><br><a href='modificar.php'><input type='button' style='width:225px; height:25px'value='Seguir Registrando'><br><br><a href='index.php'><input type='button' style='width:225px; height:25px' value='Ir al menú'></center>");

mysqli_close($conexion);

echo '<br>';
echo '<br>';
echo '<br>';
echo '<br>';
echo '<br>';
echo '<center><font color="#FFFF99"><h2>REGISTRO MODIFICADO CORRECTAMENTE....</font></center>';
echo '<br>';
echo '<br>';
echo '<br>';
echo "<center><img src=''></center>";
echo '<br>';
echo '<br>';
echo '<center><font color="#FFFF99"><h2>Espere 4 segundos por favor mientras actualizamos....</font></center>';
echo '<meta http-equiv="refresh" content="4; URL=modificar.php">"';

// y el usuario subio una nueva imagen valido el tipo de archivo que se de imagenes

} else {

// agredo la imagen es decir el campo para insertar la nueva imagen

mysqli_query($conexion,"UPDATE mascota set id='$id',nombre='$nombre',tipo='$tipo',raza='$raza ',sexo='$sexo',imagen='$rutaDestino',fecha='$fecha ',dnombre='$dnombre',cedula='$cedula' where id=$id")

or die ("<br><br><br><br><center><font color='#FFFF99'><h2>ERROR EN EL INTENTO DE MODIFICAR REGISTRO...</h2></font>
<br><br><a href='modificar.php'><input type='button' style='width:225px; height:25px'value='Seguir Registrando'><br><br><a href='index.php'><input type='button' style='width:225px; height:25px' value='Ir al menú'></center>");

mysqli_close($conexion);

echo '<br>';
echo '<br>';
echo '<br>';
echo '<br>';
echo '<br>';
echo '<center><font color="#FFFF99"><h2>REGISTRO MODIFICADO CORRECTAMENTE....</font></center>';
echo '<br>';
echo '<br>';
echo '<br>';
echo "<center><img src=''></center>";
echo '<br>';
echo '<br>';
echo '<center><font color="#FFFF99"><h2>Espere 4 segundos por favor mientras actualizamos....</font></center>';
echo '<meta http-equiv="refresh" content="4; URL=modificar.php">"';

}

?>

Saludos
YC
__________________
ymanol caires z
  #5 (permalink)  
Antiguo 16/06/2016, 15:20
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Imagen PHP problemas en actualización

Pues validar algo SÓLO con javascript no es muy bueno, ya que como es del lado del cliente se puede pasar fácilmente.

¿Ves lo que te decía? No conocíamos la función validar y mucho menos posteaste tu archivo php. No es crear polémica, pero si hubieras publicado esto en el foro de JavaScript con la respectiva función, o aquí con el código de tu php, te hubiermos dado una mejor respuesta.

Validar algo así:

Código PHP:
Ver original
  1. if($foo == "")

En ocasiones no llega a bastar, debes usar la función empty() o isset(), o ambas.
Revisando los dos updates, no veo algo que haya cambiado salvo la sentencia sql, todo el demás código es exactamente lo mismo, ahí estás duplicando código basura.

En fin.
  #6 (permalink)  
Antiguo 16/06/2016, 15:36
 
Fecha de Ingreso: septiembre-2015
Ubicación: caracas
Mensajes: 75
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Imagen PHP problemas en actualización

Saludos amigo rodocoyote15 valoro todas tus opiniones, te comento lo coloque en el foro de java pero no tenian la idea de como hacerlo.

hoy antes de colocarlo aqui coloque el scritp solo de validar el tamaño del archivo en el foro de java y aqui en este foro lo coloque completo para que otro forista con el mismo problema ya lo tenga solucionado.

validar por PHP es más facil eso ya lo tengo solucionado ya que también puedo crear la validación en PHP, sobre los update el primero no recibe la imagen el segundo si ya que el usuario puede cambiar otros campos y no la imagen o cambiar los campos incluyendo la imagen o simplemente la imagen, de todos modos no he terminado y estoy trabajando sobre ello, todo puede ser mejorado amigo, gracias y feliz fin de semana estamos en contacto

Saludos rodocoyote15

Ymanol C
__________________
ymanol caires z

Etiquetas: html, mysql, registro, select, sql
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 12:05.