Помощник
|
Проверяем переменную с помощью isset(), установлена ли переменная |
Banderas
|
Сообщение
#1
|
||
|
|
||
|
|||
matroskin8 |
4.1.2011, 16:25;
Ответить: matroskin8
Сообщение
#2
|
|
Ф-ция isset() проверяет существование переменной. А немного выше такие переменные были назначены:
[php]$fio = $_POST['fio']; $mail = $_POST['mail']; $text = $_POST['text']; $but_on = $_POST['good'][/php] Соответственно, данные переменные существуют (и не важно пусты они или нет) и, соответственно, будет срабатывать блок условия иначе. Правильнее будет проверять переменные на пустоту. Например, так: [php]if (!empty($_POST['fio']))$fio = $_POST['fio'];; if (!empty($_POST['mail']))$mail = $_POST['mail']; if (!empty($_POST['text']))$text = $_POST['text'];[/php] $good (нажата ли кнопка) вообще лучше проверять на существование в самом начале скрипта и, если ее не существует, т.е., кнопка не нажата, то просто делать редирект с выводом соответствующего сообщения и прерывать выполнение скрипта: [php]if(!isset($_POST['good'])){ header('Refresh: 3; URL=адрес перенаправления'); echo 'Вход сюда только со страницы с формой.'; exit; } $D_ROOT = $_SERVER['DOCUMENT_ROOT']; require('functions.txt'); if (!empty($_POST['fio']))$fio = $_POST['fio'];; if (!empty($_POST['mail']))$mail = $_POST['mail']; if (!empty($_POST['text']))$text = $_POST['text']; ...[/php] |
|
|
yury_mw |
4.1.2011, 16:30;
Ответить: yury_mw
Сообщение
#3
|
|
Banderas,
Почему тогда функция не работает. если я не заполнил хотябы одно поле? Ну так вы же сами заполнили переменные, которые проверяете: $fio = $_POST['fio']; $mail = $_POST['mail']; $text = $_POST['text']; $but_on = $_POST['good']; они не могут быть не установлены, после этих присваиваний. Вам следует проверять установлены ли $_POST['fio'], $_POST['mail'] и т.д. и пустая или нет передана строка через них. |
|
|
Banderas
|
Сообщение
#4
|
|
Всем спасибо, забыл об empty()
Вопросик, почему не перекидывает но новую строку при записи в файл? Вроде должно все правильно работать, в $data указал переход строки \r\n, но записывает все вот так вот 00:09:32 5th || Дроворуб Виктор Медведевич || medvedev@yandex.ru || Я сейчас смотрю фильм Елки!01:07:56 5th || Вольский Владислав Сергеевич || vladserg@mail.ru || Печальная история...((01:09:34 5th || Вольский Владислав Сергеевич || vladserg@mail.ru || Печальная история...((01:09:36 5th || Вольский Владислав Сергеевич || vladserg@mail.ru || Печальная история...(( В чем проблема? |
|
|
matroskin8 |
5.1.2011, 12:15;
Ответить: matroskin8
Сообщение
#5
|
|
Проблема вот в этой строке:
[php]fwrite($fp, trim($data), strlen($data));[/php] Данная ф-ция - fwrite() - должна иметь 2 параметра: куда записываем (дескриптор) и что записываем, а здесь указано 3. К тому же, первый обработан ф-цией trim(), которая обрежет строку и уже, скорее всего, сделает невозможным перенос, поскольку он будет также вырезан (это надо будет проверить, но скорее всего так). strlen($data) - вот это вообще не понятно к чему? Мало того, что этот параметр лишний, так он к тому же еще и бесполезен, поскольку просто возвращается длина строки безо всякого вывода. В общем, правильно так: [php]fwrite($fp, $data);[/php] |
|
|
Banderas
|
Сообщение
#6
|
|
matroskin8, спасибо!
trim() действительно удаляла символы переноса строки и символ возврата карeтки. Зато можно использовать ltrim() который работает аналогично trim(), но удаляет все символы слева, тоесть в конце \r\n не удалиться |
|
|
matroskin8 |
5.1.2011, 12:44;
Ответить: matroskin8
Сообщение
#7
|
|
Пожалуйста ;)
Если так боишься пробелов, то лучше их сначала удалить функцией trim(), а затем добавить к переменной перенос, потому как ltrim() выглядит тогда как полумера: [php]$data = $date. ' || ' . $fio. ' || ' .$mail. ' || ' .$text; $data = trim($data); $data .= "\r\n"; ... fwrite($fp, $data);[/php] |
|
|
ZiTosS |
19.1.2011, 12:57;
Ответить: ZiTosS
Сообщение
#8
|
|
|
Banderas, немного пооффтопим, но по делу.
Можно уже приучать себя не выносить обработку действий в отдельный файл, а перенаправлять пользователя на эту же страницу или на основной скрипт с параметрами. Обработка данных идет перед выводом, вот и всё. В обработке данных могут выставляться нужные данные, формироваться ошибки. А скрипт ниже уже при выводе сам должен определить, что ему вывести - ошибки, форму, текст и т.д. В зависимости от сложившейся ситуации. Пойми, структура перенаправлений она конечно хороша, но вот незадача, ты отправил пользователя на файл с обработкой, но после обработки ты точно не знаешь куда направить пользователя. Конечно ты можешь прямо в файле обработчике сформировать путь на возвратную страницу. Но тут не будет никакой логики - почему, куда и зачем. Возможно я не прав, тогда меня кто-нибудь поправит
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Раскройте свой потенциал заработка с помощью 2x2 Media Network — вашего пути к выгодным предложениям CPA! Присоединяйтесь к 2x2 Media Network, вашему надежному партнеру в мире |
9 | 2x2MediaLimited | 2794 | 20.3.2024, 4:33 автор: 2x2MediaLimited |
|
Проверка позиций сайтов в поисковых системах с помощью Positon.ru Мониторинг продвижения сайтов |
182 | Positon | 178934 | 23.2.2024, 9:53 автор: Positon |
|
WEB и SMM дизайн — решение ваших бизнес задач с помощью дизайна | 8 | justburger | 5297 | 6.7.2020, 9:18 автор: justburger |
|
Целевой трафик +30% за 4 месяца с помощью SEO продвижения у Хачатура - отзывы и кейсы в топике | 6 | Mikejones | 3420 | 9.7.2019, 10:47 автор: Mikejones |
|
Гарантированно привлечем от 1000 подписчиков за 1 месяц с помощью комплексного продвижения | 8 | masija_coke | 3156 | 1.1.2019, 0:59 автор: masija_coke |
Текстовая версия | Сейчас: 28.3.2024, 16:57 |