Foros del Web » Programando para Internet » PHP »

Que puedo tener mal en este codigo

Estas en el tema de Que puedo tener mal en este codigo en el foro de PHP en Foros del Web. Hola este sodigo me inserta datos en la base de datos, el caso esque inserto los campo todos bien incluida la imagen (elegida con un ...
  #1 (permalink)  
Antiguo 26/05/2009, 10:16
 
Fecha de Ingreso: diciembre-2007
Mensajes: 121
Antigüedad: 16 años, 4 meses
Puntos: 0
Exclamación Que puedo tener mal en este codigo

Hola este sodigo me inserta datos en la base de datos, el caso esque inserto los campo todos bien incluida la imagen (elegida con un file) y me dice que la imagen no esta insertada, me he revisado el codigo pero no veo nada asi que sea anormal, me lo podeis hechar un vistazo?? Gracias.

<?php
include_once("conexion.php");
include_once("imagenes.php" );

$ruta = $_FILES['imagen']['name'];
$rutatemp = $_FILES['imagen']['tmp_name'];
$ruta= str_replace(" ", "", $ruta);
$tipo= $_FILES['imagen']['type'];
$tamano = $_FILES['imagen']['size'];
if(!((strpos($tipo, "gif") || strpos($tipo, "jpeg")) && ($tamano < 100000))) {
echo 'La extensión o el tamaño de los archivos no es correcta';
}
else
{
$destino = "upload/{$ruta}";
move_uploaded_file($rutatemp,$destino);
crearThumb( $destino, $destino, 120, true );
}
?>
</p>
<p>
<?php
if (isset($_POST[enviar])) {
if(!$_POST[titulo]){
$error .='- El campo titulo es obligatorio <br><br>';
}
if(!$_POST[descri]){
$error .='- El campo descripción es obligatorio.<br><br>';
}
if (!$_POST[fecha]){
$error .='- El campo fecha es obligatorio.<br><br>';

}
if(!$_POST[textolargo]){
$error .='- El campo descripción larga es obligatorio.<br><br>';
}
if (!$_POST[imagen]){
$error .='-El campos imagen es obligatorio.<br><br>';
}
if(count($error)==0) {
$error.='La noticia ha sido insertada correctamente';
$cnn=mysql_connect($hostname,$username,$password) or die (mysql_error());
mysql_select_db($database,$cnn);
$insertSQL="insert into noticias(id_noticia,titulo,descripcion,texto_largo ,fecha,hora,imagen,quien)VALUES('".
$_REQUEST['idnoticia']."','".
$_REQUEST['titulo']."','".
$_REQUEST['descri']."','".
$_REQUEST['textolargo']."','".
$_REQUEST['fecha']."','".
$_REQUEST['hora']."','".
$ruta."','".
$_REQUEST['quien']."')";
$Result1=mysql_query($insertSQL,$cnn) or die (mysql_error());
mysql_close($cnn);
}
}
  #2 (permalink)  
Antiguo 26/05/2009, 10:40
 
Fecha de Ingreso: enero-2009
Mensajes: 455
Antigüedad: 15 años, 2 meses
Puntos: 11
Respuesta: Que puedo tener mal en este codigo

ya trataste de imprimir el valor que trae tu varible ruta para probar??
  #3 (permalink)  
Antiguo 26/05/2009, 10:49
 
Fecha de Ingreso: diciembre-2007
Mensajes: 121
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Que puedo tener mal en este codigo

Si y nada, me sigue saliendo q la imagen se inserto correctamente, cuando esta insertada, y encima no me la inserta en la bd, puede ser por el campo de imagen al ser un file??
  #4 (permalink)  
Antiguo 26/05/2009, 11:35
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Que puedo tener mal en este codigo

El problema es que te salta este error, ¿no?
Código PHP:
if (!$_POST[imagen]){
$error .='-El campos imagen es obligatorio.<br><br>';

Prueba a quitar esa condición y a usar esta otra:
Código PHP:
if ( !is_uploaded_file$_FILE['imagen']['tmp_name'] ) ) 
De hecho, yo comprobaría que la imagen está subida antes de tratarla.

Veo por tu código que estás usando la función crearThumb que publiqué en otro tema. Me alegro de que te esté sirviendo ;)
  #5 (permalink)  
Antiguo 26/05/2009, 11:40
 
Fecha de Ingreso: octubre-2008
Mensajes: 71
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Que puedo tener mal en este codigo

los permisos de la carpeta estan bien??

que error especifico lanza?

aunque me preocuparia mas de la seguridad en ese codigo en todo caso.

salud2
  #6 (permalink)  
Antiguo 26/05/2009, 11:51
 
Fecha de Ingreso: diciembre-2007
Mensajes: 121
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Que puedo tener mal en este codigo

Con esa condicion tampoco, errores no me salen, solo que me dice que hay que insertar una imagen cuando ya esta insertada, y claro no me lo sube al servidor, sin embargo si kito la condicion va perfecto!!!!
  #7 (permalink)  
Antiguo 26/05/2009, 11:55
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Que puedo tener mal en este codigo

La condición que te he dicho has de ponerla antes de tratar la imagen. Es decir, antes de esto:
Código PHP:
$ruta $_FILES['imagen']['name']; 
Si is_uploaded_file devuelve true entonces tratas la imagen, si no das el error.
  #8 (permalink)  
Antiguo 26/05/2009, 11:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 71
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Que puedo tener mal en este codigo

pero no veo un echo diciendo "que hay que insertar una imagen "

podrias especificar la condicion

gracias
  #9 (permalink)  
Antiguo 26/05/2009, 12:33
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Que puedo tener mal en este codigo

NO se si sea esto
if(!((strpos($tipo, "gif") || strpos($tipo, "jpeg")) && ($tamano < 100000)))

Deberia ser algo asi como
if(!((strpos($tipo, "gif")!==false || strpos($tipo, "jpeg")!==false) && ($tamano < 100000)))

Ya que puede regresar la posicion 0 y puede ser tratada como false
__________________
No todo lo que se hace en segundo plano es AJAX
  #10 (permalink)  
Antiguo 26/05/2009, 12:35
 
Fecha de Ingreso: octubre-2008
Mensajes: 71
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Que puedo tener mal en este codigo

dificilmente un archivo se pueda llamar jpg sin nada mas por eso noc reo que lanze possicion cero

al<menos q se llame jpg.jgg :S aunke no falta ujau

strpos($tipo, "gif",1) ahi te aseguras que no sea 0 ni q empieze con jpg.jpg
  #11 (permalink)  
Antiguo 26/05/2009, 12:40
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Que puedo tener mal en este codigo

Cita:
Iniciado por MegaZord Ver Mensaje
dificilmente un archivo se pueda llamar jpg sin nada mas por eso noc reo que lanze possicion cero

al<menos q se llame jpg.jgg :S aunke no falta ujau

strpos($tipo, "gif",1) ahi te aseguras que no sea 0 ni q empieze con jpg.jpg
No esta en el nombre esta en $tipo. que es el tipo mime del archivo(si lo tiene)
__________________
No todo lo que se hace en segundo plano es AJAX
  #12 (permalink)  
Antiguo 26/05/2009, 12:42
 
Fecha de Ingreso: octubre-2008
Mensajes: 71
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Que puedo tener mal en este codigo

a ok ok

mmm entonces lo mas seguro que pda regresar un cero o no?

aunque creo que el tipo depende mucho del navegador, y es vulnerable creo yo.
  #13 (permalink)  
Antiguo 27/05/2009, 03:51
 
Fecha de Ingreso: diciembre-2007
Mensajes: 121
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Que puedo tener mal en este codigo

He intentado hacer esto, q me lo he encontrado por ahi, pero al no insertar una imagen no me muestra el mensaje, me muestran todos los mensajes menos el de la imagen, asi no me podria funcionar?

if (isset($_POST[enviar])) {
if(!$_POST[titulo]){
$error .='- El campo titulo es obligatorio <br><br>';
}
if(!$_POST[descri]){
$error .='- El campo descripción es obligatorio.<br><br>';
}
if (!$_POST[fecha]){
$error .='- El campo fecha es obligatorio.<br><br>';

}
if(!$_POST[textolargo]){
$error .='- El campo descripción larga es obligatorio.<br><br>';
}
if (empty($file['imagen']['name'])) {
$error .'- La imagen es obligatoria.<br><br>';
}
  #14 (permalink)  
Antiguo 27/05/2009, 04:44
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Que puedo tener mal en este codigo

Cita:
Iniciado por Zarkiria Ver Mensaje
if (empty($file['imagen']['name'])) {
$error .'- La imagen es obligatoria.<br><br>';
} [/B]
Sería con $_FILE y, además, la línea está mal. Tienes esto:
Código PHP:
$error .'- La imagen es obligatoria.<br><br>'
Y sería esto:
Código PHP:
$error .='- La imagen es obligatoria.<br><br>'
De todas formas, te complicas demasiado. Lo que deberías hacer es usar el is_uploaded_file al tratar la imagen de esta forma:
Código PHP:
if ( is_uploaded_file$_FILE['imagen']['tmp_name'] ) ) {
//Aquí tratas la imagen, la subes, haces el thumbnail...
} else {
$error .='- La imagen es obligatoria.<br><br>';

  #15 (permalink)  
Antiguo 27/05/2009, 04:58
 
Fecha de Ingreso: diciembre-2007
Mensajes: 121
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Que puedo tener mal en este codigo

Asi?

if (isset($_POST[enviar])) {
if(!$_POST[titulo]){
$error .'- El campo titulo es obligatorio <br><br>';
}
if(!$_POST[descri]){
$error .'- El campo descripción es obligatorio.<br><br>';
}
if (!$_POST[fecha]){
$error .'- El campo fecha es obligatorio.<br><br>';
}
if(!$_POST[textolargo]){
$error .'- El campo descripción larga es obligatorio.<br><br>';
}
if ( is_uploaded_file( $_FILE['imagen']['tmp_name'] ) ) {
$destino = "upload/{$ruta}";
move_uploaded_file($rutatemp,$destino);
crearThumb( $destino, $destino, 120, true );
}
else
{
$error .'- La imagen es obligatoria.<br><br>';
}
  #16 (permalink)  
Antiguo 27/05/2009, 05:10
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Que puedo tener mal en este codigo

Sigues teniendo esto:
Código PHP:
$error .'- La imagen es obligatoria.<br><br>'
Te falta la asignación en sí (=). Es decir, así:
Código PHP:
$error .= '- La imagen es obligatoria.<br><br>'
Además, en esta versión no tienes definidas las variables $ruta ni $rutatemp: ten eso también en cuenta.
  #17 (permalink)  
Antiguo 28/05/2009, 02:32
 
Fecha de Ingreso: diciembre-2007
Mensajes: 121
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Que puedo tener mal en este codigo

Nose que es lo que estoy haciendo, lo tengo tal y cm me has dicho (las variables $ruta y $rutatemp las tengo definidas mas arriba) y me sigue mostrando q inserte una imagen cnd ya esta insertada, q leches pasa???

if (isset($_POST[enviar])) {
if(!$_POST[titulo]){
$error .='- El campo titulo es obligatorio <br><br>';
}
if(!$_POST[descri]){
$error .='- El campo descripción es obligatorio.<br><br>';
}
if (!$_POST[fecha]){
$error .='- El campo fecha es obligatorio.<br><br>';
}
if(!$_POST[textolargo]){
$error .='- El campo descripción larga es obligatorio.<br><br>';
}
if ( is_uploaded_file( $_FILES['imagen']['tmp_name'] ) ) {
$destino = "upload/{$ruta}";
move_uploaded_file($rutatemp,$destino);
crearThumb( $destino, $destino, 120, true );
}
else
{
$error .='- La imagen es obligatoria.<br><br>';
}
if(count($error)==0) {
$error.='La noticia ha sido insertada correctamente';
$cnn=mysql_connect($hostname,$username,$password) or die (mysql_error());
mysql_select_db($database,$cnn);
$insertSQL="insert into noticias(id_noticia,titulo,descripcion,texto_largo ,fecha,hora,imagen,quien)VALUES('".
$_REQUEST['idnoticia']."','".
$_REQUEST['titulo']."','".
$_REQUEST['descri']."','".
$_REQUEST['textolargo']."','".
$_REQUEST['fecha']."','".
$_REQUEST['hora']."','".
$ruta."','".
$_REQUEST['quien']."')";
$Result1=mysql_query($insertSQL,$cnn) or die (mysql_error());
mysql_close($cnn);
}
}
  #18 (permalink)  
Antiguo 28/05/2009, 03:40
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Que puedo tener mal en este codigo

Prueba a sustituir todos los $_FILES por $_FILE.
  #19 (permalink)  
Antiguo 28/05/2009, 03:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 121
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Que puedo tener mal en este codigo

Nada, tampoco, esto es muy mosqueante...mmmm
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 18:14.