Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: нужно помощ с массивом!!!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Ринат
Отправлено: 09 Ноября, 2008 - 18:35:18
Post Id



Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Апр. 2008  
Откуда: г.Пермь


Помог: 0 раз(а)




вот есть функция

PHP:
скопировать код в буфер обмена
  1. function upload_file() {
  2.    global $userfile, $userfile_name, $userfile_size,
  3.          $userfile_type, $archive_dir, $WINDIR;
  4.  
  5.    if(isset($WINDIR)) $userfile = str_replace("\\\\","\\", $userfile);
  6.    
  7.    $filename = basename($userfile_name);
  8.    
  9.    if($userfile_size <= 0) die ("$filename is empty.");
  10.  
  11.    if(!@copy($userfile, "uploads/files/temp/$filename"))
  12.       die("Can't copy $userfile_name to $filename.");
  13.    
  14.    if(isset($WINDIR) && !@unlink($userfile))
  15.       die ("Can't delete the file $userfile_name.");
  16.  
  17.    echo "$filename has been successfully uploaded.<br>";
  18.    echo "Filesize: " . number_format($userfile_size) . "<br>";
  19.    echo "Filetype: $userfile_type<br/>";
  20. }



обращение к ней через функцию сахранения

PHP:
скопировать код в буфер обмена
  1. function save() {
  2.         global $prefix, $db, $admin_file, $stop, $conff;
  3.                 $id = intval($_REQUEST['id']);
  4.                 $cid = $_POST['cid'];
  5.                 $title = $_POST['title'];
  6.                 $userfile = upload_file($_POST['file']);
  7.                 $description = save_text($_POST['hometext']);
  8.                 $db->sql_query("INSERT INTO ".$prefix."_muzmag VALUES (NULL, '$cid', '$title', '$description')");
  9.        
  10.                 Header("Location: ".$admin_file.".php?op=muzmag");
  11. }



не могу я сделать загрузку неськолких файлов одновременно..

помогите пожалуйста!!! второй день мучаюсь
 
 Top
Agassi
Отправлено: 09 Ноября, 2008 - 20:08:51
Post Id



Частый гость


Покинул форум
Сообщений всего: 158
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Ринат пишет:
upload_file($_POST['file']);



Отправляется в функцию переменная,а там ваше нет ни переменой
Ринат пишет:
upload_file()



и ваше эта фунцкия не возврашает ничего.


Дальше нечего сотреть в этом коде
 
 Top
Ринат
Отправлено: 09 Ноября, 2008 - 20:32:38
Post Id



Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Апр. 2008  
Откуда: г.Пермь


Помог: 0 раз(а)




Agassi прошу извинить меня! Да, она не возвращает.. А лишь записывает файл в директорию.. данный код взял с одного сайта. Вставил, записывает..

мне из нее всего лишь нужно сделать заливку нескольких файлов через массив!

с масивом не могу понять как работать пока.. Прошу знающих помочь мне в этой функции залить несколька файлов на сервер и вернуть ссылки на них
 
 Top
valenok
Отправлено: 10 Ноября, 2008 - 20:34:43
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




тебе циклом foreach вызывать свою функцию для каждого элемента массива файлов. Посмотри что находится в этом массиве.


-----
Truly yours, Sasha.
 
My status
 Top
Ринат
Отправлено: 11 Ноября, 2008 - 00:28:53
Post Id



Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Апр. 2008  
Откуда: г.Пермь


Помог: 0 раз(а)




valenok не могу я сделать!

мне же надо всю функкцию

PHP:
скопировать код в буфер обмена
  1. function upload_file() {
  2.    global $userfile, $userfile_name, $userfile_size,
  3.          $userfile_type, $archive_dir, $WINDIR;
  4.  
  5.    if(isset($WINDIR)) $userfile = str_replace("\\\\","\\", $userfile);
  6.    
  7.    $filename = basename($userfile_name);
  8.    
  9.    if($userfile_size <= 0) die ("$filename is empty.");
  10.  
  11.    if(!@copy($userfile, "uploads/files/temp/$filename"))
  12.       die("Can't copy $userfile_name to $filename.");
  13.    
  14.    if(isset($WINDIR) && !@unlink($userfile))
  15.       die ("Can't delete the file $userfile_name.");
  16.  
  17.    echo "$filename has been successfully uploaded.<br>";
  18.    echo "Filesize: " . number_format($userfile_size) . "<br>";
  19.    echo "Filetype: $userfile_type<br/>";
  20. }
  21.  
  22.  
  23.  
  24.  


переписывать в массив?!!!
 
 Top
valenok
Отправлено: 12 Ноября, 2008 - 20:30:55
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




print_r($_FILES); сделал ?
--

Что значит всю функцию переписывать в массив ? Тебе нужно использовать эту функцию для каждого элемента массива.


-----
Truly yours, Sasha.
 
My status
 Top
Ринат
Отправлено: 12 Ноября, 2008 - 20:43:57
Post Id



Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Апр. 2008  
Откуда: г.Пермь


Помог: 0 раз(а)




valenok куда это девать то print_r($_FILES); ?

Извиняюсь! какой вот день пытаюсь разобраться с этим массивом..
 
 Top
Champion Супермодератор
Отправлено: 13 Ноября, 2008 - 12:53:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Весь код не читал, но
$userfile = upload_file($_POST['file']);
когда передаете один файл.

Если на форме несколько инпутов типа файл, дайте им имена file[] и выполняйте свою функцию в foreach. Или даже в for
for($i = 0; $_POST['file'][$i], $i++) upload_file($_POST['file'][$u]);
 
 Top
Jonas
Отправлено: 13 Ноября, 2008 - 13:26:07
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Нояб. 2008  


Помог: 0 раз(а)




Ринат
дайте html код формы, через которую загружаются файлы, всем будет понятнее, что Вы хотите.
 
 Top
Agassi
Отправлено: 13 Ноября, 2008 - 13:28:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 158
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Ринат пишет:
valenok куда это девать то print_r($_FILES); ?

Извиняюсь! какой вот день пытаюсь разобраться с этим массивом..




У меня такое ошушение,что ты ваше не знаешь php,смисла подсказывать не вижу.


Легче будет полностью код зделать и слить
 
 Top
Ринат
Отправлено: 13 Ноября, 2008 - 15:11:01
Post Id



Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Апр. 2008  
Откуда: г.Пермь


Помог: 0 раз(а)




формы такая


PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $i = 0;
  4.         while ($i < "5") {
  5.                 $a = $i + 1;
  6.                 $display = ($i != 0 && $file[$i] == "") ? "style=\"display:none;\"" : "";
  7.                 echo "<div id=\"file".$i."\" ".$display.">"
  8.                 ."<div class=\"left\">"._URL." - $a:</div><div class=\"center\" style=\"float: left;\"><input type=\"text\" name=\"file[]\" value=\"".$file[$i]."\" size=\"60\" style=\"width:350px\"></div><div id=\"cont\" class=\"right\"><img src=\"images/editor/plus.gif\" border=\"0\" alt=\""._ADD."\" title=\""._ADD."\" OnClick=\"SwitchMenu('file".$a."')\" style=\"cursor:pointer;\"></div>"
  9.                 ."</div>";
  10.                 $i++;
  11.         }
  12.  
  13.  




З.Ы. Agassi не ругайтесь.. PHP изучаю. ща добрался до массива. проста он сложный. Не могу вникнуть его действия... Кому то легче даеться, кому и нет..
Должны понимать, раньше тож не знали!
 
 Top
Jonas
Отправлено: 13 Ноября, 2008 - 17:02:50
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Нояб. 2008  


Помог: 0 раз(а)




Ринат html тоже подучите. Зачам Вам столько div'ов? Делайте через форму:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $i=0;
  5. //кол-во файлов на загрузку
  6. $max=5;
  7.  
  8. //форма, можно с POST методом
  9. echo "<form method=GET action=?>\n";
  10. for ($i=0;$i<$max;$i++) {
  11.         $filename="file".$i;
  12.         echo "<input type=file name=$filename><br>\n";
  13.         }
  14. echo "<input type=submit></form>\n";
  15.  
  16. $i=0;
  17.  
  18. //Вот ваш массив
  19. $files=array();
  20.  
  21. //загоняем GET данные в массив(ассоциативный)
  22. for ($i=0;$i<$max;$i++)
  23.         {$files['file'.$i]=$_GET["file".$i];}
  24.  
  25. //или в простой массив
  26. //for ($i=0;$i<$max;$i++)
  27. //      {$files[$i]=$_GET["file".$i];}
  28.  
  29. //а это просто для проверки, что массив не пустой
  30. foreach ($files as $k=>$v)
  31.         {echo "$k: $v<br>";}
  32.        
  33. ?>
  34.  


а то, что Вы у себя в коде поставили file[], говорит о необходимости читать вот тут http://php.su/learnphp/vars/?arrays .
 
 Top
Agassi
Отправлено: 13 Ноября, 2008 - 18:25:43
Post Id



Частый гость


Покинул форум
Сообщений всего: 158
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Ринат
НИкто не ругается.Просто свой уровень надо показать.А если не знаешь вообше что с чем кушать,так лучше в раздел Напишите за меня пожалуйста создай тему.


Ринат пишет:
echo "<div id=\"file".$i."\" ".$display.">"
."<div class=\"left\">"._URL." - $a:</div><div class=\"center\" style=\"float: left;\"><input type=\"text\" name=\"file[]\" value=\"".$file[$i]."\" size=\"60\" style=\"width:350px\"></div><div id=\"cont\" class=\"right\"><img src=\"images/editor/plus.gif\" border=\"0\" alt=\""._ADD."\" title=\""._ADD."\" OnClick=\"SwitchMenu('file".$a."')\" style=\"cursor:pointer;\"></div>"
."</div>";



советую место этой кучи использоватьь шаблоны,и те легче будет и чужым читать тоже))
(Добавление)
PHP:
скопировать код в буфер обмена
  1. <html>
  2. <body>
  3. <form name="file" method="post" ENCTYPE="multipart/form-data">
  4. <input type="button" value="+" onClick="add()">
  5. <div id="my">
  6. </div>
  7. <input type="submit" name="sendfile" value="Загрузить">
  8. </form>
  9. </body>
  10. </html>
  11. <script type="text/javascript">
  12. var count=0;
  13. function add()
  14. { count++;
  15. document.getElementById("my").innerHTML+='<input type="file" class="bginput" name="foto_web'+count+'" /><br />';
  16.  
  17. }
  18. </script>
  19.  
  20.  
  21.  <?
  22. if(isset($_POST["sendfile"]))
  23. {
  24.  echo $_FILES["foto_web1"]["tmp_name"];
  25.  
  26. for($i=1;$_FILES['foto_web'.$i]['size']>0;$i++)
  27. {
  28.          if(!copy($_FILES["foto_web".$i]["tmp_name"],$_FILES["foto_web".$i]["name"]))
  29.     echo "Ошыбка при загруске Фото";
  30. }
  31. }
  32.  
  33. ?>


Простенькый вариант того что нужно зделать.Пример есть,гризи его от начала до конца.
 
 Top
Ринат
Отправлено: 14 Ноября, 2008 - 00:27:59
Post Id



Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Апр. 2008  
Откуда: г.Пермь


Помог: 0 раз(а)




спасибо всем! ща буду пробовать че нить из этого сделать.....

(Отредактировано автором: 17 Мая, 2009 - 23:57:39)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB