Вообще, если я понял, про что Вы, можно, чтобы сервер1 отправил клиенту заголовок Cookie, который бы установился для сервера2. В php у функции setcookie можно передать такой параметр.
Если бы PHP сформировал что-то типа [{message: "a"}, {message: "b"}], было бы проще. А еще лучше взять message в кавычки. Тогда пойдет функция JSON.parse() или вообще $.getJson()
На сервере стоит проверка на браузер. Дело в том, что некоторые браузеры, возможно даже отправляющие Accept-Encoding, сам gzip не поддерживают. Тогда решили определять по User-Agent. Браузер видит в User-Agent определенное слово и отключает gzip.
Перед вызовами Header() и session_start() что-то уже выводится. Возможно, перед вызовами этих функций уже произошла ошибка, она направилась stdout, а headerу и session_startу это не нравится. Нужен код.
Есть тег <input>. Я серьезно. И есть у него один аттрибут - list, между прочим, называется. А еще есть тег <datalist>. И можно написать
<input type=text list=mycoollist>
<datalist id=mycoollist>
<option>i want to kill you</option>
<option>i will kill you</option>
<option>you will die</option>
<option>i will be killed</option>
<option>i will be dead</option>
</datalist>
Чтобы вы знали, PHP никогда не выдаст ошибку 500. Он отдаст 200 OK и спокойно выведет лог в браузер. Скорее всего, сервак или тот же PHP настроили неправильно. Нужны конфиги (если все-таки решите выложить, вспомните про тег <spoiler>)
Точно подключилось? В консоли ошибок нет? Кстати, на jsfiddle скрипт выполняется после загрузки (в событии onload), а у вас вне. Попробуйте написать что-то вроде
...
var w = 400 / 29; // или 28
var x1, x2;
for(var i=0;i<29;i++) {
x1 = Math.floor(i * w);
x2 = Math.floor(x1 + w);
// И тут рисуете прямоугольник от (x1, y1) до (x2, y2), где y1 - где заканчивается "февраль", а y2 - конец экрана.
}