Премини към съдържанието
Foka

Проблем с анкета

Препоръчан отговор


Значи имам проблем една анкета по на доло ще ви пусна и самия код да го погледнете до скоро нямаше проблем с нея ,но вчера реших да я сменя с друга и като го направих всичко беше добре до момента когато трябваше да се гласува в анкетата защото който и отговор да избереш то ти отчита че си гласувал за най горният отговор и това става винаги ако ми кажете как ще мога да го оправя ще съм ви благодарен.Ако искате може да видите анкетата на адрес http://www.laf4e.org/ .Ето го и самият код

<?php

Това тук го изтрих защото неискам да го гледате апък е не е от значение 

{

  die("Hacking attempt!");

}


  $stop	 = false;

  $is_voted = false;

  $entry = "";


  $flag = 0;

  $data = array();


if (isset ($_REQUEST['vote_action'])) $vote_action = $_REQUEST['vote_action']; else $vote_action = "";

if (isset ($_REQUEST['vote_id'])) $vote_id = intval($_REQUEST['vote_id']); else $vote_id = 0;

if (isset ($_REQUEST['vote_check'])) $vote_check = $db->safesql($_REQUEST['vote_check']); else $vote_check = 0;


$vote_info = get_vars ("vote");


if (!$vote_info) {

 $vote_info = array ();


  $db->query("SELECT id, title, category, body, vote_num, approve FROM " . PREFIX . "_vote");  


	while($row = $db->get_row()){

		$vote_info[$row['id']] = array (

		'id'		=> $row['id'],

		'title'	 => $row['title'],

		'category' 	=> $row['category'],

		'body' 		=> $row['body'],

		'vote_num'  => $row['vote_num'],

		'approve'   => $row['approve'],

		);

	}

	set_vars ("vote", $vote_info);

	$db->free();

}


  if (!$vote_id OR $vote_info[$vote_id]['id'] == "")

  {

	$find_vote = array (); $find_cats = array ();

	  foreach ($vote_info as $votes) {


	   $v_cats = explode(',', $votes['category']);


	   if ($v_cats[0] == 'all' AND $votes['approve']) $find_vote[] = $votes;

	   if ($category_id) { if (in_array($category_id, $v_cats) AND $votes['approve']) $find_cats[] = $votes; }


	  }


  if (count($find_cats)) $find_vote = $find_cats;

  $rand_keys = array_rand ($find_vote);

  $rid =  $find_vote[$rand_keys]['id'];

  }

  else  $rid = $vote_id;


  $title = stripslashes($vote_info[$rid]['title']);

  $body  = stripslashes($vote_info[$rid]['body']);

  $body  = explode("<br />", $body);

  $max   = $vote_info[$rid]['vote_num'];


  if ($vote_action == "vote") {

  /////////////////////////////////////////////////////////////////////////////

  //  Проверяем проголосовал ли текущий пользователь

  /////////////////////////////////////////////////////////////////////////////

  $_IP = $db->safesql($_SERVER['REMOTE_ADDR']);


  if (isset($member_id['name'])) $nick = $member_id['name']; else $nick = '';


  if ($is_logged)

  $row  = $db->super_query("SELECT count(*) as count FROM ".PREFIX."_vote_result WHERE vote_id='$rid' AND name='$nick'");

  else

  $row  = $db->super_query("SELECT count(*) as count FROM ".PREFIX."_vote_result WHERE vote_id='$rid' AND ip='$_IP'");


  if ($row['count'] == 0) $is_voted = false;

  else $is_voted = true;


	  $flag = 1;


  /////////////////////////////////////////////////////////////////////////////

  //  Учёт голоса

  /////////////////////////////////////////////////////////////////////////////

	if ($is_voted == false) {


	  if (!$is_logged) $nick = "guest";


	  $db->query("INSERT INTO ".PREFIX."_vote_result (ip, name, vote_id, answer) VALUES ('$_IP', '$nick', '$rid', '$vote_check')");


	  $db->query("UPDATE ".PREFIX."_vote set vote_num=vote_num+1 where id='$rid'");


	  @unlink(ENGINE_DIR.'/cache/system/vote.php');


	  $max++;

   }

  }


  if ($vote_action == "results" OR $flag) {

  $db->query("SELECT answer, count(*) as count FROM ".PREFIX."_vote_result WHERE vote_id='$rid' GROUP BY answer");


  $flag = 1;

  $pn = 0;

  $answer = array ();


   while ($row = $db->get_row()) {

	 $answer[$row['answer']]['count']  = $row['count'];

   }


   $db->free();


  }


$ajax = <<<HTML

<script type="text/javascript">

function doVote( event ){


	var frm = document.vote;

	var vote_check = '';


	for (var i=0;i < frm.elements.length;i++) {

		var elmnt = frm.elements[i];

		if (elmnt.type=='radio') {

			if(elmnt.checked == true){ vote_check = elmnt.value; break;}

		}

	}


	var ajax = new dle_ajax();

	ajax.onShow ('');

	var varsString = "";

	ajax.setVar("vote_id", "{$rid}" );

	ajax.setVar("vote_action", event);

	ajax.setVar("vote_check", vote_check);

	ajax.setVar("vote_skin", "{$config['skin']}");

	ajax.requestFile = dle_root + "engine/ajax/vote.php";

	ajax.method = 'GET';

	ajax.element = 'vote-layer';

	ajax.sendAJAX(varsString);

}

</script>

HTML;


	switch ($flag) {

	 case 0 :

	 for ($i = 0; $i < sizeof($body); $i++) {

	 if ($i == 0) { $sel = "checked"; } else {$sel = ""; };

	 $entry .= "<tr><td width=10><input name=\"vote_check\" type=\"radio\" $sel value=\"$i\"></td><td class=\"vote\" width=\"100%\">$body[$i]</td></tr>";

	 }

	 $entry = "<table cellpadding=3 cellspacing=0 width=\"100%\" border=0>$entry</table>";


	 $tpl->load_template('vote.tpl');


	 $tpl->copy_template = $ajax."<div id='vote-layer'>".$tpl->copy_template."</div>";


	 $tpl->set('{list}', $entry);

	 $tpl->set('{vote_id}', $rid);

	 $tpl->set('{title}', $title);

	 $tpl->set('[votelist]','');

	 $tpl->set('[/votelist]','');

	 $tpl->set_block("'\\[voteresult\\].*?\\[/voteresult\\]'si","");

	   $tpl->compile('vote');

	 $tpl->clear();

	 break;


   case 1:


	for ($i = 0; $i < sizeof($body); $i++) {


	 ++$pn; if ($pn > 5) $pn = 1;


	 $num = $answer[$i]['count'];

	 if (!$num) $num = 0;

	 if ($max != 0)

	 $proc = (100 * $num) / $max;

	 else $proc = 0;

	 $proc = round($proc, 0);


	 $entry .=

	 "<tr><td valign=middle class=\"vote\">$body[$i] - $num ($proc%)</td></tr>

	  <tr><td valign=middle height=10 width=\"100%\">

		<img src=\"{$config['http_home_url']}templates/{$config['skin']}/dleimages/poll{$pn}.gif\" height=10 width=\"$proc%\" style=\"border:1px solid black\">

	  </td></tr>\n";

	 }

	 $entry = "<table cellpadding=0 cellspacing=0 width=\"95%\">$entry</table>";


	 $tpl->load_template('vote.tpl');


	 $tpl->set('{list}', $entry);

	 $tpl->set('{vote_id}', $rid);

	 $tpl->set('{title}', $title);

	 $tpl->set('{votes}', $max);

	 $tpl->set('[voteresult]','');

	 $tpl->set('[/voteresult]','');

	 $tpl->set_block("'\\[votelist\\].*?\\[/votelist\\]'si","");

	   $tpl->compile('vote');

	 $tpl->clear();

	 break;


	}


	if (!$rid) $tpl->result['vote'] = "";



?>

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход


×

Информация

Този сайт използва бисквитки (cookies), за най-доброто потребителско изживяване. С използването му, вие приемате нашите Условия за ползване.