Foros del Web » Programando para Internet » PHP »

Problema al ingresar datos en base de datos

Estas en el tema de Problema al ingresar datos en base de datos en el foro de PHP en Foros del Web. Hola amigos de FDW!! estoy modificando un código para subir archivos, que lo saqué de este foro hace tiempo y actualmente lo uso para subir ...
  #1 (permalink)  
Antiguo 05/02/2013, 23:06
 
Fecha de Ingreso: febrero-2010
Mensajes: 107
Antigüedad: 14 años, 2 meses
Puntos: 0
Problema al ingresar datos en base de datos

Hola amigos de FDW!! estoy modificando un código para subir archivos, que lo saqué de este foro hace tiempo y actualmente lo uso para subir imágenes, pero ahora que lo quiero para subir mp3 me está dando problemas

El código en cuestión es este:
Código PHP:
include ('../acceso_db.php');
session_start();

$nombre $_POST['nombre'];
if(isset(
$_POST['nombrealbum'])){
    
$album $_POST['nombrealbum'];
}else{
    if(isset(
$_POST['album'])){
    
$album $_POST['album'];
    }else{
    
$album "general";
     }
    
if(
is_uploaded_file ($_FILES 'file' ][ 'tmp_name' ])){
 if(
$_POST){ 
// Creamos la cadena aletoria 
$str "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"
$cad ""
for(
$i=0;$i<12;$i++) { 
$cad .= substr($str,rand(0,62),1); 

// Fin de la creacion de la cadena aletoria 
$tamano $_FILES 'file' ][ 'size' ]; // Leemos el tamaño del fichero 
$tamaño_max="100000000000"// Tamaño maximo permitido 
if( $tamano $tamaño_max){ // Comprobamos el tamaño  
$ruta "{$_SERVER['DOCUMENT_ROOT']}/canciones/{$_SESSION['usuario_id']}/{$album}/";

$ruta "{$_SERVER['DOCUMENT_ROOT']}/canciones/{$_SESSION['usuario_id']}";
$perfil '/{$album}';
if(!
file_exists($ruta))
{
$oldumask umask(0); 
mkdir ($ruta);
mkdir ($ruta $perfil);
umask($oldumask); 
}
$destino $ruta $perfil// Carpeta donde se guardara 
$sep=explode('image/',$_FILES["file"]["type"]); // Separamos image/ 
$tipo=$sep[1]; // Optenemos el tipo de imagen que es 
if($tipo == "mp3" || $tipo == "wav" || $tipo == "wma"){ // Si el tipo de archivo a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de formatos
move_uploaded_file $_FILES 'file' ][ 'tmp_name' ], $destino '/' .$cad.'.'.$tipo);  // Subimos el archivo 
$link "{$_SERVER['DOCUMENT_ROOT']}/canciones/{$_SESSION['usuario_id']}/{$album}/".$cad.'.'.$tipo;

else echo 
"el tipo de archivo no es de los permitidos";// Si no es el tipo permitido lo desimos 

else echo 
"El archivo supera el peso permitido.";// Si supera el tamaño de permitido lo desimos 




mysql_select_db("crunch");
//Creamos la sentencia SQL y la ejecutamos
$sql mysql_query ("INSERT INTO canciones (nombre, album, link, usuario_id) VALUES ('$nombre', '$album', '$link', {$_SESSION['usuario_id']}") or die(mysql_error());
mysql_query($sql);
header("Location: /perfil.php?id=" $_SESSION['usuario_id'] . "&modificado=ok");
}


Perdón las faltas de ortografía en los comentarios, no fui yo quién lo escribio :D

La cuestión es que no me crea el registro en la base de datos, ni me redirige a perfil.php ... supongo tendría qe ser por estar mal armado los bloques, que el registro esté fuera de la condición, pero no, no encontré el problema! :S espero me puedan ayudar, y desde ya, muchas gracias por haber leído :D
  #2 (permalink)  
Antiguo 05/02/2013, 23:35
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: Problema al ingresar datos en base de datos

Dios, a ver si se acostumbra a indentar bien su código

Lo que no entiendo es el "if($_POST)", digo ¿Qué se quiere hacer con eso? porque $_POST es un Array y no una variable booleana, ¿no sería más bien "if(sizeof($_POST) > 0)"?

__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.
  #3 (permalink)  
Antiguo 06/02/2013, 06:14
 
Fecha de Ingreso: febrero-2010
Mensajes: 107
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema al ingresar datos en base de datos

xlamALex, lo que pasa es qe aprendí por internet y nunca vi nada de indentar, cosa que siempre quise aprender pero se me ha pasado. El código lo tenía mejor creo yo, pero lo pasé por beautify php y fue peor jaja.

lo del if($_POST) ni yo lo entendí, pero fue algo qe vino ya con el código del uploader y bueno, como el que lo hizo sabe más que yo, preferí dejarlo así.

Voy a ver lo de indentar :reloco: Pero aun así, sigo con el problema de este código xD :_ Gracias por tu respuesta, de todas formas
  #4 (permalink)  
Antiguo 06/02/2013, 06:26
 
Fecha de Ingreso: septiembre-2011
Mensajes: 176
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema al ingresar datos en base de datos

Cual es el problema que te da¿?
  #5 (permalink)  
Antiguo 06/02/2013, 06:28
 
Fecha de Ingreso: septiembre-2011
Mensajes: 176
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema al ingresar datos en base de datos

Cita:
Iniciado por luisalberti Ver Mensaje
Cual es el problema que te da¿?

Algo con el tamaño recuarda que en la configuración de apache es donde tienes que indicar el tamaño.

$tamaño_max="100000000000"; // Tamaño maximo permitido

  #6 (permalink)  
Antiguo 06/02/2013, 06:35
 
Fecha de Ingreso: febrero-2010
Mensajes: 107
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema al ingresar datos en base de datos

Hola luisalberti, gracias por responder!! :D
El problema que tengo es que el código... no sube el archivo ni guarda los datos en la base de datos, directamente! jaja u.u y no logro enteder qe está mal, si es el mismo código que subo para las fotos. Será la parte de
Código PHP:
$sep=explode('image/',$_FILES["file"]["type"]); // Separamos image/ 
Que al estar ahora subiendo algo que no es imagen, no me deja porque no separa "image/"? Pero que es lo qe tendría qe separar ahora al subir audio. Esa parte no entendí mucho.


Bien, voy a indicarlo en apache, gracias por el dato!!
  #7 (permalink)  
Antiguo 06/02/2013, 08:03
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 12 años, 8 meses
Puntos: 31
Respuesta: Problema al ingresar datos en base de datos

Porque esta ruta asi

$ruta = "{$_SERVER['DOCUMENT_ROOT']}/canciones/{$_SESSION['usuario_id']}/{$album}/";

Que quieres hacer con esto?
__________________
El talento se educa en la KARMA y el carácter en la tempestad.
Gabriel De Los Santos
  #8 (permalink)  
Antiguo 06/02/2013, 10:06
 
Fecha de Ingreso: febrero-2010
Mensajes: 107
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema al ingresar datos en base de datos

la idea es que en caso que no exista la carpeta, se cree una una carpeta canciones/usuario/album y que luego se suba la canción ahí
  #9 (permalink)  
Antiguo 06/02/2013, 18:26
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: Problema al ingresar datos en base de datos

Si quieres saber si una ruta existe o no, estás cometiendo un error aquí:

Código PHP:
if(!file_exists($ruta)) 

$oldumask umask(0);  
mkdir ($ruta); 
mkdir ($ruta $perfil); 
umask($oldumask);  

Ya que deberá ser:

Código PHP:
if(!is_dir($ruta)) 

$oldumask umask(0);  
mkdir ($ruta); 
mkdir ($ruta $perfil); 
umask($oldumask);  

La función file_exists se utiliza para comprobar si un fichero existe, la función is_dir es la que se utiliza para comprobar si un directorio es el que existe, suerte
__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.

Etiquetas: 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 21:15.