gesandte
User-
Posts
400 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by gesandte
-
Ладно,отойдем от абстракции перейдем к практике. В описаном примере, в подгружаемых файлах содержаль некая переменная, имя которой было одинаково во всех файлах, а значение разное. Естественно если сработает двойное подключение то ошибки не какой не будет, а эта переменная будет иметь значение из файла, подключенного последним. В реальном же проекте, вместо этой переменной содержится функция (с теми же условиями), а функцию переопределять нельзя. да вроде не напутал. Дело в том что: допустим переменная контент будет удовлетворять условию из первой интерации цикла, но интераций несколько, и в остальных будет срабатывать else и тем самым будет поытка переопределить функцию. Пробывал вписать break, не пошло.
-
всех на мыло проперло, ахахахахах)))))))))))))))))))))) иди в раздел пыха и читай
-
Ладно, вопрос наверно можно закрыть. Но чтобы не засорять форум напишу сюда еще один. В верхнем примере как видно данные извлекаются из базы. Теперь есть некий блок, который подключается на эту же страницу и работает с тем же запросом. Т.о в самом начале страницы мы имеем получение данных из таблицы в массив $query_modules А второй блоков к примеру выглядит так for ($i = 0; $i < mysql_num_rows($query_modules); $i++) { $mod = mysql_fetch_array($query_modules); echo "$mod[id_name]"; } Естественно так не работает, правда и ошибок не выдает))) Можно ли использовать всего один запрос к таблице, который является общим для этих 2х блоков или же надо очистить массив и заново произвести запрос к таблице(при этом либо очистить старый массив, и использовать то же имя, либо применить новое имя)?
-
наверно придется остановится на такой структуре(работает как надо) for ($i = 0; $i < mysql_num_rows($query_modules); $i++) { $modules = mysql_fetch_array($query_modules); if ($content === $modules[id_name]) { $flag = @include "modules/$modules[id_name]/index.php"; } } if ($flag == true) { echo "функция include применена"; } else { echo "функция include не была применена"; include "modules/$settings[/page][page]/index.php"; } т.е применить флаг
-
попробывал, вылетает ошибка. Связана с присутствием else.
-
вот оно - зло : Parse error: syntax error, unexpected T_FOR, expecting T_CASE or T_DEFAULT or '}' вобщем нельзя цикл в свитч Кстати в самом начале я наврал(тока щас заметил) немного. В приведенном примере вылетае ошибка, если передать значение $content удовлетворяющее первому ифу в цикле
-
дело в том что при использовании == сравнерие происходит , как бы сказать "по линии логических значений", то есть true и false. Т.о если какой нибудь умник в адресной строке нипишет $content=true , то при этом будут выполнены все условия, за исключением условия, находящегося в else и тем самым пых будет подгружать почти все файлы, кроме, как я написал последнего условия. интерпритатор ошибку выдавал, если не путаю, указывя на стороку закрытия цикла. Могу написать на свитче снова и отписаться о результате Хм и вправду можно, и сразу объединить их в один иф..... правда вызывает сомнение что это правильно, ведь получается увеличение нагрузки на сервер........
-
rus, а ты для этих целей хочеш предложить ипользовать == ? Как визуально? Вот смотри. Мы в зависимости от значения $content подключаем нужный нам файл, а после подключения(в коде не указал), мы выводим значение переменной, которое содержалось в подключаемом файле
-
Вот кусок кода: { $modules = mysql_fetch_array($query_modules); if ($content === $modules[id_name]) { include "modules/$modules[id_name]/index.php"; } } if ($content === "auth") : include "auth.php"; elseif ($content === "close") : include "close.php"; elseif ($content === "mail") : include "mail.php"; else : include "modules/$settings[/page][page]/index.php"; endif; for ($i = 0; $i < mysql_num_rows($query_modules); $i++) $content извлекается из адресной строки(гет). Предположим что в каждом файле содержится некая переменная, имя которой одинаково в каждом файле, а значения разные. Проблема в том, что если условие равенства выполняется в куске кода с циклом, то второй кусок кода(if-elseif-else) срабатывает на else. В итоге переменная изменит свое значение. Можно конечно решить эту проблему очень просто, поменяв местами части этого кода, т.е вначале if-elseif-else, а затем уже цикл. Но это решение не кажется мне правильным, т.к получается, что если $content будет соответствовать условию в цикле, то вначале подгрузится файл от первой части кода (сработает else), а только потом нужный нам файл. Конечно в итоге на выходе значение условной переменной из файла будет иметь нужное значение. Вот и как составить условие, чтоюбы не происходило двойной зугрузки файла пока не пойму................................. хотя........................ можно в else вписать цикл с условиями, в содержащееся там include влепить еще проверку на то, было ли задействована функция include(можно присваивать некий флаг). Далее в else написать условие на проверу флага и если include из цикла не происходило, то подключать файл по умолчанию..... Как видите, то что я придумал на ходу выглядит как то уж очень громоздко, может кто преложит более простой и компактный вариант Спасибо. П.с Изначально планировалось использовать switch-case , а во внутрь ее поместить еще и цикл. Код конечно выглядел там красиво, но вылетала ошибка((( ПП.сс Ивиняюсь за кривое название темы)
-
по 2-му вопросу ответа не знаю только при использовании цикла код меньше выходит вроде как, читабельность кода так же выше, да и в случае изменния данных проше отредактировать видимо каптчи испугался
-
Проблем в том что в функции отправки мыла нет такого пункта как ФИО. Поэтому переменную содержащюю эти данные надо внести в текст сообщения например так можно ...... if (isset ($_POST["submit"])) { # обработка данных $fio = substr(htmlspecialchars(trim($_POST["fio"])), 0, 100); $title = substr(htmlspecialchars(trim($_POST["title"])), 0, 1000); $msg = substr(htmlspecialchars(trim($_POST["mess"])), 0, 1000000); # от кого письмо $from = "Сообщение c Вашего сайта www.toroni.ru"; # файл-массив со списком адресов $user_list = file("users.txt"); # отправляем foreach ($user_list as $user) { mail($user, $title, $fio $msg, $from, "Conten-Type: text/plain; charset=\"win-1251\"\n"); } ........
-
на сучай если какой нибудь умник введет в адресной строке путь к скрипту обработчика формы а если надо отправить не на несколько адресов а, на несколько десятков? И не совсем ok будет
-
пробуй <?php if (isset ($_POST["submit"])) { # обработка данных $title = substr(htmlspecialchars(trim($_POST["title"])), 0, 1000); $msg = substr(htmlspecialchars(trim($_POST["mess"])), 0, 1000000); # от кого письмо $from = "Сообщение от: info@toroni.ru"; # файл-массив со списком адресов $user_list = file("users.txt"); # отправляем foreach ($user_list as $user) { mail($user, $title, $msg, $from, "Conten-Type: text/plain; charset=\"win-1251\"\n"); } # перенаправляем header("location: thanks.html"); } else { # кнопка не была нажата # перенаправляем на страницу ввода данных # впиши название страницы header("location: .html"); } ?> не забудь создать файл users.txt и занести туда адреса электронной почты
-
я тебе про грибы, ты мне про морковку я знаю что это адрес сервера, имелось ввиду что здесь под SMTP-сервером, я подразумевал, что надо указать адрес сервера
-
1) header("location: thanks.html"); 2) for ($i = 0; $i < count($mail_list); $i++) { mail($mail_list[$i], $title, $mess, 'From:'.$from); } , где $mail_list - массив, содержащий список адресов почты для отправки тебе rus и выложил скрипт, правда не совсем уж и простой))) а разделить котлеты от мух просто
-
в раздел пхп заиди, там как раз такая тема щас есть
-
привычка уже вписывать ее))) Только это не проверка, а замена символов на хтмл-эквиваленты может имеет смысл ее использовать в данном случае чтобы спец. символы отображались как надо в арбузере не зависимо от шрифтов и прочего? тем более что мыло в хтмл формате
-
rus, а зачем тут дважды написано $_SESSION['captcha_keystring'] ? Кстати эта форма уже и не совсем простая) Не лишним было бы использование htmlspecialchars() и substr(). Если пых выше 5.2.0 то за место некоторых регулярок можно использовать встроенные функции
-
а для меня это что то типа smtp.mail.ru ))))
-
Я другого способа на php не знаю, можеш покапать в сторону javascript
-
Можно так: 1. Обабатываеш форму 2. Используеш механизм сессии(или куки) для сохранения результата обработки 3. Если желаеш сохранит введенные пользователем данные, тоже заносиш их в сессию 4. header("location: назад"); 5. На странице формы ввода данных, пишеш примерно так session_start(); if ($_SESSION["flag"] == true) { echo "Ваша заявка отправлена"; } else { echo "Ошибка!"; } # тут форма ввода session_unset(); session_destroy(); 6. Через атрибут value тега input, выводиш введенные до этого пользователем данные <input type=\"text\" name=\"email\" value=\"".$_SESSION["email"]."\"> Вывод результата данных обработки скрипта можно расширить, введя для каждой ошибки свой идентификатор и соответсвенно расширив коннструкцию if-else до if-elseif-else Или же за место этой конструкции можно использовать switch-case
-
а я что сказал?)
-
..... можно функцией sleep() задержать начало выполения скрипта, но думаю это не то. Если планируеш динамическое обновление этого блока, то тут нужна связка пых+аякс .................................хм, может рекурсия прокатит
-
Нужно отредактировать файл php.ini секция mail function. Если винда, то указать SMTP-сервер, под линь путь к программе sendmail