Web-мастер: курс молодого бойца

Голосование на сайте

 Страницы: 1 | 2
 

 Добавлено 2008-06-23 09:42:57
evgenijj
Модератор




Сообщений: 1371
Зарегистрирован: 09.11.2007

Цитировать
nalezhitiy пишет:
я поставил инклудом етот скрипт. при нажатии на ссылку опрос появляется форма опроса, но когда я нажимаю на кнопку ОЦЕНИТЬ, страница перезагружается на главную, а в адресной строку вот что www.ocinka.org/index.php?action=showForm?
Все правильно, так и должно быть. После того, как пользователь нажал кнопку "Оценить" мы отправляем данные формы на сервер - обработчику формы. Обработчик формы - это скрипт, который указан в атрибуте action тега form. В данном случае и сама форма и обработчик расположены в одном файле, и мы отсылаем данные формы "на себя" ($_SERVER['PHP_SELF']), хотя в общем случае это могут быть и разные файлы. Наш скрипт выполняет три действия
1. показывает форму для голосования
2. проводит голосование
3. показывает результаты голосования
Чтобы скрипт "знал", какое действие надо выполнить, мы используем переменную action, передаваемую методом GET. В зависимости от значения, принимаемого этой переменной, выполняется соответствующее действие:
<?php
............
switch( 
$action )
{
  case 
'showForm'// Показать форму для голосования
    
showForm();
    break;
  case 
'voting':   // Голосование
    
voting();
    break;
  case 
'result':   // Показать результаты голосования
    
result();
    break;
}
............
?>
После того, как пользователь проголосовал (т.е. данные были отправлены на сервер и голос учтен) мы должны сделать редирект (функция voting()):
header( 'Location: '.$_SERVER['PHP_SELF'].'?action=showForm' );
Почему это надо делать, можно прочитать здесь:
Обработка ошибочного заполнения формы
Когда ты вставляешь скрипт голосования voting.php в свой скрипт index.php с помощью include, то редирект на $_SERVER['PHP_SELF'] - это редирект на index.php. Вот поэтому показывается главная страница сайта.

P.S. Знаешь, ты очень торопишься. Даже не освоив азы PHP пытаешься вставлять на страницы своего сайты разные скрипты - голосование, форум и т.п. В данном случае, если форма голосования расположена в боковом (второстепенном) поле страницы, было бы логично организовать голосование с помощью AJAX - не перезагружая страницу, а показ результатов можно было бы организовать, использовав этот скрипт. Тебе пока надо пробовать реализовать что-нибудь простое, типа гостевой книги и счетчика посещений, а ты уже CMS пытаешься делать.

P.S.S. В 99 случаев из 100, интеграция форума на сайт заключается в том, что берется готовый скрипт форума, изменяется его дизайн (файл стилей) и на страницах сайта дается ссылка типа
http://forum.server.com/



Денежные купюры пронумерованы для того, чтобы когда-нибудь я мог сложить их все одну к одной, по порядку.
Наверх  Посмотреть профиль   Сайт автора Отредактировано автором 23.06.2008

 Добавлено 2015-12-15 18:27:52


Цитировать
Добрый день. А как в скрипте указать, что он может выполняться только на одном определённом сайте? Или на тех, которые будут указаны в переменных.
Наверх Незарегистрированный пользователь  
 Страницы: 1 | 2
 
Быстрый ответ
 
Цвет шрифта: Закрыть все теги
Сообщение
Защитный код