Описание ошибки и решение
| gospodinn |
|
|---|---|
|
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'].'\'');
}
|
| Trustmaster |
|
|---|---|
|
В первом случае, думаю, можно взять порт из $url['port'] и не делать определение через $_SERVER. Спасибо за патчи, применю в ближайших коммитах. Added 10 minutes later: Вторая проблема была исправлена ранее. May the Source be with you!
Dieser Beitrag wurde von Trustmaster (am 6. Juli 2011, 19:50, vor 14 Jahre) bearbeitet |
| gospodinn |
|
|---|---|
|
А нельзя ли вообще обойтись без вычисления abs_url? В конфиге ведь уже пописан правильный абсолютный адрес , может просто его учитывать?
$cfg['mainurl'] = 'http://localhost:8080'; |
| Trustmaster |
|
|---|---|
|
Если используются субдомены, то нельзя.
May the Source be with you!
|