Autor Tema: .htaccess  (Leído 10720 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
Re:.htaccess
« Respuesta #15 : 04 de febrero de 2011, 02:47:12 pm »
Con estas sencillas lineas bloqueas el acceso a determinada carpeta donde coloques el .htaccess

Código: [Seleccionar]
<Files *.*>
order allow,deny
deny from all
</Files>


En donde FILES puedes colocar que no lean los archivos por ejempo .pdf colocarías

Código: [Seleccionar]
<Files *.pdf>
order allow,deny
deny from all
</Files>

---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------

Desconectado themillionaire

  • Novato
  • *
  • Mensajes: 29
  • Puntuación: 1
    • Ver Perfil
Re:.htaccess
« Respuesta #16 : 04 de febrero de 2011, 02:53:49 pm »
un millon xombra

Desconectado themillionaire

  • Novato
  • *
  • Mensajes: 29
  • Puntuación: 1
    • Ver Perfil
Re:.htaccess
« Respuesta #17 : 04 de febrero de 2011, 03:09:01 pm »
acabo de probar lo que me distes
ok
bloquea los archivos
peroooo
la cuestion es que yo llamo a una pagina que me muestre el contenido de una carpeta utilizando el siguiente codigo
Código: [Seleccionar]
    require_once('../../Connections/autentificacion.php');
   // Funciones  opendir / readdir / closedir
    $carpeta = 'alipa';
    if (!$director=@opendir($carpeta))
        {die (' no se encuentra');}
    else {
        $directorio = opendir($carpeta); // Abre el directorio
        }
    $i = 0;
ademas permito que el usuario tenga acceso a los archivos que alli se muestren
Código: [Seleccionar]
<?php 
     
while ($elemento readdir($directorio))  {
$a=strrpos($elemento,"index.php"); //para que no muestre los archivos index
if (substr($elemento01) != &#39;.&#39;)  // extrae el 1er caracter del contenido
  {
             if (
$a===false)
  
       {
     
          echo "<tr>";
  
          echo "<td><a href=$carpeta/$elemento>$elemento</a></td>"
          echo "</tr>";
                }
           }
      }
  
closedir($directorio);           
?>

es decir le dan click y se abren los pdf
lo que no quiero es que si el usuario no esta autentificado
y por ejemplo se sabe la direccion o busca en el historial del explorador
no deberia poder ver el archivo pdf

me funciona con las carpetas, por lo que dije anteriormente, coloque un index en cada carpeta y
Código: [Seleccionar]
Options All -Indexes
en el archivo .htaccess

pero cuando coloco la ruta y el nombre del archivo, si permite abrirlo.
alli esta el detalle

Desconectado el_santo

  • Usuario Dedicado
  • ***
  • Mensajes: 225
  • Puntuación: 9
  • Sexo: Masculino
    • Ver Perfil
Re:.htaccess
« Respuesta #18 : 04 de febrero de 2011, 04:22:32 pm »
Viejo, no nombre ningun tipo de relayer en ningun momento.

te aconseje setearas los parametros ke te dije en el php.ini para ke envies mails usando la funcion mail() nativa de php

si los seteas al usar la funcion mail php entregara al smtp de cantv sin intermediarios, podras enviar correos sin ningun tipo de problemas siempre y cuando uses bien la funcion mail.

los parametros los puedes configurar al vuelo asi

Código: [Seleccionar]
<?php 
ini_set
("SMTP","smtp.example.com" ); 
ini_set(&#39;sendmail_from&#39;, &#39;user@example.com&#39;); 
?>

Puedes encontrar info sobre la funcion aki

http://ve2.php.net/manual/en/book.mail.php

Yo hablo php........!!!

Desconectado el_santo

  • Usuario Dedicado
  • ***
  • Mensajes: 225
  • Puntuación: 9
  • Sexo: Masculino
    • Ver Perfil
Re:.htaccess
« Respuesta #19 : 04 de febrero de 2011, 04:39:06 pm »
1.- por htaccess eso es similar a un anti hotlink (porke necesitas se descargue desde tu pagina mas no desde otro referer)

2.- te recomiendo es dejar un deny from all en el directorio de los archivos y descargar los archivos usando php lo cual si decides hacer te puedo ayudar.
Yo hablo php........!!!

Desconectado el_santo

  • Usuario Dedicado
  • ***
  • Mensajes: 225
  • Puntuación: 9
  • Sexo: Masculino
    • Ver Perfil
Re:.htaccess
« Respuesta #20 : 05 de febrero de 2011, 12:28:58 am »
Este pekeño codigo lo uso para descargar archivos ke estan en un directorio no visible por el webserver para ke no me pase lo ke te pasa.

en la variable archivo facilmente puedes colocar un get y lo llamarias

download.php?file=archivo.doc  (pdf,exe,xls o lo ke sea ke kieras descargar)

"claro validarias si el usuario esta logueado sino pos ke no te lo baje."

para ke no muevas tus archivos solo en el directorio de los mismos coloca un .htaccess con un deny from all parak e nadie lo acceda y listo

en el link ke imprimes para listar directorios en vez de

<a href="archivo.doc" ></a>

Colocarias

<a href="download.php?file=archivo.doc" ></a>

Como vez la modificacion es poca y problema resuelto

He aki el codigo validar usuario y alguna otra cosa seria trabajo tuyo, suerte
Código: [Seleccionar]
header( 'Content-type: application/force-download' );
header( 'Content-Length: '.filesize( '/url_de _tu _archivo/'.$archivo) );
header( 'Content-Disposition: attachment; filename="'.$archivo.'"');
readfile( '/url_de _tu _archivo/'.$archivo );

(ese trozo de codigo lo uso para un sistema de descarga de gacetas oficiales y formatos el cual funciona perfect)
Yo hablo php........!!!

Desconectado themillionaire

  • Novato
  • *
  • Mensajes: 29
  • Puntuación: 1
    • Ver Perfil
Re:.htaccess
« Respuesta #21 : 07 de febrero de 2011, 07:51:19 am »
fino, seguire aqui tratando de solventar todo esto, seguire por supuesto tu consejo, gracias, estamos en contacto

Desconectado themillionaire

  • Novato
  • *
  • Mensajes: 29
  • Puntuación: 1
    • Ver Perfil
Re:.htaccess
« Respuesta #22 : 07 de febrero de 2011, 09:29:34 am »
lo logreeeeeeeeeeeeeeeeeeeeeeeeeeee

que bueno este blog, una ayudita por aqui, otra ayudita por alla, aqui tambien mis compañeros de trabajo me echaron una mano, pues ocurre y acontese que no tenia instalado el servicio de smtp de windows
y bueno como lo dice mi perfil, soy toda una novata.
por eso andaba descargando e instalando servidores smtp, como los relay
aqui les dejo un resumen del resultado de mi semana de cabezasos y flechasos

2 PASOS PARA ENVIO DE EMAIL DESDE UN SERVIDOR DE PRUEBA LOCAL (SISTEMA OPERATIVO WINDOWS)

I. INSTALAR SERVICIO SMTP


1.   inicio
2.   configuración
3.   panel de control
4.   agregar o quitar programas
5.   agregar o quitar componentes de Windows
6.   se debe tildar “Servicios de Internet Information Server”
7.   Click en Servicios de Internet Information Server (IIS)
8.   Click en detalles
9.   Tildar tal Servicio SMTP
10.   Aceptar
11.   Necesitaran el cd de instalacion de windows



II. INICIALIZAR LOS SIGUIENTES PARAMETROS DESDE EL PROGRAMA

   ini_set("SMTP","mail.cantv.net" );
   ini_set('sendmail_from', 'root@localhost');

ejemplo de cómo seria el codigo:
Código: [Seleccionar]
<?php
ini_set
("SMTP","mail.cantv.net" ); 
ini_set(&#39;sendmail_from&#39;, &#39;root@localhost&#39;); 
$para      = &#39;mi-email@hotmail.com&#39;;
$asunto    = &#39;el asunto&#39;;
$mensaje   = &#39;hola&#39;;
$cabeceras = &#39;From: anab&#39;;
mail($para$asunto$mensaje$cabeceras);
?>



gracias a todos, sobre todo a el_santo

voy ahora con .htaccess, al rato les cuento


Desconectado el_santo

  • Usuario Dedicado
  • ***
  • Mensajes: 225
  • Puntuación: 9
  • Sexo: Masculino
    • Ver Perfil
Re:.htaccess
« Respuesta #23 : 07 de febrero de 2011, 11:54:26 am »
jejeje me alegra ke este resuelto por ese lado...

Como dato extra "No es necesario el servicio smtp en el ekipo ya ke al configurar los parámetros del smtp en el php.ini o con ini_set() el core de php entregara el email directo al smtp de cantv sin intermediarios", chekea eso y veras ke en el futuro no necesitaras ese servicio instalado para ke puedas enviar emails.

Por otro lado te recomendaría buscaras unos headers mas completos para enviar emails usando la función mail() ya ke un header austero hara ke algunos servidores algo estrictos envíen tus correos a casillas de "no deseados o spam".

por lo del .htaccess yo no me enredaria, agregame al msn y te ayudo a resolver eso (esta en mi perfil del foro)
Yo hablo php........!!!

Desconectado themillionaire

  • Novato
  • *
  • Mensajes: 29
  • Puntuación: 1
    • Ver Perfil
Re:.htaccess (SOLUCIONADO MI PRIBLEMA)
« Respuesta #24 : 10 de febrero de 2011, 10:06:57 am »
AQUI LES DEJO LA SOLUCION PARA QUIEN LE PUEDA INTERESAR

AUTOR INTELECTUAL: EL_SANTO CON APOYO DE: XOMBRA
PROGRAMADOR: THEMILLONAIRE

NUMERO 1:

Copiar en la carpeta donde estan los  documentos un .htaccess con el siguiente codigo
En nuestro ejemplo c:/appserv/www/carpeta/doc
Código: [Seleccionar]
<Files *.pdf>
order allow,deny
deny from all
</Files>

NUMERO 2:
Crear el siguiente programa:
Código: [Seleccionar]
<?php
// este programa verifica si el usuario esta logueado sino lo manda con header a autenticarse
require_once(&#39;../../Connections/autentificacion.php&#39;);
$archivo $_GET[&#39;f&#39;];
$master $_GET[&#39;d&#39;];
header( &#39;Content-type: application/force-download&#39; );
header( &#39;Content-Length: &#39; . filesize( &#39;C:\\appserv\\www\carpeta\\doc\\&#39; . $master . &#39;\\&#39; . $archivo ) );
header( &#39;Content-Disposition: attachment; filename="&#39; . $archivo . &#39;"&#39;);
readfile( &#39;C:\\appserv\\www\carpeta\\doc\\&#39; . $master . &#39;\\&#39; . $archivo );
?>


NUMERO 3
Programa que muestra los archivos de una carpeta protegida con .htaccess y permite descargarlos
Código: [Seleccionar]
<?php
$carpeta = &#39;doc&#39;;
if (!$director=@opendir($carpeta))
{die (&#39; no se encuentra&#39;);}
else {
$directorio opendir($carpeta); // Abre el directorio
}
$i 0;
?>

<html>
<body>
<table border="0" align="left">
<tr>
<td><table border="1" class="formas">
</tr>
<tr>
<?php 
while ($elemento readdir($directorio))  {
//para que no muestre los archivos con nombre index
$a=strrpos($elemento,"index.php");
    if (substr($elemento01) != &#39;.&#39;)  // extrae el 1er caracter del contenido
{
if ($a===false)
{
echo "<tr>";
echo "<td><a href=descarga.php?d=$carpeta&f=$elemento>$elemento</a></td>"
echo "</tr>";
}
 }
  }
      closedir($directorio);           
         ?>

</tr>
</table>
</body>
</html>


que bueno que existe este blog, gracias santo, de verdad.