Look at your attribute value:
content='0;URL='/protected_page.php''
You are delimiting the value with '
but trying to use '
characters as data inside it.
This isn't possible so what you are really saying is:
content='0;URL='
The correct syntax is:
<meta http-equiv='refresh' content='0;URL=/protected_page.php'>
… without the quotes around the URL portion.
That said, meta refresh is a nasty approach to performing a redirect. An HTTP redirect is better:
<?php header("Location: /protected_page.php"); ?>
You will need to adjust your logic a little. HTTP headers have to be output before the HTTP body, and you're doing your delete & redirect logic in the middle of your HTML output.
As a rule of thumb it is better to put all your business logic (deleting things, fetching data from the database, etc) at the top of your PHP program, and then leave all the business of generating HTML and other output (using variables you populated in the business logic part at the top) at the bottom.