HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 19.10.2007, 16:35
NOmeR1
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,187
С нами: 10495046

Репутация: 2642


По умолчанию

spamoney
Ошибка в том, что этот скрипт пытается получить страницу, а получает ошибку 403 (доступ запрещён), это чаще всего бывает из-за robots.txt (http://anekdotov.net/robots.txt) он блочит если вы заходите без браузера как видно. Поэтому здесь вряд ли получится сделать без сокетов.
Цитата:
Сообщение от MegaDeth  
spamoney так низя. надо самому запрос писать... и пихать его в сокет.
Чушь. Так можно, но здесь нужны сокеты.
 
Ответить с цитированием

  #2  
Старый 19.10.2007, 16:40
MegaDeth
Участник форума
Регистрация: 08.11.2006
Сообщений: 208
С нами: 10266046

Репутация: 184
По умолчанию

Цитата:
Сообщение от NOmeR1  
spamoney
Ошибка в том, что этот скрипт пытается получить страницу, а получает ошибку 403 (доступ запрещён), это чаще всего бывает из-за robots.txt (http://anekdotov.net/robots.txt) он блочит если вы заходите без браузера как видно. Поэтому здесь вряд ли получится сделать без сокетов.

Чушь. Так можно, но здесь нужны сокеты.
я имел ввиду в конкретном этом случае, что еще сказать челу который про ошибку протокола хттп "403 доступ запрещен" не знает? (ну или невидет...)
 
Ответить с цитированием

  #3  
Старый 20.10.2007, 09:58
spamoney
Участник форума
Регистрация: 26.12.2006
Сообщений: 107
С нами: 10196899

Репутация: 27
По умолчанию

Цитата:
Сообщение от NOmeR1  
spamoney
Поэтому здесь вряд ли получится сделать без сокетов.
Всем спасибо, что сказали про сокеты, а то я в php как то не очень по этому сам бы не догнал, сделал через сокеты, вроде получилось, правда там наверное много лишннего кода, т.к фук-цию function httpSocketConnection нашел в полезных скриптах:

PHP код:
<?php

function httpSocketConnection($host$method$path$data
   { 
       
$method strtoupper($method);        
       
       if (
$method == "GET"
       { 
           
$path.= '?'.$data
       }    
       
       
$filePointer = @fsockopen($host80$errorNumber$errorString); 
       
       if (!
$filePointer
       { 
           exit(
'Failed opening http socket connection: '.$errorString.' ('.$errorNumber.')<br/>\n'); 
           return 
false
       } 

       
$requestHeader $method." ".$path."  HTTP/1.1\r\n"
       
$requestHeader.= "Host: ".$host."\r\n"
       
$requestHeader.= "User-Agent:      Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0\r\n"
       
$requestHeader.= "Content-Type: application/x-www-form-urlencoded\r\n"

       if (
$method == "POST"
       { 
           
$requestHeader.= "Content-Length: ".strlen($data)."\r\n"
       } 
       
       
$requestHeader.= "Connection: close\r\n\r\n"
       
       if (
$method == "POST"
       { 
           
$requestHeader.= $data
       }            

       
fwrite($filePointer$requestHeader); 
       
       
$responseHeader ''
       
$responseContent ''

       do 
       { 
           
$responseHeader.= fread($filePointer1); 
       } 
       while (!
preg_match('/\\r\\n\\r\\n$/'$responseHeader)); 
       
       
       if (!
strstr($responseHeader"Transfer-Encoding: chunked")) 
       { 
           while (!
feof($filePointer)) 
           { 
               
$responseContent.= fgets($filePointer128); 
           } 
       } 
       else 
       { 

           while (
$chunk_length hexdec(fgets($filePointer))) 
           { 
               
$responseContentChunk ''
           
               
//logEventToTextFile('debug', $chunk_length); 
               
$read_length 0
               
               while (
$read_length $chunk_length
               { 
                   
$responseContentChunk .= fread($filePointer$chunk_length $read_length); 
                   
$read_length strlen($responseContentChunk); 
               } 

               
$responseContent.= $responseContentChunk
               
               
fgets($filePointer); 
               
           } 
           
       } 

       
//logEventToTextFile('debug', $responseContent); 
       
       
       
return chop($responseContent); 
   } 

$bb=0;
 for(
$f=0;$f<3;$f++){  


$data=""
$host "anekdotov.net"
$path "http://anekdotov.net/vovochka/index-page-$f.html"
$method "GET"


$a=httpSocketConnection($host$method$path$data);

 
$file preg_match_all("#<input type=hidden name=story value='(.*?)<INPUT type=image src=#si",$a,$frazes);  


 for(
$i=0;$i<$file;$i++){  
     echo 
"<hr>".$frazes[1][$i]."\r\n<hr>";  
  }  
$bb++;
}
$vsego=$bb*$file;
echo 
"Анекдотов на странице: <font color=red>$file</font><br>";
echo 
"Всего Анекдотов: <font color=green>$vsego</font>";

?>
 
Ответить с цитированием

  #4  
Старый 19.10.2007, 16:32
Y.Dmitriy
Постоянный
Регистрация: 14.03.2007
Сообщений: 367
С нами: 10084646

Репутация: 161
По умолчанию

Warning: file_get_contents(http://anekdotov.net/vovochka/index-page-1.html) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in z:\home\backup.ru\www\anek.php on line 2
 
Ответить с цитированием

  #5  
Старый 19.10.2007, 16:34
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
С нами: 9999746

Репутация: 1318


По умолчанию

spamoney, проблема в file_get_contents, она посылает кривой запрос... Скорее всего не посылает заголовок Host. Лучше тяни через сокеты...
 
Ответить с цитированием

  #6  
Старый 20.10.2007, 02:59
XIII
Участник форума
Регистрация: 06.02.2006
Сообщений: 137
С нами: 10661697

Репутация: 15
По умолчанию

скрипт добавления в mysql базу

<?php
$login = $_POST['login'];
$email = $_POST['email'];
$pass = $_POST['pass'];


$link = mysql_connect("localhost", "root", "*****") or
die("Could not connect: " . mysql_error());


mysql_select_db("nova");

$query = DBQuery("SELECT * FROM admin WHERE email = '$email'");
if (mysql_num_rows($query))
die("Такой пользователь уже существует");


DBQuery("insert into admin (username, passwd, email) values('$login','$pass','$email')");


mysql_close($link);
?>
php ругается на выделеную строку а вот почему незнаю =(
 
Ответить с цитированием

  #7  
Старый 20.10.2007, 03:12
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
С нами: 10169427

Репутация: 589
По умолчанию

в php нет функции DBQuery(), есть mysql_query(), а DBQuery() ты скорее всего взял из какого-нибудь движка, где она и была определена.
 
Ответить с цитированием

  #8  
Старый 20.10.2007, 03:22
Scipio
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
С нами: 10274726

Репутация: 1917


По умолчанию

Цитата:
Сообщение от Helios  
в php нет функции DBQuery(), есть mysql_query(), а DBQuery() ты скорее всего взял из какого-нибудь движка, где она и была определена.
вобщем если DBQuery() у тебя определена, то пользуй так :
Код:
$query = DBQuery("SELECT * FROM admin WHERE email = '".$email."'");
аналогично и с mysql_query()

ЗЫ это же у тебя все равно не конечный вариант скрипта, да? (надеюсь)
__________________
Карфаген должен быть разрушен...

Последний раз редактировалось Scipio; 20.10.2007 в 03:25..
 
Ответить с цитированием

  #9  
Старый 20.10.2007, 03:19
XIII
Участник форума
Регистрация: 06.02.2006
Сообщений: 137
С нами: 10661697

Репутация: 15
По умолчанию

спасибо
 
Ответить с цитированием

  #10  
Старый 20.10.2007, 15:49
XIII
Участник форума
Регистрация: 06.02.2006
Сообщений: 137
С нами: 10661697

Репутация: 15
По умолчанию

Цитата:
$result = mysql_query ("SELECT * FROM admin WHERE email = '".$email."'");
$num_rows = mysql_num_rows($result);
echo "Совпадений $num_rows \n<br>";
if ($num_rows >= 1){
print "Такой логин или email уже зарегистрирован в базе!<br>";
}

$query ="insert into admin (username, passwd, email) values('$login','$pass','$email')";
$result = mysql_query($query);
printf ("Пользователь успешно зарегистрирован", mysql_insert_id());
mysql_close($link);
между проверкой на совпадение в базе и добавлением в базу надо чтото ещё написать? просто если даже находит совпадение оно всё равно дальше лезет добавлять в базу и пишит успешно зарегистрирован =) чтото не пойму в чём ошибка
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.