Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

NoL

qual seria o suposto erro

Recommended Posts

Opa pessoal do Imasters estou com um pequeno probleminha, ao colocar uma enquete no ar, ela funciona quase toda 100%, mas antes das perguntas vem o seguinte erro: Notice: Undefined variable: action in D:\dominios\shop\teresopolison.com\web\vote.php on line 177Notice: Undefined variable: save in D:\dominios\shopp\teresopolison.com\web\vote.php on line 181Notice: Undefined variable: action in D:\dominios\shop\teresopolison.com\web\vote.php on line 187Notice: Undefined variable: action in D:\dominios\shop\teresopolison.com\web\vote.php on line 192Qual seria o erro, o arquivo vote.php é esse aqui: <BODY background="" leftMargin=0 topMargin=0></BODY><IMG SRC="ae.gif" ALT="" ><?php// ########################### head ###################################// head: função que configura a página e inicializa a tabela//function head() {include('config.php');echo "<BODY bgcolor=\"$bgcolor\" link=\"#CCCC00\"";echo "vlink=\"#CCCC00\"";echo "alink=\"#CCCC00\">";echo "<table align=\"center\" width=\"200\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\"><tr><td bgcolor=\"$tableborder\"><table width=\"200\" border=\"0\" cellpadding=\"0\" cellspacing=\"\" align=\"center\"><tr><td bgcolor=\"$bgcolor\">";} // head// ########################### foot ###################################// foot: função que finaliza a tabela//function foot () {echo "</td></tr></table></td></tr></table>";} // foot// ########################### record #################################// record: grava o endereço ip no arquivo $ip_file//function record($REMOTE_ADDR) {include('config.php');// abre o arquivo para escrita após a última linha.$fp=fopen("$ip_file", "a+"); // envia para o arquivo o ip e a horafputs ($fp,$REMOTE_ADDR."][".time()."\n");fclose($fp); // fecha o arquivo} // record// ########################### chech #################################// check: função que checa se o ip já está gravado//function check($REMOTE_ADDR) {include('config.php');global $valid;$ip=$REMOTE_ADDR;$data=file("$ip_file");$now=time();foreach ($data as $record) {$subdata=explode("][",$record);if ($now < ($subdata[1]+3600*$timeout)) {if ($ip == $subdata[0]) {$valid=0;break;}}}}// check // ########################### save ##################################// save: função que computa o voto//function save($opcao){global $opcao;include('config.php');$data=file($datafile);$subdata=explode("][",$data[$opcao]);$subdata[2]+=1;$data[$opcao]=implode("][", $subdata);$data[$opcao]=$data[$opcao]."\n";$fp=fopen($datafile,"w+");$a=0;do {fputs($fp,$data[$a]);$a++;} while($a<count($data));fclose($fp);}// fim save// ########################### form ##################################// form: função que cria a tabela para votação//function form($PHP_SELF){include('config.php');head(); //inicializa a tabelaecho "<font size=\"$fontsize\" face=\"$font\" color=\"$textcolor\"><form method=\"post\" action=\"vote.php\"><p align=\"default\">";$data=file($datafile);$question=$data[0];$nb_options=count($data)-1;echo "<b>$question</b></p>";for($nb=1;$nb <= $nb_options; $nb++){$option=explode("][","$data[$nb]");echo "<input type=\"radio\" name=\"opcao\" value=\"$nb\"> ";echo "$option[0]<br>";}echo "<input type=\"hidden\" name=\"save\" value=\"yes\">";echo "<p align=\"center\"><input type=\"submit\" name=\"submit\"value=\"Votar\"></form></font>";echo "<font size=\"$fontsize\" face=\"$font\" color=\"$textcolor\"><a href=\"vote.php?action=results\">Confira os resultados</font></p>"; foot();// fecha a tabela}// form// ########################### results ##################################// results: função que imprime os resultados //function results(){include('config.php');head();$data=file($datafile);$nb_answers=count($data);$votes=0;$a=1;do { // calcula o total de votos$subdata=explode("][",$data[$a]);$votes += $subdata[2];$a++;} while($a < $nb_answers);$a=1;$b="answerv";if($votes!=0)$v=100/$votes; //descobre o valor de 1 voto em %echo "<p><font size=\"$fontsize\" face=\"$font\"color=\"$textcolor\"><b>$data[0]<br>Resultado da enquete.</b><br><br>";do {$subdata=explode("][",$data[$a]);$av = $subdata[2] * $v; // calcula a porcentagem de cada opçãoecho "<font size=\"$fontsize\" face=\"$font\" color=\"$textcolor\">$subdata[0] ";echo " - $subdata[2] votos<br>";echo "<img src=\"$subdata[1]\" border=\"0\" width=\"$av\"height=\"15\">";printf(" %01.1f", $av); echo"%<br>";$a++;} while ($a < $nb_answers);echo "<br><font size=\"$fontsize\">Já foram computados $votes votos";echo "<br>";foot(); //fecha a tabela}// results// ########################### execução ################################// execução da página//check($REMOTE_ADDR);if ($valid=="0")// se já votou, mostra somente os resultados{ results();}elseif ($action=="results") // se clicar para ver os resultados{ results(); }elseif ($save=="yes" && $valid!="0") // se votou e o ip ainda não foi gravado{ save($opcao); // computa o votorecord($REMOTE_ADDR); // grava o ipresults(); // mostra os resultados}elseif ($action=="save" && !empty($valid)) // se enviou o voto, sem// marcar uma opção{ results(); }elseif ($action!="save" && $valid!="0") // se ainda não enviou o voto,// mas uma opção está marcada{ form($PHP_SELF); }?>Alguem pode me ajudar ?? pleaseeeee....Obrigado desde já a todos ...NoL

Compartilhar este post


Link para o post
Compartilhar em outros sites

use $_REQUEST['action'] e $_REQUEST['save'] no lugar de $action e $save..se o form estiver sendo enviado por GET, se for POST use $_POST['action'] e $_POST['save']é o erro que imagino.. n vou analisar tem codigo inteiro... :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, analisando pelas mensagens, não são erros mas notificações que existem variaveis que você usou sem setar primeiro, para sumir com as notificações ou você altera o php.ini ou coloca a seguinte linhas no incio do seu codigo:

 

error_reporting(E_ALL ^ E_NOTICE);

Acho que isso deve resolver seu problema !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso eu colocaria entra as tags <php e talz ?? Obrigado desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela ajuda de vcs, coloquei aquele codigo no começo do meu e funcionou certim, vlw mesmo. Continuem assim, prontos a tentar ajudar os outros, vcs só ganham com isso. AbsVinicius

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.