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

  • Автор темы Автор темы Shasoft
  • Дата начала Дата начала

Shasoft

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

PHP:
if (copy($uploadfile, $uploadfile))

Я вообще думал, что в $uploadfile и $_FILES['uploadfile']['tmp_name'] одно и тоже значение должно содержаться, но когда вывел значения на экран, то обнаружил, что это не так.
 
По 2 и 3-му вопросу ***** прав, "сам не найдешь, никто не найдет".

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

Я обычно в таких случаях пользуюсь программой
http://www.heidisql.com/.
Она позволяет цепляться к MySQL и рулить всей базой. Мне больше нравится, чем PHPmyadmin. Для отладки локально самое то.
 
Я вообще думал, что в $uploadfile и $_FILES['uploadfile']['tmp_name'] одно и тоже значение должно содержаться, но когда вывел значения на экран, то обнаружил, что это не так.
Shasoft, а какое ты предполагаешь объяснение этому загадочному факту?
 
Никакого. У меня заработало и слава богу. :)
Потом (если будет время) почитаю умные мануалы, что они по этому поводу пишут.

P.S.Так что даю тебе шанс расказать мне об этом. Ж)
 
Мда...
Судя по вышеприведенному коду, разные значения находятся не только в $uploadfile и $_FILES['uploadfile']['tmp_name'], но и даже и в одной и той же переменной $uploadfile
 
Да, я не внимательно посмотрел. Приведенный мной код вообще копирует из А в А.

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

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

Но почему они имели разное значение я не стал выяснять. Но как я думал, что в $_FILES['userfile']['tmp_name'] должно храниться имя файла с путем, куда сервер закачал файл.
 
а как они различались? что было в одном и что было в другом?
 
Всё. Посмотрел на эти "различающиеся" имена вооруженным взглядом.

Оказалось, что я там просто от "заковычивания" избавляюсь. Это я взял пример, а там из $_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, у который эти слыши в пути, то и получается фигня. :(
 
Shasoft, чем примеры в мане не айс? там и ф-я для работы с занруженными файлами особая есть...
 
Когда я это делал, мне на глаза попался пример, где это было сделано именно так. Я так сделал - работает. Зачем искать что-то другое?

Вы лучше напишите: чем приведенный код вам не нравится? что в нем не так?
 
какие переменные (кроме ГЕТ и ПОСТ) нужно освобождать от слешей при 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) не будет использоваться, как лишенная смысла
 
Спасибо за текст мануала. Сам бы я до него не скоро добрался. Только при очередной ошибке может время бы нашлось.
 
Сверху