Io non sono un compilatore php! Mi baso su quello che mi dice php.
Lo script, richiamato direttamente, restituisce gli errori che ti ho riportato sopra. Io comincerei con un print_r del risultato di getimagesize e un echo di $rapporto per vedere quale dei due sia zero.
Se fai questi test per capire dove sia l'errore posso continuare a darti una mano altrimenti, così, non ho la minima idea di dove possa essere. Anche a me lo script sembra corretto ma che per me e per te lo sia non è importante! Deve essere corretto per il php altrimenti siamo sempre punto e a capo!