Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Вывод файла (подробно)


Автор: Wolves 2.10.2003, 13:47
Можете мне подсказать как с помощью php скрипта вывести содержимое фойла... тоесть если это и html и php... что бы не запускал (можно так сказать) а выводил содержимое!

Если можно то все более подробней...

Автор: MuToGeN 2.10.2003, 14:08
http://forum.vingrad.ru/index.php?act=ST&f=39&t=11913

Автор: Master 2.10.2003, 14:10
http://ru.php.net/fopen

Автор: Wolves 2.10.2003, 14:24
А конкретно можно скриптик... Please!!!!

Автор: Master 2.10.2003, 14:29
Давайте начнем копировать ман в форум... кто возьмется? biggrin.gif

Автор: Wolves 2.10.2003, 14:44
Master, ты не понял.... мне нужен скрипт который обрабатывает и html и php, и что бы реально все выводил... нужно очень срочно....

Вроде программеры, а помочь не могул... sad.gif

Автор: MuToGeN 2.10.2003, 14:50
Код
<?
$filename="test.html";

function _include($file){
   $fp=fopen($file,"r");
   if(!$fp){
       return false;
   }
   echo(fread($fp,filesize($file)));
   return true;
}

echo nl2br(htmlspecialchars(_include($filename)));
?>

Автор: MuToGeN 2.10.2003, 14:51
Wolves, помочь можем, но делать за другого человека его работу не особо охота.

Автор: Wolves 2.10.2003, 15:03
MuToGeN, и не чего и не получилось... в одном случает он пишит "Warning: stat failed for http://127.0.0.1/test.php (errno=2 - No such file or directory) in c:\apache\htdocs\file.php on line 9"
в другом случае он только убирает <br> и может еще что то , но вот <hr> и все в том же духе , включая таблиц... он их выполняет... sad.gif



HELP ME! PLEASE!

Автор: MuToGeN 2.10.2003, 15:06
А... точно...
Код
<?
$filename="test.html";
function _include($file){
   $fp=fopen($file,"r");
   if(!$fp){
       return false;
   }
   return fread($fp,filesize($file)));
}
echo nl2br(htmlspecialchars(_include($filename)));
?>

Автор: Wolves 2.10.2003, 15:23
MuToGeN, а ты сам то пробовал это запуститьconfused.gif smile.gif

Цитата

Parse error: parse error in c:\apache\htdocs\file.php on line 8 sad.gif




HELP ME

Автор: MuToGeN 2.10.2003, 15:36
Блин... Если я буду все тестить, то на работу времени точно не останется. Wolves, можешь сам с конца 8й строки убрать лишнюю скобку или это тоже самому сделать?

Извиняюсь, если кто-то сочтет это грубым.

Автор: Wolves 2.10.2003, 16:41
MuToGeN, да не грубо... дык я енто уже сразу же и убрал... smile.gif

Вот тут теперь немного другая проблемма с этим....

когда набираю http://127.0.0.1/file.php?filelink=http://127.0.0.1/test.php
при $filename=$filelink; (это просто так)

вот что выдает
Цитата
Warning: stat failed for http://127.0.0.1/xx.txt (errno=2 - No such file or directory) in c:\apache\htdocs\file.php on line 8


А когда просто http://127.0.0.1/file.php?filelink=test.php
все реально выводит.....
как можно это все доработать? sad.gif

Автор: MuToGeN 2.10.2003, 16:46
return fread($fp,filesize($file)));

меняешь на

while($c=fread($fp,1024))
$o.=$c;
return $o;

Автор: Wolves 2.10.2003, 17:11
MuToGeN, Спасибо тебе большое.... smile.gif (сорри если что.... ок...? ) ;)

Автор: Wolves 2.10.2003, 17:15
MuToGeN, ой... а php кодconfused.gif?? тоесть php он выполняет sad.gif

Автор: Secandr 2.10.2003, 18:02
А что если
Код
<?
$filename='1.htm';
echo '<pre>'.htmlspecialchars(join('',file($filename))).'</pre>';
?>

Проверял php и html не выполняет smile.gif

Автор: Wolves 2.10.2003, 19:00
Secandr ну да... а то я вижу... sad.gif


вот что получилось:
Цитата
....
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1" height="100%">
<tr>
<td width="100%"><center><font face="Courier" size="2">
<br>
<b>Warning</b>:  Undefined variable:  namefile in <b>c:\apache\htdocs\nofile.php</b> on line <b>9</b><br>
- не существует<p><a href="php.php" style="text-decoration: none"><span lang="en-us">
<font color="#000080">&lt;&lt; </font></span><font color="#000080">вернуться</font></a></p>
&nbsp;</td>
</tr>
</table>
</center>
</div>
</html>&nbsp;</td>
</tr>
</table>
</center>
</div>
...


В место:
Цитата
...
<table border="1" cellpadding="2" cellspacing="2" style="border-collapse: collapse; border-style: dotted; border-width: 1" bordercolor="#111111" width="100%" id="AutoNumber1" bgcolor="#ffffff">
<tr>
<td width="100%">
<?
include ("file.php");
}
?>
&nbsp;</td>
</tr>
</table>
</center>
</div>
...

Автор: Wolves 2.10.2003, 19:02
Secandr хэх.. или вот тебе кусочик index'a этого форума...

Цитата
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- no cache headers -->
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="no-cache">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="Cache-Control" content="no-cache">
<!-- end no cache headers -->
<meta name="keywords" content="vbulletin,forum,bbs,discussion,jelsoft">
<meta name="description" content="жПТХН">

<title>жПТХН РМБФЕЦОПК УЙУФЕНЩ Rapida</title>
<meta http-equiv="MSThemeCompatible" content="Yes">
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">

<style type="text/css">
.defFont {
font-family: Geneva CY, Tahoma, Arial, sans-serif;
font-size: 66%;
}

BODY {
SCROLLBAR-BASE-COLOR: #e5e5e5;
SCROLLBAR-ARROW-COLOR: #666666;
}
SELECT {
FONT-FAMILY: Verdana,Arial,Helvetica,sans-serif;
FONT-SIZE: 11px;
COLOR: #000000;
}
TEXTAREA, .bginput {
FONT-SIZE: 12px;
FONT-FAMILY: Verdana,Arial,Helvetica,sans-serif;
COLOR: #000000;
}
A:link, A:visited, A:active {
COLOR: #004a98;
}
A:hover {
COLOR: #FF6600;
}
#cat A:link, #cat A:visited, #cat A:active {
COLOR: #666666;
TEXT-DECORATION: none;
}
#cat A:hover {
COLOR: #666666;
TEXT-DECORATION: underline;
}
#ltlink A:link, #ltlink A:visited, #ltlink A:active {
COLOR: #004a98;
TEXT-DECORATION: none;
}
#ltlink A:hover {
COLOR: #FF6600;
TEXT-DECORATION: underline;
}
.thtcolor {
COLOR: #4d4d4d;
}
a.rmmc:hover, a.rmmc:link, a.rmmc:active, a.rmmc:visited {font-size : 10px; color : #FFFFFF; text-decoration: none; FONT-FAMILY: Verdana,Arial,Helvetica,sans-serif;}
a.mmc {font-size : 10px; color : #344E68; text-decoration: none; FONT-FAMILY: Verdana,Arial,Helvetica,sans-serif;}
</style>



</head>
<body bgcolor="#FFFFFF" text="#000000" id="all"  rightmargin="0" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" link="#000020" vlink="#000020" alink="#000020">
<!-- sla content table -->
<table bgcolor="#FFFFFF" width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">

<tr height=1>
  <td bgcolor="#FFFFFF" height=1>
<!-- -->






      <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD width="25%"><TABLE cellSpacing=0 cellPadding=0 width="100%"
            background=images/leb/i3.gif border=0>
              <TBODY>
              <TR>
                <TD><IMG height=64 alt="" src="images/leb/i2.gif" width=179
                  border=0></TD>
                <TD align=right><IMG height=64 alt="" src="images/leb/i4.gif"
                  width=5 border=0></TD></TR></TBODY></TABLE></TD>
          <TD><IMG height=64 alt="" src="images/leb/i1.gif" width=1
          border=0></TD>
          <TD width="50%" background=images/leb/i5.gif><TABLE cellSpacing=0 cellPadding=0 border=0>
              <TBODY>
              <TR>
                <TD noWrap background=images/leb/beta colSpan=9 height=11>
                  <DIV style="HEIGHT: 11px"><SPACER height="11" width="1"
                  type="block" /></DIV></TD></TR>
              <TR>
                <TD noWrap width=20>
                  <DIV style="WIDTH: 20px"><SPACER height="1" width="20"
                  type="block" /></DIV></TD>
                <TD><IMG height=9 alt="" src="images/leb/p-serie.gif"
                  width=62 border=0></TD>
                <TD noWrap width=12>
                  <DIV style="WIDTH: 12px"><SPACER height="1" width="12"
                  type="block" /></DIV></TD>
                <TD><IMG height=9 alt="" src="images/leb/p-number.gif"
                 

Что то не очень уж так похоже.. sad.gif

Автор: Secandr 2.10.2003, 19:36
Wolves Всё работает на ура. Ты как файл запрашиваешь? И что именно не похоже?

Автор: Master 3.10.2003, 09:32
Да ё.. мае. Скрипт при открытии страницы с сервера выдаст результат обработки скрипта..
Если есть файл http://domain/1.php и его открыть с таким путем, то ясный хрен что запрос обработается сервером, а потом выдаст результат, а если ты его откроеш с того же сервера, но не как url, а как файл... например: /1.php то он его не будет выполнять и покажет тебе содержимое файла...
Извените за резкость.. не выспался sad.gif

Автор: MuToGeN 3.10.2003, 09:42
Короче говоря, небольшие пояснения... Что делает
Код
return fread($fp,filesize($file)));
читает весь фаил, за размер его берет то, что вернет filesize(). Если запрашивать что-то по HTTP, то еще не факт, что сервер скажет размер документа. Например, если это PHP скрипт, то приходится делать специальную приладу, основанную на буферизации вывода, которая сможет кинуть заголовок Content-size.
Что делает
Код
while($c=fread($fp,1024))
  $o.=$c;
return $o;
Когда fread() получает EOF, $c=fread($fp,1024) возвращает false. Поэтому с помощью такой конструкции можно читать фаилы неизвестной длины.

Автор: MuToGeN 3.10.2003, 09:43
Master, конечно, прав, но, вроде, никто в этом топике не пытался получить PHP сурсы с другого сервера.

Автор: Secandr 3.10.2003, 10:09
MuToGeN А чем мой код отличается?

Автор: MuToGeN 3.10.2003, 10:11
Да, собственно, только размером.

Автор: Wolves 3.10.2003, 13:00
Да нет, мне нужно что бы он выводил html и php код с другого сервера... тоесть тама находяться файлы с примерами , а с другого я их показываю... (вот такая сложная штука)

Поясняю, что бы он запускал типа такого http://domain/primer/1.php

Автор: Master 3.10.2003, 13:38
Цитата(Wolves @ 3.10.2003, 14:00)
Да нет, мне нужно что бы он выводил html и php код с другого сервера... тоесть тама находяться файлы с примерами , а с другого я их показываю... (вот такая сложная штука)

Поясняю, что бы он запускал типа такого http://domain/primer/1.php

Я щас умру smile.gif

Автор: MuToGeN 3.10.2003, 14:22
Для такой ситуации есть FTP smile.gif только для него нужен пароль на администрирование того самого сервера, чей скрипт ты хочешь увидеть smile.gif

Автор: Wolves 3.10.2003, 14:55
MuToGeN, нет... мдин...
что не кто не может помочьconfused.gif? sad.gif


Master, не умирай.. ты еще нужен миру...

Автор: Wolves 3.10.2003, 15:33
Чесно скажу.. мне этот скрипт нужен не для вреда... помогите...

Автор: MuToGeN 3.10.2003, 15:39
Wolves, какая разница, для чего он нужен - это так и так невозможно.

Автор: Wolves 3.10.2003, 15:54
MuToGeN, ну да.... но вот только мне один чел выкладывал на свой сайт скрипт который открывает и не запускает.. все там как на ладони.... Это реально возможно...

Автор: MuToGeN 3.10.2003, 16:22
Wolves, вот только не надо "а я где-то видел то-то и то-то"...
Если читать скрипты с твоего собственного сайта - то все ОК, если с чужих сайтов - это невозможно.

Автор: Kefir 3.10.2003, 16:23
Wolves, ну что я могу сказать - значит гений этот чел. Представь ситуацию:
smth.php:

<?
define("DB_HOST", "some_host");
defien("DB_USER", "hello_hackers!!!");
define("DB_PASS", "and_this_is_my_password!");
define("NOTE", "ok_now_you_know_my_DB_information!");
...
?>

Тебе не кажется, что в таком случае "кто-то" может узнать всё ЭТО? а?

Автор: Kefir 3.10.2003, 16:25
Прошу прощения за спам, но, вам всё это ничего не напоминает?.. Просто где-то я это всё уже видел...

Автор: Secandr 3.10.2003, 17:10
Kefir Точно была эта тема уже. Человеку по русски объяснили, что это невозможно. Не поверил smile.gif

Автор: Vco 3.10.2003, 17:24
Люди а что за скрипт на manlix.ru - граббер? Вроде вытягивает любую инфу т.е содержание файла с другово сайта, я хз насчёт того Что именно он делает - несмог присоедениться к другим

Автор: Wolves 3.10.2003, 17:28
MuToGeN, Secandr, ну блин... если не хотите помочь, то так и скажите... sad.gif

Vco, ща глянем...

Автор: Secandr 3.10.2003, 18:42
Wolves Это есть взлом системы. Еслихочешь взять исходник файла с другого сервера - ищи дыры в сервере. А это уже взлом. Мы программисты, а не хакеры....

Если есть такая необходимость, договорись с админом другого сервера, чтоб дал тебе фтп, шела,... Через http:// не пройдёт!!!

P.S. Если напишишь такой скрипт, то тебе "нобеевку" дадут или посадять. Только опубликуй его тут.

Автор: Kefir 3.10.2003, 23:36
Secandr, строго!
Wolves, мы хотим помочь (хоть ты ко мне и не обращался). Просто не знаем как тебе ещё объяснить, что это "за просто так" НЕ сделать!

Автор: Wolves 5.10.2003, 17:29
Kefir, обидно... обидно... sad.gif
ну что ж.... пущай тогда тому и быть.. sad.gif

Автор: Master 6.10.2003, 09:59
Wolves послушай. Никто тебе тут помоч не сможет...
Единственное что тебе можно сделать, - это забыть это как страшный сон или забросить PHP куда подальше и сесть за C++ и копаться в исходниках серверов в поисках дыр...

Ты не туда полез со своим вопросом!
Предлогаеш чтобы мы занимались взломом сервера... но здесь этим не занимаются... по крайней мере за время моего тут прибывания никто об этом не упоминал и эти 3 страницы этой глупой темы тому подтверждение...

Вскрытие чужого кода - это есть несонкцианированное получение коденфициальной инфы.
А ты даже не сказал за каким благим делом тебе это понадобилось.
Опять сори что в таком тоне... опять не выспался sad.gif
А тема сакс!

Автор: IZ@TOP 7.10.2003, 12:52
Короче полный бред ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)