PHP.SU

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

Страниц (4): « 1 [2] 3 4 »

> Найдено сообщений: 54
alexpebody Отправлено: 06 Июня, 2016 - 13:44:51 • Тема: Двоится отправка mail bcgjkmpez cookies • Форум: Вопросы новичков

Ответов: 3
Просмотров: 182
Доброго времени.

Вот какая интересная штуковина ) в браузере Yandex и Chrome при использовании авторизации по страницам через куки, а конкретнее:

index.php

action.php


Отправляет 2 письма дублем друг за другом без перерыва.
То же самое пробуем в браузере IE и FF = все ок, отправляет только 1 письмо.

Меняем куки на сессию. Начинает отправлять по 1 письму во всех браузерах, но зато не всегда понимает что есть сессия в том же: Yandex и Chrome.

Куки в браузерах чистил, историю и пр удалял. Начинал сессии заново и пр танцы.

Никак не могу понять в чем прикол, но факт на лицо... (( Кто то может подсказать почему может быть так? Заранее спасибо!
alexpebody Отправлено: 06 Июня, 2016 - 13:28:48 • Тема: Экспорт значений переменной из цикла • Форум: Вопросы новичков

Ответов: 4
Просмотров: 229
Именно так и сделал )) спасибо большое!
alexpebody Отправлено: 06 Июня, 2016 - 12:16:34 • Тема: Экспорт значений переменной из цикла • Форум: Вопросы новичков

Ответов: 4
Просмотров: 229
Viper пишет:
никогда не пишите в одну строку несколько функций, это признак быдлокода, а как минимум неуважения к самому себе.

Учту, спасибо.
Viper пишет:
массив для кого изобрели? Внутри цикла в массив добавили, за циклом получили из массива.

Или я тупой, или не понимаю как это сделать, пробовал в массив, пробовал в куки, пробовал в сессию, все одно = получаю только последний элемент: $uploadfile

Можете подсказать? Пробовал самое простое: $uploadfile = array($uploadfile);

Как бы ни пробовал, получаю только последнее значение: Array ( [0] => files/4lanq7boximg.png ) уже голова болит, с утра мучаю, где то что то мелочь не понимаю.

---

ОМГ )))))))) вроде нашел решение, Госпади, все же много проще... $array[] = $uploadfile;

з.ы. Вот у меня всегда так, как в чем то сложном, более менее сразу нахожу решение, а в простом могу затупить на пол дня. ИМХО бред. Еще раз СПАСИБО!
alexpebody Отправлено: 06 Июня, 2016 - 10:08:41 • Тема: Экспорт значений переменной из цикла • Форум: Вопросы новичков

Ответов: 4
Просмотров: 229
Доброго времени.

PHP:
скопировать код в буфер обмена
  1. for($i=0;$i<count($_FILES['xtt']['name']);$i++)
  2. {
  3. $uploaddir = 'files/';
  4. $rstring = RString();
  5.  
  6. $uploadfile = str_replace(array(' ', '_', '+', '-', '—'), '', translitIt(trim(strtolower($uploaddir.basename($rstring.$_FILES['xtt']['name'][$i])))));


Если не вдаваться в подробности, скрипт выше, делает рандомные имена файлов, по условиям, из массива введенных пользователем из <input type "file" multipart name="xtt[]"> Соответственно из этого цикла получаем все файлы из массива $_FILES; Предположим, пользователь загрузил 3 файла, в итоге имеем 3 имени например значение переменной в цикле $uploadfile:

files/qstgmzboximg3.png
files/ywvoc7boximg2.png
files/t81u4mboximg.png

Пожалуйста подскажите, как можно получить все эти значения переменой $uploadfile, за пределами этого цикла?

Пробовал использовать $GLOBALS, не помогает, получаю только последнее значение. На текущий момент нашел решение использовать внешний текстовый файл, в который цикл пишет все значение переменной $uploadfile, но это очень неудобно, т.к. файл формируется не мгновенно, отсюда проблемы.

ЗАРАНЕЕ БОЛЬШОЕ СПАСИБО! Извиняюсь если где то затупил. Не понял
alexpebody Отправлено: 03 Июня, 2016 - 12:53:39 • Тема: Размер файлов в массиве? • Форум: Вопросы новичков

Ответов: 14
Просмотров: 497
Большое спасибо, если сделать вот так:
PHP:
скопировать код в буфер обмена
  1. foreach($_FILES['xtt']['size'] as $size) {
  2.    if($size > 1024*1024*1024) exit();
  3. }


Вроде работает! Радость
alexpebody Отправлено: 03 Июня, 2016 - 12:48:45 • Тема: Размер файлов в массиве? • Форум: Вопросы новичков

Ответов: 14
Просмотров: 497
Viper пишет:
multiple инпуту допишите

Ок, сделано, а как написать условие: если хотя бы один файл в массиве превышает 1ГБ, то exit();
alexpebody Отправлено: 03 Июня, 2016 - 12:35:21 • Тема: Размер файлов в массиве? • Форум: Вопросы новичков

Ответов: 14
Просмотров: 497
Viper пишет:
alexpebody не заливайте картинки на говнокал.сру! Он не у всех работает(да и желания нет). Прикрепляйте к посту!

Без проблем, сейчас переделаю. Привычка.

PHP 5.5 на хосте:
PHP:
скопировать код в буфер обмена
  1. echo $_FILES['xtt']['size'][0];
  2. echo $_FILES['xtt']['size'][1];


Начал показывать:
301522
264833
...files/sol174everlastingsummer .jpg
301522
264833
...files/3ye4i7inetprivozmap.png

Кто может, подскажите, как написать условие: если хотя бы один файл в массиве превышает 1ГБ, то exit(); ?
alexpebody Отправлено: 03 Июня, 2016 - 11:54:00 • Тема: Размер файлов в массиве? • Форум: Вопросы новичков

Ответов: 14
Просмотров: 497
Viper пишет:
помогает перестать фантазировать.


Viper пишет:
И приведите уже HTML-код формы, а не одного инпута.

Конечно, если нужно:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <form action="upload.php" method="post" name="form" ENCTYPE="multipart/form-data">
  3. <input type="file" size="32" name="xtt[]">
  4. <input name="" type="submit" onclick="this.disabled='disabled'; document.forms.item(0).submit();" onmousedown="openbox('box')"; value="Нажмите для загрузки файлов на сервер"></p></form>

PHP:
скопировать код в буфер обмена
  1. move_uploaded_file($_FILES['xtt']['tmp_name'], $uploadfile);
  2.  


Вот по сути весь код операции, очень простой. Но суть проблемы узнать размер каждого файла в массиве MultiPart, а показывает в лучшем случае только первый. (

З.Ы. Из картинки приведенной выше, я вижу вхождение как и должно быть: [0] = 1й файл, [1] = 2й файл, но как написать условие? Может кто то подсказать? Как показать все размеры всех файлов в массиве, ведь сколько их загрузит пользователь мы не знаем (( те надо как то проверять длину массива ( не совсем понимаю...

Как бы я не пробовал и так:
PHP:
скопировать код в буфер обмена
  1. foreach($_FILES['xtt']['size'] as $fname){
  2. echo $fname;
  3. }

и так:
PHP:
скопировать код в буфер обмена
  1. echo $_FILES['xtt']['size'][0];
  2. echo $_FILES['xtt']['size'][1];


Показывает размер только первого файла в массиве Огорчение
alexpebody Отправлено: 03 Июня, 2016 - 11:49:21 • Тема: Размер файлов в массиве? • Форум: Вопросы новичков

Ответов: 14
Просмотров: 497
andrewkard пишет:
Что тут приходит?


Array ( [xtt] => Array ( [name] => Array ( [0] => EverlastingSummer.jpg [1] => InetPrivozMap.png ) [type] => Array ( [0] => image/jpeg [1] => image/png ) [tmp_name] => Array ( [0] => ...temp\php16DC.tmp [1] => ...temp\php16FC.tmp ) [error] => Array ( [0] => 0 [1] => 0 ) [size] => Array ( [0] => 301522 [1] => 264833 ) ) )
...files/nx99jueverlastingsummer .jpg
Array ( [xtt] => Array ( [name] => Array ( [0] => EverlastingSummer.jpg [1] => InetPrivozMap.png ) [type] => Array ( [0] => image/jpeg [1] => image/png ) [tmp_name] => Array ( [0] => ...temp\php16DC.tmp [1] => ...temp\php16FC.tmp ) [error] => Array ( [0] => 0 [1] => 0 ) [size] => Array ( [0] => 301522 [1] => 264833 ) ) )
...files/a4av85inetprivozmap.png

з.ы. Загружаю 2 файла разного размера:
EverlastingSummer.jpg
InetPrivozMap.png

Через MultiPart
alexpebody Отправлено: 03 Июня, 2016 - 11:37:04 • Тема: Размер файлов в массиве? • Форум: Вопросы новичков

Ответов: 14
Просмотров: 497
PHP:
скопировать код в буфер обмена
  1. foreach($_FILES['xtt']['size'] as $size) {
  2. echo $size;
  3. }


Показывает только 1е вхождение, те считает только 1й файл также как и у меня. А мне нужно как то показать размер каждого файла? Как это можно сделать?

Если выбирается 1й файл = 10МБ, а второй скажем 50МБ, скрипт считает только 1й, соответственно условие будет ложным, тк считает и смотрит только на 1й файл.

Вот пример отображения:

Загружаю 2 разных файла, но размер показывает один и тот же, те размер первого файла.

З.Ы. В идеале, условие такое: если любой из файлов в массиве больше 1ГБ, тогда exit();

Глупо конечно, но может смотреть на сессию в папку: $_FILES['userfile']['tmp_name'] но это через чур как по мне. Есть хоть какие то идеи?
alexpebody Отправлено: 03 Июня, 2016 - 11:07:37 • Тема: Размер файлов в массиве? • Форум: Вопросы новичков

Ответов: 14
Просмотров: 497
OrmaJever пишет:
вы точно ничего не напутали?


Проверил, не показывает размера совсем не видит:
PHP:
скопировать код в буфер обмена
  1. foreach($_FILES['xtt'] as $file) {
  2.         echo $file['size'];
  3. }


Дает ошибку: Notice: Undefined index: size

, не видит элементов в массиве $_FILES['xtt'], дело в том, что загружается пачка файлов, мне нужно проверить размер каждого файла в этом массиве, как пока не соображу. Может что то путаю, подскажите? Спасибо!

Т.е.: $_FILES['xtt']['size'][0] только так начинает видить 1й файл и его размер, вот так $_FILES['xtt']['size'] - не видит размера вообще (

Еще конкретнее постараюсь задать вопрос: Как узнать размер каждого файла в массиве $_FILES, при MultiPart загрузке файлов и соответственно проверить условием?

OrmaJever пишет:
$_FILES['xtt'][0]['size']

Так, тоже не видит размера совсем, те пусто в переменной.
alexpebody Отправлено: 03 Июня, 2016 - 11:04:09 • Тема: Размер файлов в массиве? • Форум: Вопросы новичков

Ответов: 14
Просмотров: 497
Доброго всем времени.

Подскажите, что то никак найти зацепку не могу, есть код (куском):

index.html
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <input type="file" size="32" name="xtt[]">
  3.  


Выглядит вот так (кто не понял о чем я):


upload.php
PHP:
скопировать код в буфер обмена
  1.  
  2. if($_FILES['xtt']['size'][0] > 1024*1024*1024) exit();
  3.  


Но прикол в том, что $_FILES['xtt']['size'][0] определяет только вхождение и размер первого файла в массиве $_FILES, соответственно считывает размер только первого файла, к примеру: 1й файл который мы загружаем в форме = 1МБ, 2й = 1000МБ, в итоге ограничение не сработает, тк $_FILES['xtt']['size'][0] видит только 1МБ первого файла.

Как показать размер всех файлов в массиве, чтобы узнать размер каждого и если размер любого больше 1ГБ, то exit();

Заранее СПАСИБО!


З.Ы. Искал всяко, но кроме функций на $_FILES ничего толком.
alexpebody Отправлено: 02 Июля, 2015 - 13:36:11 • Тема: Переименование а после загрузки на сервер • Форум: Вопросы новичков

Ответов: 6
Просмотров: 315
broshurkaplus спасибо большое, я понял, просто видимо вечером совсем запарился ) все сделал.
alexpebody Отправлено: 02 Июля, 2015 - 05:24:03 • Тема: Переименование а после загрузки на сервер • Форум: Вопросы новичков

Ответов: 6
Просмотров: 315
Всем спасибо, все очень много проще, видимо вчера вечером голова не варила Улыбка

PHP:
скопировать код в буфер обмена
  1. $uploaddir = 'files/';
  2. $uploadfile = $uploaddir . basename($rstring.'_'.$_FILES['xtt']['name'][$i]);
  3. //move_uploaded_file($_FILES['xtt']['tmp_name'][$i], $uploadfile);
  4. move_uploaded_file($_FILES['xtt']['tmp_name'][$i], $uploadfile);
alexpebody Отправлено: 01 Июля, 2015 - 16:50:29 • Тема: Переименование а после загрузки на сервер • Форум: Вопросы новичков

Ответов: 6
Просмотров: 315
broshurkaplus спасибо большое за ответ, а нельзя как то в цикле как у меня сделать переименование, чтобы не писать кучу кода? Я имею ввиду, как сделать в цикле foreach чтобы переименовывал каждый файл загруженный на хост? Я пробовал в цикле после самой загрузки, но это неверно, т.к. цикл не успевает за тем, как файлы переместятся из темпа в каталог и показывает ошибку об отсутствии файлов, а если ниже, переименовывает но только 1й файл... Цикл неверен.

Спойлер (Отобразить)

$max=6 - это 6 символов генерится в рандоме для нового имени. А куда именно переместить в foreach, я так понмиаю не переименовывает все файлы тк не получает, а точнее получает не те сведения и работает не в том цикле.

Sail спасибо за ответ, да вроде читал, а что не так? Можете примерчик привести, если не сложно подскажите верный цикл для этой задачи? Спасибо!

Страниц (4): « 1 [2] 3 4 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB