Я знаю достаточно кода, чтобы быть опасным, но не мог написать что-то с нуля, если бы от этого зависела моя жизнь. Я переношу веб-сайт на новый хостинг, который имеет более новую версию PHP, которая не позволяет $ _REQUEST (я думаю). Этот код предназначен для шифрования PDF. Отлично работает на старом сайте (возможно, более старая версия PHP).
Я попытался заменить все $ _REQUEST на $ _GET, и это не сработало. Любая помощь приветствуется. Я исключил код форматирования и базовый html.
<?php
$timeArr = explode(' ', microtime());
$pageStartTime = $timeArr[ 1 ] + $timeArr[ 0 ];
$file = $_FILES['file'];
if($_REQUEST['submit'] && (!trim($_REQUEST['password']) || $_REQUEST['password'] == 'Password')) {
$msg = 'Please enter a password.';
}
elseif(is_array($file) && $file['error'] == 0) {
$enc_path = 'encrypted';
$src = $file['tmp_name'];
$dest = "{$enc_path}/{$file['name']}";
$pass = trim($_REQUEST['password']);
$cmd_fmt = "pdftk '$src' output '$dest' user_pw '$pass'";
@mkdir($enc_path);
@system($cmd_fmt);
if(file_exists($dest)) $file_url = "http://www.company.com/{$enc_path}/" . rawurlencode($file['name']);
}
?>
}
</style>
<script type="text/javascript">
function copyToClipboard(s) {
if(window.clipboardData && clipboardData.setData) {
clipboardData.setData('text', s);
}
else alert('Could not get permission to access the clipboard. Please copy the URL from the text box instead.');
}
</script>
</head>
<body>
<center>
<div style="width: 600px;">
<div style="text-align: center;">
<center>
<form action="<?= $_SERVER[ 'PHP_SELF' ] ?>" method="POST" enctype="multipart/form-data">
<div style="text-align: center;">
<img src="/logo.png" border="0" style="height: 145px; margin-bottom: -10px;">
<h1>PDF Encryption Tool</h1>
</div>
<br/>
<? if($file_url) : ?>
<span><a href="<?= $file_url ?>">Click here to download your file</a></span><br/>
<input type="text" readonly value="<?= $file_url ?>" style="width: 350px; margin: 0 0 5px 0;"><br/>
<input type="button" onclick="copyToClipboard('<?= $file_url ?>');" value="Copy to Clipboard">
<br/>
<? elseif($_REQUEST['submit'] && $msg) : ?>
<font color="red"><b><?= $msg ?></b></font>
<br/>
<? elseif($_REQUEST['submit']) : ?>
<font color="red"><b>There was an error processing your request. This program only accepts PDF files.</b></font>
<br/>
<? endif; ?>
<br/>
<br/>
<input type="file" name="file" style="width: 350px; border: 0; margin: 0 0 5px 0;"><br/>
<input id="password" type="text" name="password" style="width: 350px;"
<?= $_REQUEST['password'] ? 'class="focus"' : ''?>
onFocus="this.className = 'focus'; if(this.value == 'Password') { this.value = ''; }"
onBlur="if(this.value == '') { this.className = ''; this.value = 'Password'; }"
onKeyDown="if(event.keyCode == 13) { this.form.submit(); return false; }"
value="<?= $_REQUEST['password'] ? $_REQUEST['password'] : 'Password' ?>"
>
<br/>
<br/>
<input name="submit" value="Submit" type="submit">
</form>
<br/>
<br/>
</center>
</div>
<br/>
<br/>
<?
$timeArr = explode(' ', microtime());
$pageEndTime = $timeArr[ 1 ] + $timeArr[ 0 ];
$pageTime = $pageEndTime - $pageStartTime;
?>
<span align="left">
<font color="gray" size="-3">
Page took <?= number_format($pageTime, 3) ?> second(s) to load.
</font>
</span>
</div>
</center>
</body>
</html>
$ _REQUEST var может содержать значения $ _GET, $ _POST и $ _COOKIE! см. [http://php.net/manual/en/reserved.variables.request.php](reserved.variables.request) – fehrlich
Ваша форма, например, имеет тип $ _POST – fehrlich
, у вас также есть серьезные проблемы с безопасностью на странице , вы можете в основном запустить любую команду с помощью '@system ($ cmd_fmt);' – fehrlich