Консультация № 35581
17.02.2006, 00:14
0.00 руб.
0 1 1
Странно. Чуть поменял код. Добавил авторизацию и теперь вместо страницы выводится белый экран.
В папке default лежат файлы шаблонов страниц. Они рабочии. Что то в этом скрипте. Гляньте.


Приложение:
<?phpError_Reporting(E_ALL); /* Debug *//* ================= Definitions =============*/define( "W_PATH", "D:\\web\\www\\acp" ); /* Путь к папке */define( "SITE_URL", "http://192.168.152.22/acp"); /* Сервер.*/define( "TEMPLATE_DIR", "default\" );/* ====================================== DO NOT EDIT BELOW THERE ====================================== *//* Show site header from template */require_once( TEMPLATE_DIR."header.php" );/* Users validation function */function validate( $user, $password ){ $users = file( W_PATH."\users.conf", "r" ) or die ("Users base not found!"); foreach ( $users as $line_num => $line ) { list( $c_user, $c_pass ) = explode( ":", $line ); if ( $c_user == $user ){ return true; } } return false;}/* What page show? */switch( $_GET[‘action‘] ){ case "get": /* POST data generated by form. */ if ( $_POST[‘adr‘] != "" ){ /* If address isn‘t empty*/ if validate( $_POST[‘usr‘], $_POST[‘pwd‘] ){ /* Try to validate user. If authorised download file. */ $handle = fopen( $_POST[‘adr‘], "r" ) or print( "<table cellspacing="1" class="maintable">\n". "<tr>\n". "<td class="enterleft"><b>Unable to open file ".$_POST[‘adr‘]."</b></td>\n". "</td>\n". "</tr>\n". "</table>" ); /* Try open remote file */ $file = fopen( W_PATH."\".$_POST[‘file‘], "w" ) or print( "<table cellspacing="1" class="maintable">\n". "<tr>\n". "<td class="enterleft"><b>Unable to open file ".$_POST[‘adr‘]."</b></td>\n". "</td>\n". "</tr>\n". "</table>" ); /* Try open local file */ while ( !feof( $handle ) ) { /* While not EOF load 4096 bytes and then write they to local file. */ $buffer = fgets( $handle, 4096 ); fwrite( $file, $buffer ); } print( /* After load completes show file info, disk info and download link */ "<table cellspacing="1" class="maintable">\n". "<tr>\n". "<td class="post-row1l">". "<br/>\n". "<b>Size of file</b><i> ".$_POST[‘adr‘]." </i>is: ".sprintf("%u", filesize($file) )."<br/>\n". "<b>Space free on</b> <i>D:</i> ".sprintf("%u", disk_free_space("D:") )."<br/>\n". "<b>File link</b>: <a href="".SITE_URL."\".$_POST[‘file‘]."">".$_POST[‘file‘]."</a><br/>\n". "<br/>\n". "</td>\n". "</tr>\n". "</table>" ); fclose( $handle ); fclose( $file ); } else { /* Isn‘t authorised */ print( /* Show error */ "<table cellspacing="1" class="maintable">\n". "<tr>\n". "<td class="post-row1l">". "<br/>\n". "<b><center>Please enter correct user and/or password! </center></b><br/>\n". "</td>\n". "</tr>\n". "</table>" ); } } else { /* No url specified */ echo( "<table cellspacing="1" class="maintable">\n". "<tr>\n". "<td class="enterleft"><b>You must specify URL</b></td>\n". "</td>\n". "</tr>\n". "</table>" ); } break; case "form": /* Show download form */ require_once( TEMPLATE_DIR."post.php" ); break; default: /* Show error =) */ print( "<table cellspacing="1" class="maintable">\n". "<tr>\n". "<td class="post-row1l">". "<br/>\n". "<b><center>You can‘t access this file directly!</center></b><br/>\n". "</td>\n". "</tr>\n". "</table>" ); break; }/* Show site footer from template */require_once( TEMPLATE_DIR."footer.php" );?>

Обсуждение

Неизвестный
17.02.2006, 00:31
общий
это ответ
Здравствуйте, Delphin!
1.
$users = file( W_PATH."\users.conf", "r" ) отсутствие еще одного обратного слеша

на самом деле чтобы не путаться ты можешь спокойно писать D:/web/www/acp

в принципе для PHP это одинаково.

2. if validate( $_POST[‘usr‘], $_POST[‘pwd‘] ){ - забыл скобки
Форма ответа