*/ session_start("enquete"); class enquete{ var $arquivo;//nome do arquivo, precisa de permissao de leitura e escrita var $read = false;//variavel com o conteudo do arquivo var $valores;//variavel que armazena a pergunta, respostas e votos lidos do arquivo var $chave;//variavel da chave do array que esta sendo submetido pelos radios var $admin = "irpd951";//altere para um nome de usuário da área admin function admin($us){ return ($us == $this->admin); } function arquivo($x, $criar=false){ if(file_exists($x)){ $this->arquivo = $x; } elseif((!file_exists($x)) and ($criar === true)){//se o arquivo nao existe, se nao existe tenta cria-lo $open = fopen($x, "w+"); $var = "Pergunta\nResposta1%%votos1\nResposta2%%votos2\nResposta3%%votos3\nResposta4%%votos4"; fwrite($open, $var); fclose($open); $this->arquivo = $x; } else{ $this->arquivo = false; } } function ler($tipo_open="r"){//funcao para ler o arquivo ABERTO if($this->arquivo){ $open = fopen($this->arquivo,$tipo_open); $this->read = fread($open, filesize($this->arquivo)); fclose($open); return $this->read; } } function escreve($var, $tipo_open="a+"){ if($this->arquivo){ $open = fopen($this->arquivo,$tipo_open); fwrite($open, $var); fclose($open); } } function valores(){ if($this->arquivo){ $this->valores = explode("\n", $this->ler()); return $this->valores; } } function atualiza($post){ if((isset($post['maximo'])) and ($post['maximo'] <> "")){ $rs = $this->valores(); $var = $rs[0]; for($x=1;$x<=$post['maximo'];$x++){ $rss = explode("%%", $rs[$x]); $var .= "\n".$rss[0]."%%"; if((isset($post['r'.$x])) and ($post['r'.$x] == "sim")){ $var .= (intval($rss[1]) + 1); } else{ $var .= $rss[1]; } } $this->escreve($var, "w+"); echo ""; } else{ return false; } } function editaenq($post){ if((isset($post['atualizaenq'])) and ($post['atualizaenq'] == "sim")){ $var = $post['pergunta']; for($x=1; $x<=intval($post['maximoenq']); $x++){ $var .= "\n".$post['res'.$x]."%%".$post['vot'.$x]; } $this->escreve($var, "w+"); if(empty($post['logado'])){ $_SESSION['user'] = ""; } } } function exibe_grafico($votos,$total_votos,$tipo="porcentagem",$color_1="#000000",$color_2="#FFFFFF"){ if(($votos <> 0) and ($votos > 0)){ $porcentagem = (100 * $votos) / $total_votos;//calcula a porcentagem dos votos if($tipo == "porcentagem"){ if(floor($porcentagem) <> $porcentagem){ $explode = explode(".",".".$porcentagem); return $explode[1].".".substr($explode[2],0,2); } else{ return $porcentagem; } } if($tipo == "grafico"){ $table_comeco = ""; $table_meio = ""; for($key=1; $key<=100;$key++){ if($key < floor($porcentagem)+1){ $table_meio .= ""; } else{ $table_meio .= ""; } } $table_final = "
"; return $table_comeco.$table_meio.$table_final; } } else{ if($tipo == "porcentagem"){ return "0"; } if($tipo == "grafico"){ return "
"; } } } function total_votos($result){ $total_votos = 0; for($z=1; $zarquivo("enquete.txt", true);//mostra para o objeto o arquivo que será usado $enq->atualiza($_POST);//se vier pelo metodo post, passará por aqui $enq->editaenq($_POST);//se vier da area administrativa, passará por aqui $enq->logout($_GET);//ve se é logout $resultado = $enq->valores();//pega os valores no txt ?>
total_votos($resultado); for($x=1; $x
exibe_grafico($rv[1],$total_votos,"grafico",$color_1,$color_2)?>
votos - exibe_grafico($rv[1],$total_votos,"porcentagem")?> %
votos no total
admin($_GET['user']))) or ((isset($_SESSION['user'])) and ($enq->admin($_SESSION['user'])))){// aqui entra na parte admin ?> admin($_GET['user']))){ $_SESSION['user'] = $_GET['user']; }//verifica se veio por meio GET?>
Área Administrativa Enquete
Pergunta:
Resposta votos
   
Continuar logado na área Administrativa
   
votar resultado parcial