What are some best practices for handling user registration and activation in PHP applications?

When handling user registration and activation in PHP applications, it is important to securely store user credentials, validate user input, and implement an activation process to verify user accounts. One common practice is to store hashed passwords using PHP's password_hash function and validate user input using PHP's filter_var function. Additionally, sending a unique activation link via email for users to verify their accounts is a good way to ensure that only legitimate users can access the application.

// Store hashed password
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

// Validate user input
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);

// Generate activation token
$token = bin2hex(random_bytes(16));

// Send activation link via email
$to = $email;
$subject = 'Activate your account';
$message = 'Click the following link to activate your account: http://example.com/activate.php?token=' . $token;
$headers = 'From: admin@example.com';
mail($to, $subject, $message, $headers);