Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #10712 > unrolled thread

Apache + php + directory browsing + reader for TXT files

Started by"G." <grumsk@grumsk.tz>
First post2013-09-04 12:44 +0000
Last post2013-09-06 19:22 +0200
Articles 4 — 4 participants

Back to article view | Back to comp.lang.php


Contents

  Apache + php + directory browsing + reader for TXT files "G." <grumsk@grumsk.tz> - 2013-09-04 12:44 +0000
    Re: Apache + php + directory browsing + reader for TXT files Salvatore <sal@yojimbo.hack.invalid> - 2013-09-04 14:56 +0000
      Re: Apache + php + directory browsing + reader for TXT files The Natural Philosopher <tnp@invalid.invalid> - 2013-09-04 16:17 +0100
      Re: Apache + php + directory browsing + reader for TXT files Luuk <luuk@invalid.lan> - 2013-09-06 19:22 +0200

#10712 — Apache + php + directory browsing + reader for TXT files

From"G." <grumsk@grumsk.tz>
Date2013-09-04 12:44 +0000
SubjectApache + php + directory browsing + reader for TXT files
Message-ID<52272b3b$0$2211$426a74cc@news.free.fr>
Hi, I have a bunch of *.txt files. I would like to put them on my server
(I already have a running apache2 with PHP5 and Mysql) and allow my students
to browse directories and read the TXT files.

I spent some time yesterday on applying a CSS to apache's "directory browsing"
ability.

Now, I would like to go a further step: applying a minimal style to my TXT
documents with a few rules. (font, size, margins, background color, color, etc.)
and dynamically producing links from my http://... strings.

I think it is possible to play with apache redirection settings and PHP
for dynamically build a *.txt reader. But maybe something has already be
done which could be a starting point for me.

Are you aware of that?

Two questions:
  * (php related) what resources could I use for my purpose?
  * (for apache wizzards) what would be the best way of handling my *.txt files
    and redirecting to a small php "reader"?

Regards,

-- 
G.

[toc] | [next] | [standalone]


#10713

FromSalvatore <sal@yojimbo.hack.invalid>
Date2013-09-04 14:56 +0000
Message-ID<l07hm2$1s7g$1@news.tokachu.com>
In reply to#10712
On 2013-09-04, G. <grumsk@grumsk.tz> wrote:
> Hi, I have a bunch of *.txt files. I would like to put them on my server
> (I already have a running apache2 with PHP5 and Mysql) and allow my students
> to browse directories and read the TXT files.
>
> I spent some time yesterday on applying a CSS to apache's "directory browsing"
> ability.
>
> Now, I would like to go a further step: applying a minimal style to my TXT
> documents with a few rules. (font, size, margins, background color, color, etc.)
> and dynamically producing links from my http://... strings.

I believe that this is as simple as creating a file called HEADER.html
(make sure you use uppercase lettersi for the word "HEADER") and include
some <style> tags.

>
> I think it is possible to play with apache redirection settings and PHP
> for dynamically build a *.txt reader. But maybe something has already be
> done which could be a starting point for me.
>
> Are you aware of that?

Yes. Find the option in your Apache configuration file called
"DirectoryIndex" and change it to include index.php. Here's an example:

    DirectoryIndex index.html index.htm index.php

This will allow you to write your own version of a directory listing in
PHP. If you don't want to write your own directory listing script,
continue on below...

>
> Two questions:
>   * (php related) what resources could I use for my purpose?

I would try using the mod_rewrite module.

>   * (for apache wizzards) what would be the best way of handling my *.txt files
>     and redirecting to a small php "reader"?

Here's what I came up with:

    1. Create a file called "textfile.php". Put code in there that reads
       the variable $_REQUEST['file'] and verifies that it doesn't
       contain anything nasty. (Basically, verify that it only contains
       the characters A-Z, a-z, 0-9, a dash, an underscore, no more than
       one dot, and the extension ".txt".) Use that variable to open up a
       text file.

    2. Add a rewrite rule to the .htaccess file that looks something like
       this:

       RewriteEngine On
       RewriteRule ^/textfiles/([^/]+\.txt)$ /textfile.php?file=$1 [PT]

       (This presumes your text files are being hosted in the
       subdirectory "/textfiles".)

    3. In the file "textfile.php", use the function
       "file_read_contents()" to read the contents of the text file.

And, of course, be extra careful when checking the file name so that
people cannot pass a parameter that looks like "file=../../../etc/passwd"
or something like that.

>
> Regards,
>


-- 
Blah blah bleh...
GCS/CM d(-)@>-- s+:- !a C++$ UBL++++$ L+$ W+++$ w M++ Y++ b++

[toc] | [prev] | [next] | [standalone]


#10714

FromThe Natural Philosopher <tnp@invalid.invalid>
Date2013-09-04 16:17 +0100
Message-ID<l07iu4$nmf$1@news.albasani.net>
In reply to#10713
On 04/09/13 15:56, Salvatore wrote:
> On 2013-09-04, G. <grumsk@grumsk.tz> wrote:
>> Hi, I have a bunch of *.txt files. I would like to put them on my server
>> (I already have a running apache2 with PHP5 and Mysql) and allow my students
>> to browse directories and read the TXT files.
>>
>> I spent some time yesterday on applying a CSS to apache's "directory browsing"
>> ability.
>>
>> Now, I would like to go a further step: applying a minimal style to my TXT
>> documents with a few rules. (font, size, margins, background color, color, etc.)
>> and dynamically producing links from my http://... strings.
> I believe that this is as simple as creating a file called HEADER.html
> (make sure you use uppercase lettersi for the word "HEADER") and include
> some <style> tags.
>
>> I think it is possible to play with apache redirection settings and PHP
>> for dynamically build a *.txt reader. But maybe something has already be
>> done which could be a starting point for me.
>>
>> Are you aware of that?
> Yes. Find the option in your Apache configuration file called
> "DirectoryIndex" and change it to include index.php. Here's an example:
>
>      DirectoryIndex index.html index.htm index.php
>
> This will allow you to write your own version of a directory listing in
> PHP. If you don't want to write your own directory listing script,
> continue on below...
>
>> Two questions:
>>    * (php related) what resources could I use for my purpose?
> I would try using the mod_rewrite module.
>
>>    * (for apache wizzards) what would be the best way of handling my *.txt files
>>      and redirecting to a small php "reader"?
> Here's what I came up with:
>
>      1. Create a file called "textfile.php". Put code in there that reads
>         the variable $_REQUEST['file'] and verifies that it doesn't
>         contain anything nasty. (Basically, verify that it only contains
>         the characters A-Z, a-z, 0-9, a dash, an underscore, no more than
>         one dot, and the extension ".txt".) Use that variable to open up a
>         text file.
>
>      2. Add a rewrite rule to the .htaccess file that looks something like
>         this:
>
>         RewriteEngine On
>         RewriteRule ^/textfiles/([^/]+\.txt)$ /textfile.php?file=$1 [PT]
>
>         (This presumes your text files are being hosted in the
>         subdirectory "/textfiles".)
>
>      3. In the file "textfile.php", use the function
>         "file_read_contents()" to read the contents of the text file.
>
> And, of course, be extra careful when checking the file name so that
> people cannot pass a parameter that looks like "file=../../../etc/passwd"
> or something like that.

by the time you have done that you might as well write a program called 
'index.php' that looks for all the tect files in te deirectory and liste 
them as hyperlinks to a 'read a text file and turn it into html' page.

if you do a file-get-contents and p[ass it through a couple of string 
replacement passes to turn newlines into <BR> and htmlspecialchar to 
replace control characters and wrap it in a header, it IS an HTML page.


>> Regards,
>>
>


-- 
Ineptocracy

(in-ep-toc’-ra-cy) – a system of government where the least capable to lead are elected by the least capable of producing, and where the members of society least likely to sustain themselves or succeed, are rewarded with goods and services paid for by the confiscated wealth of a diminishing number of producers.

[toc] | [prev] | [next] | [standalone]


#10725

FromLuuk <luuk@invalid.lan>
Date2013-09-06 19:22 +0200
Message-ID<1jfpfa-14l.ln1@luuk.invalid.lan>
In reply to#10713
On 04-09-2013 16:56, Salvatore wrote:
> On 2013-09-04, G. <grumsk@grumsk.tz> wrote:
>> Hi, I have a bunch of *.txt files. I would like to put them on my server
>> (I already have a running apache2 with PHP5 and Mysql) and allow my students
>> to browse directories and read the TXT files.
>>
>> I spent some time yesterday on applying a CSS to apache's "directory browsing"
>> ability.
>>
>> Now, I would like to go a further step: applying a minimal style to my TXT
>> documents with a few rules. (font, size, margins, background color, color, etc.)
>> and dynamically producing links from my http://... strings.
>
> I believe that this is as simple as creating a file called HEADER.html
> (make sure you use uppercase lettersi for the word "HEADER") and include
> some <style> tags.
>

see: http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html#headername

it does not need to be UPPERCASE, if i read the story on above link......

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.php


csiph-web