0

このコードを使用して、ユーザーがボタンをクリックしたときに、最初にファイルをダウンロードすることを確認し、[はい] をクリックすると、$userpoints から 100 ポイントを減算します (その後、mysql テーブルを更新しますが、私は知っていますこれを行う方法)、私が助けを必要としているのは、誰かがボタンをクリックしたときにコードを実行することです。また、再利用できる URL を取得せずにダウンロードを提供したいと考えています。URLを表示しないか、一意のワンタイムコードにするかのいずれかです。

<?php                       
                    //If submit form was clicked
                    if(isset($_POST['submit'])) {
                        //Server side validation for security purposes
                        if($userpoints >= 100) {
                            mysqli_query($con,"UPDATE users SET points = points - 100 WHERE users.user_name = '$username' LIMIT 1");
                            $filename = 'ibelongwithyou.mp3';
                            $filepath = '/home4/saintfiv/downloads/';
                            header("Content-Length: ".filesize($filepath.$filename));
                            header("Content-Disposition: attachment; filename=I Belong With You.mp3");
                            readfile($filepath.$filename);
                        }else {
                            header("Location: index.php?error=1");
                        }
                    }
                    ?>
                    <form method="post" action="index.php">
                    <?php
                        if ($userpoints >= 100) {
                            echo '<input type="submit" name="submit" value="100pts">';
                        } else {
                            echo '<input type="submit" name="submit" value="100pts" disabled title="You need at least 100 points for this download">';
                        }
                        if(isset($_GET['error']) && $_GET['error'] == 1) {
                            echo "Error, you must have atleast 100points";
                        }
                    ?>
                    </form>

この更新されたコードでは、更新後も送信のクリックが登録されているようです。また、ページを下っていき続けるランダムなキャラクターの束で何か奇妙なことが起こっています.

4

1 に答える 1