За последние 24 часа нас посетили 34504 программиста и 1752 робота. Сейчас ищут 966 программистов ...

Разложить переменную

Тема в разделе "PHP для новичков", создана пользователем produser, 2 фев 2012.

  1. produser

    produser Активный пользователь

    С нами с:
    21 янв 2012
    Сообщения:
    61
    Симпатии:
    0
    Здравствуйте. Я новичек, поэтому многое не понимаю... Есть код:
    Код (Text):
    1.    
    2.     $photo = '';
    3.     for ($buf = 1; is_file($_FILES['foto_'.$buf]['tmp_name']); $buf++) {
    4.     move_uploaded_file($_FILES['foto_'.$buf]['tmp_name'], $_SERVER["DOCUMENT_ROOT"]."/".$dest.$_FILES['foto_'.$buf]    ['name']);
    5.     $photo .= '<img border="0" src="/'.$dest.$_FILES['foto_'.$buf]['name'].'">';
    6.     }
    7.     echo($photo);
    Он достает из формы изображения которые выбрал пользователь...
    Как поправить код так, что бы на выходе создавались 5 переменных $photo1=изображение 1 $photo2=изображение 2
    $photon=изображение n

    Зараннее спасибо за ответы.
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    а можно чуть больший кусок кода, вместе с формой?
     
  3. produser

    produser Активный пользователь

    С нами с:
    21 янв 2012
    Сообщения:
    61
    Симпатии:
    0
    Вот кусок формы, там еще много чего передается, я ненужное опустил:
    Код (Text):
    1.  
    2. ......
    3. <table>
    4.  <tr>
    5.  <td width="160">Photo 1</td><td><input type="file" name="foto_1" /></td>
    6.  </tr>
    7.   <tr>
    8.  <td>Photo 2</td><td><input type="file" name="foto_2" /></td>
    9.  </tr>
    10.   <tr>
    11.  <td>Photo 3</td><td><input type="file" name="foto_3" /></td>
    12.  </tr>
    13.   <tr>
    14.  <td>Photo 4</td><td><input type="file" name="foto_4" /></td>
    15.  </tr>
    16.   <tr>
    17.  <td>Photo 5</td><td><input type="file" name="foto_5" /></td>
    18.  </tr>
    19.  </table>
    20.  
    21.  <br /><input type="submit" name="regbtn" value="Submit"/></form>
    Вот кусок который принимает файлы:
    Код (Text):
    1.    
    2.    $dest = 'uploads/';
    3.     $photo = '';
    4.     for ($buf = 1; is_file($_FILES['foto_'.$buf]['tmp_name']); $buf++) {
    5.     move_uploaded_file($_FILES['foto_'.$buf]['tmp_name'], $_SERVER["DOCUMENT_ROOT"]."/".$dest.$_FILES['foto_'.$buf]['name']);
    6.     $photo .= '<img border="0" src="/'.$dest.$_FILES['foto_'.$buf]['name'].'">';
    7.     }
    8.     echo($photo);
     
  4. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Код (Text):
    1. $dest = 'uploads/';
    2.     for ($buf = 1; is_file($_FILES['foto_'.$buf]['tmp_name']); $buf++) {
    3.     move_uploaded_file($_FILES['foto_'.$buf]['tmp_name'], $_SERVER["DOCUMENT_ROOT"]."/".$dest.$_FILES['foto_'.$buf]['name']);
    4.     $photo.$buf .= '<img border="0" src="/'.$dest.$_FILES['foto_'.$buf]['name'].'">';
    5.     }
    6.     echo($photo1);
    7.     echo($photo2);
    8.     echo($photo3);
    9.     echo($photo4);
    10.     echo($photo5);
     
  5. produser

    produser Активный пользователь

    С нами с:
    21 янв 2012
    Сообщения:
    61
    Симпатии:
    0
    Dmitriy A. Arteshuk

    Попробывал, копирует всего одну картинку, а echo вообще ничего не выводит...
     
  6. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    ехо внутрь цикла...
     
  7. produser

    produser Активный пользователь

    С нами с:
    21 янв 2012
    Сообщения:
    61
    Симпатии:
    0
    дак мне нужно что бы я мог использовать эти переменные после цикла, после всего, мне нужно засунуть каждую переменную в бд... в цикле переменные должны только получить значения.
     
  8. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    ну так присвой им в цикле значения...или в бд засунь...тут полная свобода действий...
     
  9. produser

    produser Активный пользователь

    С нами с:
    21 янв 2012
    Сообщения:
    61
    Симпатии:
    0
    По идее вот эта строчка присваивает значение переменой photo:
    Код (Text):
    1. $photo.$buf .= '<img border="0" src="/'.$dest.$_FILES['foto_'.$buf]['name'].'">';
    но почему то на выходе они все пустые... Или я что то не так делаю?
    Как сделать так что бы в том коде присваивались значения переменным photo , которые можно потом каждую в бд засунуть?
     
  10. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    точку перед равно убери (сори я с телефона) ну и в бд пиши ппям в цикле....хотя цикл у тебя какой-то странный...он наверное "не крутится" у тебя )))
     
  11. produser

    produser Активный пользователь

    С нами с:
    21 янв 2012
    Сообщения:
    61
    Симпатии:
    0
    К сожалению та же картина( убрал точку перед = но при
    Код (Text):
    1.     echo($photo1);
    2.     echo($photo2);
    3.     echo($photo3);
    4.     echo($photo4);
    5.     echo($photo5);
    ничего не происходит...
     
  12. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Код (PHP):
    1. ....
    2. $photo[] = '<img border="0" src="/'.$dest.$_FILES['foto_'.$buf]['name'].'">'; 
    3. ....
    4.  
    5. foreach($photo as $key => $value) ....
    6.  
     
  13. produser

    produser Активный пользователь

    С нами с:
    21 янв 2012
    Сообщения:
    61
    Симпатии:
    0
    И как потом мне использовать переменную?
    echo($photo1); так выведет первое фото?
     
  14. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Код (Text):
    1.  
    2. echo $photo[0];
    3. .....
    4. echo $photo[5];
    5. ...
     
  15. produser

    produser Активный пользователь

    С нами с:
    21 янв 2012
    Сообщения:
    61
    Симпатии:
    0
    Спасибо помогло!

    Добавлено спустя 19 минут 57 секунд:
    Теперь вылезла еще одна проблема переместил скрипт на хост а там:

    Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/usr/local/apache/htdocs/uploads/a43941f11753.jpg) is not within the allowed path(s): (/home/:/usr/lib/php:/tmp) in /home/u211151957/public_html/reg.php on line 54

    Я так понял, что он не может найти папку по указанному адресу, а $_SERVER["DOCUMENT_ROOT"] содержит путь к корневой папке апача...
    у себя на компьютере вышел из этой ситуации просто добавив к пути для сохранения файла папку в котором лежит сам сайт, на хосте не могу понять как сделать так, что бы он находил путь?
     
  16. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Используй dirname(__FILE__) как стартовую точку.
     
  17. produser

    produser Активный пользователь

    С нами с:
    21 янв 2012
    Сообщения:
    61
    Симпатии:
    0
    А как ето использовать в контексте моего кода?
     
  18. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
  19. produser

    produser Активный пользователь

    С нами с:
    21 янв 2012
    Сообщения:
    61
    Симпатии:
    0
    Спасибо получилось!