<? bunu kullanabilmeniz için sunucuda short_open_tag etiketinin açık olması gerekir çoğu sunucuda kapalıdır o yüzden elinizden geldiğince <?php tagını kullanın hocam.

Neden ikiside var o zaman?

eski php sürümlerinde <? bu tag yeterliydi fakat daha sonra birçok dil türevi ortaya çıktığından karışıklığın önüne geçmek için <?php kullanılmaya başlanmıştır. Örneğin

short_open_tag açık bir sunucuda php dosyası içinde <?xml version="1.0" ?> gibi xml etiketi kullanmaya çalışırsanız problemle karşılaşırsınız.

Eğer <? şeklinde kullanmak istiyorsanız php.ini dosyanızdan short_open_tag = on yapmalısınız.