このコードを使用して、ユーザーがボタンをクリックしたときに、最初にファイルをダウンロードすることを確認し、[はい] をクリックすると、$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>
この更新されたコードでは、更新後も送信のクリックが登録されているようです。また、ページを下っていき続けるランダムなキャラクターの束で何か奇妙なことが起こっています.