Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Валидация формы с аттачем
rodiony4  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 11
Пользователь №: 43033
На форуме: 6 месяцев, 5 дней
Карма:




Здравствуйте
есть форма:

<form action="<?php echo $action_url; ?>" method="post" name="adminForm">
<input
type="file" name="attach-order[]" title="" alt="">
<input
value="Отправить" type="submit">
</form>


вот фрагмент обработчика формы, отвечающий за прикрепление файла:

for($i=0;$i<count($_FILES['attach-order']['name']);$i++) {
if ($_FILES['attach-order']) {
$mail->AddAttachment($_FILES['attach-order']['tmp_name'][$i], $_FILES['attach-order']['name'][$i]);
$filesize += $_FILES['attach-order']['size'][$i]; //размер всех файлов
}
}


так я проверяю на ограничение размера аттача:

$max_filesize = 1 * 1024 * 1024; //максимальный размер всех файлов
if ($filesize > $max_filesize) { //проверка на максимальный размер всех файлов
echo '<span class="shop_error">file < 1mb</span>';
}

Пожалуйста, подскажите, как по нажатию кнопки сабмит не отправлять форму и вывести echo с ошибкой, если размер аттача превышен
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sg.com  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 121
Пользователь №: 42899
На форуме: 7 месяцев, 9 дней
Карма: 3




здравствуйте, с помощью условия if...else, если этого объяснения не достаточно, укажи что не ясно.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
rodiony4  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 11
Пользователь №: 43033
На форуме: 6 месяцев, 5 дней
Карма:




sg.com, как работает условия if я знаю, но не знаю как это условие применить, чтобы форма не отправлялась если размер аттача превышен
покажите пожалуйста, пример
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sg.com  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 121
Пользователь №: 42899
На форуме: 7 месяцев, 9 дней
Карма: 3




Цитата (rodiony4 @ 14.07.2016 - 13:41)
покажите пожалуйста, пример

if (размер аттача не больше нужного)
делаем то что нужно
else
возвращаем данные в форму


тут у меня вопросы возникают, слово аттач, что это? Привык по русски.
файл который делает обработку, это тот же файл, где расположена форма или другой. Если другой, нужно сделать для простоты все в одном файле и тогда все станет очевидным.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
rodiony4  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 11
Пользователь №: 43033
На форуме: 6 месяцев, 5 дней
Карма:




sg.com, аттач - это файл который прикрепляется к письму
сделал такую проверку:

$max_filesize = 1 * 1024 * 1024; //максимальный размер всех файлов
if ($filesize > $max_filesize) { //проверка на максимальный размер всех файлов
echo '<span class="shop_error">file < 1mb</span>';
return false;
}

но тогда в этом случае происходитт следущее: если прикрепленный файл больше 1мб, то форма не отправляется, осуществляется переход на другую (пустую) страницу, на которой выводится ехо с ошибкой (сайт на Joomla)

Но мне нужно, если прикрепленный файл будет больше 1мб, то оставаться на этой же странице (страница наверное при этом перезагрузится), форма не отправиться (письмо с вложением не отправится) и вверху фомы выведится ехо с ошибкой
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sg.com  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 121
Пользователь №: 42899
На форуме: 7 месяцев, 9 дней
Карма: 3




нужно поискать по такой фразе в и-нете:
Цитата
Примеры редиректа с помощью header


Цитата (rodiony4 @ 14.07.2016 - 15:09)
Но мне нужно, если прикрепленный файл будет больше 1мб, то оставаться на этой же странице (страница наверное при этом перезагрузится), форма не отправиться (письмо с вложением не отправится) и вверху фомы выведится ехо с ошибкой

поэтому выгоднее все (в смысле форму отправки и файл, который обрабатывает инфу, то есть аттач) делать на одной странице. А вообще, джумла это печаль большая.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sg.com  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 121
Пользователь №: 42899
На форуме: 7 месяцев, 9 дней
Карма: 3




if (размер аттача не больше нужного)
делаем то что нужно
else
возвращаем данные в форму // здесь редирект на страницу отображения формы
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
rodiony4  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 11
Пользователь №: 43033
На форуме: 6 месяцев, 5 дней
Карма:




sg.com, сделал так:

if ($filesize > $max_filesize) { //проверка на максимальный размер всех файлов
header('location:'.$_SERVER['HTTP_REFERER']);
echo '<span class="shop_error">file < 1mb</span>';
return false;
}

теперь, если размер файла больше допустимого, то страница с формой перезагружается, но не выводится ехо с ошибкой. Что сделать, что бы выводилась ошибка, когда страница перезагрузится?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sg.com  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 121
Пользователь №: 42899
На форуме: 7 месяцев, 9 дней
Карма: 3




можно почитать вот по этому запросу:
Цитата
Передача данных после HTTP-заголовка Location


далее, надеюсь уже все самостоятельно. Чем мог, тем помог.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 25 дней
Карма: 7




rodiony4 убери из кода return false это раз.

Второе, тебе sg.com уже сказал, если хочешь увидеть что в echo то
Цитата
поэтому выгоднее все (в смысле форму отправки и файл, который обрабатывает инфу, то есть аттач) делать на одной странице. А вообще, джумла это печаль большая.


И
action="<?php echo $action_url; ?>"

оставить пустым, а обработчик поместить на туже страницу где и сама форма

Если ты хочешь получать свой ответ после header, то нужно почитать про сессии.
Записываешь ответ в сессию и выводишь эту свою сессию с ответом там куда отправил пользователя с помощью header.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
rodiony4  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 11
Пользователь №: 43033
На форуме: 6 месяцев, 5 дней
Карма:




sg.com, Astin, спасибо!
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 6 дней
Карма: 591




rodiony4
делай проверку на JS для новых браузеров, для старья, на сервере
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса