PDA

Просмотр полной версии : [php] Новичкам: задаем вопросы


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

Naydav
29.05.2008, 17:17
Gadik
http://www.pfts.com/uk_/auctions/
вызывает не 404 или обработку, а 500(Internal Server Error)

Это ладно, еще на сайте присутствует уязвимость типа sql-injection
плохо филитруемая переменная $search;

Gadik
29.05.2008, 17:28
что это значит? вообще сайт не мой.

а подскажите пожалуйста по MySQL
можно ли переделать формат столбца (дата, полный формат) в ГГГГ:ММ:ДД?? т.е. отбросить часы минуты и сек?

Naydav
29.05.2008, 17:37
что это значит?
я тебе в личку написал

а подскажите пожалуйста по MySQL
если ты будешь вставлять записи в формате ГГГГ:ММ:ДД, то оно и будет так записывать, а остальное дополнять нулями

Gadik
29.05.2008, 17:53
если ты будешь вставлять записи в формате ГГГГ:ММ:ДД, то оно и будет так записывать, а остальное дополнять нулями

это я знаю. просто мне надо будет сверять две даты

ведь дата 28,05,08 00:00:00 не равна 28,05,08 ??

если равна и скрипт выдаст true тогда вопрос снимается

Naydav
29.05.2008, 18:01
если ты сравниваешь в php, то
можешь сделать так
$time = "28.05.08 00:00:00";
echo substr($time, 0,-9);
вернет 28.05.08

а можно получать метку времени(timestamp) для каждой из дат, и сравнивать метки, тогда навернека

а если искать(сравнивать) в базе, если не ошибаюсь, то
28.05.08 вернет найдено, если в поле базы 28.05.08 00:00:00

Gadik
29.05.2008, 18:06
ок. спс

imajo.ati
29.05.2008, 20:04
есть файл 1.txt

из него берутся 4 сроки и переводятся в переменные
$id,$name,$title,$src

и есть функция, которая использует эти переменные
function links($id,$name,$title,$src) { ... }

функция должна вызываться через eval
вызываю я ее так

eval($func($id,$name,$title,$src,$act));

где $func это имя функции, равное links


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

но нужно сохранить как можно больше символов

Naydav
29.05.2008, 20:47
Смотря как использовать eval()
Если

$a = "/*";
eval('my($a)');
То ничего фильтровать не нужно, так как в eval будет всегда находиться текст "my($a)" вне зависимости чему равно $a (из-за одинарных кавычек), скрипт просто передаст переменную функции, ессно $a мы должны обьявить заранее

А если eval("my($a)");
Тогда нужно фильтровать ВСЕ, так как параметр eval - всегда изменяемый, то есть вместо постоянного $a будет что-то другое, что постоянно будет подставляться в евал

чуешь разницу?

В твоем случае лучше:

eval($func.'($id,$name,$title,$src,$act)');
а переменные присвоить выше, тогда, что бы в них ни было - это будет всего лишь значением переменной

imajo.ati
30.05.2008, 11:16
В твоем случае лучше:
eval($func.'($id,$name,$title,$src,$act)');
а переменные присвоить выше, тогда, что бы в них ни было - это будет всего лишь значением переменной
понял! значит eval исполнит только $func а все остальные переменные останутся долларами =)

спасибо! именно то что нужно

groundhog
30.05.2008, 14:16
eval выполнит всё выражение, которое принимает в качестве параметра, вопрос только в области видимости и возможности инициализации используемых переменных, которые ты передаёшь в eval.

Gadik
30.05.2008, 15:26
Подскажите пожалуйста, существуют ли двумерные массивы? если да, то как правильно его объявить и как обращаться к какому-нить элементу массива?

Naydav
30.05.2008, 15:31
Подскажите пожалуйста, существуют ли двумерные массивы? если да, то как правильно его объявить и как обращаться к какому-нить элементу массива?
<?php
// Многомерный простой массив:
$arr[0][0]="Овощи";
$arr[0][1]="Фрукты";
$arr[1][0]="Абрикос";
$arr[1][1]="Апельсин";
$arr[1][2]="Банан";
$arr[2][0]="Огурец";
$arr[2][1]="Помидор";
$arr[2][2]="Тыква";

// Выводим элементы массива:
echo "<h3>".$arr[0][0].":</h3>";
for ($q=0; $q<=2; $q++) {
echo $arr[2][$q]."<br>";
}
echo "<h3>".$arr[0][1].":</h3>";
for ($w=0; $w<=2; $w++) {
echo $arr[1][$w]."<br>";
}
?>

<?php
// Многомерный ассоциативный массив
$A["Ivanov"]["name"]="Иванов И.И.";
$A["Ivanov"]["age"]="25";
$A["Ivanov"]["email"]="ivanov@mail.ru";

$A["Petrov"]["name"]="Петров П.П.";
$A["Petrov"]["age"]="34";
$A["Petrov"]["email"]="petrov@mail.ru";

$A["Sidorov"]["name"]="Сидоров С.С.";
$A["Sidorov"]["age"]="47";
$A["Sidorov"]["email"]="sidorov@mail.ru";

// Получаем доступ к ключам многомерного ассоциативного массива
echo $A["Ivanov"]["name"]."<br>"; // Выводит Иванов И.И.
echo $A["Sidorov"]["age"]."<br>"; // Выводит 47
echo $A["Petrov"]["email"]."<br>"; // Выводит petrov@mail.ru
?>
http://php.su/learnphp/vars/?arrays

Gadik
30.05.2008, 15:46
класс! спасибо!

Gadik
30.05.2008, 15:48
корректно ли будет такое использование:

for($i=0;$i<$kolvo;$i++) {
$new=mysql_query("SELECT * FROM graph_company order by id asc limit ".$i.",1");
$more[0][$i]=mysql_fetch_row($new);


?

Naydav
30.05.2008, 15:56
А зачем так извращаться?

Проще 1 запросом
$new=mysql_query("SELECT * FROM graph_company");
while($obj = mysql_fetch_object($new))
echo $obj->name;

Количество кортежей можно узать через
$num = mysql_num_rows($new);

Gadik
30.05.2008, 16:00
ну да, ну да)))

ну форум же для новичков)

Gadik
30.05.2008, 16:12
Скажите, пожалуйста, в планировщике задач на серваке стоит запись:

GET http://domain.com/1111.php > /dev/null

... что значат параметры dev и null ?

Naydav
30.05.2008, 16:19
/dev/null — специальный файл в системах класса UNIX, представляющий из себя т. н. «пустое устройство». Запись в него происходит успешно, независимо от объёма «записанной» информации. Чтение из /dev/null эквивалентно считыванию конца файла (EOF).
http://ru.wikipedia.org/wiki//dev/null

Gadik
30.05.2008, 17:12
возник один вопросик.

в базе в табл дата формата г-м-д

потом грабится дата с сайьа определенного формата д-м-г

для того чтобы сравнить ее с базой.

так вот, как можно это сделать если они по отношению друг к другу перевернутые?

Naydav
30.05.2008, 17:23
блин как на поле чудес :)
для того чтобы сравнить ее с базой.
берешь дату в формате д-м-г и представляешь в формате г-м-д
или в timestamp, там вообще по барабану какой формат даты

Gadik
30.05.2008, 17:55
хых, а как представить? я качаю с левого сервака дату в виде строки 29/05/2008
как из нее сделать 2008/05/29 ?

а тамштамп - эт что еще такое?

Naydav
30.05.2008, 18:02
$date = "29/05/2008";
$array_date = explode("/", $date);
$newdate = "{$array_date[2]}/{$array_date[1]}/{$array_date[0]}";
echo $newdate;
Можно через ereg, или preg_match, я взял самый простой вариант...
timestamp
Метка времени - это цело число, равное разнице в секундах между заданной датой/временем и началом Эпохи Unix (The Unix Epoch, 1 января 1970 г)



Слушай а на@уя google.com ? ты не знаешь?

Gadik
30.05.2008, 18:09
спс огромное
та в гугле мля гавна много

Naydav
30.05.2008, 18:12
та в гугле мля гавна много
http://www.google.com.ua/search?hl=uk&q=timestamp&btnG=%D0%9F%D0%BE%D1%88%D1%83%D0%BA+Google&meta=lr%3Dlang_ru
Первая же ссылка

drive_pan
30.05.2008, 18:54
Помогите новичку в этом деле !!!
http://mobmob.sk6.ru/member_zone/index.php - Как сменить кодировку ???

d_x
30.05.2008, 18:59
1). Вместо тега <meta http-equiv="Content-Type" content="text/html; charset=ср1251" />
написать <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
2). Сервер отсылает браузеру заголовок Content-Type: text/html; charset=UTF-8
Его надо убрать или заменить UTF-8 на windows-1251.

Naydav
30.05.2008, 19:01
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
а не cp1251

drive_pan
30.05.2008, 19:02
Заменил на <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> Не помогло.......:(

Naydav
30.05.2008, 19:05
у тебя в сорсе
<meta http-equiv="Content-Type" content="text/html; charset=��1251" />

d_x
30.05.2008, 19:05
В первую очередь браузер обращает внимание на заголовок, а не на META. Сервер говорит об UTF-8, такая кодировка и выставляется.
2). Сервер отсылает браузеру заголовок Content-Type: text/html; charset=UTF-8
Его надо убрать или заменить UTF-8 на windows-1251.

drive_pan
30.05.2008, 19:08
В первую очередь браузер обращает внимание на заголовок, а не на META. Сервер говорит об UTF-8, такая кодировка и выставляется.
Как это можно сделать ??? Этот скрипт не мой а биллинговой компании, я его прикрепил к wap-engine4.2. Объясните если можно поподробней где, что и как поменять... плз...

d_x
30.05.2008, 19:19
По-видимому, сервер отправляет этот заголовок сам, это не прописано где-то конкретно в скриптах (посмотрел несколько сайтов на sk6.ru, везде этот заголовок есть). Скорее всего, если хост хороший, то отключение этой настройки должно быть в контрольной панели. Или же все скрипты придётся перевести в кодировку Utf-8.

drive_pan
30.05.2008, 19:24
УРААААА !!!! Спасибо всем за помощь, разобрался, надо было просто в .htaccess сменить дефолтную кодировку UTF-8 на windows-1251 !!!

Blad94
31.05.2008, 09:08
Привет всем, никто не знает как с помощью пхп подключиться к асе или хотя бы почитать про это

je0n
31.05.2008, 09:18
Привет всем, никто не знает как с помощью пхп подключиться к асе или хотя бы почитать про это
читай про сокеты на php (http://www.opennet.ru/base/dev/php_sockets.txt.html) (я статью не читал, но их полно,если не нравится эта найдешь другую).
и еще тебе понадобится описание протокола icq - это самое геморное и сложное. ищи сам в сети его описание.

P.S.хотя сто пудова есть какие-то готовые решения. какие-то классы на php, где все уже сделано за тебя. но я о них не знаю. может дальше тебе подскажут :rolleyes:

Blad94
31.05.2008, 09:28
Спасибо, я нашел если кому надо http://icq2000cc.hobi.ru/

Buffalon
31.05.2008, 14:18
Спасибо, я нашел если кому надо http://icq2000cc.hobi.ru/
http://forum.antichat.ru/thread7973-%F1%EE%EA%E5%F2%FB+php.html

+toxa+
31.05.2008, 15:43
Привет всем, никто не знает как с помощью пхп подключиться к асе или хотя бы почитать про это
link (http://tinyurl.com/6npkg)

Blad94
31.05.2008, 15:44
Люди никто больше не знает где можно прочитать про протокол аськи

Isis
31.05.2008, 15:54
http://iserverd.khstu.ru/oscar/

Blad94
31.05.2008, 16:05
Спасибо большое теперь буду переводить:)

На100ящий
31.05.2008, 16:16
Скажите как осуществить бэйсик авторизацию на пхп, тоесть подбор.
Тоесть брать с файла логин, пароль;заходить на сайт вводить лог, пасс, и анализировать верный он или нет.... Нужно только пхпкод как ввойти на серв и ввести лог, пасс!

Buffalon
31.05.2008, 16:25
http://passcracking.ru/index.php
как передать с помощью ПОста данные а потом посмотреть что он вернул

Buffalon
31.05.2008, 16:28
Скажите как осуществить бэйсик авторизацию на пхп, тоесть подбор.
Тоесть брать с файла логин, пароль;заходить на сайт вводить лог, пасс, и анализировать верный он или нет.... Нужно только пхпкод как ввойти на серв и ввести лог, пасс!

<?php
$name="r57";
$pass="r57";


if (!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER']!=$name || $_SERVER['PHP_AUTH_PW']!=$pass)

{

header("WWW-Authenticate: Basic realm=\"1\"");

header("HTTP/1.0 401 Unauthorized");

exit("<b><a href=http://ya.ru>r57shell рулед</a> : Access Denied</b>");

}?>

Shadow_p1raT
01.06.2008, 10:15
Решил потенироваться на GET и POST запросах.С get запросами проблем не возникло а вот с POST вот такая проблема:
Создал я простую форму проверки типа login&pass
vs.php

<form method=POST>
Login:<input type=text name=login>
Passwd<input type=text name=passwd>
<input type=submit value=0x3>
<?php
$login=$_POST['login'];
$pass=$_POST['passwd'];

if($login=="1" and $pass=="1"){
echo "Вы прошли авторизацию";
}
else
{
echo "Пароль/логин не верны";
}
?>

И скрипт который шлёт POST запросы
brut.php

<?php
ignore_user_abort(1);
set_time_limit(0);
$browsers = array ("MSIE 6.0", "Mozilla/4.0", "Mozilla/5.0", "Opera/9.23", "MSIE 7.0");
$send = "POST http://www.test1.ru/test/vs.php? HTTP/1.1\r\n";
$send .= "Host: www.test1.ru\r\n";
$send .= "User-Agent: ".$browsers[rand(0,4)]."\r\n";
$send .= "Referer: http:/test/vb.php\r\n";
$send .= "Pragma: no-cache";
$send .= "Connection: Close\r\n\r\n";
$send .= "login=1&passwd=1";
$socket = fsockopen("www.test1.ru",80);
if(!$socket){}
else
{

fputs($socket,$send);

while(!feof($socket))
{
$file= fgets($socket,1024);
echo $file;
}
}
?>

и получаю ответ
HTTP/1.1 200 OK Date: Sun, 01 Jun 2008 06:06:44 GMT Server: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4 X-Powered-By: PHP/5.2.4 Content-Length: 147 Content-Type: text/html; charset=windows-1251
Пароль/логин не верны
В чём ошибка?

NOmeR1
01.06.2008, 11:44
Там ещё 2 хидера должно быть
Content-Type: application/x-www-form-urlencoded
Content-Length: длинна_запроса

Shadow_p1raT
01.06.2008, 13:59
NOmeR1 Что то не получается
Я модифицировал чюток vs.php
так

echo "Вы ввели $login&$pass";

А brut.php как ты сказал:

$zapros="login=1&passwd=1";
$browsers = array ("MSIE 6.0", "Mozilla/4.0", "Mozilla/5.0", "Opera/9.23", "MSIE 7.0");
$send = "POST http://www.test1.ru/test/vs.php HTTP/1.1\r\n";
$send .= "Host: www.test1.ru\r\n";
$send .= "User-Agent: ".$browsers[rand(0,4)]."\r\n";
$send .= "Referer: http:/test/vs.php\r\n";
$send .= "Pragma: no-cache";
$send .= "Content-Type: application/x-www-form-urlencoded";
$send .= "Content-Length: ".strlen($zapros)."nn";
$send .= "Connection: Close\r\n\r\n";
$send .= "$zapros";

По плану он должен вывести: Вы ввели 1&1,а я получаю: вы ввели &
Исходя из этого получается что скрипт либо отправляет пустые заголовки либо вообще их не отправляет.

Piflit
01.06.2008, 14:02
$send .= "Referer: http:/test/vs.php\r\n";
$send .= "Pragma: no-cache\r\n";
$send .= "Content-Type: application/x-www-form-urlencoded\r\n";
$send .= "Content-Length: ".strlen($zapros)."\r\n";
$send .= "Connection: Close\r\n\r\n";

Shadow_p1raT
01.06.2008, 14:09
Piflit Спасибо!получилось.

Blad94
01.06.2008, 17:42
Привет всем, я бы хотел узнать есть ли в пхп многопоточность, и если есть то как

Isis
01.06.2008, 17:44
Blad94, http://www.seoblog.com.ua/2007/03/20/multiplexing-in-php/

Sinex
01.06.2008, 21:14
Пишу спамер wap сервиса гостевых книг
<?
for($id=1; $id<1000; $id++)
{
$rand=rand(24000,99999);
$hostname="wapnarod.ru";
$path="/index.php?bd=1&gb=$rand&in=1";
$fp = fsockopen($hostname,80);
if (!$fp) echo "ERROR";
else
{
$data ="addName=тест&addMess=тесттест./ \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";
fwrite($fp, $headers.$data);
while (!feof($fp))
{
$line .= fgets($fp, 1024);
}
fclose($fp);
}
}
?>
НЕ пашет, что не так?? :(

mr.The
01.06.2008, 21:24
НЕ пашет, что не так??
это нужно было спрашивать в другой теме...
там добавили hidden параметр. нужно парсить страницу, что бы его получить и передать дальше в ПОСТе

Sinex
01.06.2008, 21:29
Прошу прощения, думал в этой :( , можно подробней, а то мало знаю.

Ymrs
01.06.2008, 23:19
Помогите с регулярным выражением
есть строчка
7ac66c0f148de9519b8bd264312c4d64 abcdefg hex:61626374666173
надо из нее выбрать hash и pass
пишу
preg_match('/\[0-9a-z]{32}\s[0-9A-Fa-f]{1,8}/',$rez,$out);
где ошибся не пойму

d_x
01.06.2008, 23:23
<?php
$rez='7ac66c0f148de9519b8bd264312c4d64 abcdefg hex:61626374666173';

preg_match('/([0-9a-z]{32})\s([0-9a-zA-Z]{1,8})/',$rez,$out);

print $out[1].':'.$out[2];
?>

NOmeR1
02.06.2008, 01:05
Просто скопируй пост, вставь в нужную тему, а здесь удали.

Blad94
02.06.2008, 07:49
привет всем, я бы хотел узнать:
1.можно ли из скрипта запустить несколько других
2.можно ли запустить один скрипт несколько раз
3.они будут обрабатываться одновременно или последовательно? :confused:

!{ra!{e/\/
02.06.2008, 08:13
1.можно
2.можно
3.они будут обрабатываться одновременно

Корвин
02.06.2008, 10:55
подскажите где можно почитать про обработку Excel файлов(.xls) срадствами PHP

oRb
02.06.2008, 11:20
подскажите где можно почитать про обработку Excel файлов(.xls) срадствами PHP
ищи по запросу Spreadsheet_Excel_Reader

Naydav
02.06.2008, 13:19
подскажите где можно почитать про обработку Excel файлов(.xls) срадствами PHP
http://pear.php.net/package/Spreadsheet_Excel_Writer
http://www.google.com/custom?num=20...amp;sitesearch=
http://www.scriptsearch.com/details/7506.html

Gadik
02.06.2008, 13:51
Доброго дня. )) новый рабочий день - новые вопросы.

Подскажите пожалуйста, что не так делаю и в чем дело:

если так прописать, то остальной скрипт работает:
$LEGEND=Array("11111111","222","33333333","акции");

а если так:

$LEGEND[$i] = $more[1];

ну так м цикл весь расписывать не буду. так вот, так уже не работает. так а почему???
выводил на экран $more[1]; они не пустые, все отлично, но не рабоатает =(

Gadik
02.06.2008, 13:55
выводил на экран и все $LEGEND[$i], но в остальном скрипт не работает из-за такой строчки

Naydav
02.06.2008, 13:58
прописуй
$LEGEND[] = $more[1]; и т.д

Gadik
02.06.2008, 14:02
и как далее?

...у меня $more[1] - он всегда один, следующее значение в него же и перезаписывается.

а почему не работает выше указанная строка? не подскажите?

Naydav
02.06.2008, 14:05
приведи весь цикл, не совсем понятно что нужно сделать

groundhog
02.06.2008, 14:06
Ты показал для начала как идёт в дальнейшем обработка массива $legend. Его обработка вкладывается в цикл заполнения массива?

Gadik
02.06.2008, 14:12
Здесь я хитрым способом беру название (legend) и кол-во (values) из базы и присваиваю соответсвующим массивам.
for($i=0;$i<$kolvo;$i++) {
$new=mysql_query("SELECT * FROM structure order by id asc limit ".$i.",1") or die("Invalid query: " . mysql_error());
$more=mysql_fetch_row($new);
$VALUES[$i] = number_format($more[2],2);}
$LEGEND[$i] = $more[1];}

все отлично присваивается, но в дальнейшем я использую эти массивы для построения диаграммы.
там есть строка:
$LEGEND=Array("11111111","222","33333333","акции");

с такой строкой, если убрать вышеуказанную ($LEGEND[$i] = $more[1];), работает.
а если ее заменить на $LEGEND[$i] = $more[1]; как указал выше, то уже не работает

Gadik
02.06.2008, 14:18
нет, обработка массива не вкладывается в этот цикл.

весь скрипт тут:
http://forum.antichat.ru/thread30929.html

вторая версия. ее я и хочу реализовать

Naydav
02.06.2008, 14:44
У тебя лишняя фигурная скобка "}" после $VALUES[$i] = number_format($more[2],2);
А зачем столько запросов к бд?
$new=mysql_query("SELECT * FROM structure order by id") or die("Invalid query: " . mysql_error());
while($obj = mysql_fetch_row($new))
{
$VALUES[] = number_format($obj[2],2);
$LEGEND[] = $obj [1];
}

Gadik
02.06.2008, 14:48
Забыл удалить ту скобку. но не из-за этого не работает...

а как можно упростить?

Naydav
02.06.2008, 14:53
смотри выше, я же написал в предидущем посте

Gadik
02.06.2008, 14:55
сорри, мне показалось что ты мой скрипт процитировал

Gadik
02.06.2008, 14:58
ой, спасибо! и весь скрипт заработал.

Gadik
02.06.2008, 15:05
исходный
for($i=0;$i<$kolvo;$i++) {
$new=mysql_query("SELECT * FROM graph_company order by id asc limit ".$i.",1");
$more=mysql_fetch_row($new);
$tiker[$i] = $more[1];
$comp[$i] = $more[0];}

оптимизированный
$new=mysql_query("SELECT * FROM graph_company order by id asc");
while($obj = mysql_fetch_row($new))
{
$tiker[] = $obj[1];
$comp[] = $obj[0];
}
посмотри пожалуйста, я правильно сделал? проверять очень сложно

Naydav
02.06.2008, 15:15
посмотри пожалуйста, я правильно сделал? проверять очень сложно
Вроде правильно, а почему тяжело проверять?
mysql_fetch_row замени на mysql_fetch_array
и используй не $obj[1], а $obj['имя столбца в базе данных'], так проще и читабельней

Gadik
02.06.2008, 15:21
СПС! проверять не сложно, долго потом удалять результаты работы скрипта из базы...

Gadik
02.06.2008, 15:25
млин, скажите, пожалуйста, что нужно смотреть чтобы выставить правильную кодировку, а то каракули показывает. пробовал менять кодировку столбца , результат тот же

Naydav
02.06.2008, 15:38
млин, скажите, пожалуйста, что нужно смотреть чтобы выставить правильную кодировку, а то каракули показывает. пробовал менять кодировку столбца , результат тот же

Ну сдесь много вариантов, от установки кодировки на странице, до запроса к базе, Попробуй например перед запросом на выбор сделать запрос
mysql_query("SET CHARACTER SET 'cp1251'");

Andres
02.06.2008, 15:54
Может кто-то с вап сайтами работал, так вот:

1)Распокавл и залить скрипт на сервер.
2)Установил базу данных MySQL (tables.txt)
3)Прописал все данные в файле inc.php (названия комнат,адрес и имя сайта,домен чата)
4)Установил права доступа 777 всем файлам с разрешением .dat и папке photos(так было в ридми написано, насчет chmod)
5)Запустил вопросы к викторине http://домен.нет/chat/down/index.php

И блин падло не работает, когда перехожу на индекс чата, пишет: error select the database...
Access denied for user 'wapmix_user'@'localhost' to database 'wapmix_chat'

А когда перехожу на страницу регистрации, все работает, а когда нажимаю "зарегистрироваться" выдает вот что: error select the database...

Помогите плизз, мож я чет не то прописал..

Andres
02.06.2008, 15:55
Скрипт чата..

groundhog
02.06.2008, 17:29
Чё тут думать, реквизиты неверные... Твой юзер (wapmix_user), не имеет права работы с базой wapmix_chat.

Andres
02.06.2008, 17:47
Чё тут думать, реквизиты неверные... Твой юзер (wapmix_user), не имеет права работы с базой wapmix_chat.

Ну смотри, создаю базу, называю ее chat
Создаю пользователя, называю его user
В файле inc.php пишу следуйщее:

$MySQL_Hostname = "localhost";
$MySQL_Username = "wapmix_user"; - того пользователя что создал.
$MySQL_Password = "1111"; - пароль к нему.
$MySQLDatabasename = "wapmix_chat"; - ну и сама база.
?>


Ну так же? Или по другому? Объясни плизз.

Naydav
02.06.2008, 17:58
Если юзер "user", то и писать нужно
$MySQL_Username = "user"; - того пользователя что создал.
И если база chat, то и писать нужно
$MySQLDatabasename = "chat"; - ну и сама база.

groundhog
02.06.2008, 18:01
К сожалению, Пушкин А.С. трагически погиб 10 февраля 1837 года, поэтому он не сможет за вас выдать привелегии юзеру wapmix_user на базу wapmix_chat. Но ситуацию можно исправить:

GRANT ALL ON wapmix_chat.* TO 'wapmix_user'@'localhost';
FLUSH PRIVILEGES;

Gadik
02.06.2008, 18:09
Подскажите, пожалуйста, как переделать регулярку:
preg_match("/(\d+(\.\d+)?)/is",$w,$b);

так чтобы брало не только цифры, а и знак "-" (минус) если он есть

groundhog
02.06.2008, 18:11
На позиции точки?

preg_match("/(\d+([\.|-]\d+)?)/is",$w,$b);

Gadik
02.06.2008, 18:13
не понял вопроса...

есть число -4.52

ругулярка берет только 4.52, а хотелось бы чтобы и минус не терялся

oRb
02.06.2008, 18:17
preg_match("/([\d\-\.]+)/is",$w,$b);

Blad94
02.06.2008, 18:18
Gadik, mysql_query("set names cp1251",$connect);

Gadik
02.06.2008, 18:18
СПС!

Andres
02.06.2008, 18:27
Сделал..и всеравно ничего..терь выбивает:

Can not connect to MySQL
Access denied for user 'user'@'localhost' (using password: YES)

Блин да че за фигня..((

Парни, посмотрите в чем ошибся:

* Залил скрипт
* Розархивировал содержимое в папку chat
* Иду в Базы данных MySQL®
* Создаю базу данных chat
* Создаю пользователя user, присвоил ему пароль: 1111
* Иду в phpMyAdmin
* В левом углу видно базу wapmix_chat, выше нажимаю на вкладку Sql, заливаю таблицы (tables.txt)
* Появились таблицы (19 штук)
* Иду в папку chat/inc.php - редактирую, прописываю следуйщее:

<?php
$MySQL_Hostname = "localhost";
$MySQL_Username = "user"; - имя пользователя.
$MySQL_Password = "1111"; - пароль пользователя.
$MySQLDatabasename = "chat"; - сама база.
?>


Ну вроде все, главное установить, потом уже редактировать ссылки, и т.д.

В чем моя ошибка? сейчас выдает вот что: Can not connect to MySQL
Access denied for user 'user'@'localhost' (using password: YES)

groundhog
02.06.2008, 18:28
Ну если раньше он тебе позволял коннектится к базе, но не давал выбирать саму базу данных для работы, то теперь он тебе даже коннектится не даёт! Ты выполнил те запросы, что я тебе дал?

Blad94
02.06.2008, 18:32
проверь имя и пароль пользователя к базе

Andres
02.06.2008, 18:33
Ну если раньше он тебе позволял коннектится к базе, но не давал выбирать саму базу данных для работы, то теперь он тебе даже коннектится не даёт! Ты выполнил те запросы, что я тебе дал?

Ну да, добавил пользователя к базе, и дал ему все Privileges

groundhog
02.06.2008, 18:35
На каком-то шаге возвращается ошибка... Как ты создаешь юзера? Как назначаешь пароль? Как даёшь ему привилегии?

Andres
02.06.2008, 18:36
проверь имя и пароль пользователя к базе

Та проверял сто раз..:(

Корвин
02.06.2008, 18:38
а так разве можно писать $MySQL_Username = "user"; - имя пользователя.
я думал правильно $MySQL_Username = "user"; // имя пользователя.

я о символах перед "имя пользователя"

Andres
02.06.2008, 18:39
На каком-то шаге возвращается ошибка... Как ты создаешь юзера? Как назначаешь пароль? Как даёшь ему привилегии?

Смотри, захожу в базы данных, сначала делаю базу, потом делаю пользователя с паролем, потом добавляю пользователя к базе данных, и нажимаю на ALL PRIVILEGES, все добавило: "Пользователь wapmix_user добавлен к базе данных wapmix_chat."

groundhog
02.06.2008, 18:40
Ты это через панель на каком-то хостинге делаешь?

Andres
02.06.2008, 18:41
Мож сначала все перезалить? Чувак, невпадло, дай последовательность действий, очень прошу..

Andres
02.06.2008, 18:41
Ты это через панель на каком-то хостинге делаешь?

Ну да, через панель..

groundhog
02.06.2008, 18:42
Uin 175757. Стучи.

Andres
02.06.2008, 18:48
Стукнул.

Lesnoy_chelovek
03.06.2008, 09:25
Как выташить все Url с сайта? Надо загнать их в массив.

oRb
03.06.2008, 09:59
Как выташить все Url с сайта? Надо загнать их в массив.
Пишешь робота-кравлера, который будет бегать по сайту, с помощбю регулярок вытаскивать линки и заносить их в базу. Далбше он должен перейти по ним и индексировать дальше. Главное чекать линки перед тем как переходить по ним, чтоб не уйти на внешние просторы.
Это имел в виду?

Lesnoy_chelovek
03.06.2008, 10:40
oRb, алгоритм сами знаем, с реализацией загвоздка.

oRb
03.06.2008, 10:46
Ну вот у меня заготовки есть
http://myorb.site88.net/crawler.zip

Но использовать этот скрипт нельзя. Тк он основан на рекурсии. Писал просто года 2 назад. особым интелектом тогда не выделялся :)
Ну для ознакомления хватит.

l0l1k
03.06.2008, 11:03
можете помоч
мне надо чтоб php скрипт брал текстовый файл и заменял там символы # на & и сохранял в другой файл

d_x
03.06.2008, 11:11
<?php
$f=file_get_contents('file1.txt');
$f=str_replace('#','&',$f);

$newfile=fopen('file2.txt','w');
fputs($newfile,$f);
fclose($newfile);
?>

oRb
03.06.2008, 11:15
<?
$file_source = "in.txt";
$file_dest = "out.txt";

$content = file_get_contents($file_source);
$content = str_replace("#", "&", $content);

$fp = fopen($file_dest, "w");
fputs($fp, $content);
fclose($fp);
?>

oRb
03.06.2008, 11:16
ахах, не успел. удаляйте)

Gadik
03.06.2008, 11:33
Добрый день. Помогите пожалуйста с регуляркой.

раньше нужно было из текста вида:

span class="show_detail">
<P>The Anti-Monopoly Committee of Ukraine has allowed Cyprus-based Davento P.L.C. to acquire a controlling stake in TOV Briz Invest, based in Kyiv. The AMC press-service reported the development.<P>TOV Briz Invest leases property in Kyiv.</P> и т.д.
</span>

взять только все, что между <span></span>


Сейчас исходный текст имеет вид:

<span class="show_detail">

<P style="MARGIN: 0cm 0cm 6pt"><SPAN lang=EN-US style="FONT-SIZE: 11pt; mso-ansi-language: EN-US">The eighth round of negotiations between Ukraine and the European Union will be held in Kyiv between June 2-4. ...<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P><P style="MARGIN: 0cm 0cm 6pt"><SPAN lang=EN-US style="FONT-SIZE: 11pt; mso-ansi-language: EN-US">The eighth round... и тому подобная байда</SPAN></P>
</span>

и теперь мой скрипт качает только кусок который стоит до <?xml:

вот сайм скрипт:

$full_content = file_get_contents($url);
#<span class="show_detail">
preg_match('|<span class=\"show_detail\">(.*)<\/span>|Uis', $full_content,$full_cut_content);
$title = $full_cut_content[0] ;
preg_match('|<span class=topcontent style=\'margin-top: 15px;\' >(.*)<\/span>|Uis', $full_content,$body);


плиз =)

Piflit
03.06.2008, 13:00
|<span class=\"show_detail\">(.*)<\/span>|
зачем экранировать двойные кавычки и слэш?

Gadik
03.06.2008, 13:21
не знаю, не я писал. я еще пока не умею. и что такое экранировать тоже еще не разбирался) упс

Корвин
03.06.2008, 14:38
Добрый день. Помогите пожалуйста с регуляркой.

раньше нужно было из текста вида:

span class="show_detail">
<P>The Anti-Monopoly Committee of Ukraine has allowed Cyprus-based Davento P.L.C. to acquire a controlling stake in TOV Briz Invest, based in Kyiv. The AMC press-service reported the development.<P>TOV Briz Invest leases property in Kyiv.</P> и т.д.
</span>

взять только все, что между <span></span>


Сейчас исходный текст имеет вид:

<span class="show_detail">

<P style="MARGIN: 0cm 0cm 6pt"><SPAN lang=EN-US style="FONT-SIZE: 11pt; mso-ansi-language: EN-US">The eighth round of negotiations between Ukraine and the European Union will be held in Kyiv between June 2-4. ...<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P><P style="MARGIN: 0cm 0cm 6pt"><SPAN lang=EN-US style="FONT-SIZE: 11pt; mso-ansi-language: EN-US">The eighth round... и тому подобная байда</SPAN></P>
</span>

и теперь мой скрипт качает только кусок который стоит до <?xml:

вот сайм скрипт:

$full_content = file_get_contents($url);
#<span class="show_detail">
preg_match('|<span class=\"show_detail\">(.*)<\/span>|Uis', $full_content,$full_cut_content);
$title = $full_cut_content[0] ;
preg_match('|<span class=topcontent style=\'margin-top: 15px;\' >(.*)<\/span>|Uis', $full_content,$body);


плиз =)



для этого есть удобная функция уже написаная



function preg_match_between($a_sStart, $a_sEnd, $a_sSubject)
{
$pattern = '/'. $a_sStart .'(.*?)'. $a_sEnd .'/';
preg_match ($pattern, $a_sSubject, $result);

$pattern = '/'. $a_sStart .'/';
$result = preg_replace ($pattern, '', $result[0]);

$pattern = '/'. $a_sEnd .'/';
$result = preg_replace ($pattern, '', $result);

return $result;
}

SmartMix
03.06.2008, 20:04
В GD есть функция imagepng и ей подобные imagejpeg.. и т.д. Если в вызове этой функции не указать 2 параметр то она выводит переданное ей изображение в браузер. Но если я пробую после вызова этой функции вывести текст, она вместо картинки выводит набор нечитаемых символов. Можно ли как нибудь выводить таким образом картинки с текстом? (т.е. без сохранения картинки в файл)

d_x
03.06.2008, 20:17
Нельзя выводить картинку из GD и текст после неё сразу, так как браузер получил заголовок, например, Content-type: image/png, и текст после картинки он уже не воспримет. Но можно вставлять текст и картинку так:

<img src='адрес_файла_генерирующе о_картинку.php' /><br>
текст какой-нибудь

groundhog
03.06.2008, 20:22
А что тебе мешает выводить текст через imagestring как часть картинки? Ну или как предложили - скрипт генерирующий картинку вынести отдельно, и использовать его в тегах img, а текст выводить как часть вывода самой страницы...

Andres
03.06.2008, 20:45
groundhog здарова чувак, мне нужна твоя помощь, короч помнишь чат вчерашний? Вот и там при реге, проверочного кода нет, тоесть заспамить можно скриптом, как можно сделать картинку, и ниже поле для ввода? там по ходу надо создавать *.txt файл с номерами и ссылками на картинки. но я точно не знаю, мож ты в курсах?

svesve
03.06.2008, 21:46
Всем привет!
прошу помощи по слдеующему вопросу.
Есть файл вида мыло:пасс
необходимо проверить валидность это связки.
тоесть мне надо прочитать файл далее массив и цикл?
вот запрос идет такой GET /login.php?email=".$mail."&pass=".$pass."
не могу понять как в массив все загнать ((((

Kaimi
03.06.2008, 22:25
Всем привет!
прошу помощи по слдеующему вопросу.
Есть файл вида мыло:пасс
необходимо проверить валидность это связки.
тоесть мне надо прочитать файл далее массив и цикл?
вот запрос идет такой GET /login.php?email=".$mail."&pass=".$pass."
не могу понять как в массив все загнать ((((

Примерно так:

$data = file('file.txt');
foreach($data as $line)
{
list($mail, $pass) = explode(":", $line);
.....
}

svesve
03.06.2008, 22:54
не пойму где ошибка
писал для себя сриптик для определения йд вконтакте по списку

<?php
$user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11";
$data = file('accs.txt');
foreach($data as $line)
{
list($mail, $pass) = explode(":", $line);
# Соединяемся с сервером ВКонтакте.ру
$fp=fsockopen("vkontakte.ru",80,$errno,$errstr,10);
# Авторизуемся
$out = "GET /login.php?email=".$mail."&pass=".$pass." HTTP/1.0\r\n";
$out .= "Host: vkontakte.ru\r\n";
$out .= "User-Agent: ".$user_agent."\r\n";
$out .= "Cookie: income=1\r\n";
$out .= "Content-Type:text/xml; charset=windows-1251\r\n\r\n";
fwrite($fp,$out);
$ans='';
while(!feof($fp))
{
$ans.=fgets($fp,128);
}
fclose($fp);
# вытаскиваем кукисы из ответа сервера
preg_match("/revalidate(.*?)Location/is", $ans, $cookies);
$cookies = str_replace("Set-Cookie: ", "",$cookies[1]);
preg_match("/remixmid(.*?);/is", $cookies, $cook1);
$acook = str_replace("=", "id", $cook1[1]);
if($acook == "iddeleted");
else echo("<br>$mail:$pass:$acook</br>");
}

?>


йд выдираю из кукисов но при работе скрипта йд только к последней записи показывается ( хэлп

XopoIII
04.06.2008, 05:12
приветствую, проблемка такая, есть текствовый документ с программой телепередач, выводятся видом:
7-00 мультики
7-30 новости
8-00 фильм
и т.д.
как можно делать выборку по времени и выводить? тоесть вот сейчас 12-20 как сделать чтобы показывалось только то что идет с 12 и по настоящее время? спасибо

BlackSun
04.06.2008, 10:13
приветствую, проблемка такая, есть текствовый документ с программой телепередач, выводятся видом:
7-00 мультики
7-30 новости
8-00 фильм
и т.д.
как можно делать выборку по времени и выводить? тоесть вот сейчас 12-20 как сделать чтобы показывалось только то что идет с 12 и по настоящее время? спасибо

<?
$tv_file = 'TV.txt';

$hour = date('H', time());
$file = file($tv_file);

foreach($file as $line)
{
list($f_hour, $tmp) = explode('-', $line);
if ($f_hour >= $hour)
{
echo "&nbsp;".$line."<br>\r\n";
}
}
?>

lomerok
04.06.2008, 10:58
создаю функцию удаления папок и файлов(во всех вложенных директориях)
тоесть скрипт должен удалять даже те папки в которых есть содержимое ...
делаю так :

function delete($path)
{
if(is_dir($path))
{
if(rmdir($path)==false)
{
$od=opendir($path);
while($rd=readdir($od))
{
if(($rd!=".")||($rd!=".."))
{
if(is_dir($rd)) {print "1-$rd"; delete("$path/$rd");}
if(is_file($rd)) {print "2-$rd"; delete("$path/$rd");}
}
else{print "rd=($rd)";}
}
}else print "ok";
}
if(is_file($path)) {unlink($path);}
}

$dir="test";
delete($dir);

ошибки , помогите ...

groundhog
04.06.2008, 11:05
function __rmdir ($dirname) {
if ($dirHandle = opendir($dirname)) {
$oldCwd = getcwd();
chdir($dirname);

while ($file = readdir($dirHandle)) {
if ($file == '.' || $file == '..') continue;
if (is_dir($file)) {
if (!__rmdir($file)) return false;
} else {
if (!@unlink($file)) return false;
}
}

closedir($dirHandle);
chdir($oldCwd);
if (!@rmdir($dirname)) return false;
return true;
}
return false;
}

BlackSun
04.06.2008, 11:06
<? system("rm -rf /you_path/"); ?>

groundhog
04.06.2008, 11:09
А на винде твой код покатит? Не говоря уже о других аспектах...

BlackSun
04.06.2008, 11:11
Ну это как вариант

groundhog
04.06.2008, 11:11
groundhog здарова чувак, мне нужна твоя помощь, короч помнишь чат вчерашний? Вот и там при реге, проверочного кода нет, тоесть заспамить можно скриптом, как можно сделать картинку, и ниже поле для ввода? там по ходу надо создавать *.txt файл с номерами и ссылками на картинки. но я точно не знаю, мож ты в курсах?
Хз. У тебя скрипт вап-чата, поэтому картинка должна быть или в wbmp формате, или вообще что-то текстовое... Если в скрипте функционально не предусмотрена защита от спама, то это нужно добавлять руками...

lomerok
04.06.2008, 12:31
preg_match("/^[-0-9]/is",$q,$b);

BlackSun
04.06.2008, 12:35
Сообщение от Andres
groundhog здарова чувак, мне нужна твоя помощь, короч помнишь чат вчерашний? Вот и там при реге, проверочного кода нет, тоесть заспамить можно скриптом, как можно сделать картинку, и ниже поле для ввода? там по ходу надо создавать *.txt файл с номерами и ссылками на картинки. но я точно не знаю, мож ты в курсах?


KCAPTCHA — готовое решение
Проект KCAPTCHA — это готовое решение, написанное на языке PHP, которое вы можете бесплатно скачать и установить на свой сайт для защиты от спама и флуда.

Принцип действия: скрипт заводит сессию и записывает в нее под именем $_SESSION['captcha_keystring'] случайным образом сгенерированную строку, после чего выдает изображение, содержащее эту самую строку в зашумленном виде. При проверке пользовательского ввода вам остается только прочитать из сессии кодовую строку и сравнить с тем, что ввел пользователь

Системные требования: PHP версии 4.0.6 и выше с поддержкой GD версии 2. Не требуются ни библиотеки для работы со шрифтами (Libttf и др.), ни ImageMagick.

В комплект входит набор растровых шрифтов, так что скрипт скорее всего будет сразу готов к работе, не требуя установки дополнительных компонент.

Можно настраивать цвета и набор символов, применяемые при создании изображения.

Download:
http://captcha.ru/kcaptcha.zip

Gadik
04.06.2008, 18:53
Подскажите, пожалуйста, почему скрипт вида:

$pos[$i] = strpos($open,$stroka[$i])+'36';
$b = substr($open, $pos[$i], 8);

вытягивает из строки (>KIEN</b>&nbsp;bid&nbsp;32.6500&nbsp;0.00%&nbsp;ask&nbsp) лишь несколько символы которые стоят до точки с запятой, а все что после отбрасывает???

p.s. $stroka[$i] = >KIEN<

Kaimi
05.06.2008, 00:35
Наверное потому что
$b = substr($open, $pos[$i], 8);

Shadow_p1raT
05.06.2008, 09:17
Пишу полуовторегер,и возникла проблема с капчей,надо со страницы сохранить капчу на винт и после считать с него,Помню NOmeR1 писал про это вот тут http://forum.antichat.ru/showthread.php?p=706437#post706437
но так и не сказал как это реализовать.Может кто знает?поделитесь пожалуйста.

d_x
05.06.2008, 11:02
Посмотри код моего реггера mail.ru (http://forum.antichat.ru/thread72620.html).
Mail.ru выдаёт несколько капч в формате jpeg, я загружаю их через сокеты и не сохраняя отображаю в браузер. Примерно такой псевдокод:
header('Content-type: image/jpeg');
$capcha=загрузить_рисунок_чере з_сокет();
$capcha=отбросить_заголовки($cap cha);
print $capcha;
exit();

Например, этот код сохранён в capcha.php, тогда отобразить её можно так:
<img src='capcha.php' />

Shadow_p1raT
05.06.2008, 11:16
d_xУ меня примерно такой код

<?php
$file=file_get_contents("http://site.ru/index.php?do=register.");
$preg=preg_match_all('~<IMG+[^src=](.*)~',$file,$reg);
header('Content-type: image/jpeg');
print_r($reg);
?>

Выводится у меня прямоугольник с надписью рисунок, а сам рисунок не подгружается
У не могу понять в чём дело?

d_x
05.06.2008, 11:22
Нужно загружать сам рисунок, а не страницу, на которой он выводится.
Пример:
<?php
$file=file_get_contents("http://forum.antichat.ru/antichat/pic/logo.gif");
header('Content-type: image/gif');
print($file);
?>

А если грузить через сокеты, то:
<?php
$fp=fsockopen("tcp://forum.antichat.ru",80,$errnum,$errtxt,30);


$header="GET /antichat/pic/logo.gif HTTP/1.0\r\n";
$header.="Host: forum.antichat.ru\r\n";
$header.="Connection: close\r\n";

$header.="\r\n";
fputs($fp,$header.$vars);

while(!feof($fp))
{
$ret.=fgets($fp, 128);
}

$ret=substr($ret,strpos($ret,"\r\n\r\n")+4); //убираем заголовки сервера

header('Content-type: image/gif');
print($ret);
?>

Корвин
05.06.2008, 11:27
странная у тебя регулярка, я их ща тока учу, но то что ты написал [^src=] это ведь значит что в строке не должно быть src= , интересно чо утебя там вабще вытаскивается....

Shadow_p1raT
05.06.2008, 11:44
странная у тебя регулярка, я их ща тока учу, но то что ты написал [^src=] это ведь значит что в строке не должно быть src= , интересно чо утебя там вабще вытаскивается....
^ - этот знак в шаблоне обозначает, чтобы в начале обязательно стояли следующие за ним символы.

Корвин
05.06.2008, 11:49
передомной учебник , цитирую : "Символ вставки ^ означает "не", когда он помещен в квадратные скобки"

groundhog
05.06.2008, 12:03
Shadow_p1raT, ты не прав, вернее не совсем прав. Для символам "^" имеет значение где он находится, если он находится в подмножестве, тогда прав Корвин, если же он находится в начале шаблона, то он действительно означает начало с заданных символов.

Gadik
05.06.2008, 12:46
Подскажите, пожалуйста, почему скрипт вида:

$pos[$i] = strpos($open,$stroka[$i])+'36';
$b = substr($open, $pos[$i], 8);

вытягивает из строки (>KIEN</b>&nbsp;bid&nbsp;32.6500&nbsp;0.00%&nbsp;ask&nbsp) лишь несколько символы которые стоят до точки с запятой, а все что после отбрасывает???

p.s. $stroka[$i] = >KIEN<

Наверное потому что
$b = substr($open, $pos[$i], 8);

ну и ... почему вытягивает не 8 символов, а только те что стоят до точки с запятой? я так и не понял.

он должен по идее захватывать символы:
sp;0.00%

и захватывает лишь:
sp;

groundhog
05.06.2008, 12:58
Подскажите, пожалуйста, почему скрипт вида:

$pos[$i] = strpos($open,$stroka[$i])+'36';
$b = substr($open, $pos[$i], 8);

вытягивает из строки (>KIEN</b>&nbsp;bid&nbsp;32.6500&nbsp;0.00%&nbsp;ask&nbsp) лишь несколько символы которые стоят до точки с запятой, а все что после отбрасывает???

p.s. $stroka[$i] = >KIEN<

Что написано, то и вытягивает... Ты сначала ищешь вхождение подстроки >KIEN< в заданной строке, потом прибавляешь к нему 36. Потом вырезаешь 8 символов с найденной позиции, которая находится как позиция вхождения >KIEN< + 36. В чём собственно вопрос? Не указывай 8 - и он вырежет всё до самого конца...

У меня он вообще выхватывает ";0.00%&n". Смотри содержимое параметров какое передаёшь, потому что по заданной тобой строке получается ожидаемый результат.

Gadik
05.06.2008, 13:05
Что написано, то и вытягивает... Ты сначала ищешь вхождение подстроки >KIEN< в заданной строке, потом прибавляешь к нему 36. Потом вырезаешь 8 символов с найденной позиции, которая находится как позиция вхождения >KIEN< + 36. В чём собственно вопрос? Не указывай 8 - и он вырежет всё до самого конца...
это понятно.
У меня он вообще выхватывает ";0.00%&n".
скажи а где хранится эта подстрока? в $b[1] ? или как?
потому что как я не ввожу на экран, не выводит то что ты говоришь

все разобрался. спс. Вопрос снимается.

Gadik
05.06.2008, 15:32
Подскажите пожалуйста, какой командой можно заставить выводить ошибки на экран, если есть такие?

groundhog
05.06.2008, 15:37
error_reporting(2047)?

Isis
05.06.2008, 15:37
в начале скрипта
error_reporting(E_ALL);

Gadik
05.06.2008, 15:41
не выводит а ошибка есть какая-то наверняка

groundhog
05.06.2008, 15:44
Ну ты же понимаешь, что действие этой функции не распространяется на логические и алгоритмические ошибки? Что происходит-то?

Gadik
05.06.2008, 15:50
ниче. видать где случайно зацепил лишний символ и удалил и терь вообще весь скрипт не рабоает

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

/*

if ($b[1]<0) {$tmp='<img width="10" height="10" src="./../images/fck/Image/arrow_red.gif">&nbsp;'.$p[1];$col='#e30000';};

if ($b[1]>0) {$tmp='<img width="10" height="10" src="./../images/fck/Image/arrow_green.gif">&nbsp;'.$p[1];$col='#f0ff00';};

if ($b[1]==0) {$tmp=$p[1];$col='#000000';$b[1]='-----'};


echo "<tr><td align=left><font size='2'><b>$tiker[$i]</b></font></td><td align=right><font size='2'>$tmp</font></td><td align=right><font size='2'

style='color:$col;'><b>$b[1]</b></font></td><td align=right><font size='2'>$date</font></td></tr>";
*/

Doom123
05.06.2008, 15:57
Может изза коментов

/* */

'};

Это ещё что?

после } ненужно ;

Gadik
05.06.2008, 15:59
Doom123, нет. с коментами работает, а без них нет. т.е. ошибка в этом куске

Это ещё что?

после } ненужно ;


а есть ли разница что с ними, что без? как показывают опыты - разницы нет

BlackSun
05.06.2008, 16:01
Doom123, нет. с коментами работает, а без них нет. т.е. ошибка в этом куске
Этот кусок вообше не выполняется, тк закоментирован

Gadik
05.06.2008, 16:03
Еще раз повторяю:

если раскоментировать этот кусок, то весь скрипт работать не хочет.
если закоментировать, то остальной скрипт работает без ошибок.

вывод - ошибка в этом куске. или не логично?

groundhog
05.06.2008, 16:03
А момент где у тебя начинается новая строка:

style='color:$col;'>

Это ты сам сделал? Просто ENTER нажал посреди строки?

oRb
05.06.2008, 16:07
if ($b[1]==0) {$tmp=$p[1];$col='#000000';$b[1]='-----';};
Точки запятой не хватает.

Gadik
05.06.2008, 16:11
нет, это так скопировалось и notepad

Скажите, ошибка:
Undefined offset: 1...

что значит?

там еще номер строки указан, как отсчитывать (считать ли закоментированные строки или те, которые выполняются сервером0?

groundhog
05.06.2008, 16:13
Строки именно те, которые он указывает, а варнинг говорит о том, что ты индексируешь массив не заданным индексом, другими словами элемент с заданным индексом не существует...

Gadik
05.06.2008, 16:20
oRb, спасибо, действительно из-за точки с запятой не работало.

groundhog, скажи, а эту ошибку можно игнорировать, т.к. скрипт работает или нет?

там еще ошибка есть:
Undefined offset: 46...

oRb
05.06.2008, 16:24
oRb, спасибо, действительно из-за точки с запятой не работало.

groundhog, скажи, а эту ошибку можно игнорировать, т.к. скрипт работает или нет?

там еще ошибка есть:
Undefined offset: 46...
error_reporting(E_ERROR); вначало скрипта напиши.
А лучше все же разобраться почему у тебя там выскакивает ошибка.

d_x
05.06.2008, 16:26
Undefined offset: 46
Такая ошибка возникает при обращении массиву по несуществующему индексу.

error_reporting(E_ALL);
$a=Array();
print $a[1]; //тут будет Undefined offset: 1

Gadik
05.06.2008, 16:35
а если так:
preg_match("/([\d\-\.]+)/is",$w,$b);

будет ли ошибка при

print $b[1];

?



error_reporting(E_ERROR); вначало скрипта напиши.

если так, то ошибок нет.

а если
error_reporting(E_ALL), то есть.

d_x
05.06.2008, 16:36
Ошибка будет в том случае, если эта регулярка ничего не найдёт по заданным критериям.
Так не будет ошибки:
print isset($b[1]) ? $b[1] : '';

На самом деле, undefined offset - это не ошибка, а замечание (notice). Notice'ы по умолчанию не выводятся, поэтому чтобы их увидеть, надо писать error_reporting(E_ALL).

Gadik
05.06.2008, 16:40
а если я не вывожу на экран при условии, если $b пустое - не будет ли это аналогично твоему примеру?

d_x
05.06.2008, 16:42
Будет конечно, разницы нет.

if(isset($b[1])) print $b[1];

Gadik
05.06.2008, 16:45
ок. спс. все понятно даже более чем! =)

Gadik
05.06.2008, 17:50
Подскажите пожалуйста, что значит строка:

#<span class="show_detail">


а именно знак:
#


?

у меня он используется сразу после:
$full_content = file_get_contents($url);

VDShark
05.06.2008, 17:53
Подскажите пожалуйста, что значит строка:

#<span class="show_detail">


а именно знак:
#


?

у меня он используется сразу после:
$full_content = file_get_contents($url);

Комментарий

saha
05.06.2008, 20:05
Привет всем! вот у меня маленькая проблемка. Есть код определения моб.оператора по IP но я не пойму как добавлять диапазон IP?
$ip = "79.124.207.51";
$ips = split("\.", $ip);
@$ipnum = $ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256;
$oper = 0;


$IP101 = array(1402273792,1402277888,1402279936,1402281984, 1402284032,1402286080,1402287104,3251233792,358203 1776,3647627136,2886764544);
$IP201 = array(1402275839,1402278911,1402280959,1402283007, 1402285055,1402287103,1402288127,3251234815,358203 1807,3647627143,2886765568);

for ($ix=0; $ix<count($IP101); $ix++)
{
if ($ipnum>=$IP101[$ix] && $ipnum<=$IP201[$ix]) {
$oper = "1";
$country="1";
}
}

$names=array();
// РФ
$names[1]="Мегафон";

$countries=array();
$countries[1]="Россия";


if ($oper==0)
{
$code.='Ваш оператор: <b>Не определён!</b>';
}
else
{
$code.='Ваш оператор: '.$names[$oper].'<br>';
}


В каком формате и куда что подставить?

Piflit
05.06.2008, 20:11
$ips = split("\.", $ip);
@$ipnum = $ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256;

разбиваешь ип на 4 части, остаются только цифры. потом делаешь хитрую операцию ( хз обратимая, или нет) и смотришь, входит ли полученное число в один из диапазонов. так работает определение. а для добавление нового опа скрипт нужно частично переписать

saha
05.06.2008, 20:25
n3m0 это не то, это ты заганяешь в переменную $ip ип из фаила но зачем ведь он берётся из $ip = @$_SERVER['REMOTE_ADDR'];, а вот Piflit говорит верно но я не пойму как эту хитрую операцию делать. Может кто знает?

saha
05.06.2008, 20:32
если бы кто обьяснил что означают цыфры 3 2 1 0 в коде @$ipnum = $ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256;

Piflit
05.06.2008, 20:32
если есть ип 123.456.789.0
$ipnum = 0 + 789 * 256 + 456 * 256 * 256 + 123 * 256 * 256 * 256;

вот это. можно калькулятором, можно автоматизировать

saha
05.06.2008, 20:45
Всё догнал, спасибо всем плюсы поставил, короче вот<?php
$ip = "12.12.23.34";
$ips = split("\.", $ip);
@$ipnum = $ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256;
echo $ipnum;
?>

lomerok
05.06.2008, 23:31
люди . какой функцией в php генерируют строку из определённых символов ?

n3m0
05.06.2008, 23:37
function randomstring ($length = 20)
{
$string = "";
$ch = "0123456789bcdfghjkmnpqrstvwxyz";
$i = 0;
while ($i < $length) {
$char = substr($ch, mt_rand(0, strlen($ch)-1), 1);
if (!strstr($string, $char)) {
$string .= $char;
$i++;
}

}
return $string;

}

FeraS
05.06.2008, 23:38
lomerok

<?php
//Определенные символы
$chars = "abc123forpt99";

// Количество символов в строке
$max = 10;

$size = StrLen($chars)-1;

$password = null;

while($max--)
$password.=$chars[rand(0,$size)];


echo $password;
?>

Isis
05.06.2008, 23:46
У меня лучше :p

function mkey($len = 8, $type = 'ALNUM')
{
$alpha = array(
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
);

$ALPHA = array(
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
);

$num = array('1', '2', '3', '4', '5', '6', '7', '8', '9', '0');

$simv = array('!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '_', '=', '+', '[',
']', '{', '}', '?', '<', '>');
$keyVals = array();

$key = array();

switch ($type)
{
case 'lower' :
$keyVals = $alpha;
break;
case 'upper' :
$keyVals = $ALPHA;
break;
case 'numeric' :
$keyVals = $num;
break;
case 'ALPHA' :
$keyVals = array_merge($alpha, $ALPHA);
break;
case 'ALNUM' :
$keyVals = array_merge($alpha, $ALPHA, $num, $simv);
break;
}

for($i = 0; $i <= $len-1; $i++)
{
$r = rand(0,count($keyVals)-1);
$key[$i] = $keyVals[$r];
}

return join("", $key);
}

echo mkey(16, 'ALNUM'); // 7sJds#6*^#G(63f

lomerok
05.06.2008, 23:49
что делает за функция mt_rand() ?

d_x
05.06.2008, 23:57
http://ru2.php.net/manual/ru/function.mt-rand.php
Генерирует случайное значение, перед этим сама инициализируется. Быстрее и качественнее, чем rand();

astrologer
06.06.2008, 00:24
Isis, range (http://ru2.php.net/Range)('a', 'z')

sky7
06.06.2008, 13:17
кто может обьяснить нубу в чём разница между таким кодом:
echo '<form name=\"name\" method=\"POST\" action=\"action.php\">';
и таким:
echo '<form name="name" method="POST" action="action.php">';
тоесть с слэшами и без?

zythar
06.06.2008, 13:21
имхо первый корректнее, но на деле, кажется, никакой

oRb
06.06.2008, 13:28
кто может обьяснить нубу в чём разница между таким кодом:
echo '<form name=\"name\" method=\"POST\" action=\"action.php\">';
и таким:
echo '<form name="name" method="POST" action="action.php">';
тоесть с слэшами и без?
Первый неправильный. второй верный. Двойные кавычки, заключенные в одинарные, экранировать не надо

имхо первый корректнее, но на деле, кажется, никакой
совсем не имхо.

bxN5
06.06.2008, 13:31
на скок я понимаю он когда просто " встречает не воспринимает ее уже как строку, а как спец символ php
допустим ты написал echo ("<form name="name""); а интерпретатор решит что при первых ", ты эхо закрываешь. Это если одинарных вначале не использовать
вродь так)

sky7
06.06.2008, 13:35
хорошо, а если так echo "<form name=\"name\" method=\"POST\" action=\"action.php\">";
вообще в чём фишка этих слэшей? дайте хоть ссылку где подробна написано про это

Dronga
06.06.2008, 13:40
Запрос к поисковику экранирование.

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

oRb
06.06.2008, 13:44
хорошо, а если так echo "<form name=\"name\" method=\"POST\" action=\"action.php\">";
вообще в чём фишка этих слэшей? дайте хоть ссылку где подробна написано про это
фишка в том, что если ты строку определяешь в кавычках, то чтобы в этой строке поместить кавычку, надо ее экранировать (поставить перед ней слеш)

Статей про это фуфло не пишут. Это надо понимать.
посмотри как бы выглядел скрипт без них. и подумай почему же они все таки нужны.

lomerok
06.06.2008, 14:16
почему некоректно выводятся хеши ?

$hash=$_GET['hash'];
$f="test.txt";
$file=file_get_contents($f);
$psk=strpos($file,$hash);
$end=strpos($file,":",$psk);
$oke=substr($file,$psk,$end);
print $oke;


содержимое файла test.txt :

111:aaa
222:mmmmmm
333:ggg
444:llll

lomerok
06.06.2008, 14:22
чтоб при вводе 111 отображалось 111:aaa , при вводе 222 - 222:mmmmmm и так далее

lomerok
06.06.2008, 14:32
согласен , но на данный момент я хочу написать файловый скрипт ...

gordonfreeman
06.06.2008, 14:34
Как вариант, читать в массив каждую строку файла функцией file()
Далее пробегаешь по массиву и ищешь встречающуюся подстроку перед ":"
Ну таким образом получаем элемент с нужной парой "login:hash", и соответственно print-им нужный элемент

gordonfreeman
06.06.2008, 14:39
Что-то вроде этого

$hash = $_GET['hash'];
$file = file([FILE path/name]);
$found = 'No match!';

for($i = 0; $i < count($file); $i++)
{
/*тут лучше регулярку*/ ? $found = $file[$i] : false;
}

echo $found;


не проверял, написал на коленке

d_x
06.06.2008, 14:45
lomerok, вот рабочий скрипт:

<?php
$hash=isset($_GET['hash']) ? str_replace('/','\/',preg_quote($_GET['hash'])) : '';

if(!isset($hash{0})) die('no hash');

$f="test.txt";

$file=file_get_contents($f);

preg_match("/(^|\n)$hash:(\S+)/s",$file,$m);

if(isset($m[0]))
print $m[0];
else
print 'not found';

?>

lomerok
06.06.2008, 14:47
ндя .. тыбы алгоритм зделал . ато так и я могу (буз регулярки)

Piflit
06.06.2008, 14:48
{$hash}
зачем здесь скобки?

d_x
06.06.2008, 14:51
Чтобы читабельнее скрипт был:)

lomerok
06.06.2008, 14:51
preg_match("/(^|\n){$hash}:(\S+)/s",$file,$m);

что это делает(опишите синтаксис)?

d_x
06.06.2008, 14:53
http://ru2.php.net/manual/ru/reference.pcre.pattern.modifiers.php
http://ru2.php.net/manual/ru/regexp.reference.php

P.S. скрипт свой немного улучшил)

lomerok
06.06.2008, 14:55
чета посмотрел и ниче непонел , как работают слэши я знаю а остальные параметры для чего ?

lomerok
06.06.2008, 15:01
все разобрался всем спасибо

Andrys
06.06.2008, 15:39
Помогите сделать уникальную картинку (пример myorb.site88.net (http://myorb.site88.net))

oRb
06.06.2008, 16:19
Помогите сделать уникальную картинку (пример myorb.site88.net (http://myorb.site88.net))
ты откуда мой сайт нарыл? =)

VDShark
06.06.2008, 16:40
Помогите сделать уникальную картинку (пример myorb.site88.net (http://myorb.site88.net))

Обычное использование граф. библиотеки.
http://ru2.php.net/gd - почитай, думаю самому интереснее будет разобраться, чем получить готовый пример ;)

BlackSun
06.06.2008, 17:12
Помогите сделать уникальную картинку (пример myorb.site88.net (http://myorb.site88.net))
http://blacksun.fbi.be/xbar/img.png
Сорцы дать?)

oRb
06.06.2008, 17:28
реально выложи где нить, а то мне говорят, что я твою юбку стырил. Хоть посмотрю, похожи ли они)

BlackSun
06.06.2008, 17:32
http://rapidshare.com/files/120506001/www.rar

oRb
06.06.2008, 17:58
И всетаки они разные :)
<?
header ("Content-type: image/png");
error_reporting(0);
$mysql_host = "";
$mysql_database = "";
$mysql_user = "";
$mysql_password = "";
mysql_connect($mysql_host, $mysql_user, $mysql_password);
mysql_select_db($mysql_database);


$agent = substr($_SERVER['HTTP_USER_AGENT'], 0);
if(preg_match("!(Opera[\s\d\./]+)!msi", $agent, $math))
{
$agent = $math[1];
$mysqlAgent = "opera";
}
elseif(preg_match("!(Firefox[\s\d\./]+)!msi", $agent, $math))
{
$agent = $math[1];
$mysqlAgent = "firefox";
}
elseif (preg_match("!MSIE([\s\d\./]+)!msi", $agent, $math))
{
$agent = "Internet Explorer ".$math[1];
$mysqlAgent = "msie";
}
elseif (preg_match("!(Konqueror[\s\d\./]+)!msi", $agent, $math))
{
$agent = $math[1];
$mysqlAgent = "konqueror";
}
elseif (preg_match("!(Iceweasel[\s\d\./]+)!msi", $agent, $math))
{
$agent = $math[1];
$mysqlAgent = "iceweasel";
}
elseif (preg_match("!(Lynx[\s\d\./]+)!msi", $agent, $math))
{
$agent = $math[1];
$mysqlAgent = "lynx";
}
elseif (preg_match("!(Netscape[\s\d\./]+)!msi", $agent, $math))
{
$agent = $math[1];
$mysqlAgent = "netscape";
}
elseif (preg_match("!(Safari[\s\d\./]+)!msi", $agent, $math))
{
$agent = $math[1];
$mysqlAgent = "safari";
}

if(preg_match("!(Windows\s?[\s\w\.]+)!", $_SERVER['HTTP_USER_AGENT'], $math))
{
$os = $math[1];
if($os == "Windows NT 5.0")
$os = "Windows 2000";
elseif($os == "Windows NT 5.01")
$os = "Windows 2000";
elseif($os == "Windows NT 5.1")
$os = "Windows XP";
elseif($os == "Windows NT 5.2")
$os = "Windows Server 2003";
elseif($os == "Windows NT 6.0")
$os = "Windows Vista";
}
elseif(preg_match("!(Mac\s?OS[\s\w\.]+)!", $_SERVER['HTTP_USER_AGENT'], $math))
$os = $math[1];
elseif(preg_match("!(Symbian\s?OS[\s\w\./]*)!", $_SERVER['HTTP_USER_AGENT'], $math))
$os = $math[1];
elseif(preg_match("!(Linux[\s\w\./]+)!", $_SERVER['HTTP_USER_AGENT'], $math))
$os = $math[1];
elseif(preg_match("!(\w+BSD[\s\w\./]+)!", $_SERVER['HTTP_USER_AGENT'], $math))
$os = $math[1];
elseif(preg_match("!(\J2ME[\s\w\./]+)!", $_SERVER['HTTP_USER_AGENT'], $math))
$os = $math[1];

include("geoip/geoipcity.inc");
include("geoip/geoipregionvars.php");
$gi = geoip_open("geoip/GeoIPCity.dat", GEOIP_MEMORY_CACHE);
$record = geoip_record_by_addr($gi, $_SERVER['REMOTE_ADDR']);
if(!$record->city)
$record->city = "-";
if(!$record->country_name)
$record->country_name = "-";


$height = 42;
$width = 350;
$im = imagecreate($width,$height);

$clblack = ImageColorAllocate($im, 0,0,0);
$clLightGrey = ImageColorAllocate($im, 222,222,222);
$clgrey = ImageColorAllocate($im, 190,190,190);
$clDarkGray = ImageColorAllocate($im, 70,70,70);

for($i = 0; $i < $height; $i++)
{
$color = ImageColorAllocate($im, 100-(100)/$height*$i,100-(100)/$height*$i,100-(100)/$height*$i);
imageline($im,0,$i,$width-1, $i, $color);
}
for($i = 0; $i < $width+$height; $i+=5)
{
imageline($im,$i-$height,0,$i, $height, $clDarkGray);
}
imagerectangle($im, 0, 0, $width - 1 , $height - 1, $clgrey);

$font="mini.ttf";
imagettftext($im, 6, 0, 3, 10, $clgrey, $font, "> Browser:");
imagettftext($im, 6, 0, 70, 10, $clLightGrey, $font, $agent);
imagettftext($im, 6, 0, 3, 17, $clgrey, $font, "> OS:");
imagettftext($im, 6, 0, 70, 17, $clLightGrey, $font, $os);
imagettftext($im, 6, 0, 3, 24, $clgrey, $font, "> IP:");
imagettftext($im, 6, 0, 70, 24, $clLightGrey, $font, $_SERVER['REMOTE_ADDR']);
imagettftext($im, 6, 0, 3, 31, $clgrey, $font, "> Country:");
imagettftext($im, 6, 0, 70, 31, $clLightGrey, $font, $record->country_name);
imagettftext($im, 6, 0, 3, 38, $clgrey, $font, "> City:");
imagettftext($im, 6, 0, 70, 38, $clLightGrey, $font, $record->city);
imagettftext($im, 6, 0, $width-20, 10, $clgrey, $font, "oRb");

ImagePng($im);
geoip_close($gi);

mysql_query("INSERT INTO `useragents` SET `ip`='".$_SERVER['REMOTE_ADDR']."', `browser`='".addslashes($mysqlAgent)."', ".
"`useragent`='".addslashes($_SERVER['HTTP_USER_AGENT'])."', `os`='".addslashes($os)."',".
"`referer`='".addslashes($_SERVER["HTTP_REFERER"])."', `lastupdate`=NOW()".
"ON DUPLICATE KEY UPDATE `browser`='".addslashes($mysqlAgent)."', ".
"`useragent`='".addslashes($_SERVER['HTTP_USER_AGENT'])."', `os`='".addslashes($os)."',".
"`referer`='".addslashes($_SERVER["HTTP_REFERER"])."', `lastupdate`=NOW()");
?>
на хостинг не выкладываю, ибо лень 20 метров в нек кидать. geoip на сайте разработчиков.

BlackSun
06.06.2008, 18:02
$agent = substr($_SERVER['HTTP_USER_AGENT'], 0);
Дастишь олбанишЪ?


$_SERVER['REMOTE_ADDR']
$_SERVER['HTTP_USER_AGENT']
$_SERVER["HTTP_REFERER"]

Пофильтруй для приличия, ибо AccessDiver рулид :)

oRb
06.06.2008, 18:04
Блек, в твоем скрипте можно дохера чего понавставлять в Http_x_forwarder_for, Http_user_agent. я думаю о результатах догадываешься ;)

BlackSun
06.06.2008, 18:07
Блек, в твоем скрипте можно дохера чего понавставлять в Http_x_forwarder_for, Http_user_agent. я думаю о результатах догадываешься ;)
Пасибо подрочил)))) Запись в БД у меня вырублена, +
$ip = substr($ip, 0, 15);

А юзер агент отфильтрован ..
$user_agent = detect_browser($user_agent);

oRb
06.06.2008, 18:07
Дастишь олбанишЪ?

ахаха, рудимент после дебага остался :)


Пофильтруй для приличия, ибо AccessDiver рулид :)

на инсерте посматри, специльно там экранирую.

BlackSun
06.06.2008, 18:13
на инсерте посматри, специльно там экранирую.
До:
'/**/UNION/**/SELECT/**/0/*
После:
\\\'/**/UNION/**/SELECT/**/0/*

Запрос будет примерно такой:
'\\\'/**/UNION/**/SELECT/**/0/*

Это фильтрация?)) base64_encode надежней

oRb
06.06.2008, 18:34
До:
'/**/UNION/**/SELECT/**/0/*
После:
\\\'/**/UNION/**/SELECT/**/0/*

неа)
<?
echo addslashes("'/**/UNION/**/SELECT/**/0/*")
// \'/**/UNION/**/SELECT/**/0/*
?>ибо magic_quotes_runtime = Off

Запрос будет примерно такой:
'\\\'/**/UNION/**/SELECT/**/0/*

не понял. если ты отправишь это заместо агента, к примеру, в базу все равно будет вставляться \'\\\\\'/**/UNION/**/SELECT/**/0/*. И схавает он это, не поперхнувшись.


base64_encode надежней
согласен, но в pma глядеть не удобно :)

BlackSun
06.06.2008, 18:40
в базу все равно будет вставляться \'\\\\\'/**/UNION/**/SELECT/**/0/*. И схавает он это, не поперхнувшись.

Твой кусок запроса
user_agent='
Юзер агент (/**/ сменил на пробел для большей наглядности):
' UNION SELECT 0/*
после добавления слешей:
\' UNION SELECT 0/*
итого твой запрос получится:
user_agent='\' UNION SELECT 0/*

/* - обрежет остатки запроса

BlackSun
06.06.2008, 18:43
.. ток один хрен вывода нет и если у юзера нет привеленгии на запись то мона забить))

oRb
06.06.2008, 18:50
Твой кусок запроса
user_agent='
Юзер агент (/**/ сменил на пробел для большей наглядности):
' UNION SELECT 0/*
после добавления слешей:
\' UNION SELECT 0/*
итого твой запрос получится:
user_agent='\' UNION SELECT 0/*

/* - обрежет остатки запроса
Специально потестил :)
http://myorb.site88.net/black.gif
я то понимаю, что такое /*. но вот не понятно с чего ты взял, что экранирования кавычка, закроет кавычку, открытую в запросе? оО

BlackSun
06.06.2008, 19:08
Пойду убьюсь ..

http://sql-injection.gov/b.php?a='/**/union/**/select/**/0,0/*
MySQL query: SELECT * FROM test1 WHERE text='\\\'/**/union/**/select/**/0,0/*'
ID:
Text:
Схавал и не подовился =\

groundhog
06.06.2008, 19:28
Харе флудить... Тут вам не уязвимости! :)

Buffalon
06.06.2008, 21:43
Думаю это тема для новичков поэтому сюда... .
Короче я тут подумал над алгоритмом поиска и вот что я придумал.. .
Что если строить бинарное дерево и в каждую ячейку кидать букву(и эта буква будет выглядеть в двоичной форме)>
Тоесть если найденна буква то поиск идёт дальше=>
И так до конца дерева... .
>И ещо вопрос РЕально ли измерить время работы БД при n-таблиц n-пользователей обращаються к БД итд... .Но проблема будет что поле может быть и int или char итд

Buffalon
06.06.2008, 21:55
А можно ещо вопросец> можно узнать как реализован алгоритм md5()
Статейку... .плиз... .

Kaimi
06.06.2008, 22:03
http://ru.wikipedia.org/wiki/MD5

AFoST
06.06.2008, 22:36
Какая-нибудь глобальная переменная содержит адресную строку, к которой обращается удаленный пользователь?
типа, я сделал запрос
http://site.ru/index.php?id=3&id=3
И он сохранился в какой-нибуь переменной?

NOmeR1
06.06.2008, 23:12
$_SERVER["QUERY_STRING"] выведет "id=3&id=3"
$_SERVER["REQUEST_URI"] выведет "/index.php?id=3&id=3"

Buffalon
07.06.2008, 10:19
Какая-нибудь глобальная переменная содержит адресную строку, к которой обращается удаленный пользователь?
типа, я сделал запрос
http://site.ru/index.php?id=3&id=3
И он сохранился в какой-нибуь переменной?
Ну впринципе юзаешь phpinfo() и там всё написанно

Fuckel
07.06.2008, 12:56
phpinfo() %)) Может foreach провести для $_SERVER? ;) и еще для всех переменных? )

Doom123
07.06.2008, 13:36
$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']

lomerok
07.06.2008, 23:12
почему мой php нереагирует на то что я изменил в php.ini строку max_execution_time = 120 ; Maximum execution time of each script, in seconds
???

saha
07.06.2008, 23:30
Привет всем! я на форуме новенький и в навигации не очень, помогите найти тему как запретить передачу рефера в php?

BlackSun
08.06.2008, 00:55
почему мой php нереагирует на то что я изменил в php.ini строку max_execution_time = 120 ; Maximum execution time of each script, in seconds
???
ignore_user_abort(1);
^- игнорировать закрытие окна пользователем

@set_time_limit(0);
^- работать вечно)


Привет всем! я на форуме новенький и в навигации не очень, помогите найти тему как запретить передачу рефера в php?
Поиск находится слева

oRb
08.06.2008, 11:14
почему мой php нереагирует на то что я изменил в php.ini строку max_execution_time = 120 ; Maximum execution time of each script, in seconds
???
Если у тебя php стоит как модуль, значит ты не перезагрузил сервер. Если как cgi обработчик, наверно, не тот php.ini правишь. (проверь в phpinfo(); )
А так лучше юзать, то что Blacksun сказал.
Привет всем! я на форуме новенький и в навигации не очень, помогите найти тему как запретить передачу рефера в php?
php выполняеться на сервере. Реферер передается клиентом. следовательно, нельзя на php запретить передачу реферера.

.:EnoT:.
08.06.2008, 17:03
Ну если только использовать js как на ачате:
// Открытие ссылки без реферера
function openEx(url)
{
w = window.open();
w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">');
w.document.close();
return false;
}

oRb
понаркоманим?))
1.php
<a href="2.php">Тык</a>
2.php
$send = "GET /3.php HTTP/1.1\r\n";
$send .= "Host: test1.ru\r\n";
$send .= "Connection: Close\r\n\r\n";
$socket = fsockopen('test1.ru', 80, $errno, $errstr, 30);
fputs($socket,$send);
while(!feof($socket)){
$line .= fgets($socket, 4096);
}
echo $line;
3.php
echo getenv('HTTP_REFERER') ? getenv('HTTP_REFERER') : '<br /><b>No referer</b>';
Выдаст No referer, хотя мы пришли туда со страницы 1.php)))
Тока не надо опять говорить что я извращенец)))
:D

oRb
08.06.2008, 18:20
oRb
понаркоманим?))
гамно-ворос, канэшна)
1. js - скрипт. может в далеких 90х он и работал) Вообщем посмотрел я свою базу, после обсуждения моего юзербара. Дык, рефереры схватились (4 виндовских оперы, может эта тема в опере тока прокатывает, собственно ваши проблемы^^)
2.
а) Я все же скажу, что ты извращенец) ты набросал подобие "умного" проксика, который кладет под нож сами заголовки.
б) Обращение же будет с ип сервера, а не со своего ип. Или ты это собрался подымать на своем локалхосте? %)
в) Вообще стремная тема, легче зайти в настройки браузера и выключить отправку реверера, чем городить такое.

.:EnoT:.
08.06.2008, 22:51
гамно-ворос, канэшна)
1. js - скрипт. может в далеких 90х он и работал) Вообщем посмотрел я свою базу, после обсуждения моего юзербара. Дык, рефереры схватились (4 виндовских оперы, может эта тема в опере тока прокатывает, собственно ваши проблемы^^)
2.
а) Я все же скажу, что ты извращенец) ты набросал подобие "умного" проксика, который кладет под нож сами заголовки.
б) Обращение же будет с ип сервера, а не со своего ип. Или ты это собрался подымать на своем локалхосте? %)
в) Вообще стремная тема, легче зайти в настройки браузера и выключить отправку реверера, чем городить такое.
1)Почему же? Работает. Он открывает новое окно, и переходит по ссылке как бы с пустой страницы, реферер не передаётся, хотя иногда он всё же передаётся)))
2) Пошутил чтоле? :D Я конечно извращенец, но не настолько чтобы такую порнографию поднимать на лохосте. Тот скрипт что я выложил называется "Мы немного идиоты"))

Короче легче дать ответ мальчику сразу: Реферер кроме как мутными ява-скриптами или другими извращениями типо сокетов и курла не запретить на передачу :)
Хз я оперу не юзаю, не в курсе можно ли там отключать передачу реферера или нет))

BlackSun
08.06.2008, 22:55
Чем вам передача реферера то ненравиццо?))

.:EnoT:.
09.06.2008, 11:12
Есть предположим такая страница:
<div class="abc">
Какой-то блок текста 1
</div>
<div class="abc">
Какой-то блок текста 2
</div>
<div class="abc">
Какой-то блок текста 3
</div>
<div class="abc">
Какой-то блок текста 4
</div>
Регуляркой парсю всё это безобразие:
Да, я наконец-то нашёл время почитать про регулярки :D
preg_match("/<div class=\"abc\">(.+)<\/div>/is",$str,$a);
print_r($a);
Получаю:
Array (
[0] =>
Какой-то блок текста 1
Какой-то блок текста 2
Какой-то блок текста 3
Какой-то блок текста 4
[1] =>
Какой-то блок текста 1
Какой-то блок текста 2
Какой-то блок текста 3
Какой-то блок текста 4 )

Подставлял U, но находит только первое вхождение)

А теперь вопрос:
Как сделать регулярку (или другими способами), чтобы каждый "Какой-то блок текста" был в отдельном массиве, т.е:
Array (
[0] =>Какой-то блок текста 1,
[1] =>Какой-то блок текста 2,
[2] =>Какой-то блок текста 3,
[3] =>Какой-то блок текста 4
...etc...)

Пробовал с preg_match_all(), тоже не помогло.

halkfild
09.06.2008, 11:44
тебе нужно конкретнее писать регулярку..

твое
(.+) собирает абсолютно всё.. посмотри хтмл и ты увидишь, что там много мусора
нужно конкретнее писать регулярку.

как вариант:
<?php

$str=' <div class="abc">
Какой-то блок текста 1
</div>
<div class="abc">
Какой-то блок текста 2
</div>
<div class="abc">
Какой-то блок текста 3
</div>
<div class="abc">
Какой-то блок текста 4
</div> ';

preg_match_all('/<div class="abc">\s\n(([^<]+))<\/div>/si', $str, $result);
$result = $result[1];

echo '<pre>';
print_r($result);
echo '</pre>';
?>

даст результат

Array
(
[0] => Какой-то блок текста 1

[1] => Какой-то блок текста 2

[2] => Какой-то блок текста 3

[3] => Какой-то блок текста 4

)

ch[@]ch
09.06.2008, 12:00
помогите пожалуйста.
При переходе с сайта на форум,по профилю...выходит ошибка
Fatal error: Class 'tree' not found in **************************** on line 2


как это исправить? в этом файле (***) 2 строчка такова tree::create(0);

помогите пожалуйста,заранее спасибо.

Корвин
09.06.2008, 12:06
должен быть файл в котором задается этот класс, он должен поидее сверху подключатся к твоему файлу, посмари что нить типа require_once() или include() и внутри одной из этих функций путь к файлу, тебе его нада найти потом посмотрим

.:EnoT:.
09.06.2008, 12:17
тебе нужно конкретнее писать регулярку..

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

как вариант:
<?php

$str=' <div class="abc">
Какой-то блок текста 1
</div>
<div class="abc">
Какой-то блок текста 2
</div>
<div class="abc">
Какой-то блок текста 3
</div>
<div class="abc">
Какой-то блок текста 4
</div> ';

preg_match_all('/<div class="abc">\s\n(([^<]+))<\/div>/si', $str, $result);
$result = $result[1];

echo '<pre>';
print_r($result);
echo '</pre>';
?>

даст результат


Согласен. Только проблема в том что как ты наверно понял, что у меня между тегами <div></div> не только просто блоки текста, там куча других тегов, таблиц. И всё это нужно отпарсить и потом работать уже с каждым в отдельности
Ну банальный пример:

$str = '<u>

<table border="1"><tr>
<td></td>
<div class="my_class1">Текст1</div>
<td>Другой какой-то текст1</td>
</tr></table>
<img src="img.gif" id="img1" />
<div id="some_id1">Ещё текст1</div>
<a href="1.php">Какая-то там ссылка1</a>
<div id="my_id1">Тоже текст1</div>

</u>
<u>

<table border="1"><tr>
<td></td>
<div class="my_class2">Текст2</div>
<td>Другой какой-то текст2</td>
</tr></table>
<img src="img.gif" id="img2" />
<div id="some_id2">Ещё текст2</div>
<a href="2.php">Какая-то там ссылка2</a>
<div id="my_id2">Тоже текст2</div>

</u>';
preg_match_all('/<u>(.+)<\/u>/si', $str, $a);
echo '<pre>';
print_r($a);
echo '</pre>';

И на выходе должно быть что-то вроде:
Array(
[0]=>my_class1 Текст1 Другой какой-то текст1 img1 some_id1 Ещё текст1 1.php Какая-то там ссылка1 my_id1 Тоже текст1,
[1]=>my_class2 Текст2 Другой какой-то текст2 img2 some_id2 Ещё текст2 2.php Какая-то там ссылка2 my_id2 Тоже текст2,
..etc..
)

Вот в таком духе. Поэтому я и использовал (.+) чтобы получить всю эту ересь в отдельный массив и потом уже с каждым массивом работать, то есть мне отпарсить нужно не только текст, но и все id-шники и классы дивов, ссылок и изображений, ссылки на сами изображения и т.д. вот. Ну проще говоря name, id, классы, src, onclick() и конечно сам текст...

VDShark
09.06.2008, 15:47
Есть предположим такая страница:
<div class="abc">
Какой-то блок текста 1
</div>
<div class="abc">
Какой-то блок текста 2
</div>
<div class="abc">
Какой-то блок текста 3
</div>
<div class="abc">
Какой-то блок текста 4
</div>
Регуляркой парсю всё это безобразие:
Да, я наконец-то нашёл время почитать про регулярки :D
preg_match("/<div class=\"abc\">(.+)<\/div>/is",$str,$a);
print_r($a);
Получаю:
Array (
[0] =>
Какой-то блок текста 1
Какой-то блок текста 2
Какой-то блок текста 3
Какой-то блок текста 4
[1] =>
Какой-то блок текста 1
Какой-то блок текста 2
Какой-то блок текста 3
Какой-то блок текста 4 )

Подставлял U, но находит только первое вхождение)

А теперь вопрос:
Как сделать регулярку (или другими способами), чтобы каждый "Какой-то блок текста" был в отдельном массиве, т.е:
Array (
[0] =>Какой-то блок текста 1,
[1] =>Какой-то блок текста 2,
[2] =>Какой-то блок текста 3,
[3] =>Какой-то блок текста 4
...etc...)

Пробовал с preg_match_all(), тоже не помогло.

Сильно в твою проблему не вникал, но понял следующее: он у тебя все загоняет в один элемент, т.к. по умолчанию регулярки "жадные", т.е. под твою регулярку попадает все, от первогодива класса abc до последнего закрывающего тег див. Поэтому тебе необходимо использовать так называемый модификатор "жадности" (U).

Т.е. нечто вроде:


preg_match_all("/<div class=\"abc\">(.+)<\/div>/isU",$str,$a);

В первом элементе массива $a будет нужный тебе массив :)

Корвин
09.06.2008, 17:29
у меня есть менюшка которая в цикле генерица, мне очень нужно сохранить уже сгенеренный код в файлик, типа как если бы открыть через браузер, и када все прогрузится скопировать то что в источнике получилось, только мне это нужно не открывая браузер чтобы скрипт сгенерил код страницы а потом сохранил его, такое возможно?


я попробовал после кода который генерит страницу засунуть file_get_contents и путь там указал к этому же файлу только с припиской урла сайта, чтобы типа он потом сам на себя зашол и скопировал код, но так не вышло....=(

mff
09.06.2008, 18:58
Люди, подскажите почему сессия не стартует?
Тупо пишу:
session_start();

Выдает ошибку:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\www\sites\rfo\public.php:7) in...

groundhog
09.06.2008, 19:00
Смотри public.php строку 7 - там какая-то инструкция уже начала вывод. Сессии посылаются в хидерах, поэтому вызов session_start() должен предшествовать началу вывода любой информации.

Isis
09.06.2008, 19:10
На вашем новичковском это значит что строку session_start(); надо поместить самой первой строчкой в файле (после <?php)

mff
09.06.2008, 19:38
Да, я уже понял, стартанул ниже тегов <html>... спасибо!

oRb
09.06.2008, 19:41
у меня есть менюшка которая в цикле генерица, мне очень нужно сохранить уже сгенеренный код в файлик, типа как если бы открыть через браузер, и када все прогрузится скопировать то что в источнике получилось, только мне это нужно не открывая браузер чтобы скрипт сгенерил код страницы а потом сохранил его, такое возможно?


я попробовал после кода который генерит страницу засунуть file_get_contents и путь там указал к этому же файлу только с припиской урла сайта, чтобы типа он потом сам на себя зашол и скопировал код, но так не вышло....=(
используй крон.