NoL 0 Denunciar post Postado Setembro 27, 2004 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
Keitaro 0 Denunciar post Postado Setembro 27, 2004 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
Lukas 0 Denunciar post Postado Setembro 27, 2004 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
NoL 0 Denunciar post Postado Setembro 27, 2004 No caso eu colocaria entra as tags <php e talz ?? Obrigado desde já Compartilhar este post Link para o post Compartilhar em outros sites
NoL 0 Denunciar post Postado Setembro 27, 2004 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