Jump to content

gesandte

User
  • Posts

    400
  • Joined

  • Last visited

Everything posted by gesandte

  1. Ладно,отойдем от абстракции перейдем к практике. В описаном примере, в подгружаемых файлах содержаль некая переменная, имя которой было одинаково во всех файлах, а значение разное. Естественно если сработает двойное подключение то ошибки не какой не будет, а эта переменная будет иметь значение из файла, подключенного последним. В реальном же проекте, вместо этой переменной содержится функция (с теми же условиями), а функцию переопределять нельзя. да вроде не напутал. Дело в том что: допустим переменная контент будет удовлетворять условию из первой интерации цикла, но интераций несколько, и в остальных будет срабатывать else и тем самым будет поытка переопределить функцию. Пробывал вписать break, не пошло.
  2. всех на мыло проперло, ахахахахах)))))))))))))))))))))) иди в раздел пыха и читай
  3. Ладно, вопрос наверно можно закрыть. Но чтобы не засорять форум напишу сюда еще один. В верхнем примере как видно данные извлекаются из базы. Теперь есть некий блок, который подключается на эту же страницу и работает с тем же запросом. Т.о в самом начале страницы мы имеем получение данных из таблицы в массив $query_modules А второй блоков к примеру выглядит так for ($i = 0; $i < mysql_num_rows($query_modules); $i++) { $mod = mysql_fetch_array($query_modules); echo "$mod[id_name]"; } Естественно так не работает, правда и ошибок не выдает))) Можно ли использовать всего один запрос к таблице, который является общим для этих 2х блоков или же надо очистить массив и заново произвести запрос к таблице(при этом либо очистить старый массив, и использовать то же имя, либо применить новое имя)?
  4. наверно придется остановится на такой структуре(работает как надо) 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"; } т.е применить флаг
  5. попробывал, вылетает ошибка. Связана с присутствием else.
  6. вот оно - зло : Parse error: syntax error, unexpected T_FOR, expecting T_CASE or T_DEFAULT or '}' вобщем нельзя цикл в свитч Кстати в самом начале я наврал(тока щас заметил) немного. В приведенном примере вылетае ошибка, если передать значение $content удовлетворяющее первому ифу в цикле
  7. дело в том что при использовании == сравнерие происходит , как бы сказать "по линии логических значений", то есть true и false. Т.о если какой нибудь умник в адресной строке нипишет $content=true , то при этом будут выполнены все условия, за исключением условия, находящегося в else и тем самым пых будет подгружать почти все файлы, кроме, как я написал последнего условия. интерпритатор ошибку выдавал, если не путаю, указывя на стороку закрытия цикла. Могу написать на свитче снова и отписаться о результате Хм и вправду можно, и сразу объединить их в один иф..... правда вызывает сомнение что это правильно, ведь получается увеличение нагрузки на сервер........
  8. rus, а ты для этих целей хочеш предложить ипользовать == ? Как визуально? Вот смотри. Мы в зависимости от значения $content подключаем нужный нам файл, а после подключения(в коде не указал), мы выводим значение переменной, которое содержалось в подключаемом файле
  9. Вот кусок кода: { $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 , а во внутрь ее поместить еще и цикл. Код конечно выглядел там красиво, но вылетала ошибка((( ПП.сс Ивиняюсь за кривое название темы)
  10. по 2-му вопросу ответа не знаю только при использовании цикла код меньше выходит вроде как, читабельность кода так же выше, да и в случае изменния данных проше отредактировать видимо каптчи испугался
  11. Проблем в том что в функции отправки мыла нет такого пункта как ФИО. Поэтому переменную содержащюю эти данные надо внести в текст сообщения например так можно ...... 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"); } ........
  12. на сучай если какой нибудь умник введет в адресной строке путь к скрипту обработчика формы а если надо отправить не на несколько адресов а, на несколько десятков? И не совсем ok будет
  13. пробуй <?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 и занести туда адреса электронной почты
  14. я тебе про грибы, ты мне про морковку я знаю что это адрес сервера, имелось ввиду что здесь под SMTP-сервером, я подразумевал, что надо указать адрес сервера
  15. 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 и выложил скрипт, правда не совсем уж и простой))) а разделить котлеты от мух просто
  16. в раздел пхп заиди, там как раз такая тема щас есть
  17. привычка уже вписывать ее))) Только это не проверка, а замена символов на хтмл-эквиваленты может имеет смысл ее использовать в данном случае чтобы спец. символы отображались как надо в арбузере не зависимо от шрифтов и прочего? тем более что мыло в хтмл формате
  18. rus, а зачем тут дважды написано $_SESSION['captcha_keystring'] ? Кстати эта форма уже и не совсем простая) Не лишним было бы использование htmlspecialchars() и substr(). Если пых выше 5.2.0 то за место некоторых регулярок можно использовать встроенные функции
  19. а для меня это что то типа smtp.mail.ru ))))
  20. Я другого способа на php не знаю, можеш покапать в сторону javascript
  21. Можно так: 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
  22. ..... можно функцией sleep() задержать начало выполения скрипта, но думаю это не то. Если планируеш динамическое обновление этого блока, то тут нужна связка пых+аякс .................................хм, может рекурсия прокатит
  23. Нужно отредактировать файл php.ini секция mail function. Если винда, то указать SMTP-сервер, под линь путь к программе sendmail
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy