Foros del Web » Programando para Internet » PHP »

sopa de variables

Estas en el tema de sopa de variables en el foro de PHP en Foros del Web. hola a todos. les explico, estoy hciendo un sistema para subir archivos (fotos) a un servidor por medio de php, eso ya me resulta bien, ...
  #1 (permalink)  
Antiguo 29/04/2005, 12:09
Avatar de navessd  
Fecha de Ingreso: junio-2003
Ubicación: Topus Uranus
Mensajes: 158
Antigüedad: 14 años, 6 meses
Puntos: 0
sopa de variables

hola a todos.
les explico, estoy hciendo un sistema para subir archivos (fotos) a un servidor por medio de php, eso ya me resulta bien, lo hice según un ejemplo que encontré por ahí. el problema que me encuentro es que al msmo tiempo en que subo el archivo al servidor, debo subir la nformación respectiva a una base de datos, ya que despés quiero hacer una página que despliege los resultados de la base de datos con su respectivo link para bajar el archivo en cuestión. el problema se me armó cuendo junté todos los scripts que estaba trabajando, ya que la página también estaba implementada con el sistema de autentificación de inventó Cluster(gracias maestro), es decir hay restricciones para quienes deseen entrar y depositar un archivo en el servidor.

bueno les dejo el código del formulario de envío
Código HTML:
<form action="subearchivo_TA_0.php" method="post" enctype="multipart/form-data">
    <b>Descripci&oacute;n del archivo a subir :</b>
    <br>
    <textarea name="descripcion" cols="40"></textarea>
    <input type="hidden" name="MAX_FILE_SIZE" value="100000">
    <br>
    <br>
    <b>Enviar un nuevo archivo: </b>
    <br>
    <input name="userfile" type="file">
    <br>
    <input type="submit" value="Enviar">
</form> 
y este es el código del archivo php que recibe
Código PHP:
<?

//datos del arhivo
$nombre_archivo $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && ($tamano_archivo 100000))) {
    echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
    if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],"D:/appserv/www/test/uploads/".$HTTP_POST_FILES['userfile']['name'])){
       echo 
"El archivo ha sido cargado correctamente.";
    }else{
       echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
    }
}
?>
<?php 
//necesito pasar las variables a la B.D.
//conexión
include("conex_tipo4.php");

//se define la nueva variable que viene del formulario
   
$descripcion $_POST["descripcion"];

//1º se selecciona la tabla de la base de datos.
//2º se insertan los datos en la tabla.

mysql_query("insert into uploads (id,archivo,descripcion,autor,fecha) values ('','$nombre_archivo','$descripcion',$_SESSION['usuario_login'],NOW())");

?>
la variable que me causó el error fue la variable de sesión $_SESSION['usuario_login'], la cual corresponde al autor del mensaje.

por favor una ayudita para resolver esta sopa de variables

salu2
__________________
Bush, te vamo a rajarte el Paño!!!!
  #2 (permalink)  
Antiguo 29/04/2005, 12:14
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Pon esa variable entre comillas a ver si es el tipo de dato que le estas ingresando.

Saludos,
  #3 (permalink)  
Antiguo 29/04/2005, 12:37
Avatar de navessd  
Fecha de Ingreso: junio-2003
Ubicación: Topus Uranus
Mensajes: 158
Antigüedad: 14 años, 6 meses
Puntos: 0
muchas gracias, ya lo solucioné
reemplaze la variable
$_SESSION['usuario_login']

por
$autor = $_SESSION['usuario_login']

y $autor fue lo que le introducí a la B.D.


PERO, ahora no me carga los datos a la Base de Datos. :{

cñomo puedo saber cual es el error que estoy cometiendo?
__________________
Bush, te vamo a rajarte el Paño!!!!

Última edición por navessd; 29/04/2005 a las 12:45
  #4 (permalink)  
Antiguo 30/04/2005, 05:57
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por navessd
cñomo puedo saber cual es el error que estoy cometiendo?
1) Manda a imprimir mensajes en lugares estratégicos de tu script:
Código PHP:
if(algo que hacer) echo "Perfecto!, vamos bien!";
else 
"echo.. mmm.. error aquí, no hace lo que debería hacer... ';' 
2) Para cuestiones de errores con PHP pon esto en la primera línea de tu código:
Código PHP:
<?
error_reporting
(E_ALL);
..
.
?>
www.php.net/error_reporting

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 01/05/2005, 11:12
Avatar de navessd  
Fecha de Ingreso: junio-2003
Ubicación: Topus Uranus
Mensajes: 158
Antigüedad: 14 años, 6 meses
Puntos: 0
Gracias jam1138 eso de saber mostrar los errores es algo que debo aprender.

pero el caso es que corregí el error, era un error de sitaxis, pero al escribir los datos en la BD el campo "autor" me queda igual a 0, es decir no envía correctamente el nombre del usuario quien hizo el upload.

voy a seguir probando en pillar el error...
__________________
Bush, te vamo a rajarte el Paño!!!!
  #6 (permalink)  
Antiguo 02/05/2005, 00:43
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Pues en tu código veo que tratas dicho "nombre del usuario" lo tratas de recojer con una variable de sesión... pero ¿cuándo inicias sesión???, te falta esl session_start() en la primera línea... asegurate que dicha variable existe y sea la correcta, puedes hacerlo mandandola a imprimir como sugerí.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 02/05/2005, 10:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si estás usando Autentificator y sus variables de sesión . .antes de nada tendrías que insertar en tus scripts el: aut_verifica.inc.php que es el script que contiene:

session_name("nombre_de_la_sesión");
session_start(); // para iniciar la sesión ..

Eso mínimo .. sino no podras acceder a variables de sesión en tus scripts .. por ende tus variables no tendrán valor.

Un saludo,
  #8 (permalink)  
Antiguo 04/05/2005, 00:16
Avatar de navessd  
Fecha de Ingreso: junio-2003
Ubicación: Topus Uranus
Mensajes: 158
Antigüedad: 14 años, 6 meses
Puntos: 0
al fin, le pregunté a un amigo y le envié los archivos para que viera cual era el problema. después de cabeciarse un rato descubrió que era un problema con la conformación de la tabla de la BD.

les dejo el cambio para que lo vean:
Código:
-- 
-- Estructura de tabla para la ANTIGUA tabla `uploads`
-- 

CREATE TABLE `uploads` (
  `id` smallint(6) unsigned NOT NULL auto_increment,
  `archivo` tinyint(4) NOT NULL default '0',
  `descripcion` text NOT NULL,
  `autor` tinyint(4) NOT NULL default '0',
  `fecha` datetime NOT NULL default '0000-00-00 00:00:00',
  KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
Y
Código:
-- 
-- Estructura de tabla para la NUEVA tabla `uploads`
-- 

CREATE TABLE `uploads` (
  `id` smallint(6) unsigned NOT NULL auto_increment,
  `archivo` varchar(255) NOT NULL,
  `descripcion` text NOT NULL,
  `autor` varchar(255) NOT NULL,
  `fecha` datetime NOT NULL default '0000-00-00 00:00:00',
  KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
se cambiaron los formatos de los campos `archivo` y `autor`.

estaba a años luz de ver este detalle.
gracias por los consejos pasé una bena experiencia de aprendizaje.....
__________________
Bush, te vamo a rajarte el Paño!!!!
  #9 (permalink)  
Antiguo 04/05/2005, 11:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. si otro día necesitas de ayuda .. ya sabes que aquí no somos "adivinos" .. así que intenta aportar más datos (TODO!) lo que tengas para evaluar (lo mismo que hizo tu amigo ..).

Igualmente ..
No deberías haber cambiado el "tipo" de tu campo de tu tabla (de un numerico a uno de texto) sino haber cambiado:

$autor = $_SESSION['usuario_login'];
por
$autor = $_SESSION['id_login'];

Es decir .. dentro de las variables de sesión que pueda gestionar Autentificator .. una de ellas es el ID de tu usuario .. otra el nombre (textual) del mismo y otros detalles ..

Usa identificadores .. así ahorras espacio en tu BD y mejoras la "integridad referencial" entre otras cosas que te veneficia "normalizar" tu BD adecuadamente.

Un saludo,
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:26.