Все данные передаются запросом к скрипту на сервере. Браузер запрос может делать для всей страницы и тогда все содержимое страницы заменяется на полученное в ответе от сервера. Либо ответ от сервера будет возвращен обработчику на javascript (Ajax). Параметры передаваемые в пути url помещаются в $_GET, параметры передаваемые в теле запроса в $_POST (если удалось их распарсить, что не удалось лежит в php://input).
Сессия php здесь вообще не при чем, да и Alert тоже, поэтому не очень понятно, что вы имели ввиду.
И как уже написал Евгений, стандартный вариант это передача данных по сабмиту формы, переход по ссылке - для перехода, не для передачи данных, а ajax специфичная вещь для определенных нужд (в любом случае не с него нужно начинать).