A standing order is an instruction to your Bank to pay a certain amount each month (or whenever) to a particular account.
A direct debit is an authority that allows a Company to debit funds from your account each month. Direct debits are usually 'variable' although they do need to give you 14 days notice of any changes.
Yep, Standing Orders are controlled by you - both the amounts and the dates.
Direct Debits are controlled by whoever you are paying. They can take what they like when they like (subject to certain rules - not quite as scary as it sounds!)