ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

27.05.2010, 00:06
|
|
Познающий
Регистрация: 07.02.2010
Сообщений: 70
Провел на форуме: 217996
Репутация:
56
|
|
%d0%e5%ec%e5%ed%fc%20.jpg - 'Ремень .jpg'
Убрал бы пробел перед .jpg и хватило бы urlencode (т.к. urlencode вместо пробела ставит +)
Есть вариант менять через str_replace плюсы на пробелы
str_replace('+','%20',urlencode($url))
Либо по циклу берёшь ord() от каждого символа, переводишь в HEX, ставишь перед каждым хексом % (перед однобайтовым хексом 0 не забудь).. можно, конечно, ещё наложить фильтр на латину (точки и т.д.) и всё в strtolower() и тогда будет полное соответствие
upd: насчёт rawurlencode('картинка.jpg') -- проверь правильность ввода имени файла в строке, мало ли там где пробел или похожая буква из другого языка (т.е. имя файла копи-паст)
Последний раз редактировалось roxblnfk; 27.05.2010 в 00:14..
|
|
|

27.05.2010, 00:31
|
|
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме: 2589211
Репутация:
151
|
|
roxblnfk, спасибо тебе! Сразу понял, в чём затык был.
Прокатил вариант - str_replace('%2F', '/', rawurlencode($url))
При urlencode тоже ещё пришлось менять '%2F' на '/'
|
|
|

27.05.2010, 16:44
|
|
Новичок
Регистрация: 23.07.2008
Сообщений: 28
Провел на форуме: 104504
Репутация:
1
|
|
Доброго времени суток! Народ, помогите со скриптом. Всего-то надо просто залить файл в папку с правами 777, писал свой скрипт, качал готовые, ниче не работает. Вот пример:
Форма:
Код:
<html>
<head>
<title>Обработка переданного файла</title>
</head>
<body>
<form action=upload.php method="POST" enctype=multipart/form-data>
Выберите файл:<br>
<input type="file" name=File><br>
<br>
<input type=submit name=doUpload value="загрузить"><br>
</form>
</body>
</html>
Обработчик
Код:
<?php
$ImgDir=".";
print $_POST['File'];
print $_FILE['File'];
if ($_POST['doUpload'])
{
print "asda";
if (file_exists($File))
{
print "123";
Copy($File, "$ImgDir/".basename($File_name));
}
}
?>
Переменная $File почему-то пустая...Можешь поможет кто?
|
|
|

27.05.2010, 17:03
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от w_2k
Доброго времени суток! Народ, помогите со скриптом. Всего-то надо просто залить файл в папку с правами 777, писал свой скрипт, качал готовые, ниче не работает. Вот пример:
Форма:
Код:
<html>
<head>
<title>Обработка переданного файла</title>
</head>
<body>
<form action=upload.php method="POST" enctype=multipart/form-data>
Выберите файл:<br>
<input type="file" name=File><br>
<br>
<input type=submit name=doUpload value="загрузить"><br>
</form>
</body>
</html>
Обработчик
Код:
<?php
$ImgDir=".";
print $_POST['File'];
print $_FILE['File'];
if ($_POST['doUpload'])
{
print "asda";
if (file_exists($File))
{
print "123";
Copy($File, "$ImgDir/".basename($File_name));
}
}
?>
Переменная $File почему-то пустая...Можешь поможет кто?
1) А почему собственно переменная $File должна быть определена? И даже больше, почему в ней должен лежать путь к файлу? оО
2) Какой на*** copy();? )
3) http://www.php.ru/manual/features.file-upload.html
http://php.net/manual/en/reserved.variables.files.php
http://ru.php.net/manual/en/function.move-uploaded-file.php
|
|
|

27.05.2010, 17:10
|
|
Новичок
Регистрация: 23.07.2008
Сообщений: 28
Провел на форуме: 104504
Репутация:
1
|
|
Благодарю)
|
|
|

28.05.2010, 01:30
|
|
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме: 2589211
Репутация:
151
|
|
Помогите разобраться.
Была проблема с загрузкой постом файлов на сервак.
Накидал вот такой скрипт для теста (кинул в папку с правами 777).
PHP код:
<?php
if (empty($_FILES["img_file"]["name"])) {
?>
<form action="index.php" method="POST" enctype="multipart/form-data">
img: <input type="file" name="img_file" />
<input type="submit" value="Загрузить" />
</form>
<?php
}
else {
$imageinfo = getimagesize($_FILES['img_file']['tmp_name']);
if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] != 'image/png')
{
echo '<span style="font-size:13px;">Ошибка загрузки изображения.</span>';
}
else
{
move_uploaded_file($_FILES["img_file"]["tmp_name"], $_FILES["img_file"]["name"]);
echo '<img src="'.$_FILES["img_file"]["name"].'" />';
}
}
?>
На денвере всё замечательно. Загружаются jpg,gif,png.
А вот при заливке на хостинг начинаются проблемы.
1) При попытке загрузки jpg/jpeg вываливает "Ошибка загрузки изображения". Причём, $_FILES['img_file']['tmp_name'] не пуст! А вот getimagesize от него уже не берётся - пусто. Правда, догадываюсь, что это связано со вторым вопросом
2) При загрузке оставшихся png и gif он их загружает, отрабатывается move_uploaded_file (файл появляется в папке), но вот потом нифига не отображается. В мозиллке отображается иконка повреждённого файла, в IE крестик...Если слить с сервера файл - не открывается уже. Откуда берётся эта "обработка" файла?
|
|
|

29.05.2010, 09:28
|
|
Познающий
Регистрация: 03.01.2010
Сообщений: 42
Провел на форуме: 162143
Репутация:
3
|
|
У меня такое же было. Может быть потому что на хостинге *nix а символы переноса строки в винде и *nix разные.(\r\n и \n) При переходе из одной системы в другую они интерпретируются, а т.к. Картинка передается как бинарник, то содержимое файла меняется и он повреждается.
Последний раз редактировалось SHiNiGaMi; 29.05.2010 в 09:30..
|
|
|

29.05.2010, 12:51
|
|
Участник форума
Регистрация: 26.08.2009
Сообщений: 138
Провел на форуме: 201522
Репутация:
18
|
|
Как проверить ftp на валидность php средствами?
|
|
|

29.05.2010, 13:00
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
Сообщение от programming
Как проверить ftp на валидность php средствами?
http://php-book.net/ftp-connect.html
FindeR, echo $_FILES['uploadfile']['error'];
и еще попробуй указать точный путь до файла
PHP код:
move_uploaded_file($_FILES["img_file"]["tmp_name"], dirname(__FILE__).'/'.$_FILES["img_file"]["name"]);
Последний раз редактировалось Chaak; 29.05.2010 в 13:12..
|
|
|

29.05.2010, 13:10
|
|
Участник форума
Регистрация: 01.07.2008
Сообщений: 172
Провел на форуме: 2567583
Репутация:
258
|
|
Итак, нужно отредактировать файл через форму. В данном случае html файл шаблона.
Делаю всё это так:
PHP код:
<?php
file_get_contents("../../style/header.html"); //Получаю содержимое
// ну и проверяю переменную и записываю в файл и перенаправляю на страницу, которая сообщает о успешном действии.
if(empty($_POST['header'])) {
file_put_contents("../../style/header.html", $_POST['header']);
header("Location: ../ok.php");
}
?>
Код HTML:
<form action="editstyle.php" method="post">
<textarea name="header" cols="100" rows="20"><?=$header; ?></textarea>
<input type="submit" value="Записать" />
</form>
</body>
</html>
Внимание вопрос: после записи html в файл записывается много лишних слешей.. Перед каждой кавычкой добавляется "\" (обратный слеш). Как это избежать?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|