Имя файла при алоаде

Shasoft

Новичок
// Копируем файл из каталога для временного хранения файлов:
if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile))
на днях аналогичная ситуация была. Помогла такая конструкция:

PHP:
if (copy($uploadfile, $uploadfile))
Я вообще думал, что в $uploadfile и $_FILES['uploadfile']['tmp_name'] одно и тоже значение должно содержаться, но когда вывел значения на экран, то обнаружил, что это не так.
 

Shasoft

Новичок
По 2 и 3-му вопросу ***** прав, "сам не найдешь, никто не найдет".

Надо смотреть, что именно возвращает MySQL, какую ошибку.

Я обычно в таких случаях пользуюсь программой
http://www.heidisql.com/.
Она позволяет цепляться к MySQL и рулить всей базой. Мне больше нравится, чем PHPmyadmin. Для отладки локально самое то.
 

Фанат

oncle terrible
Команда форума
Я вообще думал, что в $uploadfile и $_FILES['uploadfile']['tmp_name'] одно и тоже значение должно содержаться, но когда вывел значения на экран, то обнаружил, что это не так.
Shasoft, а какое ты предполагаешь объяснение этому загадочному факту?
 

Shasoft

Новичок
Никакого. У меня заработало и слава богу. :)
Потом (если будет время) почитаю умные мануалы, что они по этому поводу пишут.

P.S.Так что даю тебе шанс расказать мне об этом. Ж)
 

Фанат

oncle terrible
Команда форума
Мда...
Судя по вышеприведенному коду, разные значения находятся не только в $uploadfile и $_FILES['uploadfile']['tmp_name'], но и даже и в одной и той же переменной $uploadfile
 

Shasoft

Новичок
Да, я не внимательно посмотрел. Приведенный мной код вообще копирует из А в А.

В данном случае не поглядел, что там одна и таже переменная получается. Т.е. у человека поле называется $uploadfile, а он его изменяет.

Но у меня было поле userfile
При sibmit-е я сверял значения $userfile и $_FILES['userfile']['tmp_name'] и они различались. Я просто заменил $_FILES['userfile']['tmp_name'] на $userfile и всё заработало.

Но почему они имели разное значение я не стал выяснять. Но как я думал, что в $_FILES['userfile']['tmp_name'] должно храниться имя файла с путем, куда сервер закачал файл.
 

Фанат

oncle terrible
Команда форума
а как они различались? что было в одном и что было в другом?
 

Shasoft

Новичок
Всё. Посмотрел на эти "различающиеся" имена вооруженным взглядом.

Оказалось, что я там просто от "заковычивания" избавляюсь. Это я взял пример, а там из $_FILES тоже обратные слыши убирают.
PHP:
 // Освобождаемся от "заковычивания"
 @set_magic_quotes_runtime(0);
 if( @get_magic_quotes_gpc() ) {
   function stripslashes_deep($value) 
   {
    if( is_array($value) )
    {
     $value = array_map('stripslashes_deep', $value);
    }
    elseif ( !empty($value) && is_string($value) )
    {
     $value = stripslashes($value);
    }
    return $value;
   }

   $_GET     = stripslashes_deep($_GET);
   $_POST    = stripslashes_deep($_POST);
   $_COOKIE  = stripslashes_deep($_COOKIE);
   $_REQUEST = stripslashes_deep($_REQUEST);
   $_SESSION = stripslashes_deep($_SESSION);
   $_SERVER  = stripslashes_deep($_SERVER);
   $_FILES   = stripslashes_deep($_FILES);
   $_ENV     = stripslashes_deep($_ENV);
 }
А так как я локально всё тестю в windows, у который эти слыши в пути, то и получается фигня. :(
 

dimagolov

Новичок
Shasoft, чем примеры в мане не айс? там и ф-я для работы с занруженными файлами особая есть...
 

Shasoft

Новичок
Когда я это делал, мне на глаза попался пример, где это было сделано именно так. Я так сделал - работает. Зачем искать что-то другое?

Вы лучше напишите: чем приведенный код вам не нравится? что в нем не так?
 

pilot911

Новичок
какие переменные (кроме ГЕТ и ПОСТ) нужно освобождать от слешей при get_magic_quotes_gpc() ?

-~{}~ 09.11.08 19:27:

судя по мануалу

Sets the magic_quotes state for GPC (Get/Post/Cookie) operations. When magic_quotes are on, all ' (single-quote), " (double quote), \ (backslash) and NUL's are escaped with a backslash automatically.


нужно стриппить только гет, пост и куки ?

ПС. в 6м пхп эта фича (magic_quotes) не будет использоваться, как лишенная смысла
 

Shasoft

Новичок
Спасибо за текст мануала. Сам бы я до него не скоро добрался. Только при очередной ошибке может время бы нашлось.
 
Сверху