Data Verification

0

I have a screen that is sending to e-mail table via $_POST . After that it goes to a voting screen.

I want to make a way that the email that has already been sent can not vote again, but I'm not sure how to do it.

This is my page that has the form.

    <?php
        if(!empty($_POST['cadastra'])){
            if(!empty($_POST['email'])){

                $email = $_POST['email'];
                $ip = $_SERVER['REMOTE_ADDR'];
                $pegaEmail = mysql_query("SELECT * FROM email WHERE email = '$email'");


                if(mysql_num_rows($pegaEmail) < 1){

                    if(mysql_query("INSERT INTO email (email, ip) VALUES ('$email','$ip')")){
                        echo '<script>window.location="http://enquetegoias.esy.es/pesquisa.html"</script>';

                    }else{
                        echo '<script>alert("Erro ao prosseguir! '.mysql_error().'") </script>';
                    }
                }else{
                    echo '<script>window.location="http://enquetegoias.esy.es/pesquisa.html"</script>';
                }

            }else{
                echo "<script>alert('Preencha todos os campos!')</script>";
            }
        }
    ?>
    <body>
        <div id="container-pesquisa" >
            <div id="login">
                <form action="" id="formLogin" method="POST">
                    <div class="logo">
                        <img src="img/logo.jpg">
                    </div>
                    <div class="titulo-login"><h1>Eleições OAB-GO 2015</h1></div>

                    <table>
                        <tbody>
                            <p style="text-align: center;">Para votar ou acompanhar esta votação entre com seu e-mail</p>
                            <p style="font-size: 12px; text-align: center; font-style: italic">(Só será validado um voto por e-mail).</p>
                            <tr>
                                <td><input type="email" name="email" class="lgnSenha" id="lgnSenha" placeholder="E-mail" required></td>
                            </tr>
                            <tr>
                                <input name="cadastra" type="hidden" value="1">
                                <td colspan="2"><input type="submit" name="btnLogin" class="btnLogin" id="btnLogin" value="Próximo" ></td>
                            </tr>
                            <script type="text/javascript">

                            </script>
                        </tbody>

                    </table>
                    <div style="margin-left: 180px; margin-bottom: 10px;" class="fb-share-button" data-href="<?="http://".$server.$endereco;?>" data-layout="button_count"></div>
                    <p style="font-size: 12px; text-align: center">Os números gerados em nossa enquete não têm valor científico. <br />O objetivo é apenas promover o debate e discussão sobre os possíveis<br /> nomes divulgados na imprensa goiana. </p>
                </form>
            </div>
        </div>

    </body>
    </html>


E essa a página que tem a enquete:
<?php
    ob_start ();  // Inicia o buffer de saída 
?> 

<?php
//Informações do banco de dados de atualização de acordo com as configurações do servidor


if(@!$_POST['poll'] || !$_POST['pollid']){
    $query=mysql_query("SELECT id, ques, created_on FROM questions ORDER BY id DESC LIMIT 1");
    while($row=mysql_fetch_assoc($query)){
        //Questões
        //echo "<p class=\"pollques-data\" >Criada em: ".date("d/m/Y H:i", strtotime($row['created_on']))."</p>";
        echo "<p  style='text-align: justify;' class=\"pollques\" >".$row['ques']."</p>";
        //echo "<p class=\"pollques-computado\" >Verifique o resultado abaixo:</p>";

        $poll_id=$row['id'];
    }
    if(@$_GET["result"]==1 || @$_COOKIE["voted".$poll_id]=='yes'){
        //Se já votou ou pediu resultado
        echo '<p style="font-size: 10px; text-align: center;">Seu voto já foi computado com sucesso. Agradecemos a sua participação!</p>';  
        showresults($poll_id);

        exit;
    }
    else{
    //Opções
        $query=mysql_query("SELECT id, value, image FROM options WHERE ques_id=$poll_id");
        if(mysql_num_rows($query)){
            echo '<div id="formcontainer" ><form method="post" id="pollform" action="'.$_SERVER['PHP_SELF'].'" >';
            echo '<input type="hidden" name="pollid" value="'.$poll_id.'" />';
            while($row=mysql_fetch_assoc($query)){
                echo "<img style='margin-bottom: -22px;' class='presidente' style='background-color: red;' src='image/".$row['image']."' width='60'/></td>";
                echo '<input style="margin-bottom: -50px; margin-left: 10px;" type="radio" name="poll" value="'.$row['id'].'" id="option-'.$row['id'].'" /> 
                <label for="option-'.$row['id'].'" >'.$row['value'].'</label><br /><br />'; //aqui
            }
            echo '<p><input style="cursor: pointer; float: left;padding: 8px 0; width: 100px; margin-right: 25px; background-color: #b7372e; border: 1px dashed #C76767; color: #fff; margin-top:20px;"  type="submit"  value="Votar" /></p></form>';
            echo '<p style="margin-top:20px;"><a  href="'.$_SERVER['PHP_SELF'].'?result=1" id="viewresult">Ver Resultados</a></p></div>';
        }

    }
}
else{

    echo '<script>alert("Seu voto foi computado com sucesso. Agradecemos a sua participação!") </script>';
    if(@$_COOKIE["voted".$_POST['pollid']]!='yes'){

        //Verifica se a opção já foi selecionada no banco
        $query=mysql_query("SELECT * FROM options WHERE id='".intval($_POST["poll"])."'");
        if(mysql_num_rows($query)){
            $query="INSERT INTO votes(option_id, voted_on, ip) VALUES('".$_POST["poll"]."', '".date('Y-m-d H:i:s')."', '".$_SERVER['REMOTE_ADDR']."')";
            if(mysql_query($query))
            {
                //Voto adicionado à base de dados
                 setcookie("voted".$_POST['pollid'], 'yes', time()+86400*300);          
            }
            else
                echo "Ocorreu um erro: ".mysql_error();
        }
    }
    showresults(intval($_POST['pollid']));
}
function showresults($poll_id){
    global $conn;
    $query=mysql_query("SELECT COUNT(*) as totalvotes FROM votes WHERE option_id IN(SELECT id FROM options WHERE ques_id='$poll_id')");
    while($row=mysql_fetch_assoc($query))
        $total=$row['totalvotes'];
    $query=mysql_query("SELECT options.id, options.value, COUNT(*) as votes FROM votes, options WHERE votes.option_id=options.id AND votes.option_id IN(SELECT id FROM options WHERE ques_id='$poll_id') GROUP BY votes.option_id ORDER BY votes DESC");
    while($row=mysql_fetch_assoc($query)){
        $percent=round(($row['votes']*100)/$total);
        echo '<div class="option" ><p>'.$row['value'].' (<em>'.$percent.'%, '.$row['votes'].' voto(s)</em>)</p>';
        echo '<div class="bar ';
        if($_POST['poll']==$row['id']) echo ' yourvote';
        echo '" style="width: '.$percent.'%; " ></div></div>';
    }
    echo '<p>Total de Votos: '.$total.'</p>';
    echo '<a class="botao" href="index.php" id="viewresult">Voltar</a>';
    include '../ajax-poll/facebook.php';

}

    ob_end_flush ();  // Finaliza buffer de saída 
    
asked by anonymous 27.07.2015 / 16:39

1 answer

0

Build the main PHP script this way:

    if(!empty($_POST['cadastra'])){
        if(!empty($_POST['email'])){

            $email = $_POST['email'];
            $ip = $_SERVER['REMOTE_ADDR'];
            $pegaEmail = mysql_query("SELECT * FROM email WHERE email = '{$email}'");

            if(mysql_num_rows($pegaEmail) < 1){

                if(mysql_query("INSERT INTO email (email, ip) VALUES ('$email','$ip')")){
                    echo '<script>window.location="http://enquetegoias.esy.es/pesquisa.html"</script>';

                }else{
                    echo '<script>alert("Erro ao prosseguir! '.mysql_error().'") </script>';
                }
            }else{
                echo "<script>alert('Seu voto já foi computado! Você não poderá voltar novamente.')</script>";
            }

        }else{
            echo "<script>alert('Preencha todos os campos!')</script>";
        }
    }

In this case, we look for the amount of emails if < 1, allows voting, if not, the message appears saying that you have already voted and will not be able to vote again.

    
27.07.2015 / 21:49