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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Автопостинг

Сообщения:  [1-10]   [11-16] 

 
 автор: cheops   (06.07.2005 в 00:32)   письмо автору
 
   для: BAHO   (05.07.2005 в 19:07)
 

Можно воспользоваться следующим регулярным выражением
<?php
  $pattern 
"#http://[-a-z0-9_.\/]+(\.(html|php|pl|cgi)[-a-z0-9_:@&?=+,.!/~*'%$])*#i";
  if(!
preg_match($pattern$url)) exit("URL не корректент");
?>

   
 
 автор: BAHO   (05.07.2005 в 19:07)   письмо автору
 
   для: BAHO   (05.07.2005 в 17:06)
 

и ещё, если не сложно, подскажите, как проверить корректность ввода url... а то я с ентими регулярными выражениями запарился, но ничего хорошего из ентого не вышло... не хочет он мой url корректным назвать, хотя он корректен

   
 
 автор: BAHO   (05.07.2005 в 17:06)   письмо автору
 
   для: cheops   (05.07.2005 в 15:07)
 

Всё.. я разобрался, совсем забыл о полях hidden... вот в ентом и было дело...
но появилась новая ошибка, вернее не ошибка, а проблема... когда в базе больше одной записи, то всё, скрипт перестаёт работать из-за превышения лимита времени (у меня 30 - енто говорит php) и всё... а дело будет происходить в инете... как можно ускорить процесс? последний параметр в функции fsockopen я уже брал, не помогло...

   
 
 автор: cheops   (05.07.2005 в 15:07)   письмо автору
 
   для: BAHO   (05.07.2005 в 14:49)
 

200 OK говорит, что всё нормально - вы не сразу передававайте данные - сначала проверьте в обработчике всё ли дошло - для этого выведите дамп суперглобального массива $_POST
<?php
  
echo "<pre>";
  
print_r($_POST);
  echo 
"</pre>";
?>

   
 
 автор: BAHO   (05.07.2005 в 14:49)   письмо автору
 
   для: cheops   (05.07.2005 в 12:14)
 

Чё то он всё равно не хочет посылать ничего, вернее опять появилось
HTTP/1.1 200 OK Date: Tue, 05 Jul 2005 10:48:09 GMT Server: Apache/1.3.31 (Win32) PHP/4.3.10 X-Powered-By: PHP/4.3.10 Transfer-Encoding: chunked Content-Type: text/html f4a

но данные вроде передались, но не добавились...

пробовал не только у себя на локальном сервере, но и в инете, не получается, не добавляет он чё-то

   
 
 автор: cheops   (05.07.2005 в 12:14)   письмо автору
 
   для: BAHO   (05.07.2005 в 07:37)
 

Прототокол http:// указывать не нужно - только хост. Сокетам всё-равно какой протокол, так как с сервером на нём будете говорить вы, а не они, в отличие допустим от функций PHP, которые необходимо передавать полный путь. Т.е. строку
<?php
$hostname 
"http://guest.kn";
?>

следует исправить на
<?php
$hostname 
"guest.kn";
?>

   
 
 автор: BAHO   (05.07.2005 в 07:37)   письмо автору
 
   для: cheops   (04.07.2005 в 20:57)
 

хе, ну с localhost всё понятно... сам вчера послн ответа на форуме нашёл свою ошибку...

попробовал, как вы сказали:

<?
$hostname 
"http://guest.kn"
  
$line ""
  
$fp fsockopen($hostname80$errno$errstr30); 
  if (!
$fp) echo "$errstr ($errno)<br />\n"
  else 
    { 
    

$data="name=".urlencode("gjfg")."&city=".urlencode("hgfhf")."&mess=".urlencode("jgfjg")."\r\n\r

\n"

    
$headers "POST /guest.php HTTP/1.1\r\n"
    
$headers .= "Host: $hostname\r\n"
    
$headers .= "Content-type: application/x-www-form-urlencoded\r\n"
    
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n"
    
// Отправляем HTTP-запрос серверу 
    
fwrite($fp$headers.$data); 
    while (!
feof($fp)) 
      { 
      
$line .= fgets($fp1024); 
      } 
    
fclose($fp); 
    } 
  echo 
$line
?>


ответ:
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed in z:\home\kn\test\index.php on line 4

Warning: fsockopen(): unable to connect to http://guest.kn/:80 in z:\home\kn\test\index.php on line 4
Операция успешно завершена. (0)

   
 
 автор: cheops   (04.07.2005 в 20:57)   письмо автору
 
   для: BAHO   (04.07.2005 в 17:05)
 

Команда POST HTTP-протокола ожидает после себя путь и параметры, т.е.
POST /guest.php HTTP/1.1\r\n

XPraptor, прав, если вы обращаетесь к guest.kn, то вместо localhost необходимо указать guest.kn.

   
 
 автор: XPraptor   (04.07.2005 в 17:55)   письмо автору
 
   для: BAHO   (04.07.2005 в 17:05)
 

Эх, че уж там, плодить так плодить спамеров :-)
С какой стати у тебя хост равен localhost?
У тебя же гостевая по адресу guest.kn это и есть хост, а патч это адрес самой страницы на хосте хоть вместе с хостом хоть без оного.

   
 
 автор: BAHO   (04.07.2005 в 17:05)   письмо автору
 
   для: XPraptor   (04.07.2005 в 15:46)
 

to XPraptor: ну тут не совсем спам... тут совсем другая задача...

to cheops:
я воспользовался ентим кодом:

<?
$hostname 
"localhost"
  
$path "http://guest.kn/guest.php";
  
$line ""
  
$fp fsockopen($hostname80$errno$errstr30); 
  if (!
$fp) echo "$errstr ($errno)<br />\n"
  else 
    { 
    
$data="name=gjfg&mail=1@drhdr.ru&mess=jgfjg\r\n\r\n"
    
$headers "POST $path HTTP/1.1\r\n"
    
$headers .= "Host: $hostname\r\n"
    
$headers .= "Content-type: application/x-www-form-urlencoded\r\n"
    
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n"
    
// Отправляем HTTP-запрос серверу 
    
fwrite($fp$headers.$data); 
    while (!
feof($fp)) 
      { 
      
$line .= fgets($fp1024); 
      } 
    
fclose($fp); 
    } 
  echo 
$line
?>


сразу возник такой вопрос: имя хоста, а вот на других сайтах енто же не так будет, вернее не обязательно такое название... ведь запросы буду отсылаться в инет на другие сайты...

у себя на компе протестил код на гостевой, появился заголовок, он меня обрадовал на некоторое время :
HTTP/1.1 200 OK Date: Mon, 04 Jul 2005 12:58:01 GMT Server: Apache/1.3.31 (Win32) PHP/4.3.10 X-Powered-By: PHP/4.3.10 Transfer-Encoding: chunked Content-Type: text/html f4a

До поры ждо времени пока я не узнал, что не добавилось нифига.... поля name, mail и mess обязательные для заполнения, но не прокатило...

   

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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