Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> заменить файл в $_POST, подменить переданный файл! 
:(
    Опции темы
newinjava
  Дата 7.6.2011, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ATokS
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



Здрасвуйте.

Мне нужно подменить файл который передан в переменной $_POST.

Пользователь отправляет чу данных через $_POST там же и картинку как файл. При отсутствии переданного файла, мне нужно самому с помощью PHP забить в $_POST файл который лежит гденибудь на хосте.

к примеру то что передаётся
Код

<input type="text" name="user_name"/>
<input type="text" name="user_pass"/>
<input type="file" name="user_file"/>


после того как я получил $_POST с этими данными, надо заменить содержимое переменной $_POST.
С текстовыми полями проблем нет. Просто:
Код

$_POST['user_name'] = "Заменённое имя";
$_POST['user_pass'] = "Заменённый пароль";


Но вот как быть с Файлом. Мне это надо заменить до обработки $_POST чтобы потом обработать не то что отправил пользовател а то что указал я.

Отвечу сразу на вопросы типо токого: а почему не просто написать функцию каторая игнарирует преданую инфу в $_POST и указывает нужный файл?

Ответ: Мне нужно заменить именно содержимое $_POST, так как $_POST дальше передаётся в функцию. А её мне менять НЕЛЬЗЯ!!! 

Помогите пожалйста!
PM WWW   Вверх
skyboy
Дата 7.6.2011, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



$_FILES
но для подмененных файлов не пройдет проверка is_uploaded_file и не пройдет перемещение при помощи move_uploaded_file. по крайней мере, единственный вариант, который может работать - подсмотреть в $_FILES['index']['tmp_name'] и заменить этот временный файл подложным. Потому как я не знаю, как именно определяется - был ли файл загружен или нет.
PM MAIL   Вверх
newinjava
Дата 7.6.2011, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ATokS
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



Ок, ща попробую!
PM WWW   Вверх
newinjava
Дата 7.6.2011, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ATokS
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



Не работает. Таже история. Всё кроме файла заменимо.

Код

$f = "upload/test.gif";
$_FILES['products_image']["name"]    =    "test.gif";
$_FILES['products_image']["type"]        =    "image/gif";
$_FILES['products_image']["tmp_name"]=    $f;
$_FILES['products_image']["error"]        =    0;
$_FILES['products_image']["size"]        =    filesize ($f);


$_FILES['products_image']["tmp_name"]=    $f;
Не работает!!!!!!!!
PM WWW   Вверх
InfMag
Дата 7.6.2011, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 1
Всего: 4



newinjava, ошибку выдаёт или значение не меняется?

Добавлено через 1 минуту и 14 секунд
newinjava, судя по пути до файла он ищется в рабочей директории php-скрипта, учтите это. Попробуйте:
Код

$f = "/upload/test.gif";

То-есть от корня лезть в upload.
PM   Вверх
newinjava
Дата 9.6.2011, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ATokS
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



Цитата(InfMag @  7.6.2011,  22:40 Найти цитируемый пост)
То-есть от корня лезть в upload. 

Именно так и лезу. Нет ни какой ошибки.
Я хочу обмануть функцию xtc_try_upload из (xt:Commerce).!
PM WWW   Вверх
InfMag
Дата 10.6.2011, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 1
Всего: 4



Вот так получилось:
Код

<html>
<body>
    <form action="" method="post" enctype="multipart/form-data">
        <input type="file" name="file">
        <input type="submit">
    </form>
</body>
</html>
<?php
    error_reporting(E_ALL);
    ini_set("display_errors", 1);
    if (isset($_FILES['file'])) {
        $f = 'test.gif';
        unlink($_FILES['file']['tmp_name']);
        if (!copy($f, $_FILES['file']['tmp_name'])) {
            echo 'SHIT HEPPENS with COPY';
        }
        $_FILES['file']['name'] = $f;
        $_FILES['file']['type'] = 'image/gif';
        $_FILES['file']['error'] = 0;
        $_FILES['file']['size'] = filesize($f);
        if (!move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/'.$f)) {
            echo 'SHIT HAPPENS with UPLOAD';
        }
    }
?>

Вариант, только если подкладывать свой файл под темп загруженного.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0522 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.