Я пытаюсь поместить PHP-код в переменную php, а затем записать его в файл. Но это не работает. Поскольку он содержит вкладки,] [? пространство, новая линия и т.д. Я пытался использовать EOD, не работал.
Вот мой код:
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
$content02 = "\n";
$content01 = <<<EOD
<?php session_start();
if(!isset($_SESSION["UserData"]["Username"])){
header("location:login.php");
exit;
}
?>
EOD;
$content03='<!DOCTYPE html><html><head><title>Spambox</title></head><body><html dir="rtl"></html><form action="flushsink.php" method="get"><input type="submit" value="Flush!"></form>';
$content4 = $content01.$content02.$content03;
function writeUTF8File($filename,$content) {
$f=fopen($filename,"w");
fwrite($f,$content);
fclose($f);
}
writeUTF8File("spams.php",$content4);
header('Location: http://targeturl.com/int/spams.php');
?>
Таким образом, в основном я очищаю файл spams.php новым PHP-кодом. Но я не могу правильно записать PHP-код в файл.
Если изменить строку 5 на:
$content01 = '<?php session_start(); if(!isset($_SESSION["UserData"]["Username"])){ header("location:login.php"); exit;}?>';
Приложение будет писать в spams.php, но перенаправление (header()) больше не работает.
Любая идея поместить несколько значений строк, содержащих PHP-код, в переменную?
Вы можете попытаться создать массив строк, так что вы можете просто взорвать массив. Таким образом, вы можете добиться лучшего форматированного кода. Я просто сделал это, например, с вашим PHP, вы также можете сделать это с помощью своего HTML.
Кстати, я изменил путь вашего header("Location:....spams.php");
для моего теста, просто измените его и попробуйте код ниже:
$content = array();
$content[] = '<?php';
$content[] = 'session_start();';
$content[] = 'if( !isset( $_SESSION["UserData"]["Username"] ) ) {';
$content[] = ' header("Location: login.php");';
$content[] = ' exit;';
$content[] = '}';
$content[] = '?>';
// for better readability you can also split the html below, like I did with the PHP above
$content[] = '<!DOCTYPE html><html><head><title>IrNut Spambox</title></head><body><html dir="rtl"></html><form action="flushsink.php" method="get"><input type="submit" value="Flush!"></form>';
// implode array to string, glue will be a \n
$content = implode( "\n", $content );
function writeUTF8File($filename,$content) {
$f=fopen($filename,"w");
fwrite($f,$content);
fclose($f);
}
writeUTF8File( "spams.php", $content) ;
header('Location: spams.php');// just changed the path to fit my test
Spams.php будет выглядеть так:
<?php
session_start();
if( !isset( $_SESSION["UserData"]["Username"] ) ) {
header("Location: login.php");
exit;
}
?>
<!DOCTYPE html><html><head><title>IrNut Spa.......
Это работает?
$content01 =
"<?php \n" .
"session_start(); \n" .
"if (!isset($_SESSION['UserData']['Username'])) \n" .
"{ \n" .
"header('location:login.php'); \n" .
"exit; \n" .
"}?> \n"
;