[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Срочно нужна помощь с PHP!
Сергей@
Всем привет! Я не програмист, коллега заболел, а анкету нужно отправить сегодня! Спасайте.... . Нужно сделать так, что бы каждый смог проголосовать лишь 1 раз, а не N- е количество.

Вот анкета:
<html>
<head>
<title>
Голосовалкаї</title
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
<style>

body,td,th,textarea,input {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
}
</style>
<LINK
REL="stylesheet" HREF="/style.css" TYPE="text/css" TITLE="VTB Style" media="all">
<LINK
REL="SHORTCUT ICON" HREF="/favicon.ico">

<script
type="text/javascript">


</script>

</head>
<body>

<table
width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td
colspan="4" height="100%" valign="top">
<table
width="100%" height="35" border="0" cellpadding="0" cellspacing="0">
<tr>
<td
align="center"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td
width="4%" valign="top"> </td>
<td
valign="top"><a href="/news/" class="">Новости </a></td>
<td
width="3%" valign="top"> </td>
<td
valign="top"><a href="/actions/" class="">Акции</a></td>
<td
width="3%" valign="top"> </td>
<td
valign="top"><a href="/ru/systems/plategn_cards/1147762461/bankomati/" class="">Сеть</a></td>
<td
width="2%" valign="top"> </td>
<td
valign="top"><a href="/positions/" class="">Положения</a></td>
<td
width="4%" valign="top"> </td>
<td
valign="top"><a href="/pravl/" class="">Решения</a></td>
<!-- <td width="1%" valign="top"> </td>
<td valign="top"><a href="/orders/" class="">Приказы</a></td> -->

<td width="4%" valign="top"> </td>
<td
valign="top"><a href="/sitemap/" class="">Карта</a></td>
<td
width="1%"> </td>
<!-- <td width="5%" valign="top"> </td>
<td valign="top"><a href="/arrangement/" class="">Распоряжения</a></td> -->

</tr>
</table></td>
</tr>
</table>
<table
width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td
width="2%" height="82"> </td>
<td
width="26%" rowspan="2" valign="top">
<img
src="/img/z.gif" width="30" height="1" /><img src="/img/z.gif" width="120" height="30" vspace="5" hspace="5">
<table
width="100%" border="0" cellspacing="0" cellpadding="0">
<FORM
action="/ru/search/" method="post">
<tr>
<td><table
width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td
valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td
width="1" height="1" bgcolor="#CCCCCC"></td>
<td
height="1" bgcolor="#CCCCCC"><img width="148" height="1" src="/img/b.gif" /></td>
<td
width="1" height="1" bgcolor="#CCCCCC"></td>
</tr>
<tr>
<td
width="1" bgcolor="#CCCCCC"></td>
<td
height="25"><INPUT type="search" id="search_words" placeholder="поиск" results="10" autosave="bank" NAME='search_words' VALUE='' CLASS='txt' size="15" height="14" style="BORDER-RIGHT: #898989 0px solid; BORDER-TOP: #898989 0px solid; FONT-SIZE: 14px; BORDER-LEFT: #898989 0px solid; COLOR: #404040; BORDER-BOTTOM: #898989 0px solid; width:100%;" /></td>
<td
width="1" bgcolor="#CCCCCC"></td>
</tr>
<tr>
<td
width="1" height="1" bgcolor="#CCCCCC"></td>
<td
height="1" bgcolor="#CCCCCC"></td>
<td
width="1" height="1" bgcolor="#CCCCCC"></td>
</tr>
</table></td>
<td
width="5"></td>
<td
width="66" height="29"><input type="image" src="/img/search_btn.gif" alt="найти" width="66" height="29" border="0" /></td>
</tr>
</table></td>
</tr>
<tr>
<td
height="5"></td>
</tr>
<tr>
<td><table
width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td
width="143" height="116" align="left" valign="top" class="srch"><table height="72" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td
width="8" rowspan="4"></td>
<td
height="21" width="25"> </td>
<td>
 </td>
</tr>
<tr>
<td><input
name="search_type" type="radio" value="docs" id="s_docs" /></td>
<td><label
for="s_docs"><img src="/img/b.gif" alt="Поиск документов" title="Поиск документов" height="10" width="50" /></label></td>
</tr>
<tr>
<td
height="10"></td>
<td></td>
</tr>
<tr>
<td><input
name="search_type" type="radio" value="stuff" id="s_stuff" checked="checked" /></td>
<td><label
for="s_stuff"><img src="/img/b.gif" alt="Поиск сотрудников" title="Поиск" height="10" width="50" /></label></td>
</tr>
</table></td>
<td>
 </td>
</tr>
</table></td>
</tr>
</FORM>
</table>

</td>
<td
width="2%" valign="top"> </td>
<td
colspan="2" height="82" align="right" valign="top"><img src="/img/logo4.jpg" border="0" usemap="#Map"></td>
</tr>
<tr>
<td>
 </td>
<td
valign="top"> </td>
<td
width="68%" height="100%" valign="top">
<a
href="/ru/">Внутрикорпоративный сайт</a> / Голосовалка<br><br />
<H1>
Голосовалка</H1>
</table>
<map
name="Map">
<area
shape="rect" coords="10,62,33,85" href="/sitemap/" alt="Карта сайта" title="Карта сайта">
<area
shape="rect" coords="54,61,77,86" href="mailto:zhorick@i.ua" alt="Написать администратору сайта" title="Написать администратору сайта">
<area
shape="rect" coords="101,62,122,85" href="/" alt="Главная страница" title="Главная страница">
<area
shape="rect" coords="0,0,314,57" href="/" alt="Главная страница" title="Главная страница">
</map>

<?

error_reporting(0);
function show_form()
{
?>


<TABLE
width=70% align=right cellspacing=0 cellpadding=0 border=0>
<TR><TD
align="JUSTIFY">
<br>
Поля позначені <font color=red>*</font> - обов'язкові для заповнення!
<br><br>
</TD></TR>
<form
action="" method=post enctype="multipart/form-data">
<TR>
<TD>
<ol>

<!-- 1 -->
<li>Відділення<font color=red>*</font>:</li>
<br><select
name="input_name[0]">
<OPTION
value="Харьков>Харьков</OPTION>
</select><input type="
hidden" name="check[]" value="1">
<br><br>
<br>
Віддаю свій голос за:
<br>

<!-- 2 -->
<li>Бізнес приналежність<font color=red>*</font>:</li>
<br><select name="
input_name[1]">
<OPTION value="
Кращий співробітник роздрібного бізнесу">Кращий співробітник роздрібного бізнесу</OPTION>
</select><input type="
hidden" name="check[]" value="1">
<br><br>

<!-- 3 -->
<li>ПІБ співробітника<font color=red>*</font>:</li>
<br><select name="
input_name[2]">
<OPTION value="" selected>оберіть</OPTION>
<OPTION value="
Петруша">Петруша</OPTION>
<</select><input type="
hidden" name="check[]" value="1">
<br><br>

<ol>
<br>
                     & amp;nbsp;<input type="
submit" value=" Проголосувати " name="submit">
<br><br><br>
</TD>
</TR>
</TABLE>
</form>

<?
}
function complete_mail() {

$empty_input[] = 'Відділення <i>[пункт 0]</i>';
$empty_input[] = 'Бізнес приналежність <i>[пункт 1]</i>';
$empty_input[] = 'ПІБ співробітника <i>[пункт 2]</i>';
for ($i=0; $i<count($_POST['input_name']); $i++) {
$_POST['input_name'][$i] = substr(htmlspecialchars(trim($_POST['input_name'][$i])), 0, 100000);
if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1) {
if(empty($_POST['input_name'][$i])) {
$sendemail = 'No';
echo '<br /><b>Необхідно заповнити поле '.$empty_input[$i].'!</b><br>';

}
}
}

if($sendemail == 'No') show_form();
$mess = '';
$mess .= '<b>Відділення*: </b>'.$_POST['input_name'][0].'<br>';
$mess .= '<b>Бізнес приналежність*: </b>'.$_POST['input_name'][1].'<br>';
$mess .= '<b>ПІБ співробітника*: </b>'.$_POST['input_name'][2].'<br>';
// підключаємо файл класа для відправки пошти

$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "10.1.28.10"; // SMTP server
$mail->From = ''; // от кого email
$mail->FromName = 'int-site.vtb'; // от кого имя
$mail->AddAddress("zhorick@i.ua"); // кому - адрес, Имя
$mail->AddBCC("zhorick@i.ua");
$mail->IsHTML(true); // выставляем формат письма HTML
$mail->Subject = 'Insurance '.$_POST['input_name'][2].''; // тема письма
$mail->Body = $mess;

// если был файл, то прикрепляем его к письму
if(isset($_FILES['file_name'])) {
if($_FILES['file_name']['error'][0] == 0){
$mail->AddAttachment($_FILES['file_name']['tmp_name'][0], $_FILES['file_name']['name'][0]);
}
}



if($sendemail != 'No'){
// Відправляємо наш лист
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo '<BR><BR><BR><BR><BR>
<CENTER><b>Ваш голос враховано</b>
<BR><BR><A href="http://int-site.vtb">Перейти на головну >>></A>
<BR><BR><BR><BR>'
;
}
}

if (!empty($_POST['submit'])) complete_mail();

else show_form();
?>




Спустя 2 минуты, 56 секунд (20.12.2010 - 10:45) Семён написал(а):
Срочная помощь за $ или Евро, тугрики как вам удобнее.

Спустя 3 минуты, 12 секунд (20.12.2010 - 10:49) Сергей@ написал(а):
Я думаю есть еще люди которые смогут помочь, безвоздмезно! Я не машину толкать прошу, а помочь всего лишь с PHP.

Спустя 4 минуты, 24 секунды (20.12.2010 - 10:53) Семён написал(а):
Офф-топ:
1) Здесь не безвозмездно помогают с полной реализацией, здесь могут помочь советом, указать, что и где нет так, включайте мозги, спрашивайте, лично я помогу в этом только случае.
2) Собственно, если я зайду на форум плиточников, я же не буду говорить, мой плиточник заболел, прошу положить плитку мне безвозмездно т.е. даром.
3) Мне например срочно нужна денежная помощь.
----
По теме:
Для начала, поставьте задачу ограничений (по IP, по Cookies, по учётной записи), если не знаете что такое, читаем....
----
1) передайте своему программисту, что он говнокодер
2) научитесь оформлять свои сообщения в спец. теги.

Спустя 3 минуты, 58 секунд (20.12.2010 - 10:57) Сергей@ написал(а):
Как я понимаю нужно того, кто проголоовал, вносить в БД?

Спустя 6 минут, 47 секунд (20.12.2010 - 11:04) Семён написал(а):
Правильно понимаете, только по каким характеристикам вы собираетесь записывать того кто уже проголосовал?
--
Есть несколько способов:
1) По IP адресу (но при этом если у нескольких юзеров 1 IP, другие не смогут проголосовать)
2) По Cookie-s (спец. значение устанавливается в Cookie, при голосовании скрипт будет обращаться к ним и проверять установлено ли значение, если да, то посылать лесом)
3) Регистрация пользователя - и активация его посредством СМС.

Оба способа (1 и 2) не дадут 100% секьюрной гарантии, т.к. можно сменить IP, удалить Cookie, а вот по 3-ему способу, голосование привязывается к номеру мобильного...

Ах да, есть способ - дать возможность накрутить счётчик голосования, а затем перед публикацией голосования проанализировать логи с какого IP, с какой переодичностью, из какого браузера отправлялись запросы, а потом обнулить и забанить конкурсанта... Но стоит иметь ввиду, что могут умышленно противнику накрутить ))) Поэтому заранее как правило этот нюанс не озвучивается )))

Спустя 40 минут, 17 секунд (20.12.2010 - 11:44) Сергей@ написал(а):
я думаю тут подойдет и 2-й вариант.
Подскажи плиз как выполнить 2-й пункт? как установить спец. значение в Cookie?

Спустя 4 минуты, 35 секунд (20.12.2010 - 11:49) kovaldm написал(а):
Сергей@
Про кукисы.

Спустя 34 минуты, 28 секунд (20.12.2010 - 12:23) alex12060 написал(а):
Ставь куки, вноси ИП в базу и, по желанию, ставь еще сессию и будет тебе счастье.
А еще ставь проверку по мылу.

Спустя 3 минуты, 21 секунда (20.12.2010 - 12:26) Сергей@ написал(а):
Cookie как я понимаю нужно прописывать в самом начале скрипта?
А потом сам скрипт... .?

Спустя 3 минуты, 39 секунд (20.12.2010 - 12:30) Сергей@ написал(а):
для alex12060! у меня ихних ИП нету. Люди с другого города и их около 370 чел.
Пример анкеты ты видел. Работает, все норм. Ответы приходят на почту.
Только вот как обезопасить голосование(хоть по минимуму) от спама не получается.
Прочитал про куки, Смысл то ясен, но на практике не выходит.
Может я не правельно делаю.Подскажи плиз... .
Спасибо.

Спустя 53 минуты, 52 секунды (20.12.2010 - 13:24) ИНСИ написал(а):
Цитата
от спама не получается

сделай капчу.... если от спама защититься хочешь...

Спустя 32 минуты, 42 секунды (20.12.2010 - 13:57) Сергей@ написал(а):
Для welbox2!! Это я образно написал. Надо что бы 1 человек не мог голосовать больше 1-го раза.

Спустя 11 минут, 59 секунд (20.12.2010 - 14:09) Basili4 написал(а):
Сергей@
голосовать будет кто реганый пользователь или аноним.

если реный то проблем нет добовляй id пользователя в таблицу голосования.

ели аноним тоже проблем нет но нет и гарантий.

способ 1 отброс кук.
способ 2 запоминание ip пользователя

способ 3 используемый 1 и 2 вместе.

ИТОГ если результат голосования важен то позволяй голосовать только реганым пользователям, если это опрос типа ваш любимый фильм ..... то отбрасывай куки.


И еще привет кодеру - говнокодеру.

http://ru.wikipedia.org/wiki/Model-View-Controller
и
http://www.google.ru/search?hl=ru&newwindo...8%D1%8F&spell=1

Спустя 39 минут, 27 секунд (20.12.2010 - 14:48) Сергей@ написал(а):
Для Basili4 ! Голосовать могут только реганые пользователи.


Цитата
если реный то проблем нет добовляй id пользователя в таблицу голосования.


Тоисть добавить ихний id к ФИО ? Если да то это проблематично.
1.этоо другой город
2. так тьма народу(около 370 чел)



Спустя 2 минуты, 29 секунд (20.12.2010 - 14:51) Basili4 написал(а):
Сергей@
нет сделай таблицу для результатов голосования

userId - инфификатор юзера
golos - голос юзера

при запуске скрипта проверяй есть ли юзер с этим id в этой табле если нет давай ему голосовать если есть покажи результаты голосования.

Спустя 1 час, 23 минуты, 48 секунд (20.12.2010 - 16:14) Сергей@ написал(а):
Цитата
нет сделай таблицу для результатов голосования


Где и как ее сделать?

Спустя 13 минут, 43 секунды (20.12.2010 - 16:28) inpost написал(а):
в БД MySQL.
А вообще, давайте осознанные заголовки! "Помогите, срочно надо" - надо банить, не баню лишь по той причине, что идёт обсуждение =(

Спустя 4 минуты, 47 секунд (20.12.2010 - 16:33) Basili4 написал(а):
Сергей@
ищи готовый скрипт голосования или жди своего программиста. Сам не напишешь базовых знаний нет.
ИМХО дальнейший разговор беспредметен.


Спустя 34 секунды (20.12.2010 - 16:33) SerginhoLD написал(а):
inpost, прям реально расстроился? biggrin.gif

Спустя 24 минуты, 2 секунды (20.12.2010 - 16:57) inpost написал(а):
SerginhoLD
Ты даже не представляешь, какое удовольствие банить, особенно когда потом начинают в личку гадости писать про меня и украинский народ =)

Спустя 5 минут, 7 секунд (20.12.2010 - 17:03) Basili4 написал(а):
я как в воду глядел. Щас еще хохлосрач начнется а я без чипсов sad.gif

Спустя 26 минут, 33 секунды (20.12.2010 - 17:29) inpost написал(а):
Basili4
Думаешь кто-то осмелится? =)

Спустя 2 минуты, 20 секунд (20.12.2010 - 17:31) Basili4 написал(а):
inpost
А ты думаешь нет ???
Вы холы такие наивные smile.gif

Спустя 7 минут, 32 секунды (20.12.2010 - 17:39) inpost написал(а):
Basili4
"Хохол" - высмеивание и оскорбление. Не надо так писать, ты нарушаешь правила форума.

Спустя 4 минуты, 45 секунд (20.12.2010 - 17:44) Basili4 написал(а):
inpost
http://www.liveinternet.ru/users/1600703/post75407900/

Ну нифига себе оскарбление, мне что за фразу выходец с Кавказа - горло перерезать.


Спустя 4 минуты, 18 секунд (20.12.2010 - 17:48) inpost написал(а):
http://ru.wikipedia.org/wiki/Хохол_(прозвище)
хохол — «название украинца, первоначально шутливое, фамильярное, затем унизительное»

Спустя 1 минута, 4 секунды (20.12.2010 - 17:49) Basili4 написал(а):
inpost
вики ни разу не пруф.

Спустя 5 минут, 17 секунд (20.12.2010 - 17:54) inpost написал(а):
Basili4
Особенно когда тот источник: "что хохол — «название украинца, первоначально унижительное, затем шутливое, фамильярное»" (с) Wikipedia - искажает даже текст, содержащийся в википедии.

А вообще, в первую очередь оскорбление является то, что употребляется в унижении к личности, когда завышаешь себя над кем-то, а этого человека унижаешь: "хохол", "москаль". В идеале все мы равны и просто люди, граждани какой-то страны, и есть нормальные названия "украинец", "россиянин". Само слово содержит в себе негатив + негатив, сказанный он человека и превращает слово в оскорбление личности.

Так же можешь аргументировать, что слово "блондинка" ссылаясь на источники - не оскорбление, но если ты так говоришь девушке, то в контексте слова будет восприниматься именно "тупая дура", потому что так заложено обществом (такое восприятие), и это будет звучить оскорблением, хотя своё слово в чистоте не является таковым. (собственно как и назвать человека бревном или какашкой).

Спустя 4 минуты, 44 секунды (20.12.2010 - 17:59) Basili4 написал(а):
Россиянин не нормальное название.

Спустя 53 секунды (20.12.2010 - 18:00) Basili4 написал(а):
Меня менее цепляет Москаль чем россиянин.

Спустя 7 минут, 4 секунды (20.12.2010 - 18:07) inpost написал(а):
Личносные предпочтения, а хохол - общественные.
Хорошо, можно просто русский =)

Спустя 7 минут, 18 секунд (20.12.2010 - 18:14) Basili4 написал(а):
inpost
Ны воспринимаем мир через личные предпочтения а не через общественные.

Спустя 11 минут, 51 секунда (20.12.2010 - 18:26) Семён написал(а):
Basili4 - похоже нацист! laugh.gif

Спустя 2 часа, 20 минут, 56 секунд (20.12.2010 - 20:47) inpost написал(а):
Basili4
На, именно поэтому я не могу забанить или выдать предупреждение за "россиянин", так как это личные предпочтения. Если опираться на общественное мнение, то любая национальная обида: "Хохол, кацап, москаль", или другой вид оскорбления рассматривается как нарушение "общественных" правил.

От себя скажу: мне совсем не обидно слово "хохол", временами даже сам себя и друзей так называю, но со стороны это будет выглядеть грубо и не уважительно. Вообщем, надо быть добрее!

Спустя 13 часов, 3 минуты, 55 секунд (21.12.2010 - 09:51) Basili4 написал(а):
Семён
Цитата (Семён @ 20.12.2010 - 19:26)
Basili4 - похоже нацист!

это ты троллить решил ???

Спустя 1 минута, 12 секунд (21.12.2010 - 09:52) Basili4 написал(а):
inpost
Цитата (inpost @ 20.12.2010 - 21:47)
От себя скажу: мне совсем не обидно слово "хохол", временами даже сам себя и друзей так называю, но со стороны это будет выглядеть грубо и не уважительно. Вообщем, надо быть добрее!


Это называется двойные стандарты.

Спустя 18 минут (21.12.2010 - 10:10) linker написал(а):
Закрыто, нафиг. Все терки в личку.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.