ページに2つのボタンがあります。ボタンの 1 つは、3 つのテキスト ボックスを介して入力された日付を保存します。もう 1 つは、何らかのデータ操作を行う関数を呼び出します。
これは、上記の最初のボタンから得たものです。
<input type="submit" name="gravarnext" value="Gravar" />
<?php
if (isset($_POST['gravarnext'])) { 
    if ($_POST['atextfield1'] <= 0 OR $_POST['atextfield2'] <= 0 OR $_POST['atextfield3'] <= 0 OR $_POST['atextfield1'] > 31 OR $_POST['atextfield2'] > 12 OR $_POST['atextfield3'] < 2013){ ?>
        <script>window.alert("Um ou mais valores são inválidos (Dia 1-31 / Mês 1-12 / Ano 2013+).");</script>
    <?php } else {
                $qp = "UPDATE login.next SET dia = '".$_POST['atextfield1']."'";
                $rqp = mysql_query($qp);
                $qp = "UPDATE login.next SET mes = '".$_POST['atextfield2']."'";
                $rqp = mysql_query($qp);
                $qp = "UPDATE login.next SET ano = '".$_POST['atextfield3']."'";
                $rqp = mysql_query($qp);
                echo $_SERVER['PHP_SELF']; ?>
                <script>window.alert("Data do próximo sorteio atualizada com sucesso!");</script>
    <?php } 
}
そして、これは2番目のボタンからのそれぞれのコードです
<button onclick="myFunction()">Finalizar</button>
<script>
    function myFunction()
    {
        var r=confirm("Depois de carregar 'ok', todas as ações tomadas são irreversíveis. Desejas continuar?");
        if (r==true)
        {
            <?php
            //Refresha o palpite do utilizador para 0 e guarda o palpite antigo como ultpalpite
            $qp5 = "UPDATE login.users SET ultpalpite = palpiteatual";
            $rqp5 = mysql_query($qp5);
            //Gera o número sorteado
            $numsort = rand(1,50);
            $qp2 = "UPDATE login.sorteio SET ultsorteio = '".$numsort."'";
            $rqp2 = mysql_query($qp2);
            $qp3 = "UPDATE login.next SET numsorteado = '".$numsort."'";
            $rqp3 = mysql_query($qp3); 
            //Adiciona +1 ao vezesganhou do(s) vencedor(es)
            $qp4 = "UPDATE login.users SET vezesganhou = vezesganhou + 1 WHERE ultpalpite = '".$numsort."'";
            $rqp4 = mysql_query($qp4);
            //Atualiza data do ultimo sorteio
            $d = date('j');
            $m = date('n');
            $y = date('Y');
            $aqp1 = "UPDATE login.sorteio SET diaultsort = '".$d."', mesultsort = '".$m."', anoultsort = '".$y."'";
            $arqp1 = mysql_query($aqp1);
            ?>
        }
        else
        {
            return 1;
        }
    }
</script> 
したがって、私の問題は、最初のボタン (「Gravar」と呼ばれる) をクリックするたびに、2 番目のボタン (「Finalizar」と呼ばれる) に関連付けられた関数も実行されることを除いて、すべてが完全に実行されることです。何が原因でしょうか? また、SQL の脆弱性や不適切なコーディングについて心配する必要はありません。これは、テスト目的のためだけです。