RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 474
от 30.09.2006, 21:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 362, Экспертов: 47
В номере:Вопросов: 2, Ответов: 8


Вопрос № 56584: Здравсвуйте. Я прочитал, что для того, чтобы соеденить файл с файлом (короче говоря, чтобы работала ссылка www.name.ru/index.php?news=1 надо прописать в середине index.php т этот код: <?php if ($link == 1) { $url = "index-1.html&q...
Вопрос № 56638: Уважаемые эксперты. Мне периодически приходится программировать механизм заполнения формы и сохранения результатов в mySQL. На первой странице выводится форма для заполнения, на второй - проверка значений и запись их в БД. Можно...

Вопрос № 56.584
Здравсвуйте. Я прочитал, что для того, чтобы соеденить файл с файлом (короче говоря, чтобы работала ссылка www.name.ru/index.php?news=1
надо прописать в середине index.php т этот код:
<?php
if ($link == 1) { $url = "index-1.html"; }
if ($link == 2) { $url = "index-2.html"; }
if ($link == 3) { $url = "index-3.html"; }
if ($link == 4) { $url = "index-4.html"; }
if ($url == "") { $url = "error.html"; }
inlcude ($url)
?>
Я пробовал (изменял под мои страницы), но ни как ниполучается вставить другую страницу в index.php
Как это делается?
Отправлен: 25.09.2006, 00:19
Вопрос задал: Bios (статус: 3-ий класс)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Cimus
Здравствуйте, Bios!
Попробуйте во так -
<?php
if ($_GET['news'] == 1) { $url = "index-1.html"; }
if ($_GET['news'] == 2) { $url = "index-2.html"; }
if ($_GET['news'] == 3) { $url = "index-3.html"; }
if ($_GET['news'] == 4) { $url = "index-4.html"; }
if ($_GET['news'] == "") { $url = "error.html"; }
inlcude ($url);
?>
Соответственно ссылка на страницу будет выглядеть вот так -
www.name.ru/index.php?news=1

Просто Вы передаёте параметр "1" в переменной $news, а ищите его в $link.


---------
Достичь можно любых высот !
Ответ отправил: Cimus (статус: 7-ой класс)
Ответ отправлен: 25.09.2006, 00:54

Отвечает: HookEst
Здравствуйте, Bios!
Cimus уже ответил, это только дополнение. В данном случае я бы еще использовал конструкцию switch...case

Приложение:

Ответ отправил: HookEst (статус: 3-ий класс)
Ответ отправлен: 25.09.2006, 05:52

Отвечает: Драк Георгий
Здравствуйте, Bios!
Вприцнипе, вам уже ответили, но могу предложить свой вариант. Скрипт выбирает автоматически выбирает страницу на основе значения переменной $_GET['news'], причём только в том случае, если существует искомый файл. Думаю может пригодиться.

Приложение:

---------
Sonic always help you, if he wish...

Ответ отправил: Драк Георгий (статус: 3-ий класс)
Ответ отправлен: 25.09.2006, 07:58

Отвечает: PVS
Здравствуйте, Bios!
Вероятно Вам надо $link заменить на $_REQUEST["link"], или поменять в php.ini настройку register_globals на значение On.
И еще: ссылка index.php?news=1 даст параметр $news или $_REQUEST["news"], проверьте не перепутали ли Вы названия переменных
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 25.09.2006, 10:33

Отвечает: Punk_UnDead
Здравствуйте, Bios!
добавьте следующий код в начало вашего php фрагмента
$link="";
if(isset($_GET['news'])) $link=$_GET['news'];
$url = "";
Ответ отправил: Punk_UnDead (статус: 1-ый класс)
Ответ отправлен: 25.09.2006, 12:59


Вопрос № 56.638
Уважаемые эксперты.
Мне периодически приходится программировать механизм заполнения формы и сохранения результатов в mySQL.

На первой странице выводится форма для заполнения, на второй - проверка значений и запись их в БД.

Можно ли как-нибудь это дело ускорить, автоматизировать, шаблонизировать и т.п., чтобы на эту банальную процедуру уходило минимум времени и сил?

Текст полей, их количество и метод обработки - всегда разные.
Отправлен: 25.09.2006, 12:44
Вопрос задал: Зяма (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: PVS
Здравствуйте, Зяма!
Все можно. Если осторожно :-)

Таблица 1:
ID поля
Название поля
Тип поля

По этой таблице генерите форму запроса, в зависимости от "Типа поля" меняете тип input'a (input type=)

Ответы храните в таблице 2:
ID ответа
ID поля
Значение ответа

Если таких форм несколько в одном сайте, то к вышеуказаным таблицам несложно прикрутить еще и ID формы
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 25.09.2006, 12:52

Отвечает: Punk_UnDead
Здравствуйте, Зяма!
возможно Вам пригодится следующий фрагмент кода
однако указываю на потенциальную опасность таких решений, проверять параметры запроса надо всегда, ведь любой может передать специально параметром запроса то, чего передавать нельзя
я то лично использую этот код исключительно для служебных целей

Приложение:

Ответ отправил: Punk_UnDead (статус: 1-ый класс)
Ответ отправлен: 25.09.2006, 13:07

Отвечает: HookEst
Здравствуйте, Зяма!
Можно попробовать вручную создавать только файл с формой, а в скрипте вынуть из него все теги INPUT (на пример регулярными выражениями), их TYPE,NAME и VALUE, и на основе этих данных уже генерить SQL и PHP файлы.
Например если TYPE=='text', то NAME может быть именем поля, если VALUE==='0' то тип этого поля INT, если VALUE==='', то тип CHAR.
если TYPE=='checkbox' то тип BOOL, если TYPE=='radio', то тип ENUM и т.д.
Конкретно реализацию, конечно, нужно продумать.
Чем смогу помогу.
Удачи.
Ответ отправил: HookEst (статус: 3-ий класс)
Ответ отправлен: 26.09.2006, 12:50


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное