Просмотр полной версии : [php] Новичкам: задаем вопросы
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})$
preda1or Боюсь расстроить, но лучше не пользоваться ereg, 1 - не безопасно, 2 - начиная с ПХП 5.3.0 - вызывает ошибку, а с 6.0.0 - удалена функция в принципе
Tymblep Через точку с запятой дописать в конец исходной команды - свою
Можно ли как-то имя GET запроса к скрипту сделать пустым ?
То есть мне нужно: site.ru/344224
Сейчас у меня так: site.ru/?d=344224
Возможно ли убрать ?d= из URL ?
geforse В файл .htaccess прописать:
RewriteEngine On
RewriteRule ^(\d+)$ /?d=$1
Можно ли как-то имя 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
Подскажите пожалуйста... Вот не знаю, как это делать, думаю можно даже регулярками, но не знаю как. :)
Есть строка, абсолютно любая. Надо отрезать последние Х символов этой строки и загнать их в переменную. Как?
Linuxoid,
$n=6; //сколько символов отрезать
$str=substr('твоя строка',-$n);
Кубик Рубик,
Placeholder – 1. «Заполнитель». Представляет собой текстовый или графический элемент электронного шаблона страницы, заменяемый на практике реальным элементом. 2. Структурный нуль. Прочерк по причине бессмысленности присваивания некоторого значения, предусмотренного жестким форматом.
<?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);
?>
предварительно создав на удаленном хосте скрипт загрузки файлов на сервер через обычную форму
Как можно сделать вывод логов в реальном времени ?
Пример:
for($i = 0; $i < 10; $i++)
{
echo $i;
sleep(60);
}
Мне нужно вывести $i, подождать 60 секунд, очистить экран и вывести $i и тд.
Есть куууча файлов 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 еще какие-нидь функции для отсылки почты или как можно решить эту проблему?
з.ы. сменить хостинг не предлагать-)
ПОМОГОИТЕ: хостинг блокирует функцию 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] Новичкам: задаем вопросы"...а не "скиньте мне код"...пиши сам, если что поможем.
Елементарный курл с постом:
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.: извиняюсь за оффтоп. и я не понимаю почему администрацией поощряются данные посты. АнтиЧат это то место где изучают какие-то мелочи, а не обычные всеми известные стандарты, которые должен знать каждый. еще раз извиняюсь за оффтоп, накипело читать хлам.
и я не понимаю почему администрацией поощряются данные посты.
кто тебе такое сказал?
и по сабжу мб у Васи Рогова такой склад ума что на примере поймет быстрее ,чем по манам в которых в основном одна терминология.
ПС не кипешуй.
RedBull@12
28.08.2009, 23:50
кто тебе такое сказал?
и по сабжу мб у Васи Рогова такой склад ума что на примере поймет быстрее ,чем по манам в которых в основном одна терминология.
ПС не кипешуй.
да я не кипишу. просто данную тему читать противно стало. один спрашивает как отрезать часть строки и запихнуть в переменную, второй спрашивает как написать элементарный curl или socket скрипт(по выбору) тема про mail.ru особенно про данный скрипт поднималась несколько недель назад(а именно http://forum.antichat.ru/showpost.php?p=1413647&postcount=11544), где человек аналогично порпосил- ему слили, тут второй. короче нет слов...обидно...да и по сабжу, данный персонаж могбы прочитать первую статью в учебнике про curl или socket и там рассматривать примеры, их в каждом учебнике до ушей....
ладно хватит оффтопа..еще раз сорри за оффтоп...
Есть куууча файлов 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.
он консоль хочет, чтобы 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 */ }
Функция определения кодировки:
<?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
извиняюсь, пропустил посты, всё норма работает, спс =)
При заходе на линк курлом куки не сохраняются CURLOPT_COOKIEJAR, в HEADER куки тоже отсутствуют, хотя когда захожу браузером на линк, они (куки) устанавливаются..
Как их можно вытащить скриптом..?! Где они могут храниться..?!
RedBull@12
29.08.2009, 17:09
При заходе на линк курлом куки не сохраняются CURLOPT_COOKIEJAR, в HEADER куки тоже отсутствуют, хотя когда захожу браузером на линк, они (куки) устанавливаются..
Как их можно вытащить скриптом..?! Где они могут храниться..?!
если в хедере нету то непраивльный запрос.
потому что в хедере должна быть строка
set-cookie: ...
если в хедере нету то непраивльный запрос.
потому что в хедере должна быть строка
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
изучай
Интересно, возможен ли взлом такой авторизации:
<?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 "Неверный пароль";
}
}
?>
if ($_POST['u_pass'] == $a_pass and $_POST['u_login'] == $a_login) {
Правильнее будет не == (равно) а === (идентично)
RedBull@12
31.08.2009, 04:39
Правильнее будет не == (равно) а === (идентично)
в данном коде не имеет значения, но зато если будет пароль численный....том могут возникнуть проблемы с идентичностью. в том случае если в скрипет пароль будет храниться как число, а получать из POST будет как строка. символы те же, типы разные...
имхо...не есть правильно.
по сабжу, нет. по крайне мере какой-либо подменой POST запроса ну или еще как... и для ускорения рекоменду использовать не "and",а "&&", значительный прирост скорости.
привет
Встал вопрос как проверить переменную от пользователя в которой он передаёт 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 "Это не айпи :(";
?>
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 макс
Byrger Регулярки - в соседней теме, а тут:if ($ip === long2ip(ip2long($ip)))
echo "Это айпи!!";
else
echo "Это не айпи :(";
if ($ip === long2ip(ip2long($ip)))
echo "Это айпи!!";
else
echo "Это не айпи :(";
мутный код какойто, так не проверяют
if ($ip === long2ip(ip2long($ip)))
echo "Это айпи!!";
else
echo "Это не айпи :(";
мутный код какойто, так не проверяют
зачем писать велосипед ,если есть готовые встроенные функции.
Функция long2ip() генерирует Internet-адрес в формате с точкой (т.е.: aaa.bbb.ccc.ddd) из соответствующего представления адреса.
FriLL Яхз, как вы там проверяете, но это пример номер 3 отсюда http://ru.php.net/manual/en/function.ip2long.php
Быстро и просто
Ок,спасиб
А теперь встал вопрос который мучал меня долго...
Как можно реализовать в PHP лицензирование скрипта
Тоесть в конфиг вводишь ключ и скрипт работает.
Дак вот вопрос в том, как реализовать защиту от обнуления скрипта от этой проверки?
Пока в голову приходит закрытие исходного кода, но тут опятже вопрос, чем?
Byrger пхп - ничем не закроешь. Можно попробовать IonCube - но и его ломают
Вот я думаю если даже написать кодировщик то его код же останется открытым а значит можно всё декодировать : (
Может есть всётаки что-то?
Регистрирую 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 подставлять?
А как кроме $_SERVER['HTTP_HOST'] можно узнать на каком домене стоит скрипт?
Чтоб это было безопасно для скрипта, чтоб 100% валидный был домен.
RedBull@12
31.08.2009, 21:25
А как кроме $_SERVER['HTTP_HOST'] можно узнать на каком домене стоит скрипт?
Чтоб это было безопасно для скрипта, чтоб 100% валидный был домен.
обязательно домен?
или абсолютный путь достаточно?
$_SERVER['DOCUMENT_ROOT']
...ну как вариант еще можно $_SERVER['SERVER_NAME'] ...ну или выдрать вот отсюда $_SERVER['REQUEST_URI']
обязательно домен?
или абсолютный путь достаточно?
$_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']...
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"];
я думаю суть понятна моего ответа.
у кого есть скрипт чтоб мог отключать сайт через админку а
на главной на писано сайт в разработке!
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
Ну да, ты прав :) Просто мне было нечего делать, вот и написал скрипт :) Кстати, репа - не показатель...
как можно установить куки для другого хоста
пример:
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;
?>
<?
$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]);
регулярка для выдерания куков из пришедших хедеров
прописал в хост 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 через которую все пропускается...специально привел секьюрный метод...
<?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, лучше бы помог человеку, чем указал сколько строк в коде.
как на сайт поставить это
и кнопку сделать в админке?
суть вопроса)
выполняется скрипт. вывод на страницу через echo. после этого надо перенаправить на другую страницу.
Header("Location:") не катит. надо сделать тока средствами пхп. т.е. js тож не катит)
j0ker13 В разделе HEAD документа прописать <meta http-equiv="refresh" content="задержка в секундах до редиректа; url=адрес для редиректа">
это не запланировано должно быть) т.е. если случилось событие то вывод текста и редирект. если не случилось продолжается выполнятся)
Pashkela
02.09.2009, 14:00
тогда не понятно, почему
Header("Location:") не катит
if (условие) Header("Location:");
в чем вопрос - непонятно вообще
wildshaman
02.09.2009, 14:00
это не запланировано должно быть) т.е. если случилось событие то вывод текста и редирект. если не случилось продолжается выполнятся)
Какбы хеадер - это не средство пхп?
ну тогда как сказано выше -
echo '<meta http-equiv="refresh" content="задержка в секундах до редиректа; url=адрес для редиректа">';
как создать HTTP GET запрос ? пример:
GET /path/file.html HTTP/1.0
как это работает?
на форуме тут видел:
"Сформируем вот такой вот запрос
POST http://.... HTTP/1.0
или
OPTIONS / HTTP/1.0"
сформулировать понятно, а как его отправить?
дак говорю же. перед хедером выводится текст. он же ругается что 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
Подскажите как правильно парсить заголовок 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
$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] второй и т.д....
Спс зарание....
<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()
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
у тебя хост не забит...+ смотри области видимости переменных...у тебя в 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
Подскажите пример скрипта включение выключение кс сервера через сайт
Возьми класс отсюда
http://webscripts.softpedia.com/script/PHP-Clases/Counter-Strike-50878.html
И на основе него сделай
мужики, такой вопрос, почему код:
$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 у меня и у него, ломаю голову уже второй час, не могу понять в чем причина
попробуй типа:
<?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
Ни кто не знает ?? Плз срочно нужно
Там как бы есть
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 зачем не подскажешь ??
Если не трудно можно пример ??
в ответ на 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
Можно ли использовать следующий алгоритм для имитации 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
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": }
?>
ну к примеру вот так:
Ты думаешь в 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
аа как все сложно, блин. Fepsis, это почти тоже самое, что и я в самом начале запостил, не?
ну всмысле var 1 из 3...и вроде получится 1/30
но у тебя ещё каждая var 1 из 100... :)
Я свой предыдущий пост дополнил..
RedBull@12
04.09.2009, 00:36
сейчас...я сформулирую свою мысль...и расскажу что именно хотел сказать
аа как все сложно, блин. Fepsis, это почти тоже самое, что и я в самом начале запостил, не?
ну в общем да.. тервер утверждает, что вероятность будет ~30%
только что попробовал:
выиграл 47 раз, 105 проиграл -- 30.92105263157895% выигрыша
нормально, как раз 30% примерно)
superboy4
04.09.2009, 10:44
Вообщем такой вопрос:
Есть аватарки со страниц Вконтакте, то есть простые фото людей не которого разрешения.
Можно ли их увеличить (разрешение фотографии увеличить) чтобы качество не терялось?
superboy4 Нельзя, это вам не векторная графика
superboy4
04.09.2009, 11:18
А где можно почитать подробную информацию о Curl или сокетах на русском языке????
superboy4 http://docs.php.net/manual/ru/book.curl.php
Не знаю куда написать - так что не бейте сильно)))
Вобщем есть голосовалка ежедневная .
Может кто посоветует чего хорошего для накрутки, може прогой кинетесь какой - я в этом чайник. и чтобы не палиться особо с айпи, да кукями. айпи у самого динамик - но могут по диапозону вычислить - да и медленно очень выходить будет.
спасибо
toyvans, врядли есть "универсальный накрутчик".. Нужно непосредственно смотреть на твою голосовалку и изучать установленные там ограничения (по ИП, по кукам, иногда достаточно браузер сменить) Чтоб ИП не палить - юзать прокси сервера (OperaTor)
Темой вроде не ошибся =) Может кто сталкивался, каким скриптом можно выкачать сайт? Нужно какоето подобие телепорта, но в серверном исполнении, так как у меня скорость "никакая".
superboy4
04.09.2009, 19:11
Задача следующая:
Есть поле ввода на странице сайта, в которое пользователь вводит адрес своей странички в социальной сети В контакте (н-p: vkontakte.ru/id121212).
Как сделать чтобы после того как пользователь ввёл свой адрес в поле и кликнул по кнопке ----- получить всю информацию о пользователе под этим идентификатором во Вконтакте.ру и вывести её на следующей странице моего сайта?
ps: не прошу заменя ничего писать, а интересуюсь можно ли это сделать, если да - то каким образом (маленький примерчик!)
superboy4 Залогиниться на вконтакте курлом/сокетами -> получить страницу. Или через АПИ проделать то же самое
superboy4
04.09.2009, 19:20
To Gifts
Api вконтакте не существует, а userapi это лишь жалкое подобие того самого Api.
курлом/сокетами
А это не одно и тоже? Или сокеты зашиты внутрь Curl?
Подожди...
А если страница закрыта пользователем???
+ парсь необходимую инфу через регулярку, и выводи через соответствующие конструкции .
superboy4
04.09.2009, 19:29
Подожди...
А если страница закрыта пользователем???
не все же страницы открыты!!
wildshaman
04.09.2009, 19:31
Подожди...
А если страница закрыта пользователем???
не все же страницы открыты!!
Тогда никак
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>";
?>
Pashkela
04.09.2009, 22:36
application/octet-stream
FireFenix
04.09.2009, 23:51
или text/plain taxt/html
в зависимости от того как воспринимать внутренности =)
имеется функция
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..... углядел :)
есть файл 1.txt
1
2
3
4
5
6
7
8
9
нужен скрипт который выведет по 4 строки в одну
1, 2, 3, 4
5, 6, 7, 8
9
есть файл 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
<?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>";
?>
<?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 есть только название файла, его размер, тип и все:(
как мне сохранить в переменную путь к найденному файлу, или как можно решить мою проблему?
скрипт заливки файлов на сервер найдешь в теме "Полезные скрипты"
заливай этот свой файл в определенную папку и инклудь его оттуда
есть файл 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
Ну ёпт..... ты же небось тестируешь на локальной машине?
естесно Айпи твоего сервера будет равен айпи клиента!!!
нужно чтобы выводился именно евоный 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"
?> взять определёную строку? а не весь текст
насчёт вывода времени я чё та не догоняю (( я 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; // выведет сколько прошло в часах
Вроде так, писал тут и не проверял..
Народ подскажите как выдрать капчу с контакта средствами пхп???
понятно что в заголовках приходит ссид капчи
preg_match('#csid=(.*?)"#',$cont,$capthca);
вытаскиваю его обращаюсь к картинке а он мне хер!
типа ошибка доступа
в чем проблема?
Insane bboy
07.09.2009, 14:16
я написал вычисление разницы с помощью mktime, одна проблема разница выходит в секундах, к примеру 8934сек и тд:) еще один глупый вопрос, как это сделать обратно в 01:23:05(часы:минуты:секунды разделять не обязательно ":" просто для наглядности написал) если я допустип это делю на 60 то ответ приходит в формате десятичной дроби
я написал вычисление разницы с помощью 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);
?>
вытаскиваю его обращаюсь к картинке а он мне хер!
типа ошибка доступа
А кукисы в запросе подставляешь?
Есть скрипт:
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, отчего функция не работает, если да, то что именно.
Спасибо.
А кукисы в запросе подставляешь?
хех дело было в амперсанте )
я его не как "&" отдавал а как amp; =)
Есть скрипт:
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)
ошибки дает?
svesve
Вообще ничего, даже 0 не выводит)
svesve
Вообще ничего, даже 0 не выводит)
ну тут только если у хостера URL file-access = disabled
попробуй у себя на локалке в php.ini поставь
URL file-access в disabled
и проверь
Insane bboy
07.09.2009, 14:58
есть функция, которая чекает акки, чекает курлом, как сделать многопоточность? нужен не сколько код, сколько обьяснения:) заранее благодарю:)
ну тут только если у хостера URL file-access = disabled
попробуй у себя на локалке в php.ini поставь
URL file-access в disabled
и проверь
Шотта нинахажу такой строчке :rolleyes:
Шотта нинахажу такой строчке :rolleyes:
allow_url_fopen Off
svesve
Спросил у хостера, сказал, что allow_url_fopen = On
Значит дело не в этом…
На другой хостинг залил — тоже по нулям, а, блин, в денвере все пашет)
мистико
народ кто слышал о сайтах однодневках для отправки смс на короткие номера напишите в асю 6680194
народ кто слышал о сайтах однодневках для отправки смс на короткие номера напишите в асю 6680194
Я слышал.Это какимто образом относиться к:
Форум АНТИЧАТ > КОДИНГ > PHP, PERL, MySQL, JavaScript. > [php] Новичкам: задаем вопросы
?
svesve
Спросил у хостера, сказал, что allow_url_fopen = On
Значит дело не в этом…
На другой хостинг залил — тоже по нулям, а, блин, в денвере все пашет)
мистико
а функции у хостера никакие не отключены???
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]; ?
Люди подскажите такой не сложный вопрос, какую книгу читать с начало? Я понимаю что есть тему "Books Php", но у меня нет желания качать все книги или выбирать на угад...
Начал учить "Самоучитель PHP" Д. Н. Колесниченко, но тут прочитал отзывы в нете - и мне сразу захотелось её удалить)
Помогите кто чем может)
VladZombie
07.09.2009, 21:50
Всё наконецто разобрался всё работает отлично. СПС
VladZombie
07.09.2009, 21:54
Люди подскажите такой не сложный вопрос, какую книгу читать с начало? Я понимаю что есть тему "Books Php", но у меня нет желания качать все книги или выбирать на угад...
Начал учить "Самоучитель PHP" Д. Н. Колесниченко, но тут прочитал отзывы в нете - и мне сразу захотелось её удалить)
Помогите кто чем может)
Лично я начал учить с видео уроков, но всё ровно не могу понять этот php :mad:
Люди подскажите такой не сложный вопрос, какую книгу читать с начало? Я понимаю что есть тему "Books Php", но у меня нет желания качать все книги или выбирать на угад...
Начал учить "Самоучитель PHP" Д. Н. Колесниченко, но тут прочитал отзывы в нете - и мне сразу захотелось её удалить)
Помогите кто чем может)
http://uzeit.ru/blogs/0/19/post36.html рекомендую
Люди подскажите такой не сложный вопрос, какую книгу читать с начало? Я понимаю что есть тему "Books Php", но у меня нет желания качать все книги или выбирать на угад...
Начал учить "Самоучитель PHP" Д. Н. Колесниченко, но тут прочитал отзывы в нете - и мне сразу захотелось её удалить)
Помогите кто чем может)
php.net - recommended.И ничего другого.
Player#1
07.09.2009, 22:20
...
Помогите кто чем может)
если был опыт в программировании на других языках, то Д.В.Котеров,А.Ф.Костарев - PHP5 в подлиннике
если нет, то посмотри пару видео уроков.
если был опыт в программировании на других языках, то Д.В.Котеров,А.Ф.Костарев - PHP5 в подлиннике
если нет, то посмотри пару видео уроков.
Не засоряй мозги людям.ВИдео уроки по PHP, это как видео уроки по катанию на велосипеде.Не слушай его,читай книгу и главное офф.маны.
Лично я начал учить с видео уроков, но всё ровно не могу понять этот 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
изучай
Самые лучшие уроки - поставить свой форум и пытататься ставить хаки/плагины хотя бы. Остальное в разы дольше, имхо
Угу и ты научишся копипастить, ведь это так сложно. Я лет 5 назад ставил хаки на разные двиги, зная только HTML.
Пиши в гугле уроки PHP и не мучайся ты читая этот бред в книжках на 1000 с х..ем страниц...
Не слушай мнение сомнительных особ, мне больше кажется ето мнение школоты которому очень тяжело прочитать книгу, нехватает усидчивости. В печатных изданиях некоторые аспекты рассмотрены обширно, в отличии от статей, который часто ограничены кол-вом символов и тд. Я не говорю что статьи и маны читать не надо, надо но книги я бы посоветовал в первую очередь.
php.net - recommended.И ничего другого.
Как раз есть очень много "другого" интересного и полезного, к примеру мануал:
http://manual.pohape.ru/
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
Можете мне хоть показать, что я делаю не так.
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&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"
Мозгов составить регулярное выражение нехватает (
Doktor_radosti preg_match('#<div class="comment-text-box">\s*(.*?)\s*</div> #si',$str,$match);
написал скрипт авторизации на 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 способами, так что они дают волю воображению, ну и в попытке довести их до идеала можно узнать немало нового.
curl_setopt($ch, CURLOPT_COOKIEJAR, "путь к файлу с куками");
curl_setopt($ch, CURLOPT_COOKIEFILE, "путь к файлу с куками");
Как ето понять? Пиши путь $_SERVER['DOCUMENT_ROOT'].'/1' и выставь права на папку chmod 0777 чтоб куки могли сохранятся, т.к. в винде ненужны права на запись в директорию, а на хостинге не винда.
curl_setopt($ch, CURLOPT_COOKIEJAR, "путь к файлу с куками");
curl_setopt($ch, CURLOPT_COOKIEFILE, "путь к файлу с куками");
Как ето понять? Пиши путь $_SERVER['DOCUMENT_ROOT'].'/1' и выставь права на папку chmod 0777 чтоб куки могли сохранятся, т.к. в винде ненужны права на запись в директорию, а на хостинге не винда.
я брал путь из phpinfo и прописывал к своему txt файлу. попробую как ты написал
Здравствуйте!
Мне нужно отпарсить из <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);
preg_match('#src="http:\/\/captcha\.yandex\.net\/image\?key=([a-f0-9]{32})"#i',$str,$matches);
echo $matches[1];
Народ напишите плиз код на php который содержит php инъекция а потом покажите код который её закрывает.И ещё напишите пли код где показа XSS и как патчить её и если можно то и про SQL инъекции напишите.Заранее спасибо.
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'");
?>
Писал на коленке.
L E X X Можете купить бумажные версии, я не против. Можете читать последовательно - тож не против. Или вам подавай "Высшие откровения о ПХП включающие все-все-все". Так вот, как бы _х*й_ такое будет
lokus Читать тут про инъекции, в том числе с примерами https://forum.antichat.ru/thread19844.html
Привет всем. помогите создать фотоальбом. тоесть нужен код что бы можно было заливать фотку и удалить ранее залитую фотку на сервак и что бы все залитые фотки отображались ниже. плиз.
ася 468665678.
superboy4
10.09.2009, 14:08
Мне нужно со страницы пользователя Вконтакте вида vkontakte.ru/id121212
вытащить: Имя и Фамилия пользователя, пол, город и университет. После этого занести эти данные в таблицу users. Как вытащить действительные имена и фамилии пользователей, так как у многих они на английском изменены как псевдонимы?
FireFenix
10.09.2009, 16:40
Мне нужно со страницы пользователя Вконтакте вида vkontakte.ru/id121212
вытащить: Имя и Фамилия пользователя, пол, город и университет. После этого занести эти данные в таблицу users. Как вытащить действительные имена и фамилии пользователей, так как у многих они на английском изменены как псевдонимы?
Изучить какой-либо язык программирования и PCRE
Такс... У мну ещё трабла
imap_search($mail,'FROM "mail@mail"');
Эта штуковина качает все письма и проверяет :o
Как получить самое новое письмо?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot