Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запись коментариев!
 
 автор: Panker   (11.05.2006 в 06:15)   письмо автору
 
 

Вот делаю новости, да что я вам тут сказки рассказывать буду )) Все уже наверное мою тему видили :)
Вот она http://softtime.ru/forum/read.php?id_forum=1&id_theme=17240&page=1
Посоветуйте как возможно сделать подругому!
Сейчас я коментарии записываю так!
Есть страница Полных новостей!
Допусти
www.panker.ru/news/full/news39.php
на ней есть форма! Я ввожу ник и всё такое да и нажимаю ок!
Оттуда меян кидает в обработчик да!
Обработчик смотрит откуда пришёл человек! в данный момент он пришёл с www.panker.ru/news/full/news39.php он берёт последнею страницу и записывает коментарии в такуеже страницу ТОЛЬКО не в папку full а в папку coments
Но вот проблма! Если будет подделан реферал то мона засорить весь сервер файлами с коментами!
Вопрос вот в чём! :) Как можно сделать запись коментов не связываясь с рефералами! :)
Плиз не надо делать умный вид и говорить Вот туто функцию так туто так да и ваще ты всё знаеш :D я нефига не знаю :)) Плизз поподробней что как где и куда! КОнечно же не готовый код, его я позже попрошу :))) А пока просто пример мини какойнеть и так далее! =)

   
 
 автор: cheops   (11.05.2006 в 10:34)   письмо автору
 
   для: Panker   (11.05.2006 в 06:15)
 

Можно прошить HTML-форму сессией, так как это описывается в статье http://www.softtime.ru/info/articlephp.php?id_article=35.

   
 
 автор: Panker   (11.05.2006 в 10:36)   письмо автору
 
   для: cheops   (11.05.2006 в 10:34)
 

Мне все гвоорят то с сессиями лучше не связыватся легко взломать и прсот оговорят что то не так или как то с нии не удобно :( хз кочрое ! мне внушили что сессии не есть гууд :(

   
 
 автор: cheops   (11.05.2006 в 10:39)   письмо автору
 
   для: Panker   (11.05.2006 в 10:36)
 

Некоторые задачи без них невозможно решить - так как протокол HTTP достаточно ограничен. Взломать сессии не так просто, особенно если они передаются через cookie, а не методом GET.

   
 
 автор: Panker   (11.05.2006 в 10:41)   письмо автору
 
   для: cheops   (11.05.2006 в 10:39)
 


[code]
<?php 
  
// Инициируем сессию 
  
session_start(); 
?> 
<form action=handler.php method=post> 
Имя : <input type=text name=name> 
Пароль : <iput type=password name=pass> 
<input type=submit name=send value=Отправить> 
<input type=hidden name=session_id value=<?php echo session_id();?>
</form>

Как видно HTML-форма содержит дополнительное поле с именем session_id. После того как пользователь нажимает на кнопку "Отправить" данные отправляются обработчику:

<?php 
  
// Инициируем сессию 
  
session_start(); 
  
// Сравниваем переданный идентификатор из формы с 
  // текущим идентификатором сессии 
  
if($_POST['session_id'] != session_id()) 
  { 
    exit(
"Попытка передачи данных с другого хоста. Скрипт остановлен."); 
  } 
  
// Дальнейшая обработка данных... 
?>

В котором значение поля session_id проверяется с текущим идентификатором сессии.
[/code]
Вроде прочитал вроде понел да!
Но мне интиресно вот что!

  if($_POST['session_id'] != session_id()) 
  { 
    exit("Попытка передачи данных с другого хоста. Скрипт остановлен."); 
  }

Как ана узнаёт что сессия именно с моего хоста?
И ваще в крадце как она рабоатет :)
Жилательно ещё скажите что сессии самое лучшее решение )))
А то вам то больше доверия )) у буду я спокоен :)

   
 
 автор: XPraptor   (11.05.2006 в 11:30)   письмо автору
 
   для: Panker   (11.05.2006 в 10:41)
 

Будь спокоен товарисч :-) Сессии всегда самое лучшее решение.
На счет взлома - хотел бы я посмотреть на того монстра, который имеет такой канал, чтобы попытаться подобрать сессии.
Но смысл даже не в подборе, а в том, что нужно именно с помощью сессий ограничить количество попыток и время поста комментов, тогда подобрать сессию будет еще нереальнее.

   
 
 автор: Panker   (11.05.2006 в 12:34)   письмо автору
 
   для: XPraptor   (11.05.2006 в 11:30)
 

Так ))) теперь я спокоин :))
Вот тока 1 вопрос! Я выше написал ну не я а из статьи софт таймовской взял! нуежели эо всё что надо втсавить сделать?
Или ещё что то потребуется!
А то я наченаю всё делать и в конце понимаю где то я не дочитал или не допонел :)

   
 
 автор: Panker   (11.05.2006 в 12:57)   письмо автору
 
   для: Panker   (11.05.2006 в 12:34)
 

Если же всё так да! ТО!

<?php
Error_Reporting
(E_ALL & ~E_NOTICE);
ob_start ();
session_start();
if(
$_POST['session_id'] != session_id()) 
  { 
    exit(
"Попытка передачи данных с другого хоста. Скрипт остановлен."); 
  }
if(
ereg($_SERVER['SERVER_NAME'], $_SERVER['HTTP_REFERER']))
{
include 
"config/cfg.php";
include 
"config/config.php"
//Referalnay stranica

if(file_exists("data/coment/$pisem") == )

$files1 fopen("data/full/$pisem""a");
$files2="<? include '../../data/coment/$pisem'; ?>";  
fputs($files1$files2."\n"); 
fclose($files1); 
}
else
{

};
$f fopen("data/coment/$pisem""a"); //Записываем маленькие новости сюда!
$n=file("data/coment/$pisem");

$print_news="<b>$Cname</b><br>$Cmail<br><i>$Ccoment</i> -----> $data<br><hr>";  
fputs($f$print_news."\n"); 
fclose($f);   

$f fopen("data/full/$pisem""a"); //Записываем маленькие новости сюда!
$n=file("data/full/$pisem");
}
else
{ echo 
" Нет не надо таких коментов нам! "; };
ob_end_flush ();
?>

и сам код формы с какой посылаем


<? include '../../include/top.php'?> 
<br> Новсоти котоыре будут в полной странице <br><br><br>

<form method=POST action=../../form_coment.php><p>
    <input type=text name=Cname size=20 value=NICK><br>
        <input type=text name=Cmail size=20 value=MAIL><br>
    <textarea rows=2 name=Ccoment cols=20>КОМЕНТАРИИ</textarea><br>
    <input type=hidden name=session_id value=<?php echo session_id();?>>
    <input type=reset value=Сброс name=B2>
    <input type=submit value=Отправить name=B1><br>
</form>

<? Error_Reporting(E_ALL & ~E_NOTICE); ?>

Но почему то кажится не так то всё просто да =)

   
 
 автор: Panker   (11.05.2006 в 16:11)   письмо автору
 
   для: Panker   (11.05.2006 в 12:57)
 

Я ещё тут

   
 
 автор: Panker   (11.05.2006 в 19:08)   письмо автору
 
   для: Panker   (11.05.2006 в 16:11)
 

Тема опустилась почти на вторую странциу!
Поднял!
И ещё вот!
Копал литературу по яку! нечгео не нашёл ! и друзей в он лайне не было!
Pantil приходил тно что то не ответил времени видать ен было :(

   
 
 автор: Panker   (11.05.2006 в 19:28)   письмо автору
 
   для: Panker   (11.05.2006 в 19:08)
 

Сек я не понел! как тк!
Смотрите у меян же новостей 1000000 штук! И я узнаю реферала и с помощью его узнаю куда писать коменты!
А ссесия же не даёт рефа а если она даёт число допустим то как мне узнать где получено это число или она по рефу тоже судит а?

   
 
 автор: Panker   (11.05.2006 в 22:04)   письмо автору
 
   для: Panker   (11.05.2006 в 19:28)
 

Игнор что ли ? :)

   
 
 автор: cheops   (11.05.2006 в 23:47)   письмо автору
 
   для: Panker   (11.05.2006 в 22:04)
 

В чём вопрос?

   
 
 автор: Panker   (12.05.2006 в 00:32)   письмо автору
 
   для: cheops   (11.05.2006 в 23:47)
 

Про сессии! там наверху вопроса 3! Как они работаю! как сделать всё!

   
 
 автор: cheops   (12.05.2006 в 11:29)   письмо автору
 
   для: Panker   (12.05.2006 в 00:32)
 

Сессии работают так, как у вас написано.
>Как она узнаёт что сессия именно с моего хоста?
Сессия с чужого хоста быть не может, так как все данные помещённые в сессию не покидают сервер. Обмен идёт только уникальным идентификатором SID - если нет сессии с таким SID следовательно и воспользоваться ей нельзя.

   
 
 автор: Panker   (12.05.2006 в 17:27)   письмо автору
 
   для: cheops   (12.05.2006 в 11:29)
 

выше код правельный я написал? если да то мне пишут что не с того хоста идёт сесия и операция остановлина

   
 
 автор: cheops   (12.05.2006 в 17:42)   письмо автору
 
   для: Panker   (12.05.2006 в 17:27)
 

Странно, а cookie в браузере включены?

   
 
 автор: Panker   (12.05.2006 в 19:30)   письмо автору
 
   для: cheops   (12.05.2006 в 17:42)
 

да включены

   
 
 автор: Panker   (13.05.2006 в 15:41)   письмо автору
 
   для: Panker   (12.05.2006 в 19:30)
 

А я ещё не разробрался :(( 4 дня уже :(

   
 
 автор: cheops   (13.05.2006 в 18:06)   письмо автору
 
   для: Panker   (13.05.2006 в 15:41)
 

Настройте конфигурационный файл php.ini так, чтобы он сохранял файлы сессий на жёсткий диск, как это описывается в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=415 - это позволит вам визуально контролировать их создание.

   
 
 автор: Panker   (13.05.2006 в 18:31)   письмо автору
 
   для: cheops   (13.05.2006 в 18:06)
 

вроде сделал как там сказано но что то в темп нечгео не появилось *

   
 
 автор: Panker   (13.05.2006 в 18:41)   письмо автору
 
   для: Panker   (13.05.2006 в 18:31)
 

Блин а другие способы есть нет? для коментариев?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования