ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

19.10.2007, 16:34
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
spamoney, проблема в file_get_contents, она посылает кривой запрос... Скорее всего не посылает заголовок Host. Лучше тяни через сокеты...
|
|
|

19.10.2007, 16:35
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме: 6023777
Репутация:
2642
|
|
spamoney
Ошибка в том, что этот скрипт пытается получить страницу, а получает ошибку 403 (доступ запрещён), это чаще всего бывает из-за robots.txt (http://anekdotov.net/robots.txt) он блочит если вы заходите без браузера как видно. Поэтому здесь вряд ли получится сделать без сокетов.
Сообщение от MegaDeth
spamoney так низя. надо самому запрос писать... и пихать его в сокет.
Чушь. Так можно, но здесь нужны сокеты.
|
|
|

19.10.2007, 16:40
|
|
Участник форума
Регистрация: 08.11.2006
Сообщений: 208
Провел на форуме: 1038169
Репутация:
184
|
|
Сообщение от NOmeR1
spamoney
Ошибка в том, что этот скрипт пытается получить страницу, а получает ошибку 403 (доступ запрещён), это чаще всего бывает из-за robots.txt (http://anekdotov.net/robots.txt) он блочит если вы заходите без браузера как видно. Поэтому здесь вряд ли получится сделать без сокетов.
Чушь. Так можно, но здесь нужны сокеты.
я имел ввиду в конкретном этом случае, что еще сказать челу который про ошибку протокола хттп "403 доступ запрещен" не знает? (ну или невидет...)
|
|
|

20.10.2007, 02:59
|
|
Участник форума
Регистрация: 06.02.2006
Сообщений: 137
Провел на форуме: 656903
Репутация:
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 ругается на выделеную строку а вот почему незнаю =(
|
|
|

20.10.2007, 03:12
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме: 1469995
Репутация:
589
|
|
в php нет функции DBQuery(), есть mysql_query(), а DBQuery() ты скорее всего взял из какого-нибудь движка, где она и была определена.
|
|
|

20.10.2007, 03:19
|
|
Участник форума
Регистрация: 06.02.2006
Сообщений: 137
Провел на форуме: 656903
Репутация:
15
|
|
спасибо
|
|
|

20.10.2007, 03:22
|
|
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
Провел на форуме: 5939734
Репутация:
1917
|
|
Сообщение от Helios
в php нет функции DBQuery(), есть mysql_query(), а DBQuery() ты скорее всего взял из какого-нибудь движка, где она и была определена.
вобщем если DBQuery() у тебя определена, то пользуй так :
Код:
$query = DBQuery("SELECT * FROM admin WHERE email = '".$email."'");
аналогично и с mysql_query()
ЗЫ это же у тебя все равно не конечный вариант скрипта, да? (надеюсь)
__________________
Карфаген должен быть разрушен...
Последний раз редактировалось Scipio; 20.10.2007 в 03:25..
|
|
|

20.10.2007, 09:58
|
|
Участник форума
Регистрация: 26.12.2006
Сообщений: 107
Провел на форуме: 228267
Репутация:
27
|
|
Сообщение от NOmeR1
spamoney
Поэтому здесь вряд ли получится сделать без сокетов.
Всем спасибо, что сказали про сокеты, а то я в php как то не очень по этому сам бы не догнал, сделал через сокеты, вроде получилось, правда там наверное много лишннего кода, т.к фук-цию f unction httpSocketConnection нашел в полезных скриптах:
PHP код:
<?php
function httpSocketConnection($host, $method, $path, $data)
{
$method = strtoupper($method);
if ($method == "GET")
{
$path.= '?'.$data;
}
$filePointer = @fsockopen($host, 80, $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($filePointer, 1);
}
while (!preg_match('/\\r\\n\\r\\n$/', $responseHeader));
if (!strstr($responseHeader, "Transfer-Encoding: chunked"))
{
while (!feof($filePointer))
{
$responseContent.= fgets($filePointer, 128);
}
}
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>";
?>
|
|
|

20.10.2007, 15:49
|
|
Участник форума
Регистрация: 06.02.2006
Сообщений: 137
Провел на форуме: 656903
Репутация:
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);
между проверкой на совпадение в базе и добавлением в базу надо чтото ещё написать? просто если даже находит совпадение оно всё равно дальше лезет добавлять в базу и пишит успешно зарегистрирован =) чтото не пойму в чём ошибка
|
|
|

20.10.2007, 16:16
|
|
Участник форума
Регистрация: 06.02.2006
Сообщений: 137
Провел на форуме: 656903
Репутация:
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>Регистрация невозможна";
}
elseif ($num_rows = 1){
$query ="insert into admin (username, passwd, email) values('$login','$pass','$email')";
$result = mysql_query($query);
printf ("Пользователь успешно зарегистрирован", mysql_insert_id());
}
mysql_close($link);
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|