A standing order is an instruction set up by your bank or building society on your behalf which will send money to a specified account on a regular basis. You can specify the amount you wish to pay, how often, for how long, and what reference appears on statements.
When you set up a direct debit you give permission for a business to collect payment from your bank account on a regular basis. This is the preferred option when it comes to paying bills because the company can take a different amount each month depending on how much is due.
In a nutshell, with a direct debit a variable amount of money is taken from your account, with a standing order you set up the amount of money to send every month.