Как я могу отобразить источник file.php в HTML?


У меня есть следующий PHP-скрипт (file.php ), который показывает текущее время и отображает ввод пользователя:

Current time:

<?php

$time=time();
$actual_time=date('H:i:s',$time);
echo $actual_time;

//show user input
$enter=@$_POST['enter'];
echo '<br>Input: '.$enter;

?>

<form action="" method="POST">
    <input type="text" name="enter">
    <input type="submit" value="Refresh">
</form>

По умолчанию на странице отображается следующее: default

Если я введу, например, <strong>test</strong>, я увижу это: enter_htmlcode1

И если я введу <iframe src="file.php"></iframe>, я смогу перезагрузить страницу в меньшем окне: enter_htmlcode2

Итак, теперь, как я могу отобразить исходный PHP-скрипт(file.php ) отправив некоторый определенный HTML-код в поле ввода текста?

Author: Andy, 2015-12-08

6 answers

<?php

// Disable a WebKit security feature
// which would prevent from showing the source code.
header('X-XSS-Protection: 0');

if (isset($_GET['source']) || isset($_POST['source'])) {
        $source = file_get_contents(__FILE__);

        // To prevent this control from showing up
        // in the output source code
        // enable the code below.
        /*
        $lines_to_remove = 26;
        $source = explode("\n", $source, $lines_to_remove);
        $source = $source[$lines_to_remove - 1];
        */

        $source = highlight_string($source, true);
        echo $source;

        return;
}

?>
Current time:

<?php


$time=time();
$actual_time=date('H:i:s',$time);
echo $actual_time;

//show user input
$enter=@$_POST['enter'];
echo '<br>Input: '.$enter;

?>

<form action="" method="POST">
    <input type="text" name="enter">
    <input type="submit" value="Refresh">
</form>

enter image description here

 11
Author: Daniele Orlando, 2015-12-13 04:40:52

Первый

htmlspecialchars — Convert special characters to HTML entities

$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new;

//This would be the output
&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;

//browser will display
<a href='test'>Test</a>

Второй

htmlentities -Convert all applicable characters to HTML entities

$str = "A 'quote' is <b>bold</b>";

echo htmlentities($str);

// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;

echo htmlentities($str, ENT_QUOTES);
// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;

In browser it woulbe displayed:

A 'quote' is <b>bold</b>
 3
Author: Vineet1982, 2015-12-11 06:56:30

При анализе входных данных в виде обычного текста должен отображаться файл:

<?php

$time=time();
$actual_time=date('H:i:s',$time);
echo $actual_time;

//show user input
$enter=@$_POST['enter'];

header("Content-Type: text/plain");

echo '<br>Input: '.$enter;

?>

Конечно, вам придется настроить свой скрипт, чтобы определить, когда пользователь хочет отобразить файл, и только затем изменить тип контента (иначе другие входные данные html не будут работать).

 2
Author: Krii, 2015-12-08 14:27:20

Отправка кода html или php для последующего отображения:

<?php

$time=time();
$actual_time=date('H:i:s',$time);
echo $actual_time;

//show user input
$enter=@$_POST['enter'];
echo '<br>Input: <pre>'.htmlspecialchars($enter).'</pre>';

?>

<form action="test.php" method="POST">
    <input type="text" name="enter">
    <input type="submit" value="Refresh">
</form>

Открытие файла, а затем отображение:

<?php
    $myfile = fopen("test.php", "r") or die("Unable to open file!");
    echo '<pre>'.htmlspecialchars(fread($myfile,filesize("test.php"))).'</pre>';
    fclose($myfile);
?>
 2
Author: Santy, 2015-12-14 19:02:14

Имя файла: test1.php

Напишите ниже код в этом файле:

<?php
$time=time();
$actual_time=date('H:i:s',$time): ;
echo $actual_time;

$enter=@$_POST['enter'];
if (isset($enter)) {
    $doc = new DOMDocument();
    @$doc->loadHTML($enter);
    $tags = $doc->getElementsByTagName('iframe');
    foreach ($tags as $tag) {
           $file_name = $tag->getAttribute('src');
    }
    if(isset($file_name)){
        $result ='<iframe src='.$file_name.'></iframe>';        
    }else{
        $result = $enter;   
    }
}
echo '<br>Input: '.$result;
?>
<form action="" method="POST">
    <input type="text" name="enter">
    <input type="submit" value="Refresh">
</form>

Создайте новый файл: test6.php

Напишите код ниже в этом файле:

<?php
    $myfile = fopen("test1.php", "r") or die("Unable to open file!");
    echo '<pre>'.htmlspecialchars(fread($myfile,filesize("test1.php"))).'</pre>';
    fclose($myfile);
?>

Файл попадания: test1.php

Запись в тег ввода : <iframe src="test6.php"></iframe>

Это сработает!!

 1
Author: Monty, 2015-12-16 09:05:54

Я не совсем понимаю, чего вы пытаетесь достичь, однако я предполагаю, что функция highlight_file() должна помочь.

echo highlight_file('file.php',true);
 0
Author: Huzaib Shafi, 2015-12-17 15:37:41