Foros del Web » Programando para Internet » PHP »

Guarda todo en la bd menos la ruta de la imagen

Estas en el tema de Guarda todo en la bd menos la ruta de la imagen en el foro de PHP en Foros del Web. Hola. Tengo el siguiente problema. Hice un sistema de noticias donde guardo en la bd el Titulo, Copete,Noticia, etc y no tego problema con eso. ...
  #1 (permalink)  
Antiguo 24/03/2011, 07:12
 
Fecha de Ingreso: marzo-2011
Mensajes: 2
Antigüedad: 13 años, 1 mes
Puntos: 0
Guarda todo en la bd menos la ruta de la imagen

Hola. Tengo el siguiente problema. Hice un sistema de noticias donde guardo en la bd el Titulo, Copete,Noticia, etc y no tego problema con eso. Quise agregarle tambien uan iagen a la noticia, despues intentar hacerlo por mismo busque un script y encontre uno que hacia lo que queria. El tema es q por separado eset script si gaurda la ruta en una base de datos pero una vez integrado ya no. Que es lo que puede esatr mal? Aca dejo el codigo.

<?PHP
include ("conectar.php");
if (isset($_POST['enviar'])) { //Se comprueba si el boton enviar ha sido pulsado
if (!empty($_POST['titulo']) && !empty($_POST['noticia']) && !empty($_POST['copete']) && !empty($_POST['categoria'])) { //Se comprueba si los campos no estan vacios

//Imagenes

error_reporting(0);

$change="";
$abc="";


define ("MAX_SIZE","400");
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}

$errors=0;

if($_SERVER["REQUEST_METHOD"] == "POST")
{
$image =$_FILES["file"]["name"];
$image = str_replace(" ","_",$image);
$prefijo = substr(md5(uniqid(rand())),0,8);
$uploadedfile = $_FILES['file']['tmp_name'];
$size=filesize($_FILES['file']['tmp_name']);


if ($image)
{

$filename = stripslashes($_FILES['file']['name']);

$extension = getExtension($filename);
$extension = strtolower($extension);


if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif"))
{

$change='<div class="msgdiv">Unknown Image extension </div> ';
$errors=1;
}
else
{

$size=filesize($_FILES['file']['tmp_name']);


if ($size > MAX_SIZE*1024)
{
$change='<div class="msgdiv">You have exceeded the size limit!</div> ';
$errors=1;
}


if($extension=="jpg" || $extension=="jpeg" )
{
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefromjpeg($uploadedfile);

}
else if($extension=="png")
{
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefrompng($uploadedfile);

}
else
{
$src = imagecreatefromgif($uploadedfile);
}

echo $src;

list($width,$height)=getimagesize($uploadedfile);


$newwidth=624;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);


$newwidth1=125;
$newheight1=($height/$width)*$newwidth1;
$tmp1=imagecreatetruecolor($newwidth1,$newheight1) ;

imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$ne wheight,$width,$height);

imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$ newheight1,$width,$height);


$filename = "images/".$prefijo."_".$image;

$filename1 = "images/small/".$prefijo."_".$image;


imagejpeg($tmp,$filename,100);

imagejpeg($tmp1,$filename1,100);

imagedestroy($src);
imagedestroy($tmp);
imagedestroy($tmp1);
}}

}

//If no errors registred, print the success message
if(isset($_POST['Submit']) && !$errors)
{

$change=' <div class="msgdiv">Image Uploaded Successfully!</div>';
}

//fin imagenes


$sql = "INSERT INTO `noticias` (titulo,copete,noticia,categoria,fuente,foto,autor ) values"; //Definimos el codigo para...
$sql.= "('".$_POST['titulo']."','".$_POST['copete']."','".$_POST['noticia']."','".$_POST['categoria']."','".$_POST['fuente']."','$filename','Admin')"; //...Ingresar los datos del formulario en la DB

if (mysql_query($sql)) { //Aquí se ingresa y se comprueba si se ha ingresado bien
echo "Noticia Enviada Correctamente";
} else { //Si algo ha fallado
echo "Ha ocurrido un error, no se ha procesado la noticia";
}
} else { //Si faltan campos por completar
echo "La noticia no se ha enviado, completa el formulario";
}
} else { ?>
<form action="enviar.php" method="POST">
Titulo:<br />
<input name="titulo" type="text" value="Titulo de la noticia" size="60"><br>
Copete:<br />
<input name="copete" type="text" value="Copete" size="60"><br>
Noticia:<br />
<textarea name="noticia" cols="60" rows="10">El texto de la noticia</textarea><br>
Categoria:<br />
<select name="categoria" id="categoria">
<option>PHP</option>
<option>MySql</option>
<option>CSS</option>
<option>AJAX</option>
<option>Seguridad</option>
</select><br>
Fuente:<br />
<input name="fuente" type="text" value="Fuente" size="60"><br>
Foto:<br />
<input size="25" name="file" type="file" /><br>
<input type="submit" name="enviar" value="Enviar Noticia">
</form>
<? } ?>
</body>
</html>
  #2 (permalink)  
Antiguo 24/03/2011, 07:34
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Guarda todo en la bd menos la ruta de la imagen

Hola hay varias cosas:

en el form te falta enctype="multipart/form-data"

cambia type="file" por type="image"

antes de $sql hace un var_dump($filename);

para saber si el path de la imagen esta bien.

son varias cosas las que tenes que verificar.
  #3 (permalink)  
Antiguo 29/03/2011, 21:57
 
Fecha de Ingreso: marzo-2011
Mensajes: 2
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Guarda todo en la bd menos la ruta de la imagen

Gracias Patriarka por tu pronta respuesta.
Ya realice las 2 primeras modificacioens q me sugeriste y todo sigue igual.
Con respectoa la tercera, utilice un "echo $filename" para que me mostrara la ruta donde gaurdaba las imagenes y es la correcta.
Asi que no se que es lo que no me permite guardar la direccion de onde gaurdo las imagenes en la base de datos.

Alguna otra sugerencia?

Desde ya muchas gracias

Etiquetas: bd, menos, ruta, todo
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:46.