Форумы / National / Russian / Тех. поддержка / Редиректы на нестандартных портах

Описание ошибки и решение

gospodinn
#30084 06.07.2011 13:21

1. Установил Cotonti на localhost:8080. После отправки любой формы редирект происходит на localhost, т.е. порт отбрасывается.

2. Ошибка синтаксиса MySql при логировании IP пользователя (возникает, например, когда создаешь новую страницу). В запросе IP не был взят в кавычки.

Патч для №1.
=== (+12,-3) system/common.php ===
@@ -162,8 +162,17 @@
 {
 	$sys['host'] = $url['host'];
 }
-$sys['abs_url'] = $url['scheme'] . '://' . $sys['host'] . $sys['site_uri'];
-$sys['canonical_uri'] = $url['scheme'] . '://' . $sys['host'] . $_SERVER['REQUEST_URI'];
+if ($_SERVER['SERVER_PORT'] == 80 
+	|| $_SERVER['SERVER_PORT'] == 443)
+{
+	$sys['port'] = "";
+}
+else
+{
+	$sys['port'] = ":".$_SERVER['SERVER_PORT'];
+}
+$sys['abs_url'] = $url['scheme'] . '://' . $sys['host'] . $sys['port'] . $sys['site_uri'];
+$sys['canonical_uri'] = $url['scheme'] . '://' . $sys['host'] . $sys['port'] . $_SERVER['REQUEST_URI'];
 define('COT_ABSOLUTE_URL', $sys['abs_url']);
Патч для №2.
=== (+2,-2) system/functions.php ===
@@ -3859,7 +3859,7 @@
 	if ($cfg['shieldenabled'])
 	{
 		$shield_newlimit = $sys['now'] + floor($shield_add * $cfg['shieldtadjust'] /100);
-		$db->update($db_online, array('online_shield' => $shield_newlimit, 'online_action' => $shield_newaction), 'online_ip='.$usr['ip']);
+		$db->update($db_online, array('online_shield' => $shield_newlimit, 'online_action' => $shield_newaction), 'online_ip=\''.$usr['ip'].'\'');
 	}