С PHP знаком буквально две недели. Решил сделать вап-сайт php + mySQL. Нашел скрипт, который индексирует все файлы в директории, создает на них ссылки+постраничная навигация. Но что-то в нем не работает. Может кто увидит ошибку и подскажет что не так.
Код | <?
$index_per_page = 10;
$allowed_file = "type_file.dat";
#$index_flag = false; # false - нет $index_flag = true; # true - да
#$existion_flag = false; # false - нет $existion_flag = true; # true - да
#$size_flag = false; # false - нет $size_flag = true; # true - да
$curren_dir = getcwd (); $lenghth = strlen ($curren_dir); for ( $i = $lenghth; $i>0; $i--) { if ( $curren_dir [$i] === "/" or $curren_dir [$i] === "\\" ) { $curren_dir_title = substr ( $curren_dir, $i+1, $lenghth); break; } }
$header = '<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.3//EN" "http://www.phone.com/dtd/wml13.dtd"><wml><card id="" title="'.$curren_dir_title.'">'; $footer = '</card></wml>';
$navigation_bar_both = '<p align="center"><a href="index.php?action=back"><<<</a> <a href="index.php?action=forward">>>></a></p>'; $navigation_bar_back = '<p align="center"><a href="index.php?action=back"><<<</a></p>'; $navigation_bar_forward = '<p align="center"><a href="index.php?action=forward">>>></a></p>';
session_name ("mysess"); session_start();
if ( !(trim ($HTTP_GET_VARS['action']) == "dir") ) { if ( trim ($HTTP_GET_VARS['action']) == "forward" ) { $HTTP_SESSION_VARS["index_page"]++; }
if ( trim ($HTTP_GET_VARS['action']) == "back" ) { $HTTP_SESSION_VARS["index_page"]--; } } else { session_register("index_page"); $HTTP_SESSION_VARS["index_page"] = 0; }
$body = ""; $body_line = ""; $i = 1; $dir = opendir ($curren_dir);
function allowed_type ($d) { $lenghth = strlen ($d); for ( $i=$lenghth; $i>0; $i--) { if ( $d [$i] == '.' ) { global $name; $name = substr ( $d, 0, $i); $existion = strtolower( substr ( $d, $i+1, $lenghth) ); break; } } # end for
global $allowed_file; $fallowed = fopen ( "$allowed_file", "r"); while (!feof ($fallowed) ) { $type = fgets ($fallowed, 1024); if ( !(trim (strip_tags($type) ) == "") ) { if ( trim($type) === $existion ) {return true; break;}; } } return false; }
while ( ($d = readdir ($dir)) !== false) { if ( is_dir ( $d ) and !($d == ".") and !($d == "..")) { $body_line = '<p align="left"><small>[dir]...<a href="$d/index.php?action=dir">$d</a></small></p>';
$body = $body.$body_line; }
$flag_allowed = !($d == ".htaccess") and !($d == "index.php") and !($d == $allowed_file); if ( is_file ( $d ) and $flag_allowed and allowed_type($d)) { $LIST_FILE = stat ($d); $file_size = $LIST_FILE [7]; $file_change_time = $LIST_FILE [9];
if ($file_size < 1024) $file_size = $file_size."b"; if ($file_size >= 1024) $file_size = round (($file_size/1024), 1)."Kb"; if ($file_size >= 1024) $file_size = round (($file_size/1024), 1)."Mb";
if ($index_flag) $index = $i." "; else $index = "";
if ($existion_flag) $filename = $d; else $filename = $name;
if (!$size_flag) $file_size = "";
$body_line = '<p align="left"><small>'.$index.'<a href="'.$filename.'">'.$filename.'</a> '.$file_size.'</small></p>';
if ( ( $index_per_page*$HTTP_SESSION_VARS["index_page"] <= $i-1 ) and ( $i <= $index_per_page + ($index_per_page)*$HTTP_SESSION_VARS["index_page"] ) ) { $body = $body.$body_line; }
$i++; } }
$navigation_bar = $navigation_bar_both; if ( $HTTP_SESSION_VARS["index_page"] <= 0 ) { $navigation_bar = $navigation_bar_forward;} if ( $HTTP_SESSION_VARS["index_page"] >= floor($i/$index_per_page) - 1 ) { $navigation_bar = $navigation_bar_back;}
header ("Content-type: text/vnd.wap.wml"); echo ($header.$body.$navigation_bar.$footer);
?>
|
|