Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2010, 14:47
Avatar de TheRD
TheRD
 
Fecha de Ingreso: junio-2009
Mensajes: 120
Antigüedad: 14 años, 10 meses
Puntos: 0
Error en el mismo formulario

Tengo dos formularios de subida exactamente iguales, solo cambia el nombre del name del archivo ._. y no logro hacer que funcione el segundo.

El que funciona:
Código PHP:
                    case 'avatar'//Falta comprobar tamaños de avatar
                        
$e_id $_POST['edit_uid'];
                        
secure_vars_spec($e_id);
                        
$ed_id mysql_real_escape_string($e_id);

                        if(
$_POST){
                            
$str "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
                            
$cad "";
                            for(
$i=0;$i<12;$i++) {
                                
$cad .= substr($str,rand(0,62),1);
                            }
                            
$tamano $_FILES 'ava_user_edit' ][ 'size' ]; // Leemos el tamaño del fichero
                            
$tamano_max="30000"// Tamaño máximo permitido
                            
if( $tamano $tamano_max){ // Comprobamos el tamaño 
                                
$destino 'images/avatars/upload' // Carpeta donde se guardará
                                
$sep=explode('image/',$_FILES["ava_user_edit"]["type"]); // Separamos image/
                                
$tipo=$sep[1]; // Obtenemos el tipo de imagen que es
                                
if($tipo == "gif" or $tipo == "jpeg" or $tipo == "png"){
                                    
move_uploaded_file $_FILES 'ava_user_edit' ][ 'tmp_name' ], $destino '/' .$cad.'.'.$tipo);
                                    
$avatar_root $destino '/' $cad '.' $tipo;
                                    
mysql_query("UPDATE users SET user_avatar='$avatar_root' WHERE user_id='$ed_id'");
                                    
Header("Location: users?mode=edit&tab=avatar&updated=true");
                                }else{ 
                                    
Header("Location: users?mode=edit&tab=avatar&updated=no_perm_ava_type");
                                }
                            }else{
                                
Header("Location: users?mode=edit&tab=avatar&updated=max_size_ava");
                            }
                        }else{
                            
Header("Location: users?mode=edit&tab=avatar&updated=no_file_ava");
                        }
                    break;

                    default:
                        
Header("Location: users?mode=edit&tab=main");
                }
            }
        }else{
            
Header("Location: users?mode=login");
        }
    break; 
El que no funciona:
Código PHP:
    case 'added':
        
$a_title $_POST['anime_title'];
        
$a_story $_POST['anime_story'];
        
$a_capis $_POST['capis_anime'];
        
$a_genre $_POST['anime_genre'];
        
$a_img $_FILES['img_anime'];
        
$a_uid $_POST['uid'];

        if (!empty(
$a_title) or !empty($a_story) or !empty($a_capis) or !empty($a_genre) or !empty($a_img) or !empty($a_uid)){
            
secure_vars_spec($a_title);
            
secure_vars_spec($a_story);
            
secure_vars_spec($a_capis);
            
secure_vars_spec($a_genre);
            
secure_vars_spec($a_uid);
            
$a_title mysql_real_escape_string($a_title);
            
$a_story mysql_real_escape_string($a_story);
            
$a_capis mysql_real_escape_string($a_capis);
            
$a_genre mysql_real_escape_string($a_genre);
            
$a_uid mysql_real_escape_string($a_uid);

            
$a_title_url ereg_replace("[^A-Za-z0-9]""-"$a_title);
            
# La función ereg_replace reemplaza todos lo que no sea números o letras
            
$a_title_url strtolower($a_title_url);
            
# strtolower transforma todo en minúsculas

            
$search_anime mysql_query("SELECT title FROM anime_series WHERE title='$a_title'");
            if (
$search_ok mysql_fetch_array($search_anime)){
                
Header("Location: anime?mode=add&error=double");
            }else{
                
$tamano $_FILES 'img_anime' ][ 'size' ]; // Leemos el tamaño del fichero
                
$tamano_max="100000"// Tamaño máximo permitido (100KiB)
                
if( $tamano $tamano_max){ // Comprobamos el tamaño 
                    
$destino 'images/anime/upload' // Carpeta donde se guardará
                    
$sep=explode('image/',$_FILES['img_anime']['type']); // Separamos image/
                    
$tipo=$sep[1]; // Obtenemos el tipo de imagen que es
                    
if($tipo == "gif" or $tipo == "jpeg" or $tipo == "png"){
                        
move_uploaded_file $_FILES 'img_anime' ][ 'tmp_name' ], $destino '/' .$a_title_url.'.'.$tipo);
                        
$a_img_root $destino '/' $name '.' $tipo;
                        
mysql_query("INSERT INTO anime_series (user_id,title,url_title,story,genero,img_anime,rating,chapters,approved) values ('$a_uid','$a_title','$a_title_url','$a_story','$a_genre','$a_img_root','0','$a_capis','0')") or die(mysql_error());
                        
Header("Location: anime?mode=add&error=true");
                    }else{ 
                        
Header("Location: anime?mode=add&error=no_perm_img_type");
                    }
                }else{
                    
Header("Location: anime?mode=add&error=max_size_img");
                }
            }
        }else{
            
Header("Location: anime?mode=add&error=empty");
        }
    break; 
Y me salta aquí: Header("Location: anime?mode=add&error=no_perm_img_type"); a que el tipo no está permitido, como podréis ver el formulario no cambia nada significativo, pero el primero sube imágen y el segundo no. Tienen los permisos CHMOD bien puestos las carpetas.

Última edición por TheRD; 21/01/2010 a las 14:55 Razón: SOLUCIONADO