Benvenuto.

1) usa il metodo POST invece di GET, così i dati non vengono inviati nel link, nel tuo caso cambia poco, ma è meglio abituarsi per futuri progetti in cui risulterà fondamentale

2) il codice PHP eseguilo solo se dei dati sono stati inviati, così com'è il tuo codice, lo esegui anche appena arrivi sulla pagina e prova a criptare la stringa vuota
Per farlo, prima di "Frase criptata" metti
Codice PHP:
<?php
if ( isset($_POST) && ! empty($_POST) )
{
?>
poi prima del tuo ?> aggiungi una } per chiudere l'if.

3) qui
for($j = 0; $j < 27; $j++){

devi mettere
for($j = 0; $j < 26; $j++){

perché hai 26 lettere, non 27

4) le lettere una sotto l'altra sono causate dai messaggi d'errore, sistemati gli errori, troverai la stringa tutta su una riga.