Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Formulario edición error

Estas en el tema de Formulario edición error en el foro de PHP en Foros del Web. Hola a todos, tengo una web que es informativa, entonces publico noticias a través de un formulario. Me anime a hacer un formulario de edición ...
  #1 (permalink)  
Antiguo 10/01/2015, 07:41
Avatar de maiksix  
Fecha de Ingreso: noviembre-2014
Ubicación: Sabadell
Mensajes: 124
Antigüedad: 9 años, 5 meses
Puntos: 1
Formulario edición error

Hola a todos,

tengo una web que es informativa, entonces publico noticias a través de un formulario.
Me anime a hacer un formulario de edición de las noticias para corregir o completar errores el cual funciona perfecto excepto en imágenes. El error es el siguiente:

-Cuelgo una noticia nueva (con el formulario normal) con una imagen (Imagen A).

Esta se muestra en el Home perfectamente, texto, imagen y todo.

Me doy cuenta que me he equivocado de foto y con el formulario de edición recupero desde la BD todo de la noticia que he colgado excepto las imágenes y el pdf (si hay), en el formulario de edición decido que el texto esta perfecto así que no lo toco, simplemente añado una nueva imagen (imagen B) en la posición de la imagen A, guardo el formulario y se publica.

Al ir a la web, el texto y todo se ve perfecto excepto la imagen que no se abre...

Pensando que se trata de un error al guardar la imagen, copio la dirección para ver si ha modificado la dirección o si quizás esta tratando de abrir la imagen A, pero mi sorpresa es que la dirección apunta a la B con lo que debería abrirla.

Hago una prueba, concretamente la siguiente: Vuelvo a editar la noticia, igual que anteriormente pero solo modifico y cambio la imagen B por la A, y al publicarla TACHAN! se ve la maldita imagen A...

No se a que puede ser debido ya que la dirección de la imagen es correcta en todo momento...

Adjunto el código para que sea más fácil.

Formulario de edicion:
Código:
<?php
include("mysqlcon.php");
?>
<html>
	<head>
        <link href='http://eskarting.es/Pruebas/Imagenes/eskarting.ico' rel='shortcut icon' type='image/x-icon'>
        <link href="style.css" rel="stylesheet" type="text/css" />
      <meta name="tipo_contenido"  content="text/html;" http-equiv="content-type" charset="utf-8">
	</head>
	<body style="background:url('Imagenes/MRM_213.jpg'); width:100%; height:auto; margin-top:0px">
		<div id="content" style="background:#64427B;width:1024px; height:auto;padding-bottom:100px ;margin-left:auto;margin-right:auto;padding-left: 50px;padding-right: 50px;">
		<table style="width:1024px">
			<center>
                        <tr>
				<td style="margin-left: 30 px">
					
                                        <a href="index.php"><img style="margin-top:15px; margin-left:270px;" alt="No se puede abrir esta imagen." title="Eskarting" src="Imagenes/Logo-eskarting.png"/></a>
				</td>
                                
			</tr>
                        </center>
		</table>
<table>
                                                        
								<tr>
									<td>
							<?php
							$consulta = "SELECT *
                                                            FROM Articles
                                                            WHERE id =".$_GET['idNoticia'];
                                                $result = mysql_query($consulta,$con);
                                                while($row = mysql_fetch_array($result)){
                                                $variable = explode ('/',$row['fecha']);
                                                $foto = $row['timestamp']."_".$row['imagen1'];
                                                $foto2 = $row['timestamp']."_".$row['imagen2'];
                                                            
echo "<form name='formulario' method='post' action='resultadosEdicion.php' enctype='multipart/form-data'>";
echo "<b>Circuito y campeonato</b>:<br><textarea style='width:400px;' type='text' name='Categoria'>".$row['categoria']."</textarea><br>";

echo "<br><b>Fecha (yyyy/mm/dd)</b>:<br><textarea style='width:400px;' id='fecha' type='text' name='Fecha'>".$row['fecha']."</textarea><br>";
echo "<br><b>A&ntilde;o</b>:<br><textarea style='width:400px;' type='text' name='Ano'>".$row['Ano']."</textarea><br>";
echo "<br><b>Titulo</b>:<br><textarea style='width:400px;' type='text' maxlength='35' name='Titulo'>".$row['titulo']."</textarea><br>";
echo "<br><b>Premium?</b>:<input size='40' type='checkbox' name='Premium' value='Premium'>La noticia es premium<br><br>";
    
echo "<b>Sección</b>: <select name='seccion'>
             <option value='Internacional'>Internacional</option>
             <option value='Nacional'>Nacional</option>
             <option value='Autonomico'>Autonomico</option>
             <option value='Exkartistas'>Exkartistas</option>
             </select><br>";

echo "<br><b>Texto</b>:<br><textarea name='texto' required>".$row['texto']."</textarea><br>";

echo "<br><b>Foto</b>:<br><input type='hidden' name='MAX_FILE_SIZE' value='4194304'/>";
echo "<div id='imagen1'><input name='imagen1' type='file'/><br></div><br>";
echo "<div id='imagen2'><input name='imagen2' type='file'/><br></div>";

echo "<br><b>PDF</b>:<br>";
echo "<div id='pdf'><input name='pdf' type='file'/><br></div><br>";

echo "<b>Estado</b>: <select name='estado'>
             <option value='Borrador'>Borrador</option>
             <option value='Publicado'>Publicado</option>
             </select><br><br>";
			 
echo "<input type='hidden' name='idNoticia' value='".$_GET['idNoticia']."'></input>";
                                                      
echo "<input id='botoninput' type='submit' value='Guardar'></input>";
        
	
echo "</form>";        
							}
							?>
                                                                        </td>
								</tr>
                                                        
							</table>
		</div>
	</body>
</html>
Formulario para guardar la noticia editada:

Código:
<head>
    <meta content="text/html;" http-equiv="content-type" charset="utf-8">
	<script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
	<script>
			tinymce.init({selector:'textarea'});
	</script>
	<link rel=StyleSheet href="style.css" type="text/css" media=screen>
    </head>
<body>
<table>
        <tr>
            <td>
            <p style="margin-right:20px;"><a href ="index.php"><b>Ir a la web</b></href></p>
            </td>
            <td>
            <p style="margin-right:20px;"><a href ="formulario_noticias.php"><b>Formulario noticias</b></href></p>
            </td>
            <td>
           <p style="margin-right:20px;"><a href ="formulario_video.php"><b>Formulario videos</b></href></p>
            </td>
            <td>
            <p style="margin-right:20px;"><a href ="formulario_calendarios.php"><b>Formulario calendarios</b></href></p>
            </td>
            <td>
            <p style="margin-right:20px;"><a href ="formulario_clasificaciones.php"><b>Formulario clasificaciones</b></href></p>
            </td>
            <td>
            <p style="margin-right:20px;"><a href ="formulario_calendarios_historicos.php"><b>Formulario subir pdf calendarios (archivo historico)</b></href></p>
            </td>
			<td>
            <p style="margin-right:20px;"><a href ="editar_noticias.php"><b>Edición de noticias</b></href></p>
            </td>
        </tr>
</table> 
</body>
<?php
include("mysqlcon.php");

$fecha = time()+3600;


$condPdf = "";

if($_FILES['imagen1']['name']!=""){
	$imagen1 = $_FILES['imagen1']['name'];
	move_uploaded_file($_FILES['imagen1']['tmp_name'], 'ImagenesNoticias/'.$fecha."_".$_FILES['imagen1']['name']);
}

if($_FILES['imagen2']['name']!=""){
	$imagen2 = $_FILES['imagen2']['name'];
	move_uploaded_file($_FILES['imagen2']['tmp_name'], 'ImagenesNoticias/'.$fecha."_".$_FILES['imagen2']['name']);
}

if($_FILES['pdf']['name']!=""){
	$pdf = $_FILES['pdf']['name'];
	move_uploaded_file($_FILES['pdf']['tmp_name'], 'pdf/'.$fecha."_".$_FILES['imagen2']['name']);
	$condPdf = ",pdf=".$pdf;
}

$insert = "UPDATE Articles SET titulo='".$_POST['Titulo']."',texto='".$_POST['texto']."',Ano='".$_POST['Ano']."',imagen1='".$imagen1."',imagen2='".$imagen2."', categoria='".$_POST['Categoria']."', fecha='".$_POST['Fecha']."', seccion='".$_POST['seccion']."', premium='".$_POST['Premium']."'".$condPdf.",estado_noticia='".$_POST['estado']."'
           WHERE id ='".$_POST['idNoticia']."'";
		   
//echo $insert;

//echo "<textarea>".$insert."</textarea>";
if($result = mysql_query($insert,$con)){
	echo "Noticia guardada correctamente";
}else{
	echo "No se ha podido guardar la noticia";
}

?>
Muchas gracias amigos y perdón por la longitud del post, pero es que voy muy perdido
__________________
Going hard for too long... Can't get enough
  #2 (permalink)  
Antiguo 18/01/2015, 10:10
Avatar de maiksix  
Fecha de Ingreso: noviembre-2014
Ubicación: Sabadell
Mensajes: 124
Antigüedad: 9 años, 5 meses
Puntos: 1
Respuesta: Formulario edición error

Ya lo he solucionado

Dejo aquí la solución por si acaso alguien tiene un problema similar:

Resulta que estaba cambiando el nombre de la imagen al subir una nueva, pero también el timestamp que asignaba a este, con lo que la noticia tenia uno y la nueva imagen otro y no hacían el correspondiente matching, creando error...

Gracias :)
__________________
Going hard for too long... Can't get enough

Etiquetas: edición, fecha, formulario, html, mysql, select, sql, variable
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 21:26.