Din exempelkod fungererar inte därför att <? ... ?> berättar för php vad du vill göra. PHP fanns ju inte på servern som därför inte gör något åt det som står mellan dessa taggar.
Jag föreslår att du istället använder det traditionella sättet att inkludera i Apache eller IIS:
Observera att du berättar för servern att filen innehåller inkluderat innehåll (:p) genom att ge den en filändelse .shtml eller .shtm.
Den här funktionaliteten måste ibland aktiveras, den fungerar alltså inte alltid "out of the box". Om du har plats på ett webbhotell kan du prova att skapa en fil ".htaccess" (utan citationstecken) och i den skriva Options +Includes. Spara i roten på din sajt. Den här filen kommer sedan att läsas av Apache och se att du vill använda inkluderingsteknik.
Man kan dock bli tvungen att ändra inställningar för servern för att över huvud taget 'aktivera' den här funktionaliteten. Kontakta ditt webbhotell och be att få aktivera SSI (server side includes) om det inte fungerar som du tänkt dig.
När det gäller hur allt det här fungerar finns för Apache en utmärkt beskrivning på http://httpd.apache.org/docs/howto/ssi.html.