Просмотр полной версии : [php] Новичкам: задаем вопросы
мне нужно зарегистрироваться,нужно соединиться через прокси,т.к. идет бан ип после одного обращения
Compton http://ru2.php.net/curl_setopt смотреть на параметры CURLOPT_PROXY CURLOPT_PROXYTYPE. Ну или для специалистов RFC сокс протокола - http://tools.ietf.org/html/rfc1928
именно через fsockopen нужно
pavl1k_fan@mail.ru
05.06.2010, 13:06
Compton
Тут посмотри
http://www.php.net/manual/en/function.fsockopen.php
кэээп,ладно,я вроде разобрался
foma9999
05.06.2010, 13:41
preg_match_all('|<span class="postAuthor"><a href="(.*?)">.*?(.*?)</a>.*?<span class="timestamp">(.*?)</span>.*?style="width: 375px; overflow: hidden;">(.*?)</div>|is', $connclub2, $out2, PREG_SET_ORDER);
for ($i=0;$i<=20; $i++){ if ($out2[1][$i] == 'id43822039'){echo 'good!!!';}else{echo 'bad!!!';} }
sleep(4);
}
Условия 100% верны, но выводит "bad!!!"
Люди добрые посдкажите , как отправить через сокеты по протоколу tcp , hex покет , по нету порыскал так и ненашол нужной инфы
general.fox
05.06.2010, 19:40
Как мне из числа возвращенной функцией time() получить нрмальную дату и время в формате день.месяц.год часы:минуты:секунды ?
Использовать функцию date
http://www.php.net/manual/en/function.date.php
pavl1k_fan@mail.ru
05.06.2010, 23:52
Как мне из числа возвращенной функцией time() получить нрмальную дату и время в формате день.месяц.год часы:минуты:секунды ?
$time = time();
echo date('d.m.Y G:i:s', $time);
$time = time();
echo date('d.m.Y G:i:s', $time);
Вопрос - Как сделать 3 условия вывода ?
К примеру
<? if (is_page("News")) { ?>
<strong>Title 1</strong>
<? } else { ?>
<strong>Title 2</strong>
<? } ?>:
Как сделать 3 выводи к примеру если это News выводим Title 1 если это Contact Выводим Title 2 а если это не Contact и не News тогда выводим 3 значение умы в студию :)
if (is_page("News"))
{$title = 'Title 1';}
elseif (is_page("Contact"))
{$title = 'Title 2';}
else
{$title = 'Title 3';}
echo $title;
Adio, а что это за волшебная функция is_page(), про которую и мануал не знает?
Adio, а что это за волшебная функция is_page(), про которую и мануал не знает?
А это мой лав Wordpress :)
аа, ну решение вам дали. Можете также использовать switch/case
аа, ну решение вам дали. Можете также использовать switch/case
Кстати было бы интересно увидеть вариант с CASE
Кстати было бы интересно увидеть вариант с CASE
<?php
switch($page){
case "News":
echo "Title 1";
break;
case "Contact":
echo "Title 2";
break;
default:
echo "Title 3";
}
?>
Вариант с if/else компактнее и красивее
Подскажите как сделать ссылку в в поле text что бы не видел юзер. Т.е
<input type='text' maxlength="25" name='xxx' id='xxx' /> Вот мне нужно как то сделать что бы когда юзер вводил в поле http://www.site.com то ссылка отправлялась как <a href=http://www.site.com> Есть какойто способо при отправке заключить ссылку в теги A
Спасибо
чтобы ссылка существовала,но не была видна,то это type="hidden"
чтобы ссылка существовала,но не была видна,то это type="hidden"
Ну сморти - юзер в поле ввел имя сайта - а оно отправилось типа <a href=имя сайтa>имя сайтa</a>
т.е как то надо подставить что бы было так.
Ну сморти - юзер в поле ввел имя сайта - а оно отправилось типа <a href=имя сайтa>имя сайтa</a>
т.е как то надо подставить что бы было так.
<form action = '' method = 'post'>
<input type = 'text' name = 'link' maxlength ='25'>
<input type = 'submit' value = 'ok'>
</form>
<?php
if (isset($_POST ['link']))
{
$link = $_POST ['link'];
$result = "<a href = $link >$link</a>";
/*далее делаем с переменной result, то что нужно, например выводим ее*/
echo $result;
}
?>
отправляем постом <script>alert(/wtf/);</script> и идем читать про htmlentities
отправляем постом <script>alert(/wtf/);</script> и идем читать про htmlentities
Задача была написать не конкретный и безопасный код, а показать пример реализации
У меня ощущение, что ему все-таки нужно было такое:
<form method="post">
<textarea name="data" cols="20" rows="5">
Oh shit! There is LOA private dump
http://www.youtube.com/watch?v=oHg5SJYRHA0&feature=fvw
use it!!!! (c) dracula4ever
</textarea>
<input type="submit" />
</form>
<hr />
<?php
$input = $_POST['data'];
$input = preg_replace("#(http://)[a-z0-9-_\/.\?\=\&]+#i","<a href='$0'>$0</a>",$input);
echo $input;
?>
добрый день) подскажите как написать скрипт для проверки вводимых данных в поле пароля. Нужно чтобы запрос проходил только на 4х значный код.
с помошью вот этой функции (strlen($_POST['code']) < 4 ) удаеться только указать интервал длины пароля! а нужно конкретное количество символов в строке. :confused:
добрый день) подскажите ка кнаписать скрипт для проверки вводимых данных в поле пароля. Нужно чтобы запрос проходил только на 4х значный код.
с помошью вот этой функции (strlen($_POST['code']) < 4 ) удаеться только указать интервал длины пароля а нужно конкретное количество символов в строке.
Говорят существует некий мифический оператор ==
через пхп можна реализовать погрузку 5к изображений сервера на сайт? 1 изображение ~20кб?
и скрипт тупо не заглючит?
погрузить надо в макс короткое время)
через пхп можна реализовать погрузку 5к изображений сервера на сайт? 1 изображение ~20кб?
и скрипт тупо не заглючит?
погрузить надо в макс короткое время)
Можно
Не работает name.ru/post/foto.gif :(
в чем может быть проблема? :rolleyes:
.htaccess
RewriteRule ^post/(([^/]+).([gif|jpg|jpeg|png]+))$ images/post/$1 [L,QSA]
RewriteRule ^foto/(([^/]+).([gif|jpg|jpeg|png]+))$ images/foto/$1 [L,QSA]
RewriteRule ^file/(([^/]+).([gif|jpg|jpeg|png]+))$ images/file/$1 [L,QSA]
Как сбросить указатель на файл в начало файла?
Перефразируя - я открыл файл - прочёл - сбросил указатель в начало - перезаписываю в этот же файл не закрывая старый указатель
можно обойтись file_get/put_contents по 1 разу но интересует как реализовать описанный выше метод.
roxblnfk
07.06.2010, 21:39
fseek установливает смещение указателя
ftell возвращает значение указателя
rewind сбрасывает
DonKihot
07.06.2010, 21:53
Получаем инфу о файле :
$this->temp = stat($this->f_name);
Дата модификации файла записывается в unix формате.
Как дату перевести в нормальный формат?
Vlad&slav
07.06.2010, 21:57
date('формат', 'юних формат')
Парни, такой вопрос, сейчас при создании превью, создается jpg изображение, хотя источником является png рисунок, вопрос, что нужно убрать из кода чтобы не приходилось уродовать картинку перегонкой из одного формата в другой, а создавать миниатюрку всего лишь изменив ширину и пропорционально высоту исходного изображения.
<?
// create thumbnails
function createthumb($name,$sourcetype,$filename,$new_w,$ne w_h){
if ($sourcetype==".jpg"){
$src_img=imagecreatefromjpeg($name);
}
if ($sourcetype==".png"){
$src_img=imagecreatefrompng($name);
}
if ($sourcetype==".gif"){
$src_img=imagecreatefromgif($name);
}
$old_x=imageSX($src_img);
$old_y=imageSY($src_img);
if ($old_x > $old_y) {
$thumb_w=$new_w;
$thumb_h=$old_y*($new_h/$old_x);
}
if ($old_x < $old_y) {
$thumb_w=$old_x*($new_w/$old_y);
$thumb_h=$new_h;
}
if ($old_x == $old_y) {
$thumb_w=$new_w;
$thumb_h=$new_h;
}
$dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thum b_w,$thumb_h,$old_x,$old_y);
imagejpeg($dst_img,$filename);
imagedestroy($dst_img);
imagedestroy($src_img);
}
// script upload
include("header.php");
$max_size = 1024 * 2048;
$max_th = 300;
$min_th = 100;
$path = "images/";
$tpath = "thumbs/";
$tsize = $_POST['thumb'];
if($tsize >= $max_th || $tsize <= $min_th)
die('<p align="center"><font size="4" color="red">Превью должно быть меньше 300, но больше 100 пикселей.</font><center>');
if(!isset($_FILES['userfile'])) exit;
if(!is_uploaded_file($_FILES['userfile']['tmp_name'])) exit;
if ($_FILES['userfile']['size']>$max_size) {
echo "<p align=center>Файл слишком большой!</p>";
exit;
}
$pictype="";
switch(strtolower($_FILES['userfile']['type'])){
case "image/jpeg" : $pictype=".jpg"; break;
case "image/pjpeg": $pictype=".jpg"; break;
case "image/gif" : $pictype=".gif"; break;
case "image/png" : $pictype=".png"; break;
case "image/x-png": $pictype=".png"; break;
default : $pictype=""; break;
}
if($pictype!="") {
//-------
do {
$uniq=md5(uniqid(rand(),1));
$srcfile=$path.$uniq.$pictype;
} while(file_exists($srcfile));
$res = copy($_FILES['userfile']['tmp_name'], $srcfile);
if (!$res) {
echo "<p align=center>Ошибка копирования файла на сервер!</p>";
exit;
}
@chmod($srcfile,0666);
//set url variable
$imgf = $path . $uniq . $pictype;
$thbf = $tpath . $uniq . ".jpg";
createthumb($imgf,$pictype,$thbf,$tsize,$tsize);
@chmod($thbf,0666);
$urlf = $domain . $path . $uniq . $pictype;
?>
# HTML вывод при удачном аплоаде.
<?
// error
} else {
echo "<p align=center>Формат файла не распознан!</p>";
exit;
}
include("footer.php");
?>
Axel G
Может эту строчку:
$thbf = $tpath . $uniq . ".jpg";
Заменить на:
$thbf = $tpath . $uniq . $pictype;
LStr1ke, в принципе работает, тогда еще один вопрос, сейчас превьюшку карябает и очень сильно, хотелось бы получить красивую миниатюру - уменьшенную копию оригинала. Что отвечает за качество тумбы??
spamoney
08.06.2010, 13:00
Здравствуйте, никак не могу разобраться с рекурсией, скажите в чем проблема, пример функции:
function expml_1($i) {
$i++;
if ($i<10) expml_1($i);
else return $i;
}
echo expml_1(0);
По идеи должно выдавать 10, но почему то не работает (если return заменить на echo, то работает, но нужно именно через return)
Есть массив
'story' => strip_tags ($xxx['xxx_user_article']),
Как сделать фильтр слышей и символов ? Я вижу там только теги обрезает а мне нужно что бы все символы кавычки и т д обрезало - потому что когда я постю то в админке реально исполняеться код...
2 spamoney
<?php
function rec($i) {
if($i < 10) {
$i++;
return rec($i);
}
else return $i;
}
echo rec(0);
?>
;)
2 Adio
<?php
$str = "some wtf";
echo htmlentities($str, ENT_QUOTES, $charset); //$charset = utf-8,chcp1251,etc
?>
2 spamoney
<?php
function rec($i) {
if($i < 10) {
$i++;
return rec($i);
}
else return $i;
}
echo rec(0);
?>
;)
2 Adio
<?php
$str = "some wtf";
echo htmlentities($str, ENT_QUOTES, $charset); //$charset = utf-8,chcp1251,etc
?>
а ... так его на выходе фильтровать надо . - у меня получаеться что - юзер отсылает форму - в ту форму можно повписывать что хочеш как бы - к примеру ввожу алерт отправляю форму - захожу в админку и уменя срабатывает алерт - я хочу фильтровать данные до того как они попадут в админку / базу т.е перед отправкой все фильтровать и отсылать. А ты я так понял написал мне на выходе фитровать
Народ, хелп, плз! Как средствами php снять скрины с видеоролика? Формат ролика - H.264
ffmpeg - и без вариантов? А если у хостера нету?
CyberHunter
08.06.2010, 18:20
Подскажите, что сделать, чтобы в WordPress вместо: "ґСЂР°РІР»СЏ", выводились нормальные символы? ВП стоит на денвере.
УТФ-8 кодировку базе данных задать
CyberHunter
08.06.2010, 18:35
УТФ-8 кодировку базе данных задать
\usr\local\mysql-5.1\data\wp\db.opt в этом файле? Или где? Вот что в этом файле:
default-character-set=UTF-8
default-collation=UTF-8
До этого было не УТФ-8, а другая кодировка.
2 Adio
ну как бы это есть верный подход, данные которые заносятся в базу ничем и никак фильтровать не надо, а фильтровать от всяких xss надо уже на выходе, ну раз тебе уж так хочется, то делай.
просто перед записью в бд фильтруй, тем же способом что я написал выше, например
<?php
$name = $_POST['name']; //передаваемый параметр name с формы
$name = htmlentites(...);
....
mysql_query("INSERT INTO .... VALUES('{$name}', ...)");
....
?>
2 CyberHunter
в денвере если не ошибаюсь, есть phpmyadmin, там и смотри в какой кодировке все нормально, и ставь её в wp-config.php
//define('DB_CHARSET', 'utf8');
данные которые заносятся в базу ничем и никак фильтровать не надо
:eek:
insert into test (id,a) values (1,'sqli');
insert into test (id,a) values (sqli,'test');
insert into test set id=sqli;
insert into test set a='sqli';
update test set id=sqli where...;
update test set a='sqli' where...;
http://site.com/?sqli=1')on duplicate key update a=(select 1 from(select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)--
http://site.com/?sqli=1,(select 1 from(select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a))--
http://site.com/?sqli=1 on duplicate key update a=(select 1 from(select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)
http://site.com/?sqli=1'on duplicate key update a=(select 1 from(select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)--
http://site.com/?sqli=1 where (1)=(select 1 from(select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)--
http://site.com/?sqli=1'where (1)=(select 1 from(select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)--
Vlad&slav
08.06.2010, 21:13
Какие бд, вы чё? Эта фигня при аякся, чтобы убрать надо в файлах к которым идёт запрос аякса прописать хеадер, в этом вордпресе половину переписывать прешлось
У меня такой вопрос. Есть форма на сайте site.com/index.php:
<?php
if ( isset($_POST['login']) && isset($_POST['pass']) && $_POST['login'] == 'admin' && $_POST['pass'] == 'admin') {
echo 'DATA';
} else {
echo <<<here
<form method='POST'>
<input type='text' name='login'>
<input type='text' name='pass'>
<input type='submit'>
</form>
here;
}
?>
Как получить доступ к строке DATA с локалхоста ?
wildshaman
09.06.2010, 00:17
site.com/index.php
сделать post запрос такой:
login=admin&pass=admin
Ну или в формочку ввести admin и admin
wildshaman
09.06.2010, 01:21
Судя по коду, форма выводится на сайте
в оба поля вбей admin и все
да нет же... мне нужно с локального сервера, через программу залогинится и через функцию file_get_contents сохранить строку
wildshaman
09.06.2010, 01:25
My favourite curl
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,"http://site.com/index.php");
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,30);
curl_setopt($curl,CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 MRA 5.6 (build 03278) Firefox/3.5.7 sputnik unknown");
curl_setopt($curl,CURLOPT_POST, 1);
curl_setopt($curl,CURLOPT_POSTFIELDS, "login=admin&pass=admin");
curl_setopt($curl,CURLOPT_ENCODING,"gzip,deflate");
$ret = curl_exec($curl);
echo $ret;
да ! чтото наподобии этого мне было нужно. сенкс
wildshaman
09.06.2010, 01:30
Или без курла:
$data=array("login"=>"admin","pass"=>"admin");
$data = http_build_query($data);
$context_options = array(
"http" => array(
"method" => "POST",
"header" => "Content-Type: application/x-www-form-urlencoded\r\nContent-Length: ". strlen($data). "\r\n",
"content" => $data
)
);
$context = stream_context_create($context_options);
echo file_get_contents("http://site.com/index.php", false, $context);
Не проверял, но должно работать
\usr\local\mysql-5.1\data\wp\db.opt в этом файле? Или где? Вот что в этом файле:
До этого было не УТФ-8, а другая кодировка.
Нужно ставить сразу на утф8, иначе при перекодировке возникнут трудности, вообщем не советую.
spamoney
09.06.2010, 17:11
Здравствуйте, как можно (и возможно ли вообще) используя, всего один запрос к БД вывести вложенное двух уровневое меню?
Структура таблицы:
id parent title
1 0 Категория-1
2 0 Категория-2
3 1 Подкатегория-1-1
4 1 Подкатегория-1-2
5 2 Подкатегория-2-1
Соответсвенно вывести нужно следующим образом:
Категория-1
Подкатегория-1-1
Подкатегория-1-2
Категория-2
Подкатегория-2-1
P.S
Сначала хотел запостить в вопросы по MySQL, но думаю, что здесь используется именно php (for, foreach и т.п.)
spamoney, у меня завалялся старый скрипт, который должен выводить что-то наподобие.
<?php
$connect = mysql_connect ('localhost', 'user', 'pass')
or die ("Connection error\n");
mysql_select_db ('mytest', $connect) or die ("Select db failed\n");
$query = mysql_query ("select * from tree order by section_id, section_name")
or die ("Query failed\n");
while ($res = mysql_fetch_array ($query)) {
$sections[$res['section_id']][$res['id']] = $res['section_name'];
}
print_r ($sections);
mysql_close ($connect);
?>
Не проверял (глюки с мускулем нахрен)
Доброго времени суток! Я захотел начать изучать php. До этого изучал только паскаль в общих чертах. Подскажите пож-та, можно ли юзачать php не имея никакой базы, если можно, то посоветуйте пож-та какую-нибудь литературу, по которой можно хорошо изучить его.
https://forum.antichat.ru/thread81500.html
http://htmlweb.ru/ хороший сайт по вэб-програмированию выбирай язык и изучай
olishort
11.06.2010, 12:21
Доброго времени суток! Я захотел начать изучать php. До этого изучал только паскаль в общих чертах. Подскажите пож-та, можно ли юзачать php не имея никакой базы, если можно, то посоветуйте пож-та какую-нибудь литературу, по которой можно хорошо изучить его.
Сам книжек по программированию не читал когда знакомился с php, считаю практика самый лучший способ + если подкреплять вопросами с форума. Очень помог pyha.ru (не пиар)
Из литературы советую PHP 5 в подлиннике - Дмитрий Котеров, Алексей Костарев
http://www.internet-technologies.ru/images/books/190_big.jpg
Там тебе и знакомство с переменными, функциями, классами + подскажут как Apache настроить.
-PRIVAT-
11.06.2010, 13:21
http://phpfaq.ru/start
Э. Гутманс, С. Баккен, Д. Ретанс. PHP5 профессиональное программирование
Ссылка: http://nerezus.ifolder.ru/8081805
Джордж Шлосснейгл - Профессиональное программирование на PHP
Ссылка http://nerezus.ifolder.ru/8132366
Доброго времени суток! Я захотел начать изучать php. До этого изучал только паскаль в общих чертах. Подскажите пож-та, можно ли юзачать php не имея никакой базы, если можно, то посоветуйте пож-та какую-нибудь литературу, по которой можно хорошо изучить его.
Вот держи отличный бук - http://www.softtime.ru/bookphp/ Сам бы сейчас начал изучать,ток времени катастрофически не хватает. А вообще да, правильно выше сказали, надо на практике учиться + эта ветка форума, сделают свое дело, сам еще недели 2 назад толком ничего не понимал, сейчас маленька въехал, так что желаю удачи в освоении = )
.::f-duck::.
11.06.2010, 15:07
Axel G:
Учебник по PHP 4
Ты знаешь вообще,какой год и,что уже пхп 6 готовиться к выходу?
У меня такой вопрос. Если перейти по ссылке http://translate.google.ru/translate_a/t?client=t&text=%D1%81%D0%B0%D0%B9%D1%82&hl=ru&sl=ru&tl=en&pc=0 , отображение будет в нормальной кодировке, а вот если написать скрипт который будет отображать содержимое той страници на локальной, то кодировка собьётся. Как этого не допустить ?
header('Content-Type: text/html; charset=utf-8');
100500 раз обсуждалось
непомогает ! с header я почти все перепробовал
olishort
11.06.2010, 15:31
непомогает ! с header я почти все перепробовал
http://php.net/manual/en/book.iconv.php
Axel G:
Ты знаешь вообще,какой год и,что уже пхп 6 готовиться к выходу?
И чего?? сильно синтаксис изменился в пятом?? Главное доступность понимания и умение автора преподать. В общих чертах язык понятен и неизменен. Тем более с нуля понять как все это работает - самое оно.
.::f-duck::.
11.06.2010, 15:45
И чего?? сильно синтаксис изменился в пятом?? Главное доступность понимания и умение автора преподать. В общих чертах язык понятен и неизменен.
гыгыгыгыгыгыг,зачет вообще
Про ооп слышал?
И да - все дураки,что учат пхп 5 - ведь зачем?! Когда есть пыхыпы 4 и он ничем не отличается,кроме как какого то странного слова "ООП" о_О
гыгыгыгыгыгыг,зачет вообще
Про ооп слышал?
И да - все дураки,что учат пхп 5 - ведь зачем?! Когда есть пыхыпы 4 и он ничем не отличается,кроме как какого то странного слова "ООП" о_О
1) Объектно ориентированное программирование
2) я не спорю что 5 хуже 4, конечно нет, но чтобы понять этот язык мне было достаточно софтаймовского мана.
.::f-duck::.
11.06.2010, 15:52
Axel G,не говори ерунду.
Давай так - ты учишь по тому устаревшому ману похапе и пишешь портал.
Потом просишь его протестировать,покажешь код - оценим.
Вот тогда поймешь,в чем соль!
Учить можно начинать с Д.Котеров ПХП 5 в подл. 2 издание,потом Гутманса ПХП 5 проф. программирование.
К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зээв Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности базиса кода PHP. Новый движок, названный Zend Engine, успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принёсший с собой набор дополнительных функций, официально вышел в мае 2000 года. В дополнение к улучшению производительности, PHP 4.0 имел ещё несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.
Сегодня ровно три года с момента выхода в свет PHP 5. За эти три года он стал гораздо лучше чем PHP 4. Так как PHP 5 — это быстрый, стабильный и надёжный язык, а так же в связи с приближающимся выходом PHP 6, разработка PHP 4 будет прекращена. Команда разработчиков PHP объявляет, что поддержка PHP 4 будет продолжаться только до конца этого года. После 31 декабря будут выпускаться только критические обновления безопасности до 8 августа 2008.
PHP 5 - 2004
Промежуток времени вообще не смущает? То,что разработчики уже давно забили на него - тоже?
Axel G,не говори ерунду.
Давай так - ты учишь по тому устаревшому ману похапе и пишешь портал.
Потом просишь его протестировать,покажешь код - оценим.
Вот тогда поймешь,в чем соль!
PHP 4 - 2004
Промежуток времени вообще не смущает? То,что разработчики уже давно забили на него - тоже?
Да мне то по большой разнице все-равно, просто нашел легко доступную литературу, немножко разобрался что такое пшп (первая глава), и сейчас примерами руководствуюсь при написании скриптов + если что не понятно, то в этой ветке спрашиваю = )
Всем спасибо, кто мне помог. Всем +
Сам книжек по программированию не читал когда знакомился с php, считаю практика самый лучший способ + если подкреплять вопросами с форума
Конечно, в любом деле необходима тренировка. Только нужно же с чего-то начинать, а то если вообще ничего не знаешь, как тренироваться...
-PRIVAT-
11.06.2010, 18:51
Посоветуйте простые PHP учебниками для новичков без наворотов.
что это за кодировка ?
"\u041d\u0435\u0432\u0456\u0440\u043d\u0438\u0439 \u0444\u043e\u0440"
Pashkela
11.06.2010, 19:48
украинская фигня какая-то, типо:
невiрний фор
нужен алфавит украинской кириллицы, или как там оно называется
как отключить global register off?
как отключить global register off?
Смотри php.ini, только называется это register globals, а не global register )
Создаешь htaccess.txt на рабочем столе и пишешь в нем:
php_flag register_globals off
php_value register_globals Off
сохраняешь и закачиваешь файл на сервер и переименовываешь его в .htaccess расширение .txt тоже убираем. Все готово теперь он откючен.
magic google !
']Создаешь htaccess.txt на рабочем столе и пишешь в нем:
php_flag register_globals off
php_value register_globals Off
сохраняешь и закачиваешь файл на сервер и переименовываешь его в .htaccess расширение .txt тоже убираем. Все готово теперь он откючен.
magic google !
и лежит хостинг
пробовал :(
Nightmarе
12.06.2010, 10:37
Небольшой вопрос по реализации AES-128 алгоритма на php, вот есть отличная функция дектипра\енкрипта:
http://forum.eugen.su/showthread.php?t=69
Почти то что мне надо, но есть солидный косяк, он не может работать с текстом более 16 символов, до 16 символов всё нормально шифрует\дешифрует, а вот с текстом побольше вообще никак не пашет, подскажите это можно как нибудь исправить? ведь этот алгоритм и файлы шифрует по сути, не то что какой то текст более 16 символов.
astrologer
12.06.2010, 12:04
Nightmarе, http://phpseclib.sourceforge.net/
Nightmarе
12.06.2010, 14:44
Nightmarе, http://phpseclib.sourceforge.net/
Спс, этот вариант рабочий, правда тут если пароль более хз скока символов, ну например 100 символов, то как бы его не менять, зашифрованное-бинарное значение не меняется почему-то, хотя пароли всегда разные...
astrologer
12.06.2010, 15:03
Спс, этот вариант рабочий, правда тут если пароль более хз скока символов, ну например 100 символов, то как бы его не менять, зашифрованное-бинарное значение не меняется почему-то, хотя пароли всегда разные...Из-за следующих строк ключ урезается:
// Crypt/Rijndael.php#908
$this->key = str_pad(substr($this->key, 0, $this->key_size), $this->key_size, chr(0));
// Crypt/AES.php#348
$this->key = substr($this->key, 0, $this->key_size);Мне непонятен их выбор, гораздо разумнее пропускать ключ через криптостойкую хеш-функцию.
Помогите написать скрипт по полному перебору пароля [0-9a-f]. длина пароля - 3 символа
mailbrush
12.06.2010, 19:13
Перебору пароля от чего?
как бы цикл.. начиная с 000 и заканчивая fff
Pashkela
12.06.2010, 19:53
<?php
$pass = "ad4";
$pass_length = strlen($pass);
$charset = 'abcdef0123456789';
$charset_length = strlen($charset);
function brute($password,$width, $position, $base_string,$alfa,$len){
for ($i = 0; $i < $len; ++$i) {
if ($position < $width - 1) {
brute($password,$width, $position + 1, $base_string . $alfa[$i],$alfa,$len);
}
if ($base_string . $alfa[$i] == $password) {
echo 'Пароль найден: '.$base_string . $alfa[$i]."\r\n";
exit;
}
}
}
brute($pass,$pass_length, 0, '',$charset,$charset_length);
echo "Пароль не найден(\r\n";
?>
Здравствуйте всем, появился вопрос, как сделать наложение картинки на картинку (своеобразный ватермарк)??
Скрипт аплоада сам создает такое изображение
http://ipicture.ru/uploads/100611/thumbs/H51orxCq6S.png (http://ipicture.ru/Gallery/Viewfull/413987.html)
Если юзер выбирает чекбокс, то надо на превью наложить http://ipicture.ru/uploads/100611/bSP3J7Q2Aj.png (http://ipicture.ru/Gallery/Viewfull/413988.html) чтобы в итоге получить
http://ipicture.ru/uploads/100612/thumbs/RGFU6Q78Rd.png (http://ipicture.ru/Gallery/Viewfull/423937.html)
Вот клиентская часть
<label><input type="radio" name="watermark_thumb" value="2">Увеличить</label>
Соответсвенно серверная
if ($_POST['watermark_thumb'] == "2") {
# вот с наложением никак не разберусь
# затем создаем превью (это код создания без лупы)
createthumb($imgf,$pictype,$thbf,$tsize,$tsize);
@chmod($thbf,0666);
include("thumbnail.php"); // отвечает за вывод кодов
}
изображение лупы лежит в папке /theme/magnifying_glass.png. Ширина миниатюрки также задается пользователем.
Здравствуйте всем, появился вопрос, как сделать наложение картинки на картинку (своеобразный ватермарк)??
Скрипт аплоада сам создает такое изображение
http://ipicture.ru/uploads/100611/thumbs/H51orxCq6S.png (http://ipicture.ru/Gallery/Viewfull/413987.html)
Если юзер выбирает чекбокс, то надо на превью наложить http://ipicture.ru/uploads/100611/bSP3J7Q2Aj.png (http://ipicture.ru/Gallery/Viewfull/413988.html) чтобы в итоге получить
http://ipicture.ru/uploads/100612/thumbs/RGFU6Q78Rd.png (http://ipicture.ru/Gallery/Viewfull/423937.html)
$image = imagecreatefrompng('http://ipicture.ru/uploads/100611/H51orxCq6S.png');//картинка
$watermark = imagecreatefrompng('http://ipicture.ru/uploads/100611/bSP3J7Q2Aj.png');//лупа
$ro=0;//отступ от правого края
$lo=0;//отступ сверху
$w = imagesx($image);//ширина картинки
$h = imagesy($image);//высота картинки
$ww = imagesx($watermark);//ширина лупы
$wh = imagesy($watermark);//высота лупы
imagecopy($image, $watermark, $w-$ww-$ro, $h-$wh-$lo, 0, 0, $ww, $wh);//копируем
#####вывод#########
header('Content-type: image/png');
imagepng($image);
#####/вывод#########
imagedestroy($image);
imagedestroy($watermark);
или через функцию , с поддержкой "multiextentions"
function watermark($src,$outtype,$wt,$x_offset=0,$y_offset= 0){
switch (strtolower(substr(strrchr($src,'.'),1))) {
case 'gif':$image=imagecreatefromgif($src);break;
case 'jpg':$image=imagecreatefromjpeg($src);break;
case 'jpeg':$image=imagecreatefromjpeg($src);break;
case 'png':$image=imagecreatefrompng($src);break;
}
switch (strtolower(substr(strrchr($wt,'.'),1))) {
case 'gif':$watermark=imagecreatefromgif($wt);break;
case 'jpg':$watermark=imagecreatefromjpeg($wt);break;
case 'jpeg':$watermark=imagecreatefromjpeg($wt);break;
case 'png':$watermark=imagecreatefrompng($wt);break;
}
$ro=$x_offset;//отступ от правого края
$lo=$y_offset;//отступ сверху
$w=imagesx($image);//ширина картинки
$h=imagesy($image);//высота картинки
$ww=imagesx($watermark);//ширина лупы
$wh=imagesy($watermark);//высота лупы
imagecopy($image, $watermark, $w-$ww-$ro, $h-$wh-$lo, 0, 0, $ww, $wh);//копируем
header('Content-type: image/'.strtolower($outtype));
switch (strtolower($outtype)) {
case "jpg":imagejpeg($image,null,100);break;
case "jpeg":imagejpeg($image,null,100);break;
case "gif":imagegif($image);break;
case "png":imagepng($image);break;
}
imagedestroy($image);
imagedestroy($watermark);
}
watermark('http://ipicture.ru/uploads/100611/H51orxCq6S.png','png','http://ipicture.ru/uploads/100611/bSP3J7Q2Aj.png',0,0);
Уфф, что-то я в конец запутался, подогнать никак не получается = (
Выкладываю весь исходный код скрипта [update].
<?php
/*
================================================== =====================
| Author: Axel G (14.06.2010)
|----------------------------------------------------------------------
| Special thanks to: Chaak, #Wolf#, wildshaman, roxblnfk, .::f-duck::.
|----------------------------------------------------------------------
| PHP: 5
|----------------------------------------------------------------------
| Coding Standard: PEAR
================================================== =====================
*/
function createThumb($name, $sourcetype, $filename, $new_w, $new_h)
{
if (($sourcetype==".jpg") || ($sourcetype==".jpeg")) {
$src_img=imagecreatefromjpeg($name);
} if ($sourcetype==".png") {
$src_img=imagecreatefrompng($name);
} if ($sourcetype==".gif") {
$src_img=imagecreatefromgif($name);
}
$thumb_q = $_POST['quality_thumb'];
$old_x = imageSX($src_img);
$old_y = imageSY($src_img);
if ($old_x > $old_y) {
$thumb_w = $new_w;
$thumb_h = $old_y*($new_h/$old_x);
}
if ($old_x < $old_y) {
$thumb_w = $old_x*($new_w/$old_y);
$thumb_h = $new_h;
}
if ($old_x == $old_y) {
$thumb_w = $new_w;
$thumb_h = $new_h;
}
$dst_img = ImageCreateTrueColor($thumb_w,$thumb_h);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thum b_w,$thumb_h,$old_x,$old_y);
if (($sourcetype==".jpg") || ($sourcetype==".jpeg")) {
imagejpeg($dst_img,$filename,$thumb_q);
} elseif ($sourcetype==".png") {
imagepng($dst_img,$filename);
} elseif ($sourcetype==".gif") {
imagegif($dst_img,$filename);
}
imagedestroy($dst_img);
imagedestroy($src_img);
}
// скрипт загрузки
include("config.php");
include("header.php");
if (isset($_POST['thumb'])) $tsize=intval($_POST['thumb']);
else exit;
if ($max_th<$tsize || $min_th>$tsize) {
echo "<p align=center><font size=4 color=red>Превью должно быть меньше $max_th, но больше $min_th пикселей !</font></p>";
include("footer.php");
exit;
}
if (!isset($_FILES['userfile'])) exit;
if (!is_uploaded_file($_FILES['userfile']['tmp_name'])) exit;
if ($_FILES['userfile']['size']>$max_size) {
echo "<p align=center>Файл слишком большой!</p>";
exit;
}
$pictype = "";
switch (strtolower($_FILES['userfile']['type'])) {
case "image/jpeg" :
$pictype = ".jpg";
break;
case "image/pjpeg":
$pictype = ".jpg";
break;
case "image/gif" :
$pictype = ".gif";
break;
case "image/png" :
$pictype = ".png";
break;
case "image/x-png":
$pictype = ".png";
break;
default :
$pictype = "";
break;
}
if ($pictype != "") {
do {
$uniq=md5(uniqid(rand(),1));
$srcfile=$path.$uniq.$pictype;
} while(file_exists($srcfile));
$res = copy($_FILES['userfile']['tmp_name'], $srcfile);
if (!$res) {
echo "<p align=center>Ошибка копирования файла на сервер!</p>";
exit;
}
@chmod($srcfile,0666);
$imgf = $path . $uniq . $pictype;
$thbf = $tpath . $uniq . $pictype;
$urlf = $domain . $path . $uniq . $pictype;
/* ################################################## ################################################## #######
// Инфа о картинке Start
$size = getimagesize($urlf); //функция возвращает размер картинки для тега img, т.е [0] - ширина, [1] - высота, [2] - тип изображения, [3] - [0] + [1]
$width = $size[0];
$height = $size[1];
$type = $size['mime'];
function getfs($urlf){
$headers = get_headers($urlf, 1);
return round(((int)$headers['Content-Length']/1024), 2); //размер в килобайтах
}
$weight = getfs($urlf);
echo "$width x $height ($weight KB)";
}
// Инфа о картинке End
// Start Zoom
$image = imagecreatefrompng($dst_img); // превью
$watermark = imagecreatefrompng("theme/magnifying_glass.png"); // лупа
$ro=0; //отступ от правого края
$lo=0; //отступ сверху
$w = imagesx($image); //ширина картинки
$h = imagesy($image); //высота картинки
$ww = imagesx($watermark); //ширина лупы
$wh = imagesy($watermark); //высота лупы
imagecopy($image, $watermark, $w-$ww-$ro, $h-$wh-$lo, 0, 0, $ww, $wh); // с наложением все понятно = )
header('Content-type: image/png'); // (отравка хттп-заголовка) имеет ли он смысл в моем коде??
imagepng($image); // вывод, все понятно, т.е. мне надо убрать imagepng и вместо imagecopy imagecopyresampled поставить, ведь так??
imagedestroy($image); // чистим память (превью)
imagedestroy($watermark); // чистим память (лупа)
// End Zoom
################################################## ################################################## ####### */
if ($_POST['create_thumb'] == "1") { // продолжаем создание миниатюры
// накладываем надпись
if ($_POST['watermark_thumb'] == "1") { // инфа
}
if ($_POST['watermark_thumb'] == "2") { // лупа
}
if ($_POST['watermark_thumb'] == "3") { // без надписи
createThumb($imgf, $pictype, $thbf, $tsize, $tsize);
@chmod($thbf,0666);
include("thumbnail.php");
}
} else { // юзер снял галку, значит
include("picture.php");
}
// если неверный формат файла
} else {
echo "<p align=center><font size=4 color=red>Формат файла не распознан!</font></p>";
include("footer.php");
exit;
}
include("footer.php");
?>
.::f-duck::.
13.06.2010, 22:29
Axel G,если я тебя правильно понял,то:
Создаешь пустой бокс,чуть больше картинки.
Потом записываешь в бокс 1 картинку,сверху еще 1,но с смещением.
м?
if ($sourcetype==".jpg" || $sourcetype==".jpeg"){
$src_img=imagecreatefromjpeg($name);
}
if ($sourcetype==".png"){
$src_img=imagecreatefrompng($name);
}
if ($sourcetype==".gif"){
$src_img=imagecreatefromgif($name);
}
Про elseif слышал?
if ($sourcetype==".jpg" || $sourcetype==".jpeg") { imagejpeg($dst_img,$filename,$thumb_q); }
elseif ($sourcetype==".png") { imagepng($dst_img,$filename); }
elseif ($sourcetype==".gif") { imagegif($dst_img,$filename); }
Слышал,но это дурной тон.
Надо ограничивать все это дело в {}
False:
$image = imagecreatefrompng("$dst_img");
True:
$image = imagecreatefriopmg($dst_img);
Короче,жутки у тебя говнокод.
.::f-duck::., это было в основе кода (из одного скрипта взял, он тупо создавал превьюшки и все) хотя сейчас вроде работает безотказно = ) А можешь хорошим манерам по коду подучить, я как могу, так и мыкаюсь, можно сказать практикуюсь сразу же. elseif - это да моя самопись уже. Спасиб те за критику, для меня сейчас это очень важно. И, соглашусь, с тем что я неопытный хомячок = )
А сам скрипт пишу для себя, стало интересно разобраться как это все работает, да и к тому же неплохая практика, соорудить персональный фотохостинг, вещь незаменимая оказывается, а доверия нынешним уж никакого нет. А так уже много чего сделал, осталось с превьюшками разобраться до конца, и еще бы хотелось такую штуку как на айпикчер, снизу превью инфа отображается, только оригинального изображения, а не миниатюрки = )
Ввиду всего, хотел бы вам всем сказать большое спасибо, что помогаете разобраться новичку, а тем более резко критикуете.
.::f-duck::.
14.06.2010, 11:13
Axel G,есть несколько стандартов:
http://pear.php.net/manual/en/standards.php
http://framework.zend.com/manual/en/coding-standard.html
http://www.dagbladet.no/development/phpcodingstandard/
http://www.evolt.org/article/PHP_coding_guidelines/18/60247/
Большинство выбирает или Пеар или Зенд.
Тут самому решать.
DrakonHaSh
14.06.2010, 13:59
помогите плиз с парочкой вопросов:
1. как сделать отдачу браузеру данных по мере работы скрипта ? [например так работает сервис http://scan.0day.in:8080 - скрипт работает n минут, но новые данные в окне постоянно появляются]
2. как сделать отмену уже "выведенных" данных ? [допустим у меня инклуд в логах, которые имеют размер 10 метров. каким кодом/способом можно отменить вывод этих данных [что-то по типу очистки буфера] ? ]
phpdreamer
14.06.2010, 14:01
Функции управления выводом
http://www.softtime.ru/group/id_group=12
DrakonHaSh
14.06.2010, 16:22
помогите плиз с парочкой вопросов:
1. как сделать отдачу браузеру данных по мере работы скрипта ? [например так работает сервис http://scan.0day.in:8080 - скрипт работает n минут, но новые данные в окне постоянно появляются]
2. как сделать отмену уже "выведенных" данных ? [допустим у меня инклуд в логах, которые имеют размер 10 метров. каким кодом/способом можно отменить вывод этих данных [что-то по типу очистки буфера] ? ]
=>
Функции управления выводом
http://www.softtime.ru/group/id_group=12
спасибо, с первым пунктом помог flush();
со вторым пунктом не одна из приведенных функций не прокатила :(
есть иные варианты ?
.::f-duck::., сенкс, ток http://pear.php.net/manual/ru/standards.php Перепишу по правилам, большое спасибо!
Я правильно понимаю что для работы с стандартом зенд, необходим установленный зенд-фреймворк (он входит в дефолтный дистриб пхп, или надо ставить дополнительно??), а для пеар необходим лишь простой дистриб пхп??
Axel G,если я тебя правильно понял,то:
Создаешь пустой бокс,чуть больше картинки.
Потом записываешь в бокс 1 картинку,сверху еще 1,но с смещением.
м?
if ($sourcetype==".jpg" || $sourcetype==".jpeg"){
$src_img=imagecreatefromjpeg($name);
}
if ($sourcetype==".png"){
$src_img=imagecreatefrompng($name);
}
if ($sourcetype==".gif"){
$src_img=imagecreatefromgif($name);
}
Эмм, честно сказать понятия не имею.
----------------------------------------------------
Подключение кода (including)
В тех местах, где вы используете подключение файлов других классов вне зависимости от условий, используйте конструкцию require_once(). Если же подключение файлов зависит от каких-либо условий, то следует использовать include_once(). В этом случае вы всегда будете уверены в том, что файлы подключаются только единожды.
include_once() и require_once() являются конструкциями, а не функциями. Вам не обязательно использовать скобки вокруг имени файла, который подключается.
Это получается вместо, например include("thumbnail.php"); надо прописывать include_once("thumbnail.php"); или проще include_once "thumbnail.php";
PS: обновил код выше (https://forum.antichat.ru/showpost.php?p=2203162&postcount=16346) в соответствии с стандартом.
FastFood
14.06.2010, 22:03
Собираюсь учить php, посоветуйте актуальную версию: 5.3 или же 5.2? Какие у них достоинства и минусы, различия?
phpdreamer
14.06.2010, 22:22
вот все отличия http://php.net/ChangeLog-5.php
странно что этот вопрос интересует человека, который только собирается учить пхп))
что касается посоветовать версию... зависит от того где этот код должен будет работать. Хостинги не спешат обновлять версии пхп.
Но лично я все равно ставлю себе последние версии... так как больше работаю со скриптами, а не с сайтами.
phpdreamer
14.06.2010, 23:19
=>
спасибо, с первым пунктом помог flush();
со вторым пунктом не одна из приведенных функций не прокатила :(
есть иные варианты ?
два:
1)AJAX
2)перезагрузка страницы
DrakonHaSh
15.06.2010, 00:33
2. как сделать отмену уже "выведенных" данных ? [допустим у меня инклуд в логах, которые имеют размер 10 метров. каким кодом/способом можно отменить вывод этих данных [что-то по типу очистки буфера] ? ]
=>
1)AJAX
2)перезагрузка страницы
ты даешь очень туманные ответы. можно поконкретнее, с примером конкретного кода ?
чтоб понятно было что я имею в виду. файл:
...10 МБ мусора... <?php мой код ?> ... еще немножко мусора
мне нужно "выкинуть" весь мусор до моего кода и вернуть только то, что вернет мой код +, возможно, мусор, который идет после кода, но его тоже было б хорошо убрать.
roxblnfk
15.06.2010, 02:07
в начале мусора ob_start(), после ob_clean()
Домашний Веб-сервер. Что выбрать Apache или IIS ??
Dark_cracker
15.06.2010, 03:42
со вторым пунктом не одна из приведенных функций не прокатила
есть иные варианты ?
unset() если правильно понял
roxblnfk
15.06.2010, 03:47
Домашний Веб-сервер. Что выбрать Apache или IIS ??
Apache однозначно. А если у тебя Win XP, то в IIS будет ограничение на 10 потоков (среднетяжёлая страница будет в дырах, а о пяти юзерах онлайн будешь просто мечтать)
phpdreamer
15.06.2010, 09:31
DrakonHaSh,
Как я вижу решение на AJAX:
создать нормальную хтмл страницу, со стилями и в конкретный div динамически подгружать данные через AJAX используя JSON. С определенным интервалом чистить innerHTML главного div'a
или удалять выборочно по div'aм внутри если у тебя там есть "мусор" и "не мусор"
Доброго времени суток, у меня вопрос.
Как сохранить php скрипт не выполняя его ?
То есть, есть скрипт site.ru/1.php, при его открытии он выдает значение "1", если клацнуть по линку с site.ru/index.php то он выдает значение "2". Так вот мне нужно скопировать (передрать) его без значений, то есть он мне нужен в таком виде в котором он лежит на хосте. права на нем или 644 или 777.
Спасибо!
если правильно понял бред описанный постом выше, ты хочешь сорцы удаленного пхп-скрипта.
Штатными средствами это анриал, т.к. исполняется пхп-скрипт на сервере, и ничего ты кроме конечного результата (вывода) ты не увидишь.
Да, ты правильно понял :)
Скрипт не как не зашифрован. Просто залит на фтп с правами 644.
То есть можно забить ? или всетаки есть какой-то способ ?
roxblnfk
16.06.2010, 01:58
зайти на фтп и слить оттуда :) (имея соответствующие права..), либо залить туда же (на фтп) другой скрипт, который при обращении через site.ru/script.php будет выводить содержимое 1.php и index.php ...
Ребят, гляньте function createThumb (https://forum.antichat.ru/showpost.php?p=2203162&postcount=16346)
Чет она нифига не правильно работает, гружу прозрачный пнг, скрипт его черным фоном возвращает, хотя не должон вообще с ним что-либо делать кроме пропорционального ресайза, никаких превращений. Никак не пойму что за это отвечает??
В том то и трабла что доступа к фтп нету :)
В общем бесполезно пытаться что-то придумать ? как-то вытащить исходник скрипта
первое что пришло в голову
http://www.securityfocus.com/bid/40760/exploit
ессесно только если nginx
roxblnfk
16.06.2010, 02:26
Alex G, а разве imagecopyresampled() должна учитывать прозрачность?
(можно попробовать imagealphablending(), но не уверен что на copy подействует)
roxblnfk, вы правы не подействовало, тогда как это можно реализовать?? А кстати сама функция правильно написана?? Или же, как выразились выше, говнокод??
roxblnfk
16.06.2010, 02:53
Axel G, в плане читабельности кода - по мне нормально.
Если нет стандартных функций для переноса картинки на картинку с учётом альфа-потока, то при необходимоси можно написать такую функцию вручную (работать, правда, будет медленно)
Для начала надо определиться, накладываемая кортинка будет SOLID или ALPHA (как GIF или PNG, проще говоря [у GIF нету полупрозрачных пикселей]).
Наложение SOLID картинки проще реализовать и работает быстрее (накладывать, используя маску).
принцип: разбить накладываемую картинку на массив (она не должна быть большой), дальше перебором массива наложить пиксели на большое изображение с учётом прозрачности, например по функции:
($C1+($C2-$C1)*$A)
$C1, $C2 - соответствующие цветовые потоки (r,g,b) картинок
$A- прозрачность пикселя первой картинки
Для реализации особых познаний не потребуется, имхо.
хмм, на производительности играть я не могу, нужен быстродействующий скрипт. А еще можете подсказать, как наложение лупы реализовать, меня imagedestroy($dst_img); особо беспокоит, это получается надо условия ставить в function createThumb иначе память будет освобождена, второй день уже мыкаюсь, а все безрезультатно.
if ($_POST['watermark_thumb'] == "2") { // лупа
}
а вот само наложение, подсобите советом, куда этот код надо вставлять, и что если надо дописать, а то запутался по коду уже = (
// Start Zoom
$image = imagecreatefrompng($dst_img); // превью
$watermark = imagecreatefrompng("theme/magnifying_glass.png"); // лупа
$ro=0; //отступ от правого края
$lo=0; //отступ сверху
$w = imagesx($image); //ширина картинки
$h = imagesy($image); //высота картинки
$ww = imagesx($watermark); //ширина лупы
$wh = imagesy($watermark); //высота лупы
imagecopy($image, $watermark, $w-$ww-$ro, $h-$wh-$lo, 0, 0, $ww, $wh); // с наложением все понятно = )
header('Content-type: image/png'); // (отравка хттп-заголовка) имеет ли он смысл в моем коде??
imagepng($image); // вывод, все понятно, т.е. мне надо убрать imagepng и вместо imagecopy imagecopyresampled поставить, ведь так??
imagedestroy($image); // чистим память (превью)
imagedestroy($watermark); // чистим память (лупа)
// End Zoom
Исходник #Wolf#:
$image = imagecreatefrompng('http://ipicture.ru/uploads/100611/H51orxCq6S.png');//картинка
$watermark = imagecreatefrompng('http://ipicture.ru/uploads/100611/bSP3J7Q2Aj.png');//лупа
$ro=0;//отступ от правого края
$lo=0;//отступ сверху
$w = imagesx($image);//ширина картинки
$h = imagesy($image);//высота картинки
$ww = imagesx($watermark);//ширина лупы
$wh = imagesy($watermark);//высота лупы
imagecopy($image, $watermark, $w-$ww-$ro, $h-$wh-$lo, 0, 0, $ww, $wh);//копируем
#####вывод#########
header('Content-type: image/png');
imagepng($image);
#####/вывод#########
imagedestroy($image);
imagedestroy($watermark);
roxblnfk
16.06.2010, 03:44
Если я правильно понял, то
if ($_POST['watermark_thumb'] == "2") { // лупа
$image = imagecreatefrompng($dst_img); // превью
$watermark = imagecreatefrompng("theme/magnifying_glass.png"); // лупа
$ro=0; //отступ от правого края
$lo=0; //отступ сверху
$w = imagesx($image); //ширина картинки
$h = imagesy($image); //высота картинки
$ww = imagesx($watermark); //ширина лупы
$wh = imagesy($watermark); //высота лупы
imagecopy($image, $watermark, $w-$ww-$ro, $h-$wh-$lo, 0, 0, $ww, $wh); // с наложением все понятно = )
header('Content-type: image/png'); // (отравка хттп-заголовка) имеет ли он смысл в моем коде??
// имеет, если выводится картинка
imagepng($image); // вывод, все понятно, т.е. мне надо убрать imagepng и вместо imagecopy imagecopyresampled поставить, ведь так??
// эээ.. чё? :) зачем imagecopyresampled ? оно же для наложения с изменением размера
imagedestroy($image); // чистим память (превью)
imagedestroy($watermark); // чистим память (лупа)
}
если гуглить водяную марку php:
http://www.codenet.ru/webmast/php/watermark/
http://jeka911.wordpress.com/2007/09/25/3_ways_to_add_watermark_to_image_in_php/
в общем много разной инфы
насчёт говнокодинга в createThumb()
POST запросы в функции подобного рода впихивать вредно, а если и надо, то лучше не
$thumb_q = $_POST['quality_thumb'];
а что-то типа:
$thumb_q = isset($_POST['quality_thumb']) ? intval($_POST['quality_thumb']) : 60;
Так же в параметры функции лучше вписывать ссылку на ресурс картинки а не путь до неё и тип (тип из имени и так определить можно, зачем его функции сообщать?)
Тут немного не ясно, как связан x и y (высота зависит от x, а длина от y)? oO (ну и elseif нагляднее и правильнее)
if ($old_x > $old_y){
$thumb_w = $new_w;
$thumb_h = $old_y*($new_h/$old_x);
}
if ($old_x < $old_y){....
roxblnfk
16.06.2010, 03:55
говоришь при ресайце заливается чёрным? вроде норм всё
[upd]
$image = imagecreatefrompng('http://ipicture.ru/uploads/100611/H51orxCq6S.png');//картинка
$watermark = imagecreatefrompng('http://ipicture.ru/uploads/100611/bSP3J7Q2Aj.png');//лупа
$ro=70;//отступ от правого края
$lo=30;//отступ сверху
$new_w=40;//длина лупы
$new_h=20;//вфсота лупы
$w = imagesx($image);//ширина картинки
$h = imagesy($image);//высота картинки
$ww = imagesx($watermark);//ширина лупы
$wh = imagesy($watermark);//высота лупы
if ($ww > $wh){
$thumb_w = $new_w;
$thumb_h = $wh*($new_h/$ww);
}elseif($ww < $wh){
$thumb_w = $ww*($new_w/$wh);
$thumb_h = $new_h;
}elseif($ww == $wh){
$thumb_w = $new_w;
$thumb_h = $new_h;
}
imagecopyresampled($image, $watermark, $w-$ww-$ro, $h-$wh-$lo, 0, 0, $thumb_w, $thumb_h,$ww,$wh);//копируем
#####вывод#########
header('Content-type: image/png');
imagepng($image);
#####/вывод#########
imagedestroy($image);
imagedestroy($watermark);
Есть 2 числа $a и $b, большое число это 100% ,нужно найти % меньшего числа в большем, как это можно сделать? И записать эти проценты в перемены $ap (% для $a) и $bp (% для $b)
Есть 2 числа $a и $b, большое число это 100% ,нужно найти % меньшего числа в большем, как это можно сделать? И записать эти проценты в перемены $ap (% для $a) и $bp (% для $b)
if($a>$b)
{
$ap = 100;
$bp = ($b/$a)*100;
}else{
$ap = ($a/$b)*100;
$bp = 100;
}
как-то так походу
FastFood
17.06.2010, 07:54
Всем привет, помогите с проблемой! Есть код
<html>
<head>
<title>First PHP script</title>
</head>
<body>
<?PHP
phpinfo();
echo "Hello";
?>
</body>
</html>
но по какой то причине он ничего не выдает на сервере, апач работает, ума не приложу в чем проблема? Вообще все что идет после тега <?php и до ?> не выводится на сервер, остается белая страница...И ещё вопрос как здесь на форуме выкладывать код чтобы он был как цитата, в рамке? Заранее спаибо!
SHiNiGaMi
17.06.2010, 09:24
Fastfood
1 расширение .php а не .html
2 [ php ] [/ php ]
Всем привет, помогите с проблемой! Есть код
<html>
<head>
<title>First PHP script</title>
</head>
<body>
<?PHP
phpinfo();
echo "Hello";
?>
</body>
</html>
но по какой то причине он ничего не выдает на сервере, апач работает, ума не приложу в чем проблема? Вообще все что идет после тега <?php и до ?> не выводится на сервер, остается белая страница...И ещё вопрос как здесь на форуме выкладывать код чтобы он был как цитата, в рамке? Заранее спаибо!
Сохраняй скрипт как название.php
нужна функция для изменения конфигов:
типа было $config['news'] = '10'; а заменит на $config['news'] = '15';
function change_config("$config['news']", "15")
{
...
}поможите?
.::f-duck::.
17.06.2010, 13:26
function changeConfig($config)
{
return $config;
}
...
$confg['news'] = cgangeConfig(15);
?
Давно на пыхе не писал
phpdreamer
17.06.2010, 13:29
нужна функция для изменения конфигов:
типа было $config['news'] = '10'; а заменит на $config['news'] = '15';
function change_config("$config['news']", "15")
{
...
}поможите?
какой вопрос такой и ответ
function change_config($param)
{
global $config['news'];
$config['news'] = $param;
return $param;
}
ЗЫ:
1)это бред
2)AtomoS, у Вас понимание вопроса на уровне "это магия"
.:[melkiy]:.
17.06.2010, 14:06
как установить Zip Compression в php?
//m0Hze пытался мне объяснить,но я не понял :(
phpdreamer
17.06.2010, 14:21
:.']как установить Zip Compression в php?
//m0Hze пытался мне объяснить,но я не понял :(
смотря что за ось
у мну в ubuntu так
sudo apt-get install libphp-pclzip
.:[melkiy]:.
17.06.2010, 14:25
смотря что за ось
у мну в ubuntu так
sudo apt-get install libphp-pclzip
как в убунту установить я нагуглил. у меня винда(
phpdreamer
17.06.2010, 15:19
тут все написано http://www.php.ru/manual/ref.zip.html
php_zip.dll скачать и прописать в php.ini
general.fox
17.06.2010, 15:24
Подкиньте статьи, мануалы, примеры реализации "тегов" для блога?
phpdreamer
17.06.2010, 15:37
Подкиньте статьи, мануалы, примеры реализации "тегов" для блога?
чтоб не изобретать корявый велосипед,
юзай готовый редактор... например, http://ckeditor.com/demo
ок. попробую понятнее растолковать.
есть файл с конфигами, мне нужно переписать его (не полностью, а частично)
функция должна найти конфиг, например $config['news'] = "50";
и переписать его, $config['news'] = "100";
при этом в функции я указываю что искать и что перезаписать..
ок. попробую понятнее растолковать.
есть файл с конфигами, мне нужно переписать его (не полностью, а частично)
функция должна найти конфиг, например $config['news'] = "50";
и переписать его, $config['news'] = "100";
при этом в функции я указываю что искать и что перезаписать..
function change_config($a,$b)
{
return str_replace($a.'=\''."([0-9]*)".'\'',"$a='$b'");
}
по идее как-то так, но я не уверен.
GrimmJow
17.06.2010, 17:23
Регистрирую почту в яндексе, делаю 2-й шаг. https://passport.yandex.ru/passport?mode=register&ncrnd=131152 (вот он)
Там есть скрытое поле "time":
<input type="hidden" name="time" value="" />
В поле значения нету, а сниффером увидел, что передается большое число.
Вопрос: как узнать, какое число необходимо поставить туда?
.::f-duck::.
17.06.2010, 17:25
Ну,это время,епты.
Вычисляешь время (ч:м:с) и передаешь в виде целочисленного типа.
phpdreamer
17.06.2010, 17:46
у Byte_ идея правильная, только preg_replace и регулярку нормальную...
GrimmJow
17.06.2010, 18:43
2 .::f-duck::.
Я догадался, что это время ) Но подставив - не сработало. Хотя, может я что напутал с этим... Можешь показать, как правиьно сделать?
2 .::f-duck::.
Я догадался, что это время ) Но подставив - не сработало. Хотя, может я что напутал с этим... Можешь показать, как правиьно сделать?
возможно время в unix формате подставляется
глянь http://www.php.net/manual/en/function.mktime.php
Помогите пожалуйста "с задачкой":
В массиве находится 15 ссылок, которые нужно добавить в отдельные текстовые файлы, в зависимости от значения $texturl.
//Например:
function kols( $texturl, $url )//Получаю нужное количество файлов
{
if ( count( $url ) <= $texturl ) {
$c = 1;
} else {
$c = round( $url / $texturl );
}
return $c;
}
$texturl=4;//Количество урлов на один текст
$url=15;//Всего урлов
$files=$d->list_files($dir);//Здесь у меня массив с файлами
И дальше что я только с циклами не делал, но мозг себе взорвал. Нужно пройтись циклом по всем файлам и разместить в каждом $texturl урлов, если их "не хватит", то добавить сколько есть.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot