What are some best practices for handling form submissions and preventing duplicate actions in PHP?

To prevent duplicate form submissions in PHP, one common approach is to use a token-based system. When a form is submitted, a unique token is generated and stored in a session variable. Upon successful form submission, the token is invalidated to prevent duplicate actions. Additionally, disabling form resubmission through browser warnings or redirects can also help prevent duplicate submissions.

```php
// Check if form has been submitted
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Validate token
    if (isset($_POST['token']) && $_POST['token'] === $_SESSION['form_token']) {
        // Process form submission
        // Invalidate token
        unset($_SESSION['form_token']);
    } else {
        // Handle duplicate form submission
        // Redirect or display error message
    }
}

// Generate and store form token
$token = md5(uniqid(rand(), true));
$_SESSION['form_token'] = $token;
```
In this code snippet, a token is generated and stored in a session variable. Upon form submission, the token is validated to prevent duplicate actions. If the token matches, the form submission is processed, and the token is invalidated. Otherwise, an error message or redirect can be used to handle duplicate submissions.