[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Редактирование комментария
xJlaIIax
У меня на сайте добавление комментариев происходит без регистрации.

При добавлении комментария, определяется IP пользователя
$IP = $_SERVER["REMOTE_ADDR"];

дата и время
$date = date("d-m-Y H:i");

Захотел сделать функцию редактирования комментариев.
Ссылку для редактирования думаю показывать если IP при добавление комментария совпадает с текущим IP.
if ($IP == $myrow["IP"])
{
echo ('<a href="edit.php?id=id_комментария">Редактировать</a></p>');
}

НО люди могут заходить на сайт с прокси серверов и тогда ссылка будет доступна не только автору комментария.
Нашёл в интернете скрипт по определению настоящего IP адреса:
/* By Grant Burton @ BURTONTECH.COM (11-30-2008): IP-Proxy-Cluster Fix */
function checkIP($ip) {
if (!empty($ip) && ip2long($ip)!=-1 && ip2long($ip)!=false) {
$private_ips = array (
array('0.0.0.0','2.255.255.255'),
array('10.0.0.0','10.255.255.255'),
array('127.0.0.0','127.255.255.255'),
array('169.254.0.0','169.254.255.255'),
array('172.16.0.0','172.31.255.255'),
array('192.0.2.0','192.0.2.255'),
array('192.168.0.0','192.168.255.255'),
array('255.255.255.0','255.255.255.255')
);


foreach ($private_ips as $r) {
$min = ip2long($r[0]);
$max = ip2long($r[1]);
if ((ip2long($ip) >= $min) && (ip2long($ip) <= $max)) return false;
}
return true;
} else {
return false;
}
}

function determineIP() {
if (checkIP($_SERVER["HTTP_CLIENT_IP"])) {
return $_SERVER["HTTP_CLIENT_IP"];
}
foreach (explode(",",$_SERVER["HTTP_X_FORWARDED_FOR"]) as $ip) {
if (checkIP(trim($ip))) {
return $ip;
}
}

if (checkIP($_SERVER["HTTP_X_FORWARDED"])) {
return $_SERVER["HTTP_X_FORWARDED"];
} elseif (checkIP($_SERVER["HTTP_X_CLUSTER_CLIENT_IP"])) {
return $_SERVER["HTTP_X_CLUSTER_CLIENT_IP"];
} elseif (checkIP($_SERVER["HTTP_FORWARDED_FOR"])) {
return $_SERVER["HTTP_FORWARDED_FOR"];
} elseif (checkIP($_SERVER["HTTP_FORWARDED"])) {
return $_SERVER["HTTP_FORWARDED"];
} else {
return $_SERVER["REMOTE_ADDR"];
}
}

//Override server variable for Wordpress comments
$_SERVER["REMOTE_ADDR"] = determineIP();

Хотел услышать Ваше мнение об этом скрипте, будет ли он на самом деле работать.

Так же можно в целях защиты сделать, что бы ссылка была доступна в течении 10 минут со времени добавления комментария, но как это сделать я к сожалению не знаю. Подскажите пожалуйста, как можно осуществить эту идею.



Спустя 4 минуты, 29 секунд (25.11.2010 - 20:09) Kuliev написал(а):
xJlaIIax
Редактирование камментов без регистрации это конечно ЖЕСТЬ но рас так то попробуйте отправлять куку пользователю!

Спустя 52 минуты, 18 секунд (25.11.2010 - 21:02) xJlaIIax написал(а):
Цитата (Kuliev @ 25.11.2010 - 17:09)
попробуйте отправлять куку пользователю!

Спасибо за совет!
Скорее всего так и сделаю, я правда никогда с ними не работал, буду разбираться.
А никто не украдёт куки?

Спустя 8 минут, 22 секунды (25.11.2010 - 21:10) Kuliev написал(а):
Цитата (xJlaIIax @ 25.11.2010 - 23:02)
Цитата (Kuliev @ 25.11.2010 - 17:09)
попробуйте отправлять куку пользователю!

Спасибо за совет!
Скорее всего так и сделаю, я правда никогда с ними не работал, буду разбираться.
А никто не украдёт куки?

Все может быть

Спустя 9 минут, 51 секунда (25.11.2010 - 21:20) xJlaIIax написал(а):
Для интереса, приведенный выше скрипт по определению настоящего IP адреса будет работать?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.