Foros del Web » Programando para Internet » PHP »

Paginas Modulares

Estas en el tema de Paginas Modulares en el foro de PHP en Foros del Web. Mi pregunta es la siguiente alguien cuando ha realizado o esta realizando su sistema de forma modular a implementado el modulo descargas Me podrian decir ...
  #1 (permalink)  
Antiguo 17/03/2009, 19:56
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 11 años
Puntos: 0
Paginas Modulares

Mi pregunta es la siguiente alguien cuando ha realizado o esta realizando su sistema de forma modular a implementado el modulo descargas Me podrian decir que significa este error cuando quiero descargar un archivo
ÿØÿà�JFIF������ÿþ�;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90 ÿÛ�C�     ÿÛ�C   
De cuando llamo asi modulos/descargas/listado.php me descarga de maravilla pero tengo problemas cuando es modular
  #2 (permalink)  
Antiguo 17/03/2009, 21:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: Paginas Modulares

Ese no es un error, es el contenido de la imagen (binario), y si te sale en el texto es porque seguramente estas enviando texto o algo que impide que las cabeceras correctas se envien.

Saludos.
  #3 (permalink)  
Antiguo 18/03/2009, 12:28
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 11 años
Puntos: 0
Respuesta: Paginas Modulares

Nuevamente escribiendo Gator pero con malas noticias
He intentado hacer otra logica pero no me resulta mira Hice esto en mi controlador
Código php:
Ver original
  1. case 'zona_descarga':
  2.                $ruta = ($_GET['ruta']);
  3.                $archivo = "C:/xampp/htdocs/proyecto_cisco/modulos/descargas/archivos/". $ruta;
  4.                  
  5.                if( !file_exists( $archivo)) {
  6.                        die( "No existe $ruta" );
  7.                }
  8.  
  9.                header("Content-disposition: attachment; filename=$archivo");
  10.                header("Content-type: application/octet-stream");
  11.                readfile($archivo);
  12.      
  13.        break;
  14.        case 'ver_descarga':
  15.                ?>
  16.        <a href="modulos/descargas/des.php?ruta=<?php echo
  17. 'prueba.txt'; ?>">Descargar</a>
  18.                <?php

Me funciona pero no como queria lo ideal era el que estaba trabajando hace varios dias , este me funciona pero solo si le doy el nombre de archivo y pienso que no deberia ser asi con este anterio hacia todo perfecto añadir, eliminar , modifcar pero no me preocupe de una cosa y la mas importantte la de descargar no se pq y no entiendo hasta ahora q es lo q debe hacer ya cambie de logica, revise los headers lei salidas y no se que mas puedo hacer
Código php:
Ver original
  1. case 'zona_descarga':
  2.                 $ruta = ($_GET['ruta']);
  3.                 $archivo_arr = explode ("C:/xampp/htdocs/proyecto_cisco/modulos/descargas/archivos/",$ruta);
  4.                 $archivo = $archivo_arr[count($archivo_arr) - 1];
  5.                 $ruta_completa = ("C:/xampp/htdocs/proyecto_cisco/modulos/descargas/".$ruta);
  6.                 if( !file_exists( $ruta_completa)) {
  7.                  die( "No existe $ruta_completa" );
  8.                 }
  9.              38   header("Content-Disposition: attachment; filename=".$archivo."");
  10.              39   header("Content-type: application/octet-stream");
  11.              40   header("Content-Length: ".filesize($ruta_completa));
  12.                 @readfile($ruta_completa);    
  13.         break;
Y son estos errores que no logro solucinar en mi modulo
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\proyecto_cisco\index.php:21) in C:\xampp\htdocs\proyecto_cisco\modulos\descargas\d escargas.ctrl.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\proyecto_cisco\index.php:21) in C:\xampp\htdocs\proyecto_cisco\modulos\descargas\d escargas.ctrl.php on line 39

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\proyecto_cisco\index.php:21) in C:\xampp\htdocs\proyecto_cisco\modulos\descargas\d escargas.ctrl.php on line 40

Aver que conseja me das?
  #4 (permalink)  
Antiguo 18/03/2009, 12:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: Paginas Modulares

Revisa que tienes en tu index.php en la linea 21, ahí es donde estas enviando texto y por eso te sale el error de las cabeceras.

Saludos,.
  #5 (permalink)  
Antiguo 18/03/2009, 15:29
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 11 años
Puntos: 0
Respuesta: Paginas Modulares

Bueno Gator mira este es mi index principal la index Madre
Código php:
Ver original
  1. <?php
  2. include('config.php');
  3.  
  4.     session_name($cfg_session);
  5.     session_start();
  6.     if (empty($_SESSION['usuario_id'])) {
  7.         $_SESSION['usuario_id'] = 0;
  8.         $_SESSION['usuario_nick'] = 'invitado';
  9.         $_SESSION['usuario_nivel'] = 0;
  10.            
  11.     }
  12.     include('includes/lib_mysql.php');
  13.     $MOD['mysql'] = new MySQL($cfg_bdname, $cfg_host, $cfg_user, $cfg_passwd);
  14. ?>
  15. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  16. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  17. <head>
  18. <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  19. <meta name="description" content="Your description goes here" />
  20. <meta name="keywords" content="your,keywords,goes,here"/>
  21. <link rel="stylesheet" type="text/css" href="css/1024px.css" title="1024px style" media="screen,projection"/>
  22. <link rel="stylesheet" type="text/css" href="css/Style.css" title="1024px style" media="screen,projection"/>
  23. <link rel="stylesheet" type="text/css" href="css/calendario/style.css" />
  24. <title>ASOCIACION DEPORTIVA ** ACHF **  </title>
  25. <script type="text/javascript" src="css/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
  26. <script type="text/javascript">
  27. tinyMCE.init({
  28. // General options
  29. mode : "textareas",
  30. theme : "advanced",
  31. plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
  32. // Fila Uno desde guardar
  33. theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
  34. // Fila dos desde Cortar
  35. theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,|,preview,|,forecolor,backcolor",
  36. theme_advanced_toolbar_location : "top",
  37. //theme_advanced_toolbar_align : "left",
  38. theme_advanced_statusbar_location : "bottom",
  39. theme_advanced_resizing : true,
  40. // Drop lists for link/image/media/template dialogs
  41. //template_external_list_url : "js/template_list.js",
  42. //external_link_list_url : "js/link_list.js",
  43. //external_image_list_url : "js/image_list.js",
  44. //media_external_list_url : "js/media_list.js",
  45. // Muy importante para mostrar el editor
  46. template_replace_values : {
  47. username : "Some User",
  48. staffid : "991234"
  49. }
  50. });
  51. </script>
  52. </head>
  53. <body>
  54. <?php include('cabecera.php');?>
  55. <?php
  56.             $modulo = $_GET['mod'];
  57.             if (!empty($modulo)) {
  58.                 $ruta = 'modulos/' . $modulo . '/'.$modulo.'.ctrl.php';
  59.                 if (file_exists($ruta)) {
  60.                     include($ruta);
  61.                 } else {
  62.                     echo "ERROR 404: No existe el archivo";
  63.                 }
  64.             } else {
  65.                 include('cuerpo.php');
  66.             }
  67. ?>
  68. <?php include('pie.php');?>
  69. </body>
  70. </html>

Simplemente llamo a ojas de estilo y utilizo un script de el tinymce Nada mas
  #6 (permalink)  
Antiguo 18/03/2009, 15:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: Paginas Modulares

El problema es que a partir de la línea 14, imprimes texto, y al hacer tu include más adelante en la línea 60, al querer enviar las cabeceras te marca el error.

Vas a tener que re-diseñar tu sistema para que el proceso lo hagas antes de enviar texto.

Saludos.
  #7 (permalink)  
Antiguo 18/03/2009, 16:03
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 11 años
Puntos: 0
Respuesta: Paginas Modulares

Todo mi sistema o este index principal si es solo mi index principal me podrias dar algunas pautas
  #8 (permalink)  
Antiguo 18/03/2009, 17:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: Paginas Modulares

Pues al menos la parte de las descargas, esto es porque estas haciendo el include a la mitad del cuerpo cuando ya enviaste cabeceras, eso causa que ya forzaste el envio de HTML y por eso no puedes descargar los archivos.

Saludos.
  #9 (permalink)  
Antiguo 19/03/2009, 09:23
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 11 años
Puntos: 0
Respuesta: Paginas Modulares

Gator tendria que la parte del controlador la zona descarga llevar a mi index principal antes que
Código php:
Ver original
  1. include('config.php');
  2.  
  3.     session_name($cfg_session);
  4.     session_start();
  5.     if (empty($_SESSION['usuario_id'])) {
  6.         $_SESSION['usuario_id'] = 0;
  7.         $_SESSION['usuario_nick'] = 'invitado';
  8.         $_SESSION['usuario_nivel'] = 0;
  9.            
  10.     }
  11.     include('includes/lib_mysql.php');
  12.     $MOD['mysql'] = new MySQL($cfg_bdname, $cfg_host, $cfg_user, $cfg_passwd);
  13.  
  14. // aqui tendria que ser o no ? para q cuando llame pase directo y no haga error en los headers
  #10 (permalink)  
Antiguo 19/03/2009, 10:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: Paginas Modulares

Así es, es lo que te comente desde mi mensaje pasado, es un problema de como estas haciendo tu web modular, por eso en un mensaje pasado te habia comentado, que la mejor forma de diseñar es, primero poner la parte de proceso y luego la parte visual generada por el proceso y no hacerlo como estas haciendo que es parte visual / proceso mezclado.

Saludos.
  #11 (permalink)  
Antiguo 19/03/2009, 10:45
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 11 años
Puntos: 0
Respuesta: Paginas Modulares

Hice esto ahora gator
Código php:
Ver original
  1. <?php
  2. include('config.php');
  3.  
  4.     session_name($cfg_session);
  5.     session_start();
  6.     if (empty($_SESSION['usuario_id'])) {
  7.         $_SESSION['usuario_id'] = 0;
  8.         $_SESSION['usuario_nick'] = 'invitado';
  9.         $_SESSION['usuario_nivel'] = 0;
  10.            
  11.     }
  12.     include('includes/lib_mysql.php');
  13.     $MOD['mysql'] = new MySQL($cfg_bdname, $cfg_host, $cfg_user, $cfg_passwd);
  14.    
  15. ?>
  16. <?php include('cabecera.php');?>
  17. <?php
  18.             $modulo = $_GET['mod'];
  19.             if (!empty($modulo)) {
  20.                 $ruta = 'modulos/' . $modulo . '/'.$modulo.'.ctrl.php';
  21.                 if (file_exists($ruta)) {
  22.                     include($ruta);
  23.                 } else {
  24.                     echo "ERROR 404: No existe el archivo";
  25.                 }
  26.             } else {
  27.                 include('cuerpo.php');
  28.             }
  29. ?>
  30. <?php include('pie.php');?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="description" content="Your description goes here" />
<meta name="keywords" content="your,keywords,goes,here"/>
<link rel="stylesheet" type="text/css" href="css/1024px.css" title="1024px style" media="screen,projection"/>
<link rel="stylesheet" type="text/css" href="css/Style.css" title="1024px style" media="screen,projection"/>
<link rel="stylesheet" type="text/css" href="css/calendario/style.css" />
<title>ASOCIACION DEPORTIVA ** ACHF ** </title>
<script type="text/javascript" src="css/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
// General options
mode : "textareas",
theme : "advanced",
plugins : "safari,pagebreak,style,layer,table,save,advhr,adv image,advlink,emotions,iespell,inlinepopups,insert datetime,preview,media,searchreplace,print,context menu,paste,directionality,fullscreen,noneditable,v isualchars,nonbreaking,xhtmlxtras,template",
// Fila Uno desde guardar
theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,striketh rough,|,justifyleft,justifycenter,justifyright,jus tifyfull,|,styleselect,formatselect,fontselect,fon tsizeselect",
// Fila dos desde Cortar
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,repla ce,|,bullist,numlist,|,outdent,indent,blockquote,| ,undo,redo,|,link,unlink,anchor,image,cleanup,|,pr eview,|,forecolor,backcolor",
theme_advanced_toolbar_location : "top",
//theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
// Drop lists for link/image/media/template dialogs
//template_external_list_url : "js/template_list.js",
//external_link_list_url : "js/link_list.js",
//external_image_list_url : "js/image_list.js",
//media_external_list_url : "js/media_list.js",
// Muy importante para mostrar el editor
template_replace_values : {
username : "Some User",
staffid : "991234"
}
});
</script>
</head>
<body>

</body>
</html>

Hice este cambio entro a mi index y esta todo bien de un principio pero cuando voy a seguir entrando a mis link se empieza a desconfigurar totalmente
  #12 (permalink)  
Antiguo 19/03/2009, 11:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: Paginas Modulares

Pues el problema es que tienes un HTML mal generado, si dejas toda el <body> fuera del html, eso pasa, necesitas aprender HTML y como generarlo correctamente.

Saludos.
  #13 (permalink)  
Antiguo 19/03/2009, 11:26
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 11 años
Puntos: 0
Respuesta: Paginas Modulares

Uta ya no renegare más
  #14 (permalink)  
Antiguo 21/03/2009, 12:21
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 11 años
Puntos: 0
Respuesta: Paginas Modulares

Como deberia plantear mi solucion ???
Alguien por favor sabe se lo agradeceria mucho
  #15 (permalink)  
Antiguo 21/03/2009, 14:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: Paginas Modulares

Ya te lo dije, tienes que implementar tu sistema de tal manera que la parte de la vista, que es el HTML sea lo último que generas, y el proceso en este caso, conexiones a la BDD, Querys, insertar y todo este antes de generar la vista.

Saludos.
  #16 (permalink)  
Antiguo 22/03/2009, 10:50
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 11 años
Puntos: 0
Respuesta: Paginas Modulares

POR FIN GATOR VALIO LA PENA TANTO ESFUERZO EN ESTE MODULO PERO POR FIN ACABE SATISFACTORIAMENTE GRACIAS ENSERIO POR TODO
LA SOLUCION:
DECIDE NO PONER EN MI CONTROLADOR ESA C0NEXION ENTONCES CREE UN SCRIPT LLAMADO DESCARGAS.PHP
Código PHP:
Ver original
  1. <?php
  2. $ruta = $_GET['ruta'];
  3. $archivo_arr = explode ($_SERVER['DOCUMENT_ROOT'].'/proyecto_cisco/modulos/descargas/vistas/archivos/',$ruta);
  4. //$archivo_arr = explode( "C:/xampp/htdocs/repasos/descargas9/archivos/", $ruta );
  5. $archivo = $archivo_arr[count($archivo_arr) - 1];
  6.  
  7. if( !file_exists( $ruta ) ) {
  8.          die( "No existe $ruta" );
  9. }
  10.  
  11. header( "Content-Disposition: attachment; filename=".$archivo."");
  12. header( "Content-type: application/octet-stream" );
  13. header("Content-Length: ".filesize($ruta)); //header que envia al navegador el tamaño del archivo.
  14. @readfile( $ruta );  
  15. ?>

Y en listar hago una enlace directo
Código php:
Ver original
  1. <a href="modulos/descargas/vistas/descargar.php?ruta=<?php echo 'archivos/'.$item_descarga->ruta; ?>">Descargar</a></div>

Ahora descarga sin problemas ante todo muchas Gracias Gator de verdad se te agradece mucho AMISTAD
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 23:05.