2013-07-20 4 views
0

Я делаю эксперимент снова, теперь, я tryng сделать это:Encode var_dump с Base_64

<script type="text/javascript"> 
document.write(atob("<?php var_dump(base64_encode(include("index.php")));?>")); 
</script> 

хорошо, проблема заключается в выходной не base64 кодирование. если я попробовать:

<script type="text/javascript"> 
    document.write(atob("<?php base64_encode(var_dump(include("index.php")));?>")); 
    </script> 

Он возвращает мне то же самое, если я стараюсь:

<script type="text/javascript"> 
     document.write(atob("<?php echo base64_encode(var_dump(include("index.php")));?>")); 
     </script> 

То же самое, тоже ...

Можете ли вы помочь мне, пожалуйста? Спасибо, много

+0

Попробуйте «index.php» вместо «index.php» ... Проблема может быть вызвана неправильными котировками. –

+0

Я тоже пробовал .. и я пытаюсь снова прямо сейчас, но это та же ситуация. – Darkness

ответ

2

Вы кодирующие возвращаемое значение include. Не вывод встроенного скрипта. Используйте выходной буфер, используя ob_start(), и друзей, чтобы захватить вывод.

Mind: Выполнение этого похоже на плохую архитектуру ... thre должна быть функцией, возвращающей результат включенного файла в виде строки, без ob hack.

+0

Ну, наконец-то я пытался с ob_start(): <тип скрипта = "текст/JavaScript"> document.write (atob (" ")); – Darkness

+0

Спасибо, много! – Darkness

2

Вы хотите использовать var_export вместо var_dump, потому что var_dump просто выгружает переменную и ничего не возвращает. Смотрите документацию оба:

var_dump - http://www.php.net/manual/en/function.var-dump.php

var_export - http://www.php.net/manual/en/function.var-export.php

Также ваши цитаты не так, попробуйте следующее:

<script type="text/javascript"> 
    document.write(atob("<?php base64_encode(var_export(include('index.php'), true));?>")); 
</script>