Вы не зашли.
Главная » PHP » Общие вопросы по PHP
#1. Gemorroj Off (107)
Administrator
2011.06.19 11:11
Задаем вопросы по PHP.
Список хороших php библиотек: https://github.com/ziadoz/awesome-php.
Отредактировано Gemorroj (2014.11.14 17:05)
#2. POFIGISST Off (6)
Участник
2011.06.19 23:11
как из этого
Код:
span style="color: #0000BB"><?php ini_set('display_errors',0); ini_set ('register_globals', 0);session_name('SID'); session_start();############################################################################################$host= "gamerix.ru"; $path="/sms/?".$_SERVER ['QUERY_STRING'];$fp=fsockopen($host,80,$errno, $errstr,10);if(!$fp) { echo "$errstr ($errno)<br/>\n"; }else{$data = "";$post=0; foreach($_POST as $key=>$value){$post=1; $data.="&$key=$value";} if($data)$data=substr ($data,1);if($post) $headers = "POST $path HTTP/1.0\r\n";else$headers = "GET $path HTTP/1.0\r\n"; $headers.= "Host: $host\r\n";$headers.= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n";$headers.= "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1*;q=0.1\r\n";$headers.= "Accept-Encoding: utf-8\r\n";$headers.= "Accept-Language: ru, en;q=0.9\r\n";$headers.= "User-Agent: ".$_SERVER ['HTTP_USER_AGENT']."\r\n";if($post){ $headers.= "Content-type: application/x-www-form-urlencoded\r\n";$headers.= "Content-Length: ".strlen ($data)."\r\n";$headers.= "\r\n"; $headers.= $data;}else $headers.="\r\n";@fwrite($fp, $headers); while($file != "\r\n") $file = @fgets($fp, 128);$file = ''; while(!feof($fp)) $file.= @fgets($fp, 4096); @fclose($fp); }############################################################################################$file=preg_replace('|<!DOCTYPE(.*?)<hr class="dotted" />|is','</div>',$file);$file=preg_replace('|<img src="imgs/add(.*?)</div>|is','</div>',$file);$file=preg_replace('|<img src="imgs/top(.*?)</div>|is','</div>',$file);$file=preg_replace('|<img src="../themes/(.*?)</body>|is','</br><a href="/">На главную</a>',$file);$file = str_replace('<img src="imgs/accept_page.png" alt="img"/>','',$file);$file = str_replace('<img src="imgs/','<img src="http://gamerix.ru/sms/imgs/',$file);echo $file; ?>
кода,вырезать рекламу которая в верху?(((
#3. TLENS Off (14)
Moderator
2011.06.20 00:12
Щас
#4. POFIGISST Off (6)
Участник
2011.06.20 00:12
Пример этого граба))
#5. TLENS Off (14)
Moderator
2011.06.20 00:12
Код:
span style="color: #0000BB"><?php ini_set('display_errors',0); ini_set ('register_globals', 0);session_name('SID'); session_start();############################################################################################$host= "gamerix.ru"; $path="/sms/?".$_SERVER ['QUERY_STRING'];$fp=fsockopen($host,80,$errno, $errstr,10);if(!$fp) { echo "$errstr ($errno)<br/>\n"; }else{$data = "";$post=0; foreach($_POST as $key=>$value){$post=1; $data.="&$key=$value";} if($data)$data=substr ($data,1);if($post) $headers = "POST $path HTTP/1.0\r\n";else$headers = "GET $path HTTP/1.0\r\n"; $headers.= "Host: $host\r\n";$headers.= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n";$headers.= "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1*;q=0.1\r\n";$headers.= "Accept-Encoding: utf-8\r\n";$headers.= "Accept-Language: ru, en;q=0.9\r\n";$headers.= "User-Agent: ".$_SERVER ['HTTP_USER_AGENT']."\r\n";if($post){ $headers.= "Content-type: application/x-www-form-urlencoded\r\n";$headers.= "Content-Length: ".strlen ($data)."\r\n";$headers.= "\r\n"; $headers.= $data;}else $headers.="\r\n";@fwrite($fp, $headers); while($file != "\r\n") $file = @fgets($fp, 128);$file = ''; while(!feof($fp)) $file.= @fgets($fp, 4096); @fclose($fp); }############################################################################################$file=preg_replace('|<!DOCTYPE(.*?)<hr class="dotted" />|is','</div>',$file);$file=preg_replace('|<img src="imgs/add(.*?)</div>|is','</div>',$file);$file=preg_replace('|<img src="imgs/top(.*?)</div>|is','</div>',$file);$file=preg_replace('|<img src="../themes/(.*?)</body>|is','</br><a href="/">На главную</a>',$file);$file = str_replace('<img src="imgs/accept_page.png" alt="img"/>','',$file);$file = str_replace('<img src="imgs/','<img src="http://gamerix.ru/sms/imgs/',$file);$my_recklama = '<img src="http://gamerix.ru/themes/gamerix/a.png" alt=""> <a href="http://podsmotri.org">Русское порно</a> <br />';$file = preg_replace('/<img\ssrc="http:\/\/gamerix\.ru\/themes\/gamerix\/a\.png"\salt="">.*?<br\/>/', $my_recklama, $file);echo $file;
#6. POFIGISST Off (6)
Участник
2011.06.20 00:12
не убрало оно её(((
#7. TLENS Off (14)
Moderator
2011.06.20 01:01
Там моя ссылка стоит переправь на свою
#8. POFIGISST Off (6)
Участник
2011.06.20 01:01
точно))незаметил сначала , спасибоroll))
#9. TLENS Off (14)
Moderator
2011.06.20 01:01
Можешь оставить wink
#10. POFIGISST Off (6)
Участник
2011.06.20 01:01
TLENS написал:
Можешь оставить wink
на твой сайт без проблем wink
#11. POFIGISST Off (6)
Участник
2011.06.20 10:10
подскажите как у меня в топе http://mastop.ru можно сделать чтобы когда переходиш по счетчику с сайта,то попадало на ту страницу где находиться сайт,а не на главную?
Отредактировано POFIGISST (2011.06.20 10:10)
#12. Gemorroj Off (107)
Administrator
2011.06.20 10:10
код может дашь?
#13. POFIGISST Off (6)
Участник
2011.06.20 10:10
вот весь скрипт)))
Вложения
nTop_v1.2.2.zip 584kb [загрузок: 972]
Отредактировано Gemorroj (2011.06.20 10:10)
#14. Gemorroj Off (107)
Administrator
2011.06.20 10:10
прикрепи файл к посту и никогда не давай таких ссылок.
#15. POFIGISST Off (6)
Участник
2011.06.20 10:10
Gemorroj написал:
прикрепи файл к посту и никогда не давай таких ссылок.
сейчас прикреплю,а почему нельзя такие ссылки давать?))
Добавлено спустя   9 минут  6 секунд:
я немогу скачать,скорости нету((вообщем смотрите скрин(((только не смейтесь(((
Вложения
Пиздец.png 5kb {407x84} [загрузок: 1060]
#16. Gemorroj Off (107)
Administrator
2011.06.20 10:10
потому что потом эти ссылки будут мертвые.
#17. POFIGISST Off (6)
Участник
2011.06.20 11:11
не подумал об этом(( ночью прикреплю файл,так как сейчас скорости нету((
#18. TLENS Off (14)
Moderator
2011.06.21 00:12
У тебя по суте дела отключены глобальные переменные.
Замени файл go.php на этот.
Код:
span style="color: #0000BB"><?php############################Скрипт: Топ-Рейтинг ##Автор: SL_NeKrOmAnT ##Версия: 1.2.2(Free) ##ICQ: 313886 ##MAIL: maloy_s95@mail.ru ############################define('NTOP', 1);require_once('system/connect.php');require_once('system/core.php');require_once('system/function.php');$id = (int)$_GET['id'];if(!$id OR $id < 1) { exit('Не верно введен ID'); }$isset = mysql_query("SELECT * FROM `".$prefix."sait` WHERE `status` != '0' AND `id` = '".$id."'");if(mysql_num_rows($isset) == 0) { exit('Нет такого сайта!'); } $page = ceil(mysql_result(mysql_query("SELECT COUNT(*) FROM `".$prefix."sait` WHERE `status` = '1' AND `hosts` > '0' AND `id` = '".$id."'"), 0) / $page_top); $sait = mysql_fetch_array($isset); mysql_query("INSERT INTO `".$prefix."go` SET `id_sait` = '".$id."', `type` = 'in', `time` = '".time()."'"); mysql_query("UPDATE `".$prefix."sait` SET `in` = (`in` + 1), `all_in` = (`all_in` + 1) WHERE `id` = '".$id."'"); header('Location: http://'.$set['home'].'/index.php?page='.$page);?>
Добавлено спустя   2 минуты  37 секунд:
А хотя не должно но попробуй
#19. POFIGISST Off (6)
Участник
2011.06.21 02:02
TLENS спасибо больше)))все отлично работает)))я твой должник))
#20. Gemorroj Off (107)
Administrator
2011.06.21 10:10
скрипт требует включенных глобальных переменных?? O_o
#21. TLENS Off (14)
Moderator
2011.06.21 16:04
Gemorroj
Я полностью переписал функцию.
И оно у него заработало. А вообще да требует
Добавлено спустя   4 минуты  31 секунду:
И вообще что автор данного скрипта хотел от этого куска кода
Посмотрев на содержания таблицы
Код:
lt;?$page = ceil(mysql_result(mysql_query("SELECT COUNT(*) FROM `".$prefix."sait` WHERE `status` = '1' AND `hosts` > '0' AND `id` = '".$id."'"), 0) / $page_top);
Так как оно будет выводить или ноль или 1.
Отредактировано TLENS (2011.06.21 16:04)
#22. LooK Off (1)
Участник
2011.06.21 20:08
В таблице тем что лучше хранить ид юзера или сразу его ник?
#23. Gemorroj Off (107)
Administrator
2011.06.21 20:08
и то, и другое))))
#24. LooK Off (1)
Участник
2011.06.21 21:09
Gemorroj написал:
и то, и другое))))
А зачем тогда ид юзера?
#25. Gemorroj Off (107)
Administrator
2011.06.21 21:09
чтобы делать выборки по нему. и не факт что ник должен быть всегда уникальным.
#26. LooK Off (1)
Участник
2011.06.21 22:10
Gemorroj написал:
чтобы делать выборки по нему. и не факт что ник должен быть всегда уникальным.
Ага, ок.
А первый пост темы в таблице тем текстовым полем или пост_ид хранить?
#27. Gemorroj Off (107)
Administrator
2011.06.21 22:10
ниче не понял
#28. LooK Off (1)
Участник
2011.06.22 14:02
Посмотрите файл аплоада (на код не обращайте внимание, файл древний), он почему-то примерно больше 8-ми метров не грузит файл, а точнее страница грузится, но в конце ничего не возвращается и файла нигде нет. Максимальны размер на серве 32М
Код:
span style="color: #0000BB"><?phpif(function_exists('set_time_limit')) set_time_limit(0); $file = array(); if (isset($_POST['submit'])) { for($i = 0; $i < 5; $i++) { if(!empty($_FILES['add_file']['tmp_name'][$i])) { $id3->read($_FILES['add_file']['tmp_name'][$i]); $id3->study(); $file['name'][$i] = fil(pathinfo($_FILES['add_file']['name'][$i], PATHINFO_FILENAME), 'str'); $_FILES['add_file']['name'][$i] = preg_replace('/\0/s', '', $_FILES['add_file']['name'][$i]); $_FILES['add_file']['name'][$i] = str_replace(' ', '_', $_FILES['add_file']['name'][$i]); $ext = strtolower(pathinfo($_FILES['add_file']['name'][$i], PATHINFO_EXTENSION)); $exts=array("mp3"); if (!in_array($ext,$exts)) {$error=$error.'Извините, но формат <b>'.$ext.'</b> нельзя загружать на сервер!<br />';} $site = str_replace('www.', '', $_SERVER['HTTP_HOST']); $file['name_file'][$i] = str_replace('.', '_', $site).'_'.pathinfo(mb_strtolower(basename(fil(mb_substr(retranslit($_FILES['add_file']['name'][$i]),0,300), 'str'))), PATHINFO_FILENAME) . '_' . mt_rand(1, 99); //filename if (file_exists('../files/'.$file['name_file'][$i].'.mp3')) {$error=$error.'Такой файл уже существует!<br />';} if ($sql->query("SELECT `id` FROM `files` WHERE `name`='".$file['name'][$i]."'")->num_rows != 0) {$error=$error.'Такой файл уже существует (в базе)';} if (!empty($error)) {exit($error);} if (move_uploaded_file($_FILES['add_file']['tmp_name'][$i], '../files/'.$file['name_file'][$i].'.mp3')) { chmod('../files/'.$file['name_file'][$i].'.mp3',0777); if (!$sql->query("INSERT INTO `files` SET `filename`='".$file['name_file'][$i]."', `name`='".$file['name'][$i]."', `time_upload`='".time()."', `size`='".filesize('../files/'.$file['name_file'][$i].'.mp3')."', `count`='0'")) { unlink('../files/'.$file['name_file'][$i].'.mp3'); exit('<font color="red">Ошибка загрузки!</font>'); } $sql->query("INSERT INTO `svaz` SET `id_author`='$id', `id_song`='".$sql->insert_id."'"); } else {echo '<font color="red">Ошибка загрузки</font>';} } else continue; } echo 'Все супер'; }
#29. Gemorroj Off (107)
Administrator
2011.06.22 15:03
Код:
span style="color: #0000BB"><?phpini_set('php_value upload_max_filesize', '32M');ini_set('php_value post_max_size', '32M');
#30. LooK Off (1)
Участник
2011.06.22 15:03
Gemorroj написал:
Код:
span style="color: #0000BB"><?phpini_set('php_value upload_max_filesize', '32M');ini_set('php_value post_max_size', '32M');
Блин точно, про post_max_size забыл) Спс
#31. LooK Off (1)
Участник
2011.06.22 19:07
Код:
$headers = 'Content-type: text/html; charset="utf-8"\n';
$headers .= 'From : "Registration" <robot@'.$_SERVER['HTTP_HOST'].'>\n';
$tema = 'Registration on '.$_SERVER['HTTP_HOST'].' forum';
$headers .= 'Subject : '.$tema.'\n';
$text = 'Вы успешно зарегистриованы на форуме '.$_SERVER['HTTP_HOST'].', Форум by LooK<br/>
Ваш Логин : '.$_SESSION['login'].'<br/>
Ваш Пароль : '.$pass.'<br/>
Если вы не имеете отношения к письму, то просто - удалите его ;)';
mail($mail,$tema,$text,$headers);
В чем ошибка? Не отсылает письмо
Отредактировано LooK (2011.06.22 19:07)
#32. TLENS Off (14)
Moderator
2011.06.22 20:08
LooK[
Код:
lt;?function send_mime_mail($name_from, // имя отправителя $email_from, // email отправителя $name_to, // имя получателя $email_to, // email получателя $data_charset, // кодировка переданных данных $send_charset, // кодировка письма $subject, // тема письма $body // текст письма ) { $to = mime_header_encode($name_to, $data_charset, $send_charset). ' <' . $email_to . '>'; $subject = mime_header_encode($subject, $data_charset, $send_charset); $from = mime_header_encode($name_from, $data_charset, $send_charset).' <' . $email_from . '>'; if($data_charset != $send_charset) { $body = iconv($data_charset, $send_charset, $body); } $headers = "From: $from\r\n"; $headers .= "Content-type: text/plain; charset=$send_charset\r\n"; $headers .= "Mime-Version: 1.0\r\n";return mail($to, $subject, $body, $headers);}function mime_header_encode($str, $data_charset, $send_charset) { if($data_charset != $send_charset) { $str = iconv($data_charset, $send_charset, $str); } return '=?' . $send_charset . '?B?' . base64_encode($str) . '?=';}send_mime_mail('Письмо с сайта', 'help@podsmotri.org', 'Админ', '***@list.ru', 'UTF-8', // кодировка, в которой находятся передаваемые строки 'KOI8-R', // кодировка, в которой будет отправлено письмо 'Чел просит ответа номер '.$int, $message[0]);
#33. LooK Off (1)
Участник
2011.06.22 21:09
TLENS, все равно не приходит
#34. TLENS Off (14)
Moderator
2011.06.22 23:11
Значит проблемма на серверной стороне.
Функция iconv есть на сервере?
Добавлено спустя   3 минуты  19 секунд:
Кстати ip многих говнохостов забанены маилом
#35. TLENS Off (14)
Moderator
2011.06.23 00:12
Попробуй отправить на gmail
#36. LooK Off (1)
Участник
2011.06.23 10:10
Отправляю с локалки, и на gmail и на mail пробовал. iconv есть
#37. Gemorroj Off (107)
Administrator
2011.06.23 11:11
LooK, так может проблема в локалке? какой сервер стоит? не денвер случаем? там заглушка на email стоит, email складываются в папку /tmp/!sendmail/
#38. LooK Off (1)
Участник
2011.06.23 12:12
Gemorroj написал:
LooK, так может проблема в локалке? какой сервер стоит? не денвер случаем? там заглушка на email стоит, email складываются в папку /tmp/!sendmail/
Спасибо, незнал об этом) Проверил, действительно все письма там.
#39. LooK Off (1)
Участник
2011.06.23 22:10
Код:
rename('../files/'.$scan,'../files/'.$filename.'.mp3')
Не пашет почему-то, пробовал даже не с переменной, а любое имя - результат тот же.
Переменные точно содержат нужные значения.
Отредактировано LooK (2011.06.23 22:10)
#40. Gemorroj Off (107)
Administrator
2011.06.23 23:11
бля, что значит не пашет??? текст ошибки??
#41. LooK Off (1)
Участник
2011.06.23 23:11
Gemorroj написал:
бля, что значит не пашет??? текст ошибки??
false возвращает
#42. TLENS Off (14)
Moderator
2011.06.23 23:11
Доступ на запись есть?
Отредактировано TLENS (2011.06.23 23:11)
#43. LooK Off (1)
Участник
2011.06.23 23:11
TLENS написал:
Доступ на запись есть?
денвер
#44. TLENS Off (14)
Moderator
2011.06.23 23:11
/usr/local/apache/logs/error.log
Посмотри че там
#45. Gemorroj Off (107)
Administrator
2011.06.23 23:11
LooK,
Код:
print_r(error_get_last());
#46. LooK Off (1)
Участник
2011.06.24 09:09
Gemorroj написал:
LooK,
Код:
print_r(error_get_last());
Спс, помогло
#47. POFIGISST Off (6)
Участник
2011.06.24 18:06
как сделать в сеа,чтобы вместо первьюшек для тем,выводило скрины которые я закинул,то есть,первью делает не у всех тем,только у половины,поэтому  я убрал вывод его вообще,и хочу чтобы оно показывало вместо первью те скрины которые я закинул,только в уменьшенном размере))там где отмечено на рисунке должен быть скрин))
Вложения
скрин.PNG 93kb {1440x900} [загрузок: 1037]
#48. Gemorroj Off (107)
Administrator
2011.06.24 18:06
там же есть стандартная возможность скрины отображать, так и с темами.
#49. POFIGISST Off (6)
Участник
2011.06.24 18:06
ну их отображает,но это уже когда заходишь в инфо о файле,а я хочу чтоб сразу на странице где выводятся темы были показаны скрины ))вот типа как на скрине,только на скрине это картинки,и с темами хочу так же сделать))
Вложения
скрин2.PNG 165kb {1440x900} [загрузок: 1036]
#50. Gemorroj Off (107)
Administrator
2011.06.24 18:06
ну не помню) найди кусок кода который картинки отображает и замени на ручные скриншоты)
#51. POFIGISST Off (6)
Участник
2011.06.24 19:07
а там где темы у меня вообще картинок нету ))только ссылки "скачать" "скачать" и вот хочу чтобы над этими ссылками показывались скрины тем в размере например 80х60 ))
Добавлено спустя   3 минуты  49 секунд:
Код:
// Скиншот
$screen = $setup['spath'].substr($dir, strlen($setup['path'])) . '/' . $filename;
if (is_file($screen.'.gif')) {
echo '<hr noshade size="1" width="100%" class="hr"><strong>Скриншот:</strong><br><img style="margin: 1px;" src="'.$screen.'.gif" alt="screen">';
} elseif (is_file($screen.'.jpg')) {
echo '<hr noshade size="1" width="100%" class="hr"><strong>Скриншот:</strong><br><img style="margin: 1px;" src="'.$screen.'.jpg" alt="screen">';
}
 
$desc = $setup['opath'].substr($dir, strlen($setup['path'])).'/'.$filename.'.txt';
так выводит скрин в инфо о файле,а как в каталог всунуть этот код чтобы выводило скрин,я хз((
#52. TLENS Off (14)
Moderator
2011.06.26 05:05
Каким образом передать в конструктор класса переменные.
Например
$object = new My_class($var1, $var2);
Как их получить в в конструкторе?
#53. Gemorroj Off (107)
Administrator
2011.06.26 08:08
эм, так же как и в обычном методе.
public function __construct ($var1, $var2)
{

}
#54. TLENS Off (14)
Moderator
2011.06.26 09:09
спс. А то не знал с какой стороны подойти
#55. TLENS Off (14)
Moderator
2011.06.26 19:07
Проблема через крон не работает запись со MySQL
Логи в файлы записывает. Скрипт работает.
Но если через крон то записи не появляются.
Неужели надо ставить удаленный доступ?
Или проблемма в другом?
Да кстати свои логи стоят туда пишу mysql_error()
То пусто chdir Настроен правильно
#56. Gemorroj Off (107)
Administrator
2011.06.26 19:07
ну что за ошибка-то в mysql_error()
#57. TLENS Off (14)
Moderator
2011.06.26 19:07
В том то и дело что не пишет ничего.
А По каком адресу в debian лежат ошибки базы?
Мож туда заглянуть
#58. Gemorroj Off (107)
Administrator
2011.06.26 19:07
там где mysql стоит)
#59. TLENS Off (14)
Moderator
2011.06.26 20:08
mysql не наше зато цени что нашел
[Mon Jun 20 14:12:40 2011] [error] [client 66.249.66.233] File does not exist: /.../www/vsemp3.com/rkzyzlngjovl.html
[Mon Jun 20 14:12:41 2011] [error] [client 66.249.66.233] File does not exist: /.../www/vsemp3.com/iolqxifmu.html
[Mon Jun 20 15:19:22 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/phpmyadmin
[Mon Jun 20 15:19:22 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/phpMyAdmin
[Mon Jun 20 15:19:23 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/db
[Mon Jun 20 15:19:23 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/web
[Mon Jun 20 15:19:26 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/PMA
[Mon Jun 20 15:19:26 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/admin
[Mon Jun 20 15:19:26 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/dbadmin
[Mon Jun 20 15:19:26 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/PMA2006
[Mon Jun 20 15:19:26 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/pma2006
[Mon Jun 20 15:19:27 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/sqlmanager
[Mon Jun 20 15:19:27 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/mysqlmanager
[Mon Jun 20 15:19:27 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/p
[Mon Jun 20 15:19:27 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/PMA2005
[Mon Jun 20 15:19:28 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/pma2005
[Mon Jun 20 15:19:28 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/phpmanager
[Mon Jun 20 15:19:29 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/php-myadmin
[Mon Jun 20 15:19:29 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/phpmy-admin
[Mon Jun 20 15:19:29 2011] [error] [client 81.192.48.236] File does not exist: /.../www/vsemp3.com/mysql
Наивный
#60. Gemorroj Off (107)
Administrator
2011.06.26 20:08
ну такое почти на любом сайте можно в логах найти
#61. TLENS Off (14)
Moderator
2011.06.26 21:09
Хех сделал тестову таблицу все норм.
Ладно разберемся а пока месть поставлю на wget
#62. TLENS Off (14)
Moderator
2011.06.27 09:09
Есть какая то готовая функция на определение адреса сайта в сообщении?
Даже без http в начале когда то писал но она ужасная.
#63. Gemorroj Off (107)
Administrator
2011.06.27 10:10
эм... может не надо таких функций? на форуме работают bb-коды, ссылки можно писать через них, а автоопределение специально отключено.
#64. TLENS Off (14)
Moderator
2011.06.27 10:10
Да нет это я себе хочу в чат.
Просто на сайте когда то сделал чатик. То там ссылки за ссылками пошли
Добавлено спустя   2 минуты  56 секунд:
Вот кусок кода писал еще в том году на него страшно смотреть.
Код:
lt;? $domain=file('/home/poise764/public_html/chat/domain.dat'); // Список популярных доменных зон $dom=''; $c=count($domain); for($i=0; $i<$c; $i++){$b=trim($domain[$i]); if(strlen($b)>1){ $dom.=$b.'|';}} $dom=substr($dom,0,-1); setcookie("name_chat", $name_chat, time() + 3600 * 24 * 365, '/', ''); $_SESSION['name_chat']=$name_chat; $message_chat=preg_replace('/(http:\/\/){0,1}[a-zA_Z0-9\-\.]{3,20}\.('.$dom.')+.*\s/si',' <font color="#ff0000">[Не рекламь хуй]</font> ',' '.$message_chat.' '); $name_chat=preg_replace('/(http:\/\/){0,1}[a-zA_Z0-9\-\.]{3,20}\.('.$dom.')+.*\s/i',' <font color="#ff0000">[хуй]</font> ',' '.$name_chat.' ');
Отредактировано TLENS (2011.06.27 10:10)
#65. ByVlad Off (1)
Участник
2011.06.27 16:04
Вопрос по MySQL, очень надеюсь на вашу помощь.
Нужно составить запрос, который будет вытаскивать данные из таблицы сообщений, количества комментариев, и если количество
комментариев будет больше нуля - вытаскивать комментарии этих сообщений,
а так же вытягивать из таблицы пользователей логин и аватар создателя сообщения и создателя комментария
С дальнейшей возможностью вывода их в цикле, пример реализации - стена вконтакте

Структура БД:

Таблица сообщений - mems
Поля:
id
id_user
text
likes
time

Таблица комментариев - mems_comments
id
id_mems
id_user
text
time
#66. TLENS Off (14)
Moderator
2011.06.27 16:04
$q = mysql_query("SELECT * FROM `mems_comments` WHERE id_mems = 'Ид сообщения'");
$n = mysql_num_rows($q);
if ($n) {
    echo 'выводим';
}
Отредактировано TLENS (2011.06.27 16:04)
#67. ByVlad Off (1)
Участник
2011.06.27 16:04
TLENS, чувак, ты гений, но это не то, нужно сделать всё одним запросом к бд.
Отредактировано ByVlad (2011.06.27 16:04)
#68. TLENS Off (14)
Moderator
2011.06.27 16:04
smile
#69. Gemorroj Off (107)
Administrator
2011.06.27 16:04
Код:
SELECT `users`.*, `mems`.*, `mems_comments`.*, (COUNT(1) - 1) AS `cnt`
FROM `users`, `mems`
LEFT JOIN `mems_comments` ON `mems`.`id` = `mems_comments`.`id_mems`
WHERE `mems`.`id` = 1
AND `users`.`id` = `mems`.`id_user`;
единственное что .* нужно заменить на конкретные поля и задать им алиасы, а то они будут друг друга перекрывать.
#70. ByVlad Off (1)
Участник
2011.06.27 17:05
Gemorroj, как всегда спасибо smile.
#71. ByVlad Off (1)
Участник
2011.06.27 18:06
Gemorroj, всё бы хорошо, только этот запрос берет только одну запись из таблицы mems, а нужно все удовлетворяющие условию.
Немного подкорректировал запрос:
SELECT `users`.`login` AS `us_login`, `users`.`avatar` AS `us_avatar`,
`mems`.*, `mems_comments`.`text` AS `mc_text`, `mems_comments`.`time` AS `mc_time`, (COUNT(1) - 1) AS `cnt`
FROM `users`, `mems`
LEFT JOIN `mems_comments` ON `mems`.`id` = `mems_comments`.`id_mems`
WHERE `mems`.`id_user` = " . $query['id'] . "
AND `users`.`id` = `mems`.`id_user`
#72. Gemorroj Off (107)
Administrator
2011.06.27 18:06
Код:
GROUP BY `mems`.`id`
#73. ByVlad Off (1)
Участник
2011.06.27 18:06
Gemorroj, ага, оно, спасибо.
#74. POFIGISST Off (6)
Участник
2011.06.27 20:08
Блин,чет в топе не изменяет пр и тц  у сайтов если показатели ростут,например если при реге сайта было пр 0,то если оно у сайта повышается,то картинка с данными не изменяется(( в каком файле это нужно прописать?)))скрипт полностью прикрепляю к посту)))
Вложения
nTop_v1.2.2.zip 584kb [загрузок: 639]
#75. Gemorroj Off (107)
Administrator
2011.06.27 21:09
POFIGISST, ага щас все бросятся тебе топ переписывать.
#76. POFIGISST Off (6)
Участник
2011.06.27 21:09
я не просил переписывать,я просто спросил в каком файле "в каком файле это нужно прописать?)))" hmm
#77. ByVlad Off (1)
Участник
2011.06.27 23:11
Gemorroj, (COUNT(1) - 1) AS `cnt`
он должен подсчитать количество записей из таблицы mems_comments где `mems_comments`.`id_mems` = `mems`.`id`
но чет нифига не считает sad
и `users`.`login` AS `us_login`, `users`.`avatar` AS `us_avatar`
нужно ещё достать эти же данные, только `users`.`id` = `mems_comments`.`id_user`
#78. ByVlad Off (1)
Участник
2011.06.28 04:04
Gemorroj, ^^ вопрос больше неактуален)
Теперь новый вопрос, в цикличном выводе через {foreach} в smarty
в каждом выводимом объекте идет {php}{/php} в него нужно передать {$row.id}

как это сделать?
#79. Gemorroj Off (107)
Administrator
2011.06.28 11:11
ByVlad, начнем с того, что от {php}{/php} нужно бы отказаться. Иначе попахивает смешиванием логики и представления.
#80. ByVlad Off (1)
Участник
2011.06.28 12:12
Gemorroj, смотри, мне нужно сделать вывод записей с комментариями как вконтакте, у меня других вариантов нет.
Запрос тот я поправил, но там получалось что если комментария нет, то и записи из таблицы mems в массиве тоже нет.
#81. Gemorroj Off (107)
Administrator
2011.06.28 12:12
начнем с того, что нужно выложить свой код, еба. иначе что- то обсуждать бесполезно.
давай поправленный SQL запрос и smarty шаблон.
#82. ByVlad Off (1)
Участник
2011.06.28 12:12
Код:
SELECT (
SELECT COUNT(1) FROM `mems_comments` WHERE `id_mems` = `mems`.`id`
) AS `count`,
`users`.`login` AS `us_login`,
`users`.`avatar` AS `us_avatar`,
`mems`.`text` AS `mems_text`,
`mems`.`time` AS `mems_time`,
`mems_comments`.`text` AS `mc_text`,
`mems_comments`.`time` AS `mc_time`,
`mems_comments`.`id` AS `mc_id`
FROM `users`, `mems`, `mems_comments`
WHERE `mems`.`id_user` = 1
AND `users`.`id` = `mems_comments`.`id_user`
AND `mems_comments`.`id_mems` = `mems`.`id`
GROUP BY `mems`.`id`, `mems_comments`.`id` DESC LIMIT 1
Код:
span style="color: #0000BB"><?php// шаблон {foreach item=row from=$mems} <table id="{$row.id}"> <tr> <td valign="top"><div class="ava"><a href="/{$querylogin}"><img src="{if !empty($query.avatar)}/files/avatar/s_{$query.avatar}.jpg{else}/template/web/ru/user_mid.gif{/if}" alt="" /></a></div></td> <td valign="top" width="100%"><div class="test"><a href="/{$query.login}"><b>{$query.login}</b></a> {if $user.id == $query.id}<div style="float:right;"> <span class="del"><a href="/mems_delete_{$row.id}.html" title="Удалить запись">удалить</a></span> {if $row.id_added == 0}<span class="del"><a href="/mems_edit_{$row.id}.html" title="Редактировать запись">изменить</a></span>{/if}{/if}<br/></div><br/>{$row.text}<br/><span class="time"><a href="/mems_view_{$row.id}.html">{$row.time|clock}</a></span></div><!-- Комментарии, их нужно в цикле вывести ещё, но как? -->{if $row.count > 0}<div class="com_post_br"></div>{if $row.cnt > 3}<div class="comms">3 последних комментария из <a href="/mems_view_{$mems.id}.html">{$row.cnt}</a></div>{/if}<div class="fontsize"><a href="/{$row.us_login}"><b>{$row.us_login}</b></a> {$row.mc_text}<br /><span class="time">{$row.mc_time|clock}</span> <span class="del"><a href="/mems_comment_delete_{$row.mc_id}">x</a></span></div><div class="hr_"></div>{/if}<!-- Конец комментариев --><div class="hr_"></div> <span class="nr"><a title="Добавить комментарий" href="/{$query.login}?act=add_comment&amp;id={$row.id}#{$row.id}">прокомментировать</a></span> - <span class="nr"><a href="/{$query.login}?act=add_me&amp;id={$row.id}#{$row.id}">добавить себе</a></span> -<span class="nr"><a href="/{$query.login}?act=like&amp;id={$row.id}#{$row.id}">мне нравится </a></span> </td> </tr></table><div class="br_1"></div>{foreachelse}Нифига нету.{/foreach}
#83. Gemorroj Off (107)
Administrator
2011.06.28 12:12
{php}{/php} не вижу.
верни LEFT JOIN
#84. ByVlad Off (1)
Участник
2011.06.28 12:12
Gemorroj, я думал сделать в {php}{/php} цикл вывода с комментариями, так бы получалось ~5 запросов в цикле, при кешировании норм, у меня получилось только с обычным JOIN.
#85. ByVlad Off (1)
Участник
2011.06.28 13:01
Gemorroj, с {php}{/php}
Код:
{foreach item=row from=$mems}
<table id="{$row.id}">
<tr>
<td valign="top"><div class="ava"><a href="/{$querylogin}"><img src="{if !empty($query.avatar)}/files/avatar/s_{$query.avatar}.jpg{else}/template/web/ru/user_mid.gif{/if}" alt="" />
</a></div></td>
<td valign="top" width="100%"><div class="test"><a href="/{$query.login}"><b>{$query.login}</b></a> {if $user.id == $query.id}<div style="float:right;"> <span class="del"><a href="/mems_delete_{$row.id}.html" title="Удалить запись">удалить</a></span> {if $row.id_added == 0}<span class="del"><a href="/mems_edit_{$row.id}.html" title="Редактировать запись">изменить</a></span>{/if}{/if}<br/></div><br/>{$row.text}<br/>
<span class="time"><a href="/mems_view_{$row.id}.html">{$row.time|clock}</a></span></div>
<!-- Комментарии -->
{if $row.count > 0}
{php} $si = 0; {/php}
<div class="com_post_br"></div>
{if $row.cnt > 3}
<div class="comms">3 последних комментария из <a href="/mems_view_{$mems.id}.html">{$row.cnt}</a></div>
{/if}
{php}
global $isql,$tpl,$si;
$query = $isql -> cycle("SELECT `users`.`avatar` AS `us_avatar`, `users`.`login` AS `us_login`, `mems_comments`.*
FROM `mems_comments`,`users`
WHERE `users`.`id` = `mems_comments`.`id_user` AND `mems_comments`.`id_mems` = '".$mems['id']."'
ORDER BY `mems_comments`.`id` DESC LIMIT 3");
echo "SELECT `users`.`avatar` AS `us_avatar`, `users`.`login` AS `us_login`, `mems_comments`.*
FROM `mems_comments`,`users`
WHERE `users`.`id` = `mems_comments`.`id_user` AND `mems_comments`.`id_mems` = '".$si."'
ORDER BY `mems_comments`.`id` DESC LIMIT 3";
$si++;
print_r($tpl['tpl_vars']);
echo '<div class="fontsize">
<a href="/{$row.us_login}"><b>{$row.us_login}</b></a> {$row.mc_text}<br />
<span class="time">{$row.mc_time|clock}</span>
<span class="del"><a href="/mems_comment_delete_{$row.mc_id}">x</a></span>
</div>
<div class="hr_"></div>';
{/php}
{/if}
<!-- Конец комментариев -->
<div class="hr_"></div> <span class="nr"><a title="Добавить комментарий" href="/admin/comm681#681">прокомментировать</a></span> - <span class="nr"><a href="/admin/post/681">добавить себе</a></span> - <span class="nr"><a href="/admin/plus/681" onclick="get()">мне нравится </a></span> </td>
</tr>
</table><div class="br_1"></div>
{foreachelse}
 
{/foreach}
Отредактировано ByVlad (2011.06.28 13:01)
#86. ByVlad Off (1)
Участник
2011.07.01 15:03
^^ Все вопросы не актуальны big_smile
Нужно достать данные из таблицы mems где `id_user` равняется записям из таблицы follows, что-то такое написал, но естесна оно не работает)

Код:
SELECT `mems`.* FROM `mems` WHERE `mems`.`id_user` IN(SELECT `follows`.* FROM `follows` WHERE `follows`.`id_user` = 1) ORDER BY `mems`.`time` DESC
#87. Gemorroj Off (107)
Administrator
2011.07.01 15:03
Код:
SELECT `mems`.*
FROM `mems`
INNER JOIN `follows` ON `follows`.`id_user` = `mems`.`id`
ORDER BY `mems`.`id` DESC
#88. ByVlad Off (1)
Участник
2011.07.04 15:03
Нужно узнать id_user из трех таблиц mems, mems_comments, mems_likes
и отсортировать их по количеству записей для определенного id_user
как-то так.
#89. Вапамнет
Гость
2011.07.04 17:05
Привет. Как зделать чтоб в песне mр3 при скачеванию менялся альбом, название, исполнитель и т.д на адрес сайта ? Пример ссылки такой  site.ru/load.php?file=(адрес песни. например)wapinet.ru/music.mp3. Какой код нужна вписать в файл load.php чтоб изминить альбом, название и т.д?
#90. POFIGISST Off (6)
Участник
2011.07.04 17:05
Вапамнет написал:
Привет. Как зделать чтоб в песне mр3 при скачеванию менялся альбом, название, исполнитель и т.д на адрес сайта ? Пример ссылки такой  site.ru/load.php?file=(адрес песни. например)wapinet.ru/music.mp3. Какой код нужна вписать в файл load.php чтоб изминить альбом, название и т.д?
если у тебя сеа,то там есть возможность к всем мп3 устанавливать эти данные))
#91. POFIGISST Off (6)
Участник
2011.07.09 01:01
Помогите с мафией,у всех  она норм работает,а у меня там пустая страница((   тест акк что это может быть?
#92. TLENS Off (14)
Moderator
2011.07.10 09:09
\Но у меня не пустая
#93. Gemorroj Off (107)
Administrator
2011.07.10 10:10
POFIGISST, достаточно просто проверить html код валидатором, чтобы понять что из себя представляет скрипт wink
#94. POFIGISST Off (6)
Участник
2011.07.10 19:07
TLENS написал:
\Но у меня не пустая
все говорят что у них все нормик,а у меня пусто(( вот скрин прикрепляю))
Добавлено спустя   2 минуты  42 секунды:
Gemorroj написал:
POFIGISST, достаточно просто проверить html код валидатором, чтобы понять что из себя представляет скрипт wink
Это я согласен Паш))но от паблика не стоит ожидать что выложат хороший скрипт без ошибок и багов на халяву))Поэтому спасибо кодерам которые выкладывают хоть какие то скрипты в паблик(и тебе тоже спасибо) )))
Вложения
маффия.PNG 52kb {1440x900} [загрузок: 965]
#95. TLENS Off (14)
Moderator
2011.07.10 23:11
Сейс зайду по ftp к тебе гляну че там.\
Надеюсь пароль не поменял
Добавлено спустя   2 минуты  22 секунды:
А у тебя этот сайт на другом сервере. Покажи файл maf.php
#96. Gemorroj Off (107)
Administrator
2011.07.11 10:10
конкретно на той странице 500 ошибка. проверь синтаксис php кода.
#97. DarkRiDDeR Off (4)
Участник
2011.07.13 08:08
Помогите с запросом. Есть таблица
id | name | categor
Все данные в разброс, нужно выводить из определённой категории и повторяющиеся имена только один раз
пример:
2 | иван | mebel
3 | иван | paleno
4 | саня | mebel
5 | иван | mebel

Нужно только
2 | иван | mebel
4 | саня | mebel

Плохо в SQL шарю, простое что-нибудь запросто, а потяжелее не мого, помогите, если не троудно.
Отредактировано DarkRiDDeR (2011.07.13 08:08)
#98. Gemorroj Off (107)
Administrator
2011.07.13 10:10
GROUP BY name
#99. DarkRiDDeR Off (4)
Участник
2011.07.13 14:02
О, точно! И так просто. А то я уже в подзапросы полез. Спасибо!
#100. Anwap Off (0)
Участник
2011.07.13 22:10
Gemorroj, А как сделать чтоб в таблице постом выше еще и считало,например сколько mebel,сколько poleno?
#101. Gemorroj Off (107)
Administrator
2011.07.13 23:11
Anwap думаю, тут может помочь GROUP_CONCAT
#102. TLENS Off (14)
Moderator
2011.07.14 00:12
Как оптимизировать данный запрос?
А то выполняется пол минуты.
Код:
span style="color: #0000BB"><?php$q = mysql_query("SELECT * FROM `video` ORDER BY `id`");while($row = @mysql_fetch_array($q)) { mysql_query("UPDATE `video` SET `url_letit` = '" . (($arr[$row['id']]) ? $arr[$row['id']] : '') . "' WHERE id = '{$row['id']}'");}
Добавлено спустя   1 минуту  1 секунду:
В смысле можно ли его сделать одним запросом?
#103. Nu3oN Off (11)
Moderator
2011.07.14 01:01
Как комментируются константы в классах?
например свойства так:
Код:
span style="color: #0000BB"><?php /** * Переменная с настройками. * @var array */ private static $_arr;?>
как быть с константами?
Я буду лучше голоден, но между креслом и рулем и на дороге.
#104. Gemorroj Off (107)
Administrator
2011.07.14 10:10
TLENS, что в массиве $arr?
Nu3oN,
http://pear.php.net/manual/ru/standards.naming.php
Имена констант всегда должны быть в верхнем регистре с подчеркиваниями для разделения слов. В качестве префикса в именах констант должно использоваться имя пакета/класса, в котором они используются. Например, все константы, которые используются в пакете DB::, начинаются с "DB_".
пример (почему-то с синтаксической ошибкой php, но суть уловить можно) http://pear.php.net/manual/ru/standards.sample.php
Код:
span style="color: #0000BB"><?php/** * Methods return this if they succeed */define('NET_SAMPLE_OK', 1);
#105. TLENS Off (14)
Moderator
2011.07.14 13:01
Gemorroj написал:
что в массиве $arr?
Код:
span style="color: #0000BB"><?php$f = file('data_link.dat'); // ~70000 строк$arr = array();foreach ($f as $v) { preg_match('/id_(\d+)_-_/', $v, $b); if ($b[1]) $arr[$b[1]] = $v;}unset($f);
В общем ссылки
Отредактировано TLENS (2011.07.14 14:02)
#106. TLENS Off (14)
Moderator
2011.07.14 19:07
Паша а с каких айпишников идет спам?
Они разные?
#107. Gemorroj Off (107)
Administrator
2011.07.14 20:08
я не смотрел IP, особого труда удалить сообщение и забанить пользователя мне пока не составляет.
#108. TLENS Off (14)
Moderator
2011.07.14 20:08
Gemorroj =D
Добавлено спустя   4 минуты  46 секунд:
А как на счет оптимизации, с ним можно что то сделать?
Отредактировано TLENS (2011.07.14 20:08)
#109. TLENS Off (14)
Moderator
2011.07.15 03:03
Как насчет такого интелекта для вырезания ссылок?
Код:
lt;?$commit = preg_replace('/([\s"\'\(\{\|]{0,1})((https{0,1}:\/\/){0,1}(([a-z\-]){3,20}\.){1,5}[a-z]{2,6}[0-9a-z\/\?\.\-\~&;_=%:#\+]*)([\s"\'\)\}\|]{0,1})/usi', ' <font color="#f00">Ссылка вырезаная</font> ', $commit);
#110. Gemorroj Off (107)
Administrator
2011.07.15 10:10
хз) пробуй)
#111. TLENS Off (14)
Moderator
2011.07.15 16:04
Да попробуваль разные варианты да и множество текстов обработал вроде норм лишнего не хавает
#112. TLENS Off (14)
Moderator
2011.07.15 23:11
xavier053, Как ты уже задолбал
#113. Akdmeh Off (9)
Участник
2011.07.16 00:12
Tlens, удалил)
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#114. TLENS Off (14)
Moderator
2011.07.17 08:08
Есть возможность в php выполнить несколько операций одновременно?
#115. Gemorroj Off (107)
Administrator
2011.07.17 09:09
TLENS, нативно нет. можно извращаться всякими exec'ами.
#116. TLENS Off (14)
Moderator
2011.07.17 10:10
А можешь помочь в этом вопросе? А то я с exec практически не работал. А точнее вообще не работал.
#117. Gemorroj Off (107)
Administrator
2011.07.17 10:10
http://www.google.com/search?client=ope … el=suggest
#118. ByVlad Off (1)
Участник
2011.07.19 03:03
Вообщем нужно составить запрос сортировки пользователей по активности, что-то типа этого только нормальный:
SELECT * FROM `users` ORDER BY (SELECT COUNT(*) FROM `mems` WHERE `id_user` = что-то),(SELECT COUNT(*) FROM `mems_comments` WHERE `id_user` = что-то),(SELECT COUNT(*) FROM `mems_likes` WHERE `id_user` = чтото) DESC LIMIT 10

помогите пожалуйста)
Отредактировано ByVlad (2011.07.19 03:03)
#119. ByVlad Off (1)
Участник
2011.07.19 10:10
Вообщем я наверное неверно объяснил, есть 4 таблицы:

mems:
структура:
id
id_user
и ещё ненужные поля

mems_comments:
структура:
id
id_user
id_mems
и ещё ненужные поля

mems_likes:
структура:
id
id_user
id_mems
и ещё ненужные поля.

Нужно составить ТОП-10 самых активных пользователей исходя из количества записей в этих таблицах с приоритетом таблиц mems,mems_comments,mems_likes.

Таблица пользователей:
users:
id
login
и ещё ненужные поля.
#120. Gemorroj Off (107)
Administrator
2011.07.19 10:10
Код:
SELECT `users`.*,
(
(SELECT COUNT(1) FROM `mems` WHERE `id_user` = `users`.`id`) +
(SELECT COUNT(1) FROM `mems_comments` WHERE `id_user` = `users`.`id`) +
(SELECT COUNT(1) FROM `mems_likes` WHERE `id_user` = `users`.`id`)
) AS `cnt`
FROM `users`
ORDER BY `cnt` DESC LIMIT 10
#121. ByVlad Off (1)
Участник
2011.07.19 11:11
Gemorroj, ты гений, как всегда спасибо)
Добавлено спустя   6 минут  3 секунды:
Gemorroj, а ещё отдельную статистику реально сделать тоесть AS `cnt_mems`, пробовал, не получилось...
#122. POFIGISST Off (6)
Участник
2011.07.26 23:11
Поставил зц мобивап себе,а там ошибка вот такая "Warning: Invalid argument supplied for foreach() in /home2/d4cc1zrx/public_html/index.php on line 62" и я как обычно х\з как её исправить,выкладываю код страницы

Код:
span style="color: #0000BB"><?php/** * @author [FaNiska] * @copyright 2009 * Загруз центр * Предложения, идеи, вопросы и об ошибках писать в icq 65-64-538 или на mobi-m-ru@ya.ru */include 'inc/db_connect.php';include 'inc/function.php';include 'inc/set.php';include 'inc/head.php';/*echo '<div class="post">Реклама:<br />';include 'link.php'; include 'link.php'; echo '<hr /></div>';*//// ВЫВОД Разделовif ($index == 1 && !isset($_GET['c'])){ mysql_query("DELETE FROM `cache` WHERE `time` < " . ($time - ($setup['cache_time']) * 60 * 10) . " LIMIT 50"); $category = mysql_query("SELECT * FROM `category` ORDER BY `por`;"); echo '<table border="2" width="100%">'; while ($cat = mysql_fetch_array($category)) { if ($cat['s_name'] == 'vrazdel') { echo '<tr class="vraz"><td colspan="2"><img src="ico/' . $cat['ico'] . '.gif" alt="+" width="16" height="16" /> &nbsp; &nbsp; &nbsp;' . $cat['r_name'] . '</td></tr>'; } elseif ($cat['s_name'] == 'link') { $tid = explode('|', $cat['folder']); $link = mysql_fetch_array(mysql_query("SELECT * FROM `$tid[0]` WHERE `id`='$tid[1]';")); $count = explode('i', $link['p_i_f']); echo '<tr class="menu"><td><img src="ico/' . $cat['ico'] . '.gif" alt="+" width="16" height="16" /> <a href="?c=' . $tid[0] . '&amp;id=' . $tid[1] . '">' . $cat['r_name'] . '</a></td><td> [' . $count['0'] . $count['1'] . ']</td></tr>'; } elseif ($cat['s_name'] == 'vlink') { echo '<tr class="vraz"><td colspan="2"><img src="ico/' . $cat['ico'] . '.gif" alt="+" width="16" height="16" /> <a href="' . $cat['folder'] . '">' . $cat['r_name'] . '</a></td></tr>'; } else { $count = explode('i', $cat['p_i_f']); $cat['s_name'] = str_replace('files/', '', $cat['s_name']); echo '<tr class="menu"><td><img src="ico/' . $cat['ico'] . '.gif" alt="+" width="16" height="16" /> <a href="?c=' . $cat['s_name'] . '">' . $cat['r_name'] . '</a></td><td> [' . $count['0'] . $count['1'] . ']</td></tr>'; } } echo '</table>'; echo '<hr />'; echo '<div class="navi"><a href="stat.php">Статистика ЗЦ</a> : <a href="set.php">Настройки</a></div>'; /// Удаление временных файлов из папки temp/ $arr_temp = glob('temp/*'); $i = 0; foreach ($arr_temp as $value) { @unlink($value); $i++; if ($i > 50) { break; } }}/// ВЫВОД Категорийelseif (isset($_GET['c'])){ if ($id != 0) { $head_cat = mysql_fetch_array(mysql_query("SELECT `s_name`, `sizetime` FROM `$table` WHERE `id`='$id';")); } if (!is_dir($head_cat['s_name'] . '/')) { exit('Выбранный раздел не существует'); } if ($head_cat['sizetime'] < ($time - 3600)) { $allfiles = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `' . $table . '` WHERE `folder` LIKE "' . $head_cat['s_name'] . '%" AND `type`=2;')); $allfiles = $allfiles['0']; $allnew = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `' . $table . '` WHERE `folder` LIKE "' . $head_cat['s_name'] . '%" AND `type`=2 AND `up_time`>' . $new_time . ';')); $allnew = '/+' . $allnew['0']; if ($id != 0) { mysql_query("UPDATE `$table` SET `p_i_f`='" . $allfiles . "i" . $allnew . "', `sizetime`='$time' WHERE `id`=$id LIMIT 1;"); } else { mysql_query("UPDATE `category` SET `p_i_f`='" . $allfiles . "i" . $allnew . "', `sizetime`='$time' WHERE `s_name` = 'files/$table' LIMIT 1;"); } } ////////// START - ПОСТРАНИЧНАЯ НАВИГАЦИЯ $k_post = mysql_fetch_array(mysql_query('SELECT COUNT(`id`) FROM `' . $table . '` WHERE `id_p`=' . $id . '')); $k_post = $k_post['0']; $k_page = k_page($k_post, $step); $page = page($k_page); $start = $step * $page - $step; ////////// END - ПОСТРАНИЧНАЯ НАВИГАЦИЯ $parametr = "$table|$id|$sort|$p|$step|$page|$prev_set|$prev_w|$prev_h|$d_w|$d_h"; if (isset($_GET['set'])) { include 'inc/set_inc.php'; } else { echo "<div class='navi'> &raquo; <a href=\"?c=$table&amp;id=$list[id]&amp;sort=$sort&amp;p=$p&amp;step=$step&amp;page=$page&amp;set\">Настройки</a> : <a href='search.php?c=$table&amp;search'>Поиск</a><br /> &raquo; Самые: <a href='top.php?c=$table&amp;id=$id'>скачиваемые</a> : <a href='new.php?c=$table&amp;id=$id'>новые</a><br /> </div>"; } if (mysql_result(mysql_query("SELECT COUNT(*) FROM `cache` WHERE `parametr` = '$parametr' && `time` > " . ($time - ($setup['cache_time']) * 60) . ""), 0) == 0) { $s = mysql_query("SELECT * FROM `$table` WHERE `id_p`=$id ORDER BY `$sort` $por LIMIT $start, $step"); $content = '<table width="100%">'; while ($list = mysql_fetch_array($s)) { if ($list['type'] == 1) { $count = explode('i', $list['p_i_f']); $allfiles = $count['0']; $allnew = $count['1']; $list['r_name'] = str_replace('*', '', $list['r_name']); if ($list['gr_id'] > 0 && $list['gr_id'] < 6) { switch ($list['gr_id']) { // Стандартные иконки групп. Можете изменять тут. case '1': $ico = "<img src='ext/mo.gif' alt='+' width='16' height='16'/> "; break; case '2': $ico = "<img src='ext/jar.gif' alt='+' width='16' height='16'/> "; break; case '3': $ico = "<img src='ext/mp3.gif' alt='+' width='16' height='16'/> "; break; case '4': $ico = "<img src='ext/sis.gif' alt='+' width='16' height='16'/> "; break; case '5': $ico = "<img src='ext/3gp.gif' alt='+' width='16' height='16'/> "; break; } $content = $content . "<tr><td> $ico <a href='group.php?c=$table&amp;id=$list[id]'>$list[r_name]</a></td><td>[$allfiles$allnew]</td></tr>"; } else { $content = $content . "<tr><td><img src='ico/$list[ico].gif' alt='+' /> <a href='index.php?c=$table&amp;id=$list[id]'>$list[r_name]</a></td><td>[$allfiles$allnew]</td></tr>"; } } elseif (in_array($list['f_ras'], $arr_ext)) ////// ФИЛЬТР ПО РАСШИРЕНИЮ { $list['r_name'] = str_replace('*', '', $list['r_name']); if ($prev_set == 1 && isset($prev_h) && isset($prev_w)) { // Если предпросмотр включен if ($list['f_ras'] == 'jpg' || $list['f_ras'] == 'jpeg' || $list['f_ras'] == 'png' || $list['f_ras'] == 'gif') { $content = $content . "<tr class='block'><td colspan='2'> $list[r_name] <a class='info' href='file.php?c=$table&amp;id=$list[id]'>подробности</a></td></tr><tr><td class='img' width='$prev_w'><img src='image.php?c=$table&amp;id=$list[id]&amp;W=$prev_w&amp;H=$prev_h' alt='скачать " . $file_name . "'/> </td><td class='info'><a class='info' href='file.php?c=$table&amp;id=$list[id]'>$list[r_name]</a> " . size_file($list['size']) . "<br />"; if (function_exists('getimagesize')) { $img_size = getimagesize($list['s_name']); $x = "($img_size[0]x$img_size[1])"; } else { $x = ''; } $content = $content . "<a class='info' href='load_img.php?c=$table&amp;id=$list[id]'>Скачать оригинал $x</a><br /> Кол-во скачиваний: $list[count]<br />"; if (isset($d_w) && isset($d_h)) { $content = $content . '<a class=\'info\' href="image.php?c=' . $table . '&amp;id=' . $list['id'] . '&amp;act=d&amp;W=' . $d_w . '&amp;H=' . $d_h . '">Скачать ' . $d_w . 'x' . $d_h . '</a> </td></tr>'; } else $content = $content . "</td></tr>"; } elseif ($list['f_ras'] == '3gp' || $list['f_ras'] == 'mp4' || $list['f_ras'] == 'avi') // можете расширить сами если ваш хостинг поддерживает другие форматы { $content = $content . "<tr class='block'><td colspan='2'> $list[r_name] <a class='info' href='file.php?c=$table&amp;id=$list[id]'>подробности</a></td></tr><tr><td class='img' width='$prev_w'><img src='ffmpeg.php?c=" . $table . "&amp;id=" . $list['id'] . "&amp;W=" . $prev_w . "&amp;H=" . $prev_h . "&amp;k=20' alt='" . $list['r_name'] . " " . $list['f_ras'] . "'/></td><td class='info'>Размер: " . size_file($list['size']) . "<br /><a class='info' href='load.php?c=$table&amp;id=$list[id]'>Скачать $list[f_ras]</a><br /> Кол-во скачиваний: $list[count]</td></tr>"; } else { $screen = eregi_replace($list['f_ras'] . '$', '', $list['s_name']); $arr_sc = glob($screen . '*'); foreach ($arr_sc as $value) { if (eregi('\.gif$|\.png$|\.jpeg$|\.jpg$', $value)) { $img = "<img src=\"screen.php?file={$value}\" alt=\"\" />"; break; } else { $img = ''; } } if (!isset($img) || empty($img)) { $img = "<img src='ext/$list[f_ras].gif' alt='+' width='16' height='16'/>"; } $content = $content . "<tr class='block'><td colspan='2'> $list[r_name] <a class='info' href='file.php?c=$table&amp;id=$list[id]'>подробности</a></td></tr><tr><td class='img' width='$prev_w'>$img</td><td class='info'> Размер: " . size_file($list['size']) . "<br /> Скачиваний: $list[count]<br /> <a class='info' href='load.php?c=$table&amp;id=$list[id]'>скачать $list[f_ras]</a></td></tr>"; } } else { $content = $content . "<tr><td><img src='ext/$list[f_ras].gif' alt='+' width='16' height='16'/> <a href='file.php?c=$table&amp;id=$list[id]'>$list[r_name]</a></td><td>" . size_file($list['size']) . "</td></tr>"; } } } $content = $content . '</table>'; echo $content; include_once 'inc/str.php'; mysql_query("REPLACE INTO `cache` (`parametr`, `content`, `str`, `time`, `count`) VALUES ('$parametr', '" . mysql_real_escape_string($content) . "', '" . mysql_real_escape_string($str) . "', '$time', '1')"); } else { $cache = mysql_fetch_array(mysql_query("SELECT * FROM `cache` WHERE `parametr`='$parametr' LIMIT 1")); echo $cache['content'] . $cache['str']; }}echo '<div class="navi"><a href="http://mobiwap.su">wap знакомства на WapLover.Net</a><br />';echo '<b><a href="readme.php">Купить скрипт загруз центра</a></b></div><div>';include 'inc/foot.php';?>
валидатор показал что нет ошибок((
#123. TLENS Off (14)
Moderator
2011.07.26 23:11
POFIGISST написал:
валидатор показал что нет ошибок((
тут не в синтаксисе проблема.
Пустая переменная $arr_temp
Добавлено спустя   1 минуту  6 секунд:
т.е. $arr_temp = glob('temp/*');
не вернул нифига.
сейчас дам исправления
#124. POFIGISST Off (6)
Участник
2011.07.26 23:11
а что в ней должно находиться? или она вообще не должна существовать?))
#125. TLENS Off (14)
Moderator
2011.07.26 23:11
Код:
span style="color: #0000BB"><?php $arr_temp = glob('temp/*'); $i = 0; foreach ($arr_temp as $value) { @unlink($value); $i++; if ($i > 50) { break; } }
замени
Код:
span style="color: #0000BB"><?php $arr_temp = glob('temp/*'); $i = 0; if (is_array($arr_temp)) { foreach ($arr_temp as $value) { @unlink($value); $i++; if ($i > 50) { break; } } }
Отредактировано TLENS (2011.07.26 23:11)
#126. POFIGISST Off (6)
Участник
2011.07.26 23:11
спасибо Дим)))
#127. TLENS Off (14)
Moderator
2011.07.26 23:11
А хотя можно было просто вставить собаку перед foreach для заглушки эта ошибка не страшная просто нет файлов в папке temp
Добавлено спустя   8 минут  56 секунд:
POFIGISST написал:
а что в ней должно находиться
Глупый вопрос.
заходишь например на php.su кликаешь по ссылке функции по алфавиту и ищешь функцю glob, и смотриш что она должна вернуть
#128. TLENS Off (14)
Moderator
2011.08.03 21:09
Странно почему в ОПП переменная description не работает.
Код:
span style="color: #0000BB"><?phpclass Themes { public $title; public $nav; public $description = 1; public $content; public function __destruct () { global $_SET; $this->parse(); header("Content-type: text/html; charset=utf-8"); var_dump($this); //highlight_string($r); echo $r; } }
результат
Код:
object(Themes)#2 (4) {
["description"]=>
string(0) ""
}
["description"]=>string(0) "" вот почему?
В то время как
Код:
lt;?class Test { public $description = 1;}$test = new Test;var_dump($test);
Все норм.
Отредактировано TLENS (2011.08.03 22:10)
#129. Gemorroj Off (107)
Administrator
2011.08.03 22:10
здесь какой-то маразм, а не ООП.
начнем с того, что вот так "global $_SET;" никогда писать нельзя.
и результат - как ты его получил? может ты сам же description и обнулил.
#130. TLENS Off (14)
Moderator
2011.08.03 22:10
Не понял на счет global, Нужно было сразу в конструкторе принять нужные параметры с set/
Кстати да этот кла вовсе не клас просто совокупность функций. Писал его когда только начинал учить ООП.
Сейчас то уже понял для чего надо ООП.
Но все же я публике тоже ввел в переменную данные то нет их.
Отредактировано TLENS (2011.08.03 22:10)
#131. TLENS Off (14)
Moderator
2011.08.03 22:10
Ты был прав додумался пробить поиском description когда то тестил класс и стоит строчка $Themes->description = '';
Почему я о ней забыл. спс. уберу ту срань с форума. Надо бы и с сервера ее убрать.
#132. DarkRiDDeR Off (4)
Участник
2011.08.05 16:04
Народ как сделать в Mysql сортировку по русским буквам? С английским всё норм, а с русским проблы. Кодировка UTF-8
#133. Gemorroj Off (107)
Administrator
2011.08.05 17:05
DarkRiDDeR, подозреваю, что нихрена не utf-8. Потому как при корректной работе с кодировками, никаких проблем не возникает.
#134. DarkRiDDeR Off (4)
Участник
2011.08.06 06:06
Да при создании таблицы задал DEFAULT CHARSET utf8, всю запись вёл тоже с utf-8. Выводится всё норм, а сортировка что-то никак.
#135. Gemorroj Off (107)
Administrator
2011.08.06 09:09
соединение с бд должно быть еще настроено на работу с utf-8
#136. DarkRiDDeR Off (4)
Участник
2011.08.06 11:11
Кажись понял. Я не настраивал, что utf, и mysql при записи считал, что это latin1(по умолчанию), а записывалось utf. Поэтому при выводе всё норм, но при сортироке, mysql сортирует utf, как lаtin. Но как теперь от этого избавиться: данные, которые уже записаны, нужны?
#137. Gemorroj Off (107)
Administrator
2011.08.06 11:11
SET NAMES utf8
#138. DarkRiDDeR Off (4)
Участник
2011.08.06 12:12
Нет, это уже пробовал. Выходит: MySQL перекодирует, что в UTF, из latin1 в UTF. И получается воопще муть.
#139. Gemorroj Off (107)
Administrator
2011.08.06 22:10
DarkRiDDeR, твои проблемы) перводи бд в UTF-8
#140. DarkRiDDeR Off (4)
Участник
2011.08.07 05:05
Решил сделать так: сниму дамп в lаtin1 и запихну его, как utf8. Кстати, есть скрипт, который дамп снимает? Рhрmуаdmin не подходит.
#141. DarkRiDDeR Off (4)
Участник
2011.08.07 09:09
Фу-у... Рушил проблему. Хороший скрипт Sypex Dumper v.2.0.6 B (дампы делает). В нём снял дамп в latin1, а потом запихнул, как UTF8. Всё!!! Работает!!!
#142. Gemorroj Off (107)
Administrator
2011.08.07 10:10
почему phpmyadmin не подходит? лучшее что есть на php для работы с mysql.
#143. DarkRiDDeR Off (4)
Участник
2011.08.07 10:10
Sypex Dumper v.2.0.6 в 4 раза быстрее, если верить разработчику. phpmyadmin на хосте стоит, я сначала через него хотел дамп снять, но там только он в UTF8 даёт. И опять выходит: что хранится в UTF, перекодировается из latin в utf, как-то так. Главное проблему решил smile
#144. Gemorroj Off (107)
Administrator
2011.08.07 11:11
ну какая разница, отдаст оно тебе страницу, за 0.4 или 0.1 сек? возможностей-то у phpmyadmin не в 4, а в 1000 раз больше.
#145. DarkRiDDeR Off (4)
Участник
2011.08.07 11:11
Я не говорю, что он хуже, просто у него кракобязи на дампе были
#146. POFIGISST Off (6)
Участник
2011.08.11 00:12
помогите сделать приват в чате только с 50 постов,идет вот такая
Код:
echo "<select name=\"prvt\">";
echo "<option value=\"0\">Всем</option>";
echo "<option value=\"1\">Приватно</option>";
echo "</select><br/>";
кнопка переключатель,хочу чтоб из базы users['posts'] брало сколько у человека постов,и если меньше 50 постов,то срабатывала функция if else ,то есть,если постов 50 или больше,то в кнопке появляется "Приватно" а если же постов нету,то "Приватно" просто исчезает,и можно говорить только "всем" вот как это сделать?((
#147. TLENS Off (14)
Moderator
2011.08.11 00:12
POFIGISST очень просто.
Код:
span style="color: #0000BB"><?php$posts = 49; // в эту переменную вставь с базы количество постов юзера.$limit = 50; // Лимитif ($posts >= $limit) { echo "<select name=\"prvt\">"; echo "<option value=\"0\">Всем</option>"; echo "<option value=\"1\">Приватно</option>"; echo "</select><br/>";}// А также чтобы не было дырки вставь такое же возле приема поста.$posts = 49; // в эту переменную вставь с базы количество постов юзера.$limit = 50; // Лимитif ($posts >= $limit) { // разрешаем} else { // не разрешаем}
#148. POFIGISST Off (6)
Участник
2011.08.11 00:12
спасиб Дим,а "А также чтобы не было дырки вставь такое же возле приема поста." это где прием поста идет?((
#149. TLENS Off (14)
Moderator
2011.08.11 00:12
а я *** дай файл на который ссылается форма
Отредактировано TLENS (2011.08.11 00:12)
#150. POFIGISST Off (6)
Участник
2011.08.11 00:12
вот вся страница,теперь оно определяет сколько постов у того юзера которому я пишу,и если у него нету 50 постов,то я не могу ему в приват ответить,а он мне может если у меня больше 50 постов(


Код:
lt;?require'config.php';$user['avr'] = 0;$align='left';$title='Сказать';head();aut();if (!ctype_digit($_GET['rm'])){header('Location: index?'.SID);die;}if (!ctype_digit($_GET['nk'])){header('Location: index?'.SID);die;}$rm = intval($_GET['rm']);$nk = intval($_GET['nk']);who_add($rm,'room'); // Занисываем Кто онлайн...$db->sql_query ("Select rm from rooms where rm='".$rm."';");if (mysql_affected_rows() == 0){echo "Такой комнаты не существует!";foot();exit;}$select = @$db->sql_query ("Select * from users where id='".intval($nk)."'");if (mysql_affected_rows() == 0){echo "Юзер не найден. Возможно ник удалён.<br/>";echo gb.'<a href="room?rm='.$rm.'">В чат </a>'.div;foot();exit;}$inf = $db->sql_fetchrow ($select);if (ignor(user_inf($inf['id']),$user['id'])==1){echo 'Пользователь <b>'.$inf['user'].'</b> отправил вас в игнор!<br />';echo gb.'<a href="room?rm='.$rm.'">В чат </a>'.div;foot();exit;}$usid = $inf["id"];$nick = $inf["user"];$usname = $inf["name"];$birth = $inf["birth"];$sex = $inf["sex"];$city = $inf["city"];$mail = $inf["mail"];$site = $inf["site"];$infa = $inf["infa"];$icq = $inf["icq"];$credits = $inf["credits"];$gposts = $inf["gposts"];$status = $inf["status"];$date = $inf["date"];$op = $inf["op"];$onl = $inf["onl"];$mob = $inf["mob"];$us_ip = $inf["user_ip"];$us_soft = $inf["user_soft"];$img = $inf["img"];$nastroi = $inf["nastroi"];$visit = $inf["visit"];$room = $inf["room"];$byeotv = $inf["byeotv"];$number = $inf["number"];$level = $inf["level"];$fr = $inf["friends"];$mysmile = $inf["mysmile"];$votefoto = $inf["votefoto"];$ign = $inf["ignor"];$bee = $inf["site"];$myavatar = $inf["myavatar"];$version = $inf["version"];$postmag = $inf["postmag"];$alltraf = $inf["alltraf"];$postsf = $inf["postsf"];$idpass = $inf["pass"];$rating = $inf["rating"];$clan = $inf["clan"];$myblogs = $inf["myblogs"];$monets = $inf["money"];$presentset = $inf["presentset"];if ($credits>=0 && $credits<100) $victstatus="Ученик";if ($credits>=100 && $credits<500) $victstatus="Студент";if ($credits>=500 && $credits<1000) $victstatus="Бакалавр";if ($credits>=1000 && $credits<2000) $victstatus="Магистр";if ($credits>=2000 && $credits<5000) $victstatus="Кандидат в доктора";if ($credits>=5000 && $credits<7000) $victstatus="Доктор наук";if ($credits>=7000) $victstatus="Учитель НеЗнайки =)";$levelselect = @$db->sql_query ("Select * from levels where level='".$level."'");$levels = @$db->sql_fetchrow($levelselect);$levname = $levels["name"];echo "Сообщение для <b>".$nick."</b><br/>";if ($ver!='wml')echo '<form action="tell?rm='.$rm.'&amp;act=add&amp;nk='.$nk.'&amp;'.SID.'" method="post">';if ($ver=='wml')echo '<br/><input name="msg'.$ref.'" maxlength="512" title="Text"/><br/>';else echo '<br/><input type="text" name="msg" maxlength="512" title="Text"/><br/>';$posts = $inf["posts"]; // в эту переменную вставь с базы количество постов юзера.$limit = 50; // Лимит if ($posts >= $limit) { echo "<select name=\"prvt\">"; echo "<option value=\"0\">Всем</option>"; echo "<option value=\"1\">Приватно</option>"; echo "</select><br/>";} // А также чтобы не было дырки вставь такое же возле приема поста. $posts = $inf["posts"]; // в эту переменную вставь с базы количество постов юзера.$limit = 50; // Лимит if ($posts >= $limit) { // разрешаем} else { // не разрешаем}$posts = $inf["posts"];if ($user['dd']!=0){if ($user['level']>=4){echo '<select name="dd"><option value="0" selected="selected">Шрифт</option><option value="1">Наклонный</option>';if ($user['level']>=5) echo '<option value="2">Подчёркнутый</option>';if ($user['level']>=6) echo '<option value="3">Накл. и подч.</option>';if ($user['level']>=6) echo '<option value="4">Жирный</option>';if ($user['level']>=7) echo '<option value="5">Жирн. и подч.</option>';if ($user['level']>=7) echo '<option value="6">Огромный</option>';echo '</select><br />';}}if ($user['emo']!=0){echo '<select name="emo"><option value="0" selected="selected">Эмоции</option><option value="1">Радостно</option><option value="2">Печально</option><option value="3">Удивленно</option><option value="4">Ласково</option><option value="5">Смущенно</option><option value="6">Кокетливо</option><option value="7">Обиженно</option><option value="8">Настойчиво</option><option value="9">Шепотом</option><option value="10">Задумчиво</option><option value="11">Злобно</option></select><br />';}if ($user['color']!=0){echo '<select name="color"><option value="0" selected="selected">Цвет</option><option value="1">Красный</option><option value="2">Синий</option><option value="3">Сереневый</option><option value="4">Зеленый</option></select><br />';}if ($ver=='wml'){echo '<anchor title="go">Сказать<go href="tell?rm='.$rm.'&amp;act=add&amp;nk='.$nk.'&amp;'.SID.'" method="post">';echo '<postfield name="msg" value="$msg'.$ref.'"/><postfield name="dd" value="$dd"/><postfield name="emo" value="$emo"/><postfield name="color" value="$color"/><postfield name="prvt" value="$prvt"/></go></anchor><br />';}else{echo '<input type="submit" class="ibutton" value="Сказать"/></form><br />';}echo '<br />';$b_ip = $db->sql_fetchrow($db->sql_query ("Select * from bannip;"));$db->sql_query ("Select * from bannlist WHERE (ip = '".$inf[user_ip]."')and(soft = '".$inf[user_soft]."') LIMIT 1;");if ((mysql_affected_rows()!=0)||($inf[bann]>$time)||(substr_count($ip, $b_ip[ip])!=0)){echo "<font color=\"red\"><b>Пользователь в бане!</b></font><br />";}$k_g=$db->sql_fetchfield($db->sql_query("select count(*) as num from group_users where user_id = '".$inf['id']."' and access != '1'"),0);if($k_g!=0){echo '<dl></dl>';$r = $db->sql_query ("Select * from group_users where user_id = '".$inf['id']."' and access != '1' order by id LIMIT 100");while($a = @$db->sql_fetchrow($r)){$g = @$db->sql_fetchrow($db->sql_query ("Select * from groups where id = '".$a['gid']."'"));$lider = @$db->sql_fetchrow($db->sql_query ("Select * from groups where id = '".$g['id']."'"));echo 'В клане: <a href="/groups/group'.$g['id'].'">'.$g['name'].'</a><br>';if ($lider['lider_id']==$inf['id']) echo ' (<b>Лидер</b>)';echo '<br />';}}$sit = $_SERVER['HTTP_HOST'];if($inf['myavatar']!='')echo '<img src="http://'.$sit.'/'.$inf['myavatar'].'"><br>';$k_a = $db->sql_fetchfield($db->sql_query("select count(*) as num from foto_albom where user_id = '".$inf[id]."'"),0);if ($k_a!=0)echo links.' <a href="'.H.'album'.$inf[id].'">Альбомы ('.$k_a.')</a>'.div;$aud = $db->sql_fetchfield($db->sql_query("select count(*) as num from audio where user_id = '".$inf[id]."'"),0);if ($aud!=0)echo links.'f <a href="'.H.'audio'.$inf[id].'">Личный звук</a>'.div;echo "<u>Ник</u>: $inf[user]";if($onl+300>time()){echo" <u><img src='/img/online/on.gif'/></u><br/>";}else{echo" <u><img src='/img/online/off.gif'/></u></br>";}echo ' <u>Имя</u>: '.$inf[name].'<br/>';echo ' <u>Статус</u>: <b>'.$inf[status].'</b><br/>';if(($inf[level]>3)) echo " <u>Должность</u>: <b>$levname</b><br/>";if ($inf[sex]==1)echo " <u>Пол</u>: М<br/>";else if ($inf[sex]==0)echo " <u>Пол</u>: Ж<br/>";if($inf[day]!=0||$inf[month]!=0||$inf[year]!=0)echo " <u>Дата рождения</u>: $inf[day]-$inf[month]-$inf[year]<br/>";echo " <u>Постов</u>: $posts (+ ".$inf['dayp'].")<br>";echo " <u>Монеток</u>: $inf[rur]<br/>";if ($inf[para]>=1){if ($inf[sex]==0){echo ' <u><font color="black">Замужем за </font></u>: '.nik($inf[para]).' <br />'; }else{echo ' <u><font color="black">Женат на </font></u>: '.nik($inf[para]).' <br />'; }}$mail=explode('|',$inf['mail']);$mobtel=explode('|',$inf['mobtel']);$hometel=explode('|',$inf['hometel']);$icq=explode('|',$inf['icq']);if ($inf[site]!='' || $mail[0]!='' || $mobtel[0]!='' || $hometel[0]!='' || $icq[0]!=''){echo '<dl></dl>';if (($mail[0]!='') && (($mail[1]==0)||(friends($inf['id'],$user['id'])==1)))echo " <u>Email</u>: <a href=\"mail?to=$mail[0]\">$mail[0]</a><br/>";if (($mobtel[0]!='') && (($mobtel[1]==0)||(friends($inf['id'],$user['id'])==1)))echo " <u>Моб. телефон</u>: $mobtel[0]<br/>";if (($hometel[0]!='') && (($hometel[1]==0)||(friends($inf['id'],$user['id'])==1)))echo " <u>Дом. телефон</u>: $hometel[0]<br/>";if (($icq[0]!='') && (($icq[1]==0)||(friends($inf['id'],$user['id'])==1)))echo "<u>ICQ</u>: $icq[0]<br/>";if ($inf[site]!='')echo " <u>Вап-сайт</u>: <a href=\"http://$inf[site]\">http://$inf[site]</a><br/>";}echo " <u>О себе</u>: $infa<br/>";echo " <u>Дата реги</u>: $date<br/>";echo " <u>День рождения</u>: $inf[day]-$inf[month]-$inf[year]<br/>";echo " <u>Город</u>: $inf[city]<br/>";echo " <u>ID</u>: $inf[id]<br/>";echo '<br />';$k_st=$db->sql_fetchfield($db->sql_query("select count(*) as num from stena where user_id = '".$inf['id']."'"),0);$v0=$db->sql_fetchfield($db->sql_query("select count(*) as num from vote_us where user_id = '".$inf['id']."'"),0);echo links.' <a href="'.H.'stena'.$inf['id'].'">Стена '.$inf['user'].'</a> ('.$k_st.')'.div;$k_g = $db->sql_fetchfield($db->sql_query("select count(*) as num from gifts where gift_id = '".$inf['id']."'"),0);echo links.' <a href="gifts'.$inf['id'].'">Подарки '.$inf['user'].'</a>('.$k_g.')'.div;$usf = $db->sql_fetchfield($db->sql_query ("select count(*) as num from friends where user_id ='".$inf[id]."' and yes = '1';"),0);echo "<u><a href=\"my/friends?mod=friends&nk=$inf[id]\">Друзья ".$inf['user']."</a></u><br/>";if (friends($inf[id],$user['id'])==0)echo links.' <a href="my/friends?mod=add&act=add&nick='.$inf[id].'">В друзья</a><br><br>'.div;else echo links.' <a href="my/friends?del='.friends($inf[id],$user[id],'id').'">Из друзей</a><br><br>'.div;echo links.' <a href="my/privat?mod=add&to='.$inf[id].'">Написать ему(ей) письмо</a>'.div;if($user[level]>=7){echo '<br /><b><a href="admin/users?mod=view&amp;nick='.$inf[id].'">Апдейт юзера</a></b><br/><br />'; }if($user["level"]>5){if(($inf["level"]<7)||($user["level"]>6)){echo $div5;echo "<b>IP:</b> ".$us_ip." (".opsos($us_ip).")<br/>";echo "<b>Soft:</b> ".$us_soft."<br/>";if ($inf[ver]==wml) echo "<b>Версия сайта:</b> WML<br/>";else echo "<b>Версия сайта:</b> xHTML<br/>";echo $div5;}}/*echo "<a href=\"forum/?$ses&amp;nk=$usid&amp;mod=temus\">Все темы пользователя на форуме</a><br/>";echo "<a href=\"forum/?$ses&amp;nk=$usid&amp;mod=postus\">Все сообщения пользователя на форуме</a><br/>";*/echo gb.'<a href="room?rm='.$rm.'">В чат </a>'.div;foot();?>
#151. TLENS Off (14)
Moderator
2011.08.11 01:01
Ты уверен что такой столбец существует "posts"?
Что в столбце qposts?
Отредактировано TLENS (2011.08.14 08:08)
#152. POFIGISST Off (6)
Участник
2011.08.11 01:01
в столбце gposts пусто,а в столбце posts посты записаны, идет таблица users столбец posts  в ней))
#153. TLENS Off (14)
Moderator
2011.08.11 01:01
Ты не тот файл мне дал. дай тот куда отправляются данные
Отредактировано TLENS (2011.08.11 01:01)
#154. POFIGISST Off (6)
Участник
2011.08.11 01:01
Код:
lt;?require'config.php';aut();if (!ctype_digit($_GET['rm'])){header('Location: index');die;}$rm = check(intval($_GET['rm']));if (check(intval($_GET['del']))==1){if ($user['level']>=7){mysql_query("DELETE FROM `message` WHERE `rm` = '".$rm."'");}}who_add($rm,'room'); // Занисываем Кто онлайн...$rooms = mysql_fetch_array(mysql_query("SELECT * FROM `rooms` WHERE `rm` = '$rm'"));if (mysql_affected_rows() == 0){$align='center';$title='Ошибка!';head();echo 'Такой комнаты не существует!<br />';echo gbinroom.'<a href="enter">Прихожая</a>'.div;foot();}if ($rooms['intim']==1){if(!isset($_POST['inps']) && isset($_SESSION['inps']))$inps = check(intval($_SESSION['inps']));else $inps = check(intval($_POST['inps']));$_SESSION['inps'] = $inps;}if(empty($inps)) $inps = 0;if ($user['level']<$rooms['level']){$align='center';$title='Ошибка!';head();echo 'Извините, но в эту комнату Вам доступ запрешен!<br />';echo gbinroom.'<a href="enter">Прихожая</a>'.div;foot();}if (($rooms['sartir']!=1) && ($user['kik']>$time)){$align='center';$title='Вы выпнуты!';head();echo '<b>'.user($user['whokik']).'</b> выпнул вас из чата на <b>'.kikt($user['kik']).'</b> <br />Причина: <b>'.$user['whykik'].'</b><br />';$rooms = mysql_query("SELECT * FROM `rooms` WHERE sartir = '1' ORDER BY `pos` ASC");if(mysql_num_rows($rooms)!=0)echo 'Вам разрешен доступ только в<br />';while($room = mysql_fetch_array($rooms)){if ($room['level']<=$user['level'])echo '<a href="room?rm='.$room['rm'].'">'.$room['name'].'</a><br />';}echo '<br />';echo gbinroom.'<a href="enter">Прихожая</a>'.div;foot();}if ((check($_GET['sartir']==sartir))&&($rooms['sartir']==1)){$align='left';$title=$rooms['name'];head();echo '<b>Внимание!</b><br/>';echo 'Сейчас вы попадете в '.$rooms['name'].'<br/>Здесь вы можете делать все, что угодно (кроме рекламы и флуда).<br/>И за весь происходящий здесь беспредел администрация чата никакой ответственности не несет.<br/>Людям со слабыми нервами и тонкой душевной организацией заходить в '.$rooms['name'].' настоятельно не рекомендуется.<br/>';echo gbinroom.'<a href="room?rm='.$rm.'">Войти</a>'.div;echo gbinroom.'<a href="enter">Прихожая</a>'.div;foot();}if ((check($_GET['strip']==strip))&&($rooms['strip']==1)){$align='left';$title=$rooms['name'];head();echo '<center><a><img src="strip/xen/58.JPG" alt=""></a></center>';echo 'стриптиз команды <br/><br/>!хентай (1рубль)<br/>!мужик (1рубль)<br/>!баба (1рубль)<br/>!бомжую (бесплатно)<br/><br/>';echo 'дурь <br/><br/>!пива (1 рубль)<br/>!водки (2 рубля)<br/>!косяк (5 рублей)<br/>!лекарство (1 рубль)<br/>';echo gbinroom.'<a href="room?rm='.$rm.'">до +18 </a>после не входить</a>'.div;echo gbinroom.'<a href="enter">Прихожая</a>'.div;foot();}if ((check($_GET['zags']==zags))&&($rooms['zags']==1)){$zag= mysql_query ("Select * from zags WHERE `status` ='1' LIMIT 1 ");$zags = mysql_fetch_array ($zag);$align='left';$title=' '.$rooms['name'].'';head();if($zags[status]==1){require'sys/calendar.php';echo ' '.date("H:i", $time).' ';echo '<center><bgsound src="zags/logo.mid"loop="1"><a><img src="zags/zags.jpeg" alt=""></a></center>';echo 'Сейчас состоится священное таинство бракосочетания<br/>';echo links.'<a><img src="man.gif" alt=""></a> жених '.nik($zags[genix]).' '.div;echo links.'<a><img src="woman.gif" alt=""></a> невеста '.nik($zags[nevesta]).' '.div;echo ' свидетель '.nik($zags[svid]).' <br /> ';echo ' свидетельница '.nik($zags[svidet]).' <br /> ';echo 'дата свадьбы: '.$zags[d].'-'.$zags[m].'-'.$zags[g].' <br />';echo 'время: '.$zags[cm].':'.$zags[min].' <br />';echo 'ведущий: '.nik($zags[ved]).' <br /><br/>';echo gbinroom.'<a href="room?rm='.$rm.'">Войти</a>'.div;echo gbinroom.'<a href="enter">Прихожая</a>'.div;}else{echo '<b>Cейчас пока сюда нельзя. о начале проведения церемонии вам сообщат</b><br/>';echo gbinroom.'<a href="enter">Прихожая</a>'.div;}foot();}if (($rooms['intim']==1)&&((check($_GET['intim']==intim))||(empty($inps))||(strlen2($inps)<4)||($inps==0))){$align='left';$title=$rooms['name'];head();if ($ver!='wml')echo '<form action="room?rm='.$rm.'" method="post">';echo '* Ключ(min: 4):<br /><input name="inps" maxlength="30" title="Название"/><br/>';if ($ver=='wml'){echo '<br /><anchor title="go">Войти<go href="room?rm='.$rm.'" method="post"><br />';echo '<postfield name="inps" value="$inps"/></go></anchor><br />';}else{echo '<br /><input type="submit" class="ibutton" value="Войти"/></form><br /><br />';}echo '<b>*</b> Ключ должен быть длиннее 4 символов (латинских) и не должен состоять из одних 0<br />';echo gbinroom.'<a href="enter">Прихожая</a>'.div;foot();}$bs=explode('|',$user['binds']);$align='left';$title=$rooms['topic'].'-'.date("H:i", $time);head();if ($user['softk']!=1){if ($rooms['intim']!=1)echo '[<a href="who_room?rm='.$rm.'" accesskey="'.$bs[2].'">Кто в комнате?</a>]';echo '[<a href="who?rm='.$rm.'" accesskey="'.$bs[3].'">Кто где?</a>]';echo '[<a href="http://x4atix.ru/my/index.php">Личный кабинет</a>]';if ($user['level']>=4&&$rooms['intim']!=1)echo '[<a href="topic?rm='.$rm.'" accesskey="'.$bs[5].'">Топ</a>]<br />';}echo gbinroom.'<a href="tell?rm='.$rm.'" accesskey="'.$bs[0].'">Сказать ['.$bs[0].']</a><br>';if ($user['polevv']!=2&&$user['polevv']!=0){if ($ver!='wml')echo '<form action="tell?rm='.$rm.'&act=add" method="post">';if ($ver=='wml')echo '<input name="msg'.$ref.'" maxlength="512" title="Text"/><br/>';else echo '<input name="msg" maxlength="512" title="Text"/><br/>';if ($user['dd']!=0){if ($user['level']>=4){echo '<select name="dd"><option value="0" selected="selected">Шрифт</option><option value="1">Наклонный</option>';if ($user['level']>=5) echo '<option value="2">Подчёркнутый</option>';if ($user['level']>=6) echo '<option value="3">Накл. и подч.</option>';if ($user['level']>=6) echo '<option value="4">Жирный</option>';if ($user['level']>=7) echo '<option value="5">Жирн. и подч.</option>';if ($user['level']>=7) echo '<option value="6">Огромный</option>';echo '</select><br />';}}if ($user['emo']!=0){echo '<select name="emo"><option value="0" selected="selected">Эмоции</option><option value="1">Радостно</option><option value="2">Печально</option><option value="3">Удивленно</option><option value="4">Ласково</option><option value="5">Смущенно</option><option value="6">Кокетливо</option><option value="7">Обиженно</option><option value="8">Настойчиво</option><option value="9">Шепотом</option><option value="10">Задумчиво</option><option value="11">Злобно</option></select><br />';}if ($user['color']!=0){echo '<select name="color"><option value="0" selected="selected">Цвет</option><option value="1">Красный</option><option value="2">Синий</option><option value="3">Сереневый</option><option value="4">Зеленый</option></select><br />';}echo '<input type="submit" class="ibutton" value="Сказать"/></form><br />';}echo '<a href="room?rm='.$rm.'&obn=obn" accesskey="'.$bs[1].'">Обновить ['.$bs[1].']</a> '.div;if (check($_GET['obn'])==obn){header ('Location: room?rm='.$rm.''); exit;}if (empty($user['max'])) $user['max']=10;$max = $user['max'];$k_post=mysql_result(mysql_query("select COUNT(*) from message WHERE `rm` = '".$rm."' and `inps` = '".$inps."';"),0);$k_page=k_page($k_post,$max);$page=page($k_page);$start=$max*$page-$max;if ($k_post == 0)echo 'Здесь сообщений пока нет :(<br />';if (isset($_GET['err']) && $_GET['err'] == 't')echo '<b>Промежуток между сообщениями должен быть больше '.$rooms['flyd'].' сек.</b><br />';if (isset($_GET['delete'])){if ($user['level']>=5){mysql_query("DELETE FROM `message` WHERE `id` = '".$_GET['delete']."'");echo 'Сообщение удалено<br />';}else{echo 'Сообщение не удалено<br />';}}if ($rooms['umnik']!=0) require H.'bots/umnik1.php';if ($rooms['shut']!=0) require H.'bots/shut.php';if ($rooms['znatok']!=0) require H.'bots/znatok.php';if ($rooms['anek']!=0) require H.'bots/anek.php';if ($rooms['tupica']!=0) require H.'bots/umnikmat1.php';if ($rooms['tupica']!=0) require H.'bots/tupica.php';$mess = @mysql_query( @"SELECT * from `message` WHERE `rm` = '".$rm."' and `inps` = '".$inps."' order by id DESC limit $start, $max;" );while($msg = @mysql_fetch_array($mess)){$text = $msg['msg'];if ($msg['color']>0) $text = color_msg($text);if ($msg['bb']>0)$text = bb_msg($text);if ($msg['emo']>0)$text = emo_msg($text);if (($rooms['tupica']==0) && ($rooms['sartir']==0))if ($rooms['antim']>0)$text = antim($text);if ($rooms['antir']>0)$text = antir($text);if ($msg['komu']!=0) {if ($user['id']==$msg['komu']) $komu = '<span style="color: #FF0000;">'.user($msg['komu']).'</span>,';else $komu = user($msg['komu']).',';}else{$komu = '';}if ($msg['privat']==0){if ($msg['user_id']!=0)echo nik($msg['user_id'],''.H.'inside?rm='.$rm.'&nk='.$msg['user_id'].'').date("(H:i", $msg['time']).')';else echo '<img src="'.H.'img/bot.gif" alt="" /><font color="#000000">'.$msg['user'].'</font>'.date("(H:i", $msg['time']).')';if ($user['level']>=5)echo '<small><a href="room?rm='.$rm.'&delete='.$msg['id'].'">[X]</a></small>';echo '>'.$komu.text($text).'<br />';}else if ($msg['privat']==$user['id']||$msg['user_id']==$user['id']){if ($msg['user_id']!=0)echo nik($msg['user_id'],''.H.'inside?rm='.$rm.'&nk='.$msg['user_id'].'').date("(H:i", $msg['time']).')';else echo '<img src="'.H.'img/bot.gif" alt="" /><font color="#ffff00">'.$msg['user'].'</font>'.date("(H:i", $msg['time']).')';echo '<b>[P!]</b>';if ($user['level']>=5)echo '<small><a href="room?rm='.$rm.'&delete='.$msg['id'].'">[X]</a></small>';echo '>'.$komu.text($text).'<br />';} else if (($msg['privat']!=$user['id']||$msg['user_id']!=$user['id']) && $user['level']>=$set['privat'] && $set['privat']!=0){ // Чтение привата супер админами...if ($msg['user_id']!=0)echo nik($msg['user_id'],''.H.'inside?rm='.$rm.'&nk='.$msg['user_id'].'').date("(H:i", $msg['time']).')';else echo '<img src="'.H.'img/bot.gif" alt="" /><font color="#ffff00">'.$msg['user'].'</font>'.date("(H:i", $msg['time']).')';echo '<b>[!!!]</b>';if ($user['level']>=5)echo '<small><a href="room?rm='.$rm.'&delete='.$msg['id'].'">[X]</a></small>';echo '>'.$komu.text($text).'<br />';}}if ($user['polevv']!=1&&$user['polevv']!=0){echo gbinroom.'Сказать:'.div;if ($ver!='wml')echo '<form action="tell?rm='.$rm.'&act=add" method="post">';if ($ver=='wml')echo '<input name="msg'.$ref.'" maxlength="512" title="Text"/><br/>';else echo '<input name="msg" maxlength="512" title="Text"/><br/>';if ($user['dd']!=0){if ($user['level']>=4){echo '<select name="dd"><option value="0" selected="selected">Шрифт</option><option value="1">Наклонный</option>';if ($user['level']>=5) echo '<option value="2">Подчёркнутый</option>';if ($user['level']>=6) echo '<option value="3">Накл. и подч.</option>';if ($user['level']>=6) echo '<option value="4">Жирный</option>';if ($user['level']>=7) echo '<option value="5">Жирн. и подч.</option>';if ($user['level']>=7) echo '<option value="6">Огромный</option>';echo '</select><br />';}}if ($user['emo']!=0){echo '<select name="emo"><option value="0" selected="selected">Эмоции</option><option value="1">Радостно</option><option value="2">Печально</option><option value="3">Удивленно</option><option value="4">Ласково</option><option value="5">Смущенно</option><option value="6">Кокетливо</option><option value="7">Обиженно</option><option value="8">Настойчиво</option><option value="9">Шепотом</option><option value="10">Задумчиво</option><option value="11">Злобно</option></select><br />';}if ($user['color']!=0){echo '<select name="color"><option value="0" selected="selected">Цвет</option><option value="1">Красный</option><option value="2">Синий</option><option value="3">Сереневый</option><option value="4">Зеленый</option></select><br />';}if ($ver=='wml'){echo '<anchor title="go">Сказать<go href="tell?rm='.$rm.'&act=add" method="post">';echo '<postfield name="msg" value="$msg'.$ref.'"/><postfield name="dd" value="$dd"/><postfield name="emo" value="$emo"/><postfield name="color" value="$color"/></go></anchor>';echo '<br/>';}else{echo '<input type="submit" class="ibutton" value="Сказать"/></form><br />';}}echo gbinroom;if(check($_GET['histiri'])==histiri){str(H.'room?rm='.$rm.'&histiri=histiri&',$k_page,$page);}else{echo '<a href="room?rm='.$rm.'&histiri=histiri" accesskey="'.$bs[6].'">История ['.$bs[6].']</a>';}echo div;if ($user['softk']!=0){if ($ver=='wml'){if ($rooms['intim']!=1)echo '<do type="options" name="who_room" label="Кто в комнате?"><go href="who_room?rm='.$rm.'"/></do>';echo '<do type="options" name="who" label="Кто где?"><go href="who?rm='.$rm.'"/></do><do type="options" name="smiles" label="Смайлы"><go href="smiles/index?rm='.$rm.'"/></do>';if ($user['level']>=4&&$rooms['intim']!=1)echo '<do type="options" name="topic" label="Сменить Топик"><go href="topic?rm='.$rm.'"/></do>';if ($user['level']>=7)echo '<do type="options" name="topic" label="Очистить комнату"><go href="room?rm='.$rm.'&del=1"/></do>';echo '<br />';}else{if ($rooms['intim']!=1)echo '[<a href="who_room?rm='.$rm.'" accesskey="'.$bs[2].'">Кто в комнате?['.$bs[2].']</a>]';echo '[<a href="who?rm='.$rm.'" accesskey="'.$bs[3].'">Кто где?['.$bs[3].']</a>][<a href="smiles/index?rm='.$rm.'" accesskey="'.$bs[4].'">Смайлы['.$bs[4].']</a>]';if ($user['level']>=4&&$rooms['intim']!=1)echo '[<a href="topic?rm='.$rm.'" accesskey="'.$bs[5].'">Сменить Топик['.$bs[5].']</a>]<br />';if ($user['level']>=7)echo '[<a href="room?rm='.$rm.'&del=1">Очистить комнату</a>]<br />';}}if ($rooms['intim']==1)echo gbinroom.'<a href="enter?intim">Выйти</a>'.div;echo gbinroom.'<a href="enter" accesskey="'.$bs[7].'">Прихожая ['.$bs[7].']</a>'.div;foot();?>
вот файл комнат,в него данные которые юзер пишет отправляются))
#155. TLENS Off (14)
Moderator
2011.08.11 01:01
И это не он коточь там поидее реврайт стоит. дай мне файл на который ссылается tell и что в config.php?
#156. POFIGISST Off (6)
Участник
2011.08.11 01:01
Вот файл телл,он ссылается на переменную rm

Код:
lt;?require'config.php';$user['avr'] = 0;$align='left';$title='Сказать';aut();head();$act = check($_GET['act']);$rm = intval($_GET['rm']);if (empty($rm)) header ('Location: enter');$rooms = mysql_fetch_array(mysql_query("SELECT * FROM `rooms` WHERE `rm` = '$rm'"));if ($rooms['intim']==1){if(!isset($_POST['inps']) && isset($_SESSION['inps']))$inps = check(intval($_SESSION['inps']));else $inps = check(intval($_POST['inps']));$_SESSION['inps'] = $inps;}if(empty($inps)) $inps = 0;if (($rooms['sartir']!=1) && ($user['kik']>$time)){echo '<b>'.user($user['whokik']).'</b> выпнул вас из чата на <b>'.kikt($user['kik']).'</b> <br />Причина: <b>'.$user['whykik'].'</b><br />';$rooms = mysql_query("SELECT * FROM `rooms` WHERE sartir = '1' ORDER BY `pos` ASC");if(mysql_num_rows($rooms)!=0)echo 'Вам разрешен доступ только в<br />';while($room = mysql_fetch_array($rooms)){if ($room['level']<=$user['level'])echo '<a href="room?rm='.$room['rm'].'">'.$room['name'].'</a><br />';}echo '<br />';echo gbinroom.'<a href="enter">Прихожая</a>'.div;foot();}if (empty($act)){if ($ver!='wml')echo '<form action="tell?rm='.$rm.'&amp;act=add" method="post">';if ($ver=='wml')echo '<br/><input name="msg'.$ref.'" maxlength="512" title="Text"/><br/>';else echo '<br/><input name="msg" maxlength="512" title="Text"/><br/>';if ($user['dd']!=0){if ($user['level']>=4){echo '<select name="dd"><option value="0" selected="selected">Шрифт</option><option value="1">Наклонный</option>';if ($user['level']>=5) echo '<option value="2">Подчёркнутый</option>';if ($user['level']>=6) echo '<option value="3">Накл. и подч.</option>';if ($user['level']>=6) echo '<option value="4">Жирный</option>';if ($user['level']>=7) echo '<option value="5">Жирн. и подч.</option>';if ($user['level']>=7) echo '<option value="6">Огромный</option>';echo '</select><br />';}}if ($user['emo']!=0){echo '<select name="emo"><option value="0" selected="selected">Эмоции</option><option value="1">Радостно</option><option value="2">Печально</option><option value="3">Удивленно</option><option value="4">Ласково</option><option value="5">Смущенно</option><option value="6">Кокетливо</option><option value="7">Обиженно</option><option value="8">Настойчиво</option><option value="9">Шепотом</option><option value="10">Задумчиво</option><option value="11">Злобно</option></select><br />';}if ($user['color']!=0){echo '<select name="color"><option value="0" selected="selected">Цвет</option><option value="1">Красный</option><option value="2">Синий</option><option value="3">Сереневый</option><option value="4">Зеленый</option></select><br />';}if ($ver=='wml'){echo '<br /><anchor title="go">Сказать<go href="tell?rm='.$rm.'&amp;act=add" method="post">';echo '<postfield name="msg" value="$msg'.$ref.'"/><postfield name="dd" value="$dd"/><postfield name="emo" value="$emo"/><postfield name="color" value="$color"/></go></anchor>';echo '<br/><br />';}else{echo '<br /><input type="submit" class="ibutton" value="Сказать"/></form><br /><br />';}}else{function latrus($textw) {return str_replace( array('Ё','Ё','Ж','Ж','Ч','Ч','Щ','Щ','Щ','Ш','Ш','Э','Э','Ю', 'Ю','Я', 'Я','ч','ш','щ','э','ю','я','ё','ж','A','Б','В','Г', 'Д','E','З','И','Й ','К','Л','М','Н','О','П','Р','С','Т','У', 'Ф','Х','Ц','Ы','а','б','в', 'г','д','е','з','и','й','к','л', 'м','н','о','п','р','с','т','у','ф','х ','ц','ы','Ъ','ъ','Ь', 'ь'), array('YO','Yo','ZH','Zh','CH','Ch','SHC','SHc','Shc','SH', 'Sh','YE','Ye','YU','Yu','YA','Ya','ch','sh','shc','ye','yu', 'ya','yo ','zh','A','B','V','G','D','E','Z','I','Y','K','L', 'M','N','O','P','R' ,'S','T','U','F','H','C','X','a','b','v', 'g','d','e','z','i','y','k',' l','m','n','o','p','r','s','t', 'u','f','h','c','x','','','',''),$textw); }if ($setss[pivo]==1 || $setss[pivo]==2 || $setss[vodka]==1 || $setss[vodka]==2 ){$strr=check($_POST['msg']);$str =latrus($strr); }if ($setss[kosak]==1 ){$strr=check($_POST['msg']);$str =latrus($strr); }function vodka ($t){ $c = strlen($t); for($i=0;$i<$c;$i++) { $t[$i] = (is_int($i/2)) ? strtoupper($t[$i]) : $t[$i]; $ret[] = $t[$i]; } return implode('',$ret); } function pivo ($t){ $c = strlen($t); for($i=0;$i<$c;$i++) { $t[$i] = (is_int($i/3)) ? strtoupper($t[$i]) : $t[$i]; $ret[] = $t[$i]; } return implode('',$ret); } if ($setss[pivo]==1 || $setss[pivo]==2 ){$msg =translit(pivo($str));}if ($setss[vodka]==1 || $setss[vodka]==2 ){$msg =translit(vodka($str));}if ($setss[kosak]==1 ){$msg =vodka($str);}if ($setss[pivo]+$setss[vodka]+$setss[kosak]==0){$msg =check($_POST['msg']);}$dd = check($_POST['dd']);$emo = check($_POST['emo']);$color = check($_POST['color']);$prvt = check($_POST['prvt']);if(isset($_GET['nk'])) $nk = intval($_GET['nk']);else $nk = 0;if($prvt!=0){if(isset($_POST['prvt']) && isset($_GET['nk'])) $privat = intval($_GET['nk']);}else $privat = 0;if (strlen2($msg)<2){header ('Location: room?rm='.$rm.''); exit;}$msg = iconv('utf-8', 'windows-1251', $msg);$msg = substr($msg,0,512);$msg = iconv('windows-1251', 'utf-8', $msg);if ($user['translit']==1)$msg = translit($msg);$mess=mysql_result(mysql_query("select COUNT(*) from message WHERE `user_id` = '$user[id]' and `time`>'".($time - $rooms['flyd'])."';"),0);if ($mess > 0){ header ('Location: room?rm='.$rm.'&err=t'); exit;}if ($rooms['inkog']!=0){mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,emo,bb,color,komu,privat) VALUES ('Инкогнито','0','$time','$msg','$rm','$emo','$dd','$color','$nk','$privat')");}else{mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,emo,bb,color,komu,privat,inps) VALUES ('$user[user]','$user[id]','$time','$msg','$rm','$emo','$dd','$color','$nk','$privat','$inps')");}posts_add();if ($rooms['umnik']!=0) require H.'bots/umnik3.php';if ($rooms['tupica']!=0) require H.'bots/umnikmat2.php';if ($rooms['tupica']!=0) require H.'bots/tupica2.php';if ($rooms['flyder']!=0) require H.'bots/flyder.php';if ($rooms['strip']!=0){if ($msg=='!пива'||$msg=='!пиВа'){if ($rooms['striper']!=0){if ($user['rur']>=1){mysql_query ("Update users set rur='".($user['rur']-1)."' where id='".$user["id"]."'");mysql_query ("Update setus set pivo='1',vodka='0',timer='".(time()+600)."' where user_id='".$user["id"]."'");mysql_query ("Update setus set potr='".($setss[potr]+1)."' where user_id='".$user["id"]."'");$mes = '[yellow]держи пивка[/yellow] ';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");$mes="<a><img src=\"/strip/bar/pivo.jpeg\" alt=\"\" /></a>";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]')");}else{$mes = '[yellow]У вас недостаточно рубликов![/yellow] надо то всего один.... слюнки глотай!';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");}}else{$mes = "Извините, но в этой комнате я не работаю...";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm')");}}if ($msg=='!водки'||$msg=='!воДки'){if ($rooms['striper']!=0){if ($user['rur']>=2){mysql_query ("Update users set rur='".($user['rur']-2)."' where id='".$user["id"]."'");mysql_query ("Update setus set vodka='1',timer='".(time()+1200)."',pivo='0' where user_id='".$user["id"]."'");mysql_query ("Update setus set potr='".($setss[potr]+2)."' where user_id='".$user["id"]."'");$mes = '[yellow]хватай стакан крепче![/yellow] ';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");$mes="<a><img src=\"/strip/bar/vodka.jpeg\" alt=\"\" /></a>";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]')");}else{$mes = '[yellow]У вас недостаточно рубликов![/yellow] надо то всего один.... слюнки глотай!';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");}}else{$mes = "Извините, но в этой комнате я не работаю...";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm')");}}if ($msg=='!косяк' || $msg=='!коСяК' || $msg=='!kOsYaK'){if ($rooms['striper']!=0){if ($user['rur']>=15){mysql_query ("Update users set rur='".($user['rur']-15)."' where id='".$user["id"]."'");mysql_query ("Update setus set kosak='1',pivo='0',vodka='0',timkos='".(time()+1800)."' where user_id='".$user["id"]."'");mysql_query ("Update setus set potr='".($setss[potr]+5)."' where user_id='".$user["id"]."'");$mes = '[yellow]пыхай...[/yellow] ';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");$mes="<a><img src=\"/strip/bar/kosak.jpeg\" alt=\"\" /></a>";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]')");}else{$mes = '[yellow]У вас недостаточно рубликов![/yellow] надо то всего один.... слюнки глотай!';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");}}else{$mes = "Извините, но в этой комнате я не работаю...";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm')");}}if ($msg=='! LeKaRsTvO' || $msg=='! лЕкаРстВо' || $msg=='! ЛеКаРсТвО'){if ($rooms['striper']!=0){if ($user['rur']>=1){mysql_query ("Update users set rur='".($user['rur']-10)."' where id='".$user["id"]."'");mysql_query ("Update setus set kosak='0',pivo='0',vodka='0',timer='0',timkos='0' where user_id='".$user["id"]."'");mysql_query ("Update setus set potr='".($setss[potr]+10)."' where user_id='".$user["id"]."'");$mes = '[yellow]ща мы тебя вылечим - 1 рубль[/yellow] ';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");$mes="<a><img src=\"/strip/bar/tabletka.jpeg\" alt=\"\" /></a>";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]')");}else{$mes = '[yellow]У вас недостаточно рубликов![/yellow] надо то всего десять.... торчи дальше!';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");}}else{$mes = "Извините, но в этой комнате я не работаю...";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm')");}}if ($msg=='!хентай' || $msg=='!хЕнтАй' || $msg=='!хеНтАй' || $msg=='!хeNtAy'){if ($rooms['striper']!=0){if ($user['rur']>=1){mysql_query ("Update users set rur='".($user['rur']-1)."' where id='".$user["id"]."'");mysql_query ("Update users set rurmag='".($user['rurmag']+1)."' where id='".$user["id"]."'");$mes = '[yellow]минус рублик гг[/yellow] ';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");$rand=rand(1,200);$mes="<a><img src=\"/strip/xen/".$rand.".JPG\" alt=\"\" /></a>";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]')");}else{$mes = '[yellow]У вас недостаточно рубликов![/yellow] надо то всего один.... в щелку подсматривай за другими или сбегай в банк';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");}}else{$mes = "Извините, но в этой комнате я не работаю...";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm')");}}if ($msg=='!мужик' || $msg=='!муЗхиК' || $msg=='!мУзХиК' || $msg=='!mUzHiK'){if ($rooms['striper']!=0){if ($user['rur']>=1){mysql_query ("Update users set rur='".($user['rur']-1)."' where id='".$user["id"]."'");mysql_query ("Update users set rurmag='".($user['rurmag']+1)."' where id='".$user["id"]."'");$mes = '[yellow]минус рублик гг[/yellow] ';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");$rand=rand(1,1001);$mes="<a><img src=\"/gifts/3/".$rand.".jpg\" alt=\"\" /></a>";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]')");}else{$mes = '[yellow]У вас недостаточно рубликов![/yellow] надо то всего один.... в щелку подсматривай за другими или сбегай в банк';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");}}else{$mes = "Извините, но в этой комнате я не работаю...";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm')");}}if ($msg=='!бомжую' || $msg=='!боМзхУю' || $msg=='!бОмЗхУйУ' || $msg=='!bOmZhUyU'){if ($rooms['striper']!=0){$mes = '[yellow]Нравится? гг[/yellow] ';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");$rand=rand(1,1381);$mes="<a><img src=\"/gifts/2/".$rand.".jpg\" alt=\"\" /></a>";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]')");}else{$mes = "Извините, но в этой комнате я не работаю...";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm')");}}if ($msg=='!баба' || $msg=='!баБа' || $msg=='!бАбА' || $msg=='!bAbA'){if ($rooms['striper']!=0){if ($user['rur']>=1){mysql_query ("Update users set rur='".($user['rur']-1)."' where id='".$user["id"]."'");mysql_query ("Update users set rurmag='".($user['rurmag']+1)."' where id='".$user["id"]."'");$mes = '[yellow]минус рублик гг[/yellow] ';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");$rand=rand(1,208);$mes="<a><img src=\"/strip/baba/".$rand.".jpg\" alt=\"\" /></a>";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]')");}else{$mes = '[yellow]У вас недостаточно рубликов![/yellow] надо то всего один.... в щелку подсматривай за другими или сбегай в банк';mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm','$user[id]','$user[id]')");}}else{$mes = "Извините, но в этой комнате я не работаю...";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_striper','0','".($time+1)."','".$mes."','$rm')");}}}if ($rooms['zags']!=0){if ($rooms['svaisch']!=0){$zag= mysql_query ("Select * from zags WHERE `status` ='1' LIMIT 1 ");$zags = mysql_fetch_array ($zag);if($zags[status]==1){$zag2= mysql_query ("Select * from users WHERE `id` ='".$zags[genix]."' LIMIT 1 ");$zags2 = mysql_fetch_array ($zag2);$zag3= mysql_query ("Select * from users WHERE `id` ='".$zags[nevesta]."' LIMIT 1 ");$zags3 = mysql_fetch_array ($zag3);$zag4= mysql_query ("Select * from users WHERE `id` ='".$zags[svid]."' LIMIT 1 ");$zags4 = mysql_fetch_array ($zag4);$zag5= mysql_query ("Select * from users WHERE `id` ='".$zags[svidet]."' LIMIT 1 ");$zags5 = mysql_fetch_array ($zag5);$zag1= mysql_query ("Select * from users WHERE `id` ='".$zags[ved]."' LIMIT 1 ");$zags1 = mysql_fetch_array ($zag1);if($user['id']==1 || $user[level]==9 || $zags[ved]==$user[id]){if ($msg=='!начать'||$msg=='!nachat'){$mes = "Мы собрались сдесь чтобы скрепить брачными узами два любящих сердца $zags2[user] и $zags3[user] . Прошу свидетелей засвидетельствовать что это святое действие не по принуждению ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('".$zags1[user]."','0','".($time+1)."','".$mes."','$rm')");$mes = "свидетельствуеш ли ты $zags4[user] что $zags2[user] по доброй воли женится сегодня на $zags3[user]" ;mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('".$zags1[user]."','0','".($time+1)."','".$mes."','$rm')");$mes = "набери команду !да или !da ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('".$zags1[user]."','0','".($time+1)."','".$mes."','$rm','$zags[svid]','$zags[svid]')");if (mysql_query('UPDATE `zags` SET `nach` = "1" WHERE `id` ="'.$zags[id].'" LIMIT 1 '));}}if($zags[nach2]==0){if($zags[nach]==1){if($user['id']==1 || $user[level]==9 || $zags[svid]==$user[id] ){if ($msg=='!да' || $msg=='!da'){$mes = "свидетельствуеш ли ты $zags5[user] что $zags3[user] по доброй воли выходит замуж сегодня за $zags2[user]" ;mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('".$zags1[user]."','0','".($time+1)."','".$mes."','$rm')");$mes = "набери команду !да или !da ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('".$zags1[user]."','0','".($time+1)."','".$mes."','$rm','$zags[svidet]','$zags[svidet]')");if (mysql_query('UPDATE `zags` SET `nach2` = "1" WHERE `id` ="'.$zags[id].'" LIMIT 1 '));}}}}if($zags[nach3]==0){if($zags[nach2]==1){if($user['id']==1 || $user[level]==9 || $zags[svidet]==$user[id] ){if ($msg=='!да' || $msg=='!da'){$mes = "и так начнем церемонию" ;mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('".$zags1[user]."','0','".($time+1)."','".$mes."','$rm')");$mes = "[yellow]Обручается раб Божий $zags2[user] рабе Божией $zags3[user] во имя Отца и Сына и Святаго Духа, ныне и присно и во веки веков. Аминь.[/yellow]";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_svaisch','0','".($time+1)."','".$mes."','$rm' )");$mes = " $zags2[user] [yellow]Имеешь ли произволение благое и непринужденное и крепкую мысль взять себе в жены [/yellow] $zags3[user] ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_svaisch','0','".($time+1)."','".$mes."','$rm' )");$mes = "набери команду !имею или !imeu ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('".$zags1[user]."','0','".($time+1)."','".$mes."','$rm','$zags[genix]','$zags[genix]')");if (mysql_query('UPDATE `zags` SET `nach3` = "1" WHERE `id` ="'.$zags[id].'" LIMIT 1 '));}}}}if($zags[nach4]==0){if($zags[nach3]==1){if($user['id']==1 || $user[level]==9 || $zags[genix]==$user[id] ){if ($msg=='!имею' || $msg=='!imeu'){$mes = "$zags3[user] [yellow] Имеешь ли произволение благое и непринужденное, и твердую мысль, взяти себе в мужа сего [/yellow] $zags2[user] ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_svaisch','0','".($time+1)."','".$mes."','$rm' )");$mes = "набери команду !имею или !imeu ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('".$zags1[user]."','0','".($time+1)."','".$mes."','$rm','$zags[nevesta]','$zags[nevesta]')");if (mysql_query('UPDATE `zags` SET `nach4` = "1" WHERE `id` ="'.$zags[id].'" LIMIT 1 '));}}}}if($zags[nach5]==0){if($zags[nach4]==1){if($user['id']==1 || $user[level]==9 || $zags[nevesta]==$user[id] ){if ($msg=='!имею' || $msg=='!imeu'){$mes = "$zags3[user] и $zags2[user] [yellow] в знак искренности своих намерений, дайте друг другу клятвы вечной любви и согласия! [/yellow]";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_svaisch','0','".($time+1)."','".$mes."','$rm' )");$mes = "[yellow]Клянешся ли ты раб божий $zags2[user] в радости и в горе любить и оберегать рабу божью[/yellow] $zags3[user] ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_svaisch','0','".($time+1)."','".$mes."','$rm')");$mes = "набери команду !клянусь или !klenus ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('".$zags1[user]."','0','".($time+1)."','".$mes."','$rm','$zags[genix]','$zags[genix]')");if (mysql_query('UPDATE `zags` SET `nach5` = "1" WHERE `id` ="'.$zags[id].'" LIMIT 1 '));}}}}if($zags[nach6]==0){if($zags[nach5]==1){if($user['id']==1 || $user[level]==9 || $zags[genix]==$user[id] ){if ($msg=='!клянусь' || $msg=='!klenus'){$mes = "[yellow]Клянешся ли ты раба божья $zags3[user] в радости и в горе любить и оберегать раба божьего[/yellow] $zags2[user] ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_svaisch','0','".($time+1)."','".$mes."','$rm')");$mes = "набери команду !клянусь или !klenus ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm,komu,privat) VALUES ('".$zags1[user]."','0','".($time+1)."','".$mes."','$rm','$zags[nevesta]','$zags[nevesta]')");if (mysql_query('UPDATE `zags` SET `nach6` = "1" WHERE `id` ="'.$zags[id].'" LIMIT 1 '));}}}}if($zags[nach6]==1){if($user['id']==1 || $user[level]==9 || $zags[nevesta]==$user[id] ){if ($msg=='!клянусь' || $msg=='!klenus'){$mes = "[yellow]И десница раб Твоих благословится! Жених и невеста, обменяйтесь кольцами в ознаменование благодатной помощи в сохранении супружеской любви, немеркнущей благодаря Божией милости! [/yellow] ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_svaisch','0','".($time+1)."','".$mes."','$rm')");$mes = "$zags3[user] и $zags2[user] [green]объявляю вас мужем и женой! Присуствующие, можете поздравить новобрачных! [/green] ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_svaisch','0','".($time+1)."','".$mes."','$rm')");mysql_query ("INSERT INTO zags2 (genix,nevesta,time) VALUES ('".$zags[genix]."','".$zags[nevesta]."','".$time."')");if (mysql_query('UPDATE `users` SET `para` ="'.$zags[nevesta].'" WHERE `id` ="'.$zags[genix].'" LIMIT 1 '));if (mysql_query('UPDATE `users` SET `para` ="'.$zags[genix].'" WHERE `id` ="'.$zags[nevesta].'" LIMIT 1 '));mysql_query("DELETE FROM `zags` WHERE `id`='".$zags[id]."' LIMIT 1");}}}}else{$mes = "нет открытых церемоний ";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_svaisch','0','".($time+1)."','".$mes."','$rm')");}}else{$mes = "извините но в этой комнате я не работаю";mysql_query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$user_svaisch','0','".($time+1)."','".$mes."','$rm')");}}header ('Location: room?rm='.$rm.'');exit;}echo gb.'<a href="room?rm='.$rm.'">В чат </a>'.div;foot();?>
Добавлено спустя   1 минуту  50 секунд:
в конфиг вродь ток подключение к базе идет,и паро мелких настроек)) ну вот его тоже выкладываю))

Код:
lt;?// НАСТРОЙКИ СОЕДИНЕНИЯ С БДdefine('DB_host','localhost'); // Хостdefine('DB_user','114464'); // Пользователь БДdefine('DB_pass','114464'); // Парольdefine('DB_db','114464'); // БД// ПРОЧИЕ НАСТРОЙКИ///////////// ЭТО НЕ ТРОГАЕМ!/////////|||/require_once'sys/start.php'; //include_once 'sys/sys.php'; ///////////////////////////////// Настройки групп$set['p_add_gr'] = 1; // Посты для создания группы$set['s_gr_logo'] = 50; // Вес лого$set['w_logo_gr'] = 200;// Высота лого (отображение)$set['h_logo_gr'] = 100;// Ширина лого (отображение)// Настройки обменника файлов$set['path'] = 'files';// папка с файлами$set['fo_size'] = 10; // макс размер в мб$set['fo_day_new'] = 2; // сколько файл считается новым$set['prev_size'] = '80*80'; // размер превьюшек$set['marker'] = 1;// включен - 1, нет - 0$set['text_marker'] = 'Gggg';// текст маркера$set['rur_1mb'] = 1; // + рублей за 1мб загружаемых файлов$set['top_num'] = 20; // Топ ... Юзеров и файлов$set['eval_change'] = 1; // не меняемrequire_once H."sys/bann.php";?>
#157. TLENS Off (14)
Moderator
2011.08.11 01:01
Корочь давай архив с чатом а то мы так будем месяц искать
#158. POFIGISST Off (6)
Участник
2011.08.11 01:01
А что если просто так

Код:
echo '<select name=\"prvt\">
<option value=\"0\">Всем</option>';
if($user['posts']>'50')
{
echo '<option value=\"1\">Приватно</option>';
}
 
echo '</select><br/>';
прписать,ну только ошибку в этом коде исправить((
Добавлено спустя   1 минуту  18 секунд:
В Этой теме он ))
#159. POFIGISST Off (6)
Участник
2011.08.13 21:09
подскажите как сделать при нажатии на ссылку занос число в базу? например ссылка "Слить" нажимаешь на нее и в базу в определенное поле записывается значение "1" ,как такое сделать?)
#160. tipsun Off (19)
Moderator
2011.08.14 05:05
Подскажите, делает ли что-то с кодировкой функция strtr() и strtolower(), т.к. у меня глюки с кодировкой начинались и на хосте.
Отредактировано tipsun (2011.08.14 14:02)
#161. Gemorroj Off (107)
Administrator
2011.08.14 09:09
да. эти функции некорректно работают с мультибайтовыми кодировками.
используй mbstring.
#162. tipsun Off (19)
Moderator
2011.08.14 12:12
Мой мозг никак не высрет функцию антимата.
Можно простым str_ireplace(); то, что есть в архиве, но будет проходить м-а.т
#163. Gemorroj Off (107)
Administrator
2011.08.14 14:02
tipsun, мат всегда будет проходить. Я бы вообще не заморачивался такими глупостями.
#164. POFIGISST Off (6)
Участник
2011.08.16 04:04
подскажите как всунуть таблу из базы в переменную,идет табла foto_add,и там поле adres,что типа такого должно быть $zzz = foto_add['adres'];,только это не правильно(
Отредактировано POFIGISST (2011.08.16 04:04)
#165. TLENS Off (14)
Moderator
2011.08.16 04:04
Код:
span style="color: #0000BB"><?php$q = mysql_query("SELECT ...");$foto_add = mysql_fetch_array($q);echo $foto_add['adres'];
#166. POFIGISST Off (6)
Участник
2011.08.16 04:04
TLENS написал:
Код:
span style="color: #0000BB"><?php$q = mysql_query("SELECT ...");$foto_add = mysql_fetch_array($q);echo $foto_add['adres'];
Спасибо большое Дим))
#167. POFIGISST Off (6)
Участник
2011.08.16 04:04
как можно  3 переменных прикрепить? примерно вот так
Код:
echo '<img src="http://'.$sit.''.$foto_add['adres'].''.jpg"><br>';
тут 2 переменных,и незнаю как их скрепить в одной строке((

и еще вопрос,какая у меня вот тут

Код:
span style="color: #0000BB"><?phprequire'config.php';$q = mysql_query("SELECT ...");$foto_add = mysql_fetch_array($q);echo $foto_add['adres'];//$sit = $_SERVER['HTTP_HOST'];echo '<img src="http://test4.ru'.$foto_add['adres'].'.jpg"><br>'; ?>
ошибка?((
Отредактировано POFIGISST (2011.08.16 04:04)
#168. TLENS Off (14)
Moderator
2011.08.16 04:04
Код:
span style="color: #0000BB"><?php$a1 = 1;$a2 = 2;$a3 = 3;echo '[' . $a1 . $a2 . $a3 .']';
[123]
Добавлено спустя   1 минуту  12 секунд:
но можно и таким образом как это делал ты $a1 . '' . $a2
#169. POFIGISST Off (6)
Участник
2011.08.16 05:05
ну вот у мя такой говнокод вышел
Код:
span style="color: #0000BB"><?phprequire'config.php';$q = mysql_query("SELECT ...");$a2 = mysql_fetch_array($q);$sit = $_SERVER['HTTP_HOST'];echo '<img src ="http://[' . $sit . $a2 .'].jpg"><br>';?>
#170. TLENS Off (14)
Moderator
2011.08.16 05:05
SELECT ... замени на нормальный запрос
Добавлено спустя   1 минуту  10 секунд:
и $a2 это массив уверен у тебя пишет array
#171. POFIGISST Off (6)
Участник
2011.08.16 05:05
$q = mysql_query("SELECT * FROM  foto_add");

на такой заменить?))прост с базами у мя ваще беда((
Добавлено спустя   1 минуту  16 секунд:
ты прав насчет массива,пишет вот так "<img src ="http://[test4.ruArray].jpg"><br>" (((
#172. TLENS Off (14)
Moderator
2011.08.16 05:05
бля я как тебе написал? $a2['adres']
вставь var_dump($a2);
Добавлено спустя   1 минуту  1 секунду:
лан я спать
#173. POFIGISST Off (6)
Участник
2011.08.16 05:05
массив уже убрал,теперь так

Код:
<img src ="http://[test4.ru/files/album/album_2_3].jpg"><br>
если убрать [ скобочки,то картинка норм будет появляться))
#174. TLENS Off (14)
Moderator
2011.08.16 05:05
ну так в чем проблема?
#175. POFIGISST Off (6)
Участник
2011.08.16 05:05
TLENS написал:
бля я как тебе написал? $a2['adres']
вставь var_dump($a2);
Добавлено спустя   1 минуту  1 секунду:
лан я спать
приятных тебе))

вот такой код

Код:
echo '<img src ="http://' . $sit . $foto_add['adres'] .'.jpg"><br>';
все норм выводит))спасибо еще раз))
Добавлено спустя   1 минуту  20 секунд:
TLENS написал:
ну так в чем проблема?
ну так я же думал,что если уберу их,то ошибка синтаксиса будет((
#176. TLENS Off (14)
Moderator
2011.08.16 05:05
новый вызов mysql_fetch_array покажет следующий столбец. ну вообщем спрашивай если что не понятно. да и не забывай читать инфу о функциях
#177. POFIGISST Off (6)
Участник
2011.08.16 05:05
TLENS написал:
новый вызов mysql_fetch_array покажет следующий столбец. ну вообщем спрашивай если что не понятно. да и не забывай читать инфу о функциях
а если мне нужен именно не следующий столбец,а 5 или 10 например?
#178. Gemorroj Off (107)
Administrator
2011.08.16 10:10
не столбец, а строку.
у тега img атрибут alt обязательный.
#179. TLENS Off (14)
Moderator
2011.08.16 10:10
Gemorroj написал:
не столбец, а строку.
у тега img атрибут alt обязательный.
а ну да
#180. POFIGISST Off (6)
Участник
2011.08.16 22:10
а с альтом это вот так

Код:
echo '<img src ="http://' . $sit . $foto_add['adres'] .'.jpg"><alt="фото"/><br/>';
?)
#181. tipsun Off (19)
Moderator
2011.08.16 22:10
http://htmlbook.ru
#182. TLENS Off (14)
Moderator
2011.08.16 22:10
POFIGISST написал:
а с альтом это вот так

Код:
echo '<img src ="http://' . $sit . $foto_add['adres'] .'.jpg"><alt="фото"/><br/>';
?)
ГГ
Код:
echo '<img src ="http://' . $sit . $foto_add['adres'] .'.jpg alt="фото" /><br/>';
#183. POFIGISST Off (6)
Участник
2011.08.16 22:10
Подскажите)))вот у мя идет такой код

Код:
lt;?require'../config.php';$align='left';$title='Подарки';aut();head();who_add(0,'enter');$mod = check($_GET['mod']);if(!isset($_GET['nk']) && isset($_SESSION['nk']))$nk = check($_SESSION['nk']);else {$nk = check($_GET['nk']);$_SESSION['nk']=$_GET['nk'];}switch($mod){default:echo 'Подароки <b>'.user_inf($nk,'user').'</b><br/><br />';if (empty($user['max'])) $user['max']=10;$max = $user['max'];$k_post=mysql_result(mysql_query("select count(*) as num from gifts where gift_id = '".$nk."'"),0);$k_page=k_page($k_post,$max);$page=page($k_page);$start=$max*$page-$max;$r = mysql_query ("Select * from gifts where gift_id = '".$nk."' order by time desc LIMIT $start, $max");if ($k_post == 0)echo 'Подарков пока нет...<br />';$post_k=$start+1;while($a = @mysql_fetch_array($r)){if ($a[publ]!=0){if ($user[id]==$nk||$user[id]==$a[user_id])echo '<a href="'.H.'gifts'.$nk.'_'.$a[id].'"><img src="'.H.'gifts/'.$a['gift'].'" title="Личный подарок!"/></a> ';else echo '<img src="'.H.'img/gl.gif"/> ';}else{echo '<a href="'.H.'gifts'.$nk.'_'.$a[id].'"><img src="'.H.'gifts/'.$a['gift'].'" title="Информация о подарке"/></a> ';}}if ($k_page>1){echo '<dl><dt></dt></dl>';str(''.H.'gifts'.$nk.'?',$k_page,$page);echo '<br /><dl><dt></dt></dl>';}echo '<br /><a href="gifts/index?mod=add&amp;nk='.$nk.'">Сделать подарок</a><br />';break;case 'read':$gift = check(intval($_GET['gift']));$a = @mysql_fetch_array(mysql_query ("Select * from gifts where gift_id = '".$nk."' and id = '".$gift."'"));echo '<img src="'.H.'gifts/'.$a['gift'].'"/><br />';if ($a[anonim]==0)$gu = nik($a[user_id]); else $gu = 'Аноним';if ($a[publ]==0)$publ = ''; else $publ = ' </b>(<u title="Подарок виден только вам!">Лично</u>)<b>';echo '<u>Подарил:</u> <b>'.$gu.$publ.'</b> ('.times($a['time']).')<br />';echo '<u>Комментарий:</u><br />'.$a['kom'].'<br />';if($user[id]==$nk || $user[level]>=5)echo '<br /><a href="'.H.'gifts'.$nk.'_'.$a[id].'?del">Удалить</a><br />';if (isset($_GET['del'])){if($user[id]==$nk || $user[level]>=5){mysql_query("DELETE FROM gifts where gift_id = '".$nk."' and id = '".$gift."'");}header ('Location: '.H.'gifts'.$nk.'?'.SID);}break;case 'add':if (!user($nk)){echo 'Такого пользователя не существует!'; exit; }echo 'Подарок для <b>'.user_inf($nk,'user').'</b><br/>';require_once(H."sys/func/count_dir.php");$downdir_array = array();$dir = opendir (".");while ($file = readdir ($dir)) {if (is_dir($file)) {if($file=="."||$file=="..") continue;$downdir_array[]=$file;}}closedir ($dir);sort($downdir_array);$total = count($downdir_array);for ($i = 0; $i < $total; $i++){echo '<img src="../img/dir.gif" alt=""/> <a href="?mod=addi&amp;path='.$downdir_array[$i].'&amp;'.SID.'">Подарки по '.$downdir_array[$i].' рублей</a> ('.count_dir($downdir_array[$i]).')<br/>';}break;case 'addi':$path = check(intval($_GET['path']));$d=opendir("$path");if(isset($_GET['list']))$list = check(intval($_GET['list']));else $list = check(intval($_POST['list']));if(!$list) $list = "1";$n = "1";while(($k=readdir($d))!==false){if ($k=='.'||$k=='..'||$k=="index.php"||$k==".htaccess"||$k==".Thumbs.db") continue;$n++;}closedir($d);$num=($n/$user['max']);if ($num!==(int)$num){$foo = (int) $num;$fo = ($foo + 1);}else{$fo=$num;}if ($list == "") {$c="0";}else{$c=($user['max']*($list-1));}$d=opendir("$path");$la = "-1";echo 'Подарок для <b>'.user_inf($nk,'user').'</b><br/>';echo 'Стоймость подарка: <b>'.$path.'</b> рублей<dl></dl>';while(($e=readdir($d))){if ($e=='.'||$e=='..'||$e=="index"||$e==".htaccess"||$e==".Thumbs.db") continue;$la = $la + 1;if($la>$c-1 and $la<$c+$user['max']){$laa = $la + 1; // Номер файлаecho "<a href=\"index?mod=gift&amp;path=$path&amp;gift=$e\"><img src=\"$path/$e\" alt=\"$e1\"/></a> ";}}for ($i=0; $i<=$fo; $i++)if ($list == "$path") {$c=0;}else{$c=($user['max']*($list-1));}$lis = $list + 1;$lis1 = $list - 1;echo '<br/>';if ($lis1 < 1){echo "&lt;&lt;пред.";}else{echo "<a href=\"index?list=$lis1&amp;mod=".$mod."&amp;path=$path\">&lt;&lt;пред. </a>";}if ($lis == $i){echo "| след.&gt;&gt;<br/>";}else{echo "| <a href=\"index?list=$lis&amp;mod=".$mod."&amp;path=$path\">след.&gt;&gt;</a><br/>";}if ($ver!='wml') echo "<form method=\"POST\" action=\"index?mod=".$mod."&amp;path=$path\" name=\"auth\">";echo "Перейти к:<br/>";echo "<input name=\"list\" format=\"*N\" size=\"3\"/><br/>";echo "странице<br/>";if ($ver=='wml'){echo "<anchor title=\"go\">Пошёл<go href=\"index?mod=".$mod."&amp;path=$path\" method=\"post\">";echo "<postfield name=\"list\" value=\"$(list)\"/>";echo "</go></anchor>";echo "<br/>";}else{echo "<input type=\"submit\" class=\"ibutton\" value=\"Пошёл\" name=\"enter\"><br/>";}$alls = $i - 1;echo "<br/>";echo "Подарков:<b> $n</b><br/>Страницa:<b> $list/$alls</b><br/>";closedir($d);break;case 'gift':$path = check(intval($_GET['path']));$gift = check($_GET['gift']);if ($user['rur']<$path)$err = 'У вас нет <b>'.$path.'</b> рублей!';if (empty($err)){$act = check($_GET['act']);if (empty($act)){echo '<b>Подарок:</b><br /><img src="'.$path.'/'.$gift.'"/><br />';if ($ver!='wml')echo '<form action="index?mod='.$mod.'&amp;act=add&amp;&amp;path='.$path.'&amp;gift='.$gift.'&amp;'.SID.'" method="post">';echo 'Комментарий:<br /><input name="kom" title="Комментарий"/><br/>';echo '<input type="checkbox" name="anonim" value="1"/> Анонимный<br/>';echo '<input type="checkbox" name="publ" value="1"/> Личный<br/>';if ($ver=='wml'){echo '<br /><anchor title="go">Сделать подарок<go href="index?mod='.$mod.'&amp;act=add&amp;&amp;path='.$path.'&amp;gift='.$gift.'&amp;'.SID.'" method="post"><br />';echo '<postfield name="kom" value="$kom"/><postfield name="anonim" value="$anonim"/><postfield name="publ" value="$publ"/></go></anchor><br /><br />';}else{echo '<br /><input type="submit" class="ibutton" value="Сделать подарок" class="cp"><br />';}}else{$kom = check($_POST['kom']);$anonim = check(intval($_POST['anonim']));$publ = check(intval($_POST['publ']));if ($user['translit']==1)$kom = translit($kom);mysql_query("INSERT INTO `gifts` (user_id,gift_id,time,kom,gift,anonim,publ) values('$user[id]','".user_inf($nk)."','$time','$kom','".$path."/".$gift."','$anonim','$publ')");$rurm = $user['rur']-$path;mysql_query('UPDATE `users` SET `rur` = "'.$rurm.'" WHERE `id` = "'.$user['id'].'"');echo 'Подарок отправлен пользователю <b>'.user_inf($nk,'user').'</b>!<br />';if ($anonim==1)$podaril = 'Аноним';else $podaril = $user['user'];if (user_inf($nk,'fr_notify')==1){if ($user['sex']==1)$sex = 'сделал'; else $sex = 'сделала';$ids = mysql_fetch_array(mysql_query("SELECT * FROM `gifts` WHERE `kom` = '".$kom."'"));$idi=$ids['id'];$msg = 'Пользователь [b]'.$podaril.'[/b] '.$sex.' Вам [url=/gifts'.$nk.'_'.$idi.']подарок[/url].';mysql_query ("INSERT INTO privat (user,user_id,to_user,to_id,time,msg) VALUES ('$user_system','0','".user($nk)."','".user_inf($nk)."','$time','$msg')");$subject = $_SERVER['HTTP_HOST'];$msgmail = ''.$podaril.' '.$sex.' Вам подарок.\r Просмотреть Ваши подарки можно на странице:\r http://'.$_SERVER['HTTP_HOST'].'/gifts'.$nk.' \r\r С уважением,Администрация '.$_SERVER['HTTP_HOST'].'\r\r\r_ _ _ _ _Вы можете поменять настройки e-mail оповещений на странице:http://'.$_SERVER['HTTP_HOST'].'/my/setting?mod=notify';$adds = "From: <admin@".$_SERVER['HTTP_HOST'].">";$adds .= "X-sender: <admin@".$_SERVER['HTTP_HOST'].">";$adds .= "Content-Type: text/plain; charset=utf-8";$mail=explode('|',user_inf($to,'mail'));mail($mail[0],$subject,$msgmail,$adds);}}}else echo $err;break;}echo '<br />';echo gb.'<a href="/gifts'.$nk.'">Подарки</a>'.div;echo gb.'<a href="'.H.$nk.'">В анкету</a>'.div;echo gb.'<a href="'.H.'enter">Прихожая</a>'.div;foot();?>
Это идет вывод подарков,значение сколько картинок выводить на страницу,берется из базы, табла users поле max ,смысл в том что в это поле заносятся настройки сколько сообщений выводить в комнатах,хочу изменить,чтоб значение бралось не из базы,а просто так сразу выводило по 5 подарков на страницу,полностью без базы,только как это сделать,не совсем понимаю((
Добавлено спустя   1 минуту  53 секунды:
tipsun написал:
http://htmlbook.ru
я как раз там и смотрел синтаксис его)))
Добавлено спустя   3 минуты :
TLENS написал:
POFIGISST написал:
а с альтом это вот так

Код:
echo '<img src ="http://' . $sit . $foto_add['adres'] .'.jpg"><alt="фото"/><br/>';
?)
ГГ
Код:
echo '<img src ="http://' . $sit . $foto_add['adres'] .'.jpg alt="фото" /><br/>';
спасибо))вопрос не по теме ,а как ты сделал такой шрифт,которым у тя подпись,ну это "Мое творчество.
the-best-xxx.ru
podsmotri.org
И еще пару покамест не стоящих внимания."
#184. TLENS Off (14)
Moderator
2011.08.16 22:10
Не понял вопроса. [ size=8][/size ]
Отредактировано TLENS (2011.08.16 22:10)
#185. POFIGISST Off (6)
Участник
2011.08.16 22:10
TLENS написал:
Не понял вопроса.
какого из всех?а то я много задал((сорри((
#186. tipsun Off (19)
Moderator
2011.08.16 23:11
Вроде так
Код:
span style="color: #0000BB"><?php//$max = $user['max'];$max = 5;/*а вообще ноги растут с /sys/user.php файла, может и в нем поменять, может не только тут этот параметр используется*/// Запрос в базе данных по юзеруif ($us && $pass) {$req = $db->sql_query("SELECT * FROM `users` WHERE `id` = '".check(intval($us))."' LIMIT 1");if ($db->sql_numrows($req)) {$user = $db->sql_fetchrow($req);//можно и так:$user['max'] = 5;if (md5($pass) === $user['pass']) { // =D}else {// Если пароль не совпадает, уничтожаем переменные сессии и чистим кукиunset ($_SESSION['id']);unset ($_SESSION['ps']);setcookie('id', '');setcookie('ps', '');$user = false;}?>
Отредактировано tipsun (2011.08.16 23:11)
#187. POFIGISST Off (6)
Участник
2011.08.17 00:12
Офигеть yikes  работает ,спасибо,пассы и так в мд5 в базе храняться  big_smile
#188. Gemorroj Off (107)
Administrator
2011.08.17 11:11
check(intval($us))
wtf?
#189. POFIGISST Off (6)
Участник
2011.08.20 00:12
что это за ошибка при заливке базы?
Вложения
tot.png 5kb {807x235} [загрузок: 821]
#190. Gemorroj Off (107)
Administrator
2011.08.20 08:08
ну, там же написано. записываешь данные в колонку, которой не существует.
#191. Nu3oN Off (11)
Moderator
2011.08.23 01:01
Голова уже лопается... необходимо при создании объекта класса, передавать неопределенное колличество аргументов!
Например:

Код:
span style="color: #0000BB"><?phpfunction getClass($name, $args=array()){ $a = new $name(/* Сюда надо как то вставить аргументы из массива $args */); return $a;}
потом

Код:
span style="color: #0000BB"><?php$a = getClass('class_one', array(1, 2, 3, 4));$b = getClass('class_two', array('a', 'b', 'c'));
Как это можно реализовать? __autoload даже не предлагать гг

Пробовал еще так:

Код:
span style="color: #0000BB"><?php$a = new $name();call_user_func_array(array($a, '__construct'), $args);
Но тогда фигня выходит... Обьекты дублируются:

array(0) { }
array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) }
array(0) { }
array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }
это хорошо если аргументы не указаны в конструкторе! а если указаны...
Должно быть как минимум два, и я введу эти два аргумента, а мне будет выдавать ошибку, и скрипт будет спокойно работать дальше!
Я буду лучше голоден, но между креслом и рулем и на дороге.
#192. Nu3oN Off (11)
Moderator
2011.08.23 02:02
Все! разобрался!
Мне интересно почему так получается, если в функции создать класс, то выдаст ошибку, если же в этой же функции подключить файл (через include / require) то все нормально?
Я буду лучше голоден, но между креслом и рулем и на дороге.
#193. Gemorroj Off (107)
Administrator
2011.08.23 19:07
не понял.. как ты создаешь класс? через eval чтоли? и как проблему с неопределенным числом аргументов решил?
#194. TLENS Off (14)
Moderator
2011.08.23 20:08
Nu3oN
Возможно проблема из за не глобальных переменных
Отредактировано TLENS (2011.08.23 20:08)
#195. Nu3oN Off (11)
Moderator
2011.08.23 22:10
Gemorroj написал:
не понял.. как ты создаешь класс? через eval чтоли? и как проблему с неопределенным числом аргументов решил?
Код:
span style="color: #0000BB"><?phpfunction getClass($name, $args=array()){ require($name . '.class.php'); require('PassingArguments.class.php'); result new PassingArguments($args);}И сам файл PassingArguments:eval(' class PassingArguments extends '.$name.' { function __construct($args) { call_user_func_array(\'parent::__construct\', $args); } }');?>
Добавлено спустя   2 минуты  31 секунду:
Можно еще так:
Код:
span style="color: #0000BB"><?php$reflection = new ReflectionClass('NameClass');$object = $reflection -> newInctanceArgs(array(/* аргументы */));?>
Но не у всех есть такая библа smile
Я буду лучше голоден, но между креслом и рулем и на дороге.
#196. TLENS Off (14)
Moderator
2011.08.23 22:10
Как решить проблему?
Когда файл отдается php скриптом (fread) встречается проблема пока отдается файл то не загружает остальные страницы пока полностью не отдастся файл.
#197. Gemorroj Off (107)
Administrator
2011.08.23 22:10
Nu3oN, я тоже переодически сталкиваюсь с такой проблемой с аргументами, пока нормальных решений не знаю. что eval, что Reflection - говно..
Добавлено спустя   1 минуту  20 секунд:
TLENS, подробнее код. по-моему, это уже обсуждали, возможно, загружен канал
#198. Nu3oN Off (11)
Moderator
2011.08.23 23:11
Gemorroj написал:
Nu3oN, я тоже переодически сталкиваюсь с такой проблемой с аргументами, пока нормальных решений не знаю. что eval, что Reflection - говно..
Лучших вариантов на ближайшее время не вижу (= точнее вообще никаких не наблюдаю гг
Я буду лучше голоден, но между креслом и рулем и на дороге.
#199. Nu3oN Off (11)
Moderator
2011.08.25 01:01
В общем очередной раз переписываю свою cms, и вот решил изменить полностью структуру MVC...
В прошлый раз я писал все иначе, все делилось просто: "/папка/контроллер/переменные" без права на выбор!
Теперь решил все сделать как должно быть! и мне необходимо из URL получить путь к контроллеру, класс контроллера и выводимый метод, с учетом того-что папок может быть очень много! решил это реализовать так:
Код:
span style="color: #0000BB"><?php $_GET['do'] = '/dir/dir/dir/class/method/'; // Образец (папок может быть хоть сколько) $arrDefault = array('path' => 'home', 'class' => 'welcome', 'method' => 'index', 'vars' => 'null'); $arrPath = array_filter(explode('/', $_GET['do']), 'trim'); $intPath = count($arrPath); $i=0; $get = array('str'=>'', 'dir'=>'', 'class'=>''); foreach ($arrPath as $key) { $get['str'] = (empty($get['dir']) ? null : $get['dir']) . $key; if (is_dir(PS_EXTRA_CONTROLLERS . $get['str']. '/')) { $get['dir'] = $get['str'] . '/'; } else { if (is_file(PS_EXTRA_CONTROLLERS . $get['str'] . '.php')) { $get['class'] = $arrPath[$i]; } } ++$i; } $arrDefault['path'] = empty($get['dir']) ? $arrDefault['path'] : $get['dir']; $arrDefault['class'] = empty($get['class']) ? $arrDefault['class'] : $get['class'];?>
Насколько это гуманно?
Я буду лучше голоден, но между креслом и рулем и на дороге.
#200. Gemorroj Off (107)
Administrator
2011.08.25 11:11
ну да, 2 вариант - маппинг. т.е. разработчик сам прописывает в диспетчере все возможные запросы, и в бутстрапе просто ищутся соответствия с заранее определенными правилами.
#201. tipsun Off (19)
Moderator
2011.08.28 06:06
Это короче надо искать другие варианты соединения?
Код:
Внимание:
curl_setopt_array(): CURLOPT_FOLLOWLOCATION
не может быть активирована, когда safe_mode включен
или open_basedir установлен в
/usr/home/tipsun/htdocs/cinema/index.php
Отредактировано tipsun (2011.08.28 06:06)
#202. tipsun Off (19)
Moderator
2011.08.28 22:10
Хотя можно и другим способом эту переадресацию поймать: get_headers('url', 1);.
Да и вообще file_get_contents(); обойтись. Думал как получше замаскироваться, чтоб граб долго работал.
- - - -
Эта переадресация 1 раз встечается (в месяц: /2011-08/).
Отредактировано tipsun (2011.08.28 22:10)
#203. Gemorroj Off (107)
Administrator
2011.09.01 11:11
tipsun, скорее всего там не совсем корректно переадресация сделана. в соответствии с протоколом HTTP 1.1, путь всегда должен быть абсолютным. т.е. не /index.php, а http://wapinet.ru/index.php
curl работает только со 2 вариантом. в 90% случаев, проблема именно в этом.
#204. tipsun Off (19)
Moderator
2011.09.01 13:01
Спс.
Я там смотрел, полный адрес идет, ну во всяком случае в Chrome в загловках. (этот Chrome не поймешь, он сам разметку исправляет, лишние теги убирает, добавляет итп)
Отредактировано tipsun (2011.09.01 13:01)
#205. Gemorroj Off (107)
Administrator
2011.09.01 13:01
смотри в фаербаге или драгонфлае
#206. tipsun Off (19)
Moderator
2011.09.01 15:03
Ок, спс.
Я там по-другому сделал. Переадресация встречается 1 раз.
Эту переадресацию ловлю при помощи get_headers().
Далее цикл по находжению ссылок, в котором попутно идет запись нужной инфы в базу.
Подключаюсь при помощи cURL.
Что плохо, более подробная инфа лежит в ссылке (как бы подробнее), и надо получается каждый раз на ссылку заходить за более подробной инфой. Но зато 1 раз.
Можно после сканирования сделать, я думаю.
Это еще предстоит написать.

Ну короче вот сие бот-недоразумение...
Код:
span style="color: #0000BB"><?php////////////Автор: TiPsun// ICQ : 34142776//////////require_once 'db.php';function scanerBot($url=null) { GLOBAL $db; GLOBAL $n; $agent = 'Nokia6070/2.0 (04.00) Profile/MIDP-2.0 Configuration/CLDC-1.1'; $net = curl_init(); curl_setopt_array($net, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $agent, CURLOPT_AUTOREFERER => 1)); $out = curl_exec($net); curl_close($net); $html = mb_convert_encoding($out, 'utf-8', 'windows-1251'); preg_match_all('/movie\/(\d+)\/.{2}([^\<]+)/', $html, $matches); $date = baseName($url); $db->beginTransaction(); foreach ($matches[1] as $key => $value) { $query = $db->prepare("INSERT INTO `films` SET `id`=?, `date`=?, `name`=?;"); $query->execute(array($value, $date, $matches[2][$key])); } $db->commit(); $n += 1; if (preg_match('/(http:\/\/m\.kinopoisk\.ru\/premier\/\d{4}-\d{2}\/).{2}&rarr;/', $html, $match)) { scanerBot($match[1]); } else { exit('Отсканировано '.$n.' страниц!'); } }//////////$url = 'http://m.kinopoisk.ru/premier/';$url = get_headers($url, 1);$n = 0;scanerBot($url['Location']);//////////?>
Можно и свою дату ставить. Год-Месяц и подключиться...
Ну чем для каждого такую работу выполнять, лучше наверно все у себя сохранить.
Отредактировано tipsun (2011.09.01 16:04)
#207. Gemorroj Off (107)
Administrator
2011.09.02 13:01
baseName - исправь на basename, php хоть и регистронезависим в названиях функций, но есть посылки для изменения такого поведения к более жесткому наименованию функций, т.е. регистрозависимому.
а так норм. для таких скриптов - главное чтобы они просто выполняли свою задачу.
#208. tipsun Off (19)
Moderator
2011.09.02 18:06
=0 неужели, наконец норм, Ура! smile
Отредактировано tipsun (2011.09.02 18:06)
#209. DarkRiDDeR Off (4)
Участник
2011.09.03 16:04
Можно ли хранить конфиденциальные данные в сессиях?
#210. Gemorroj Off (107)
Administrator
2011.09.03 16:04
да
#211. TLENS Off (14)
Moderator
2011.09.08 18:06
В чем дело при отдаче файла отдается нормально до 99.9% и когда уже в браузере остается 0 сек. идет задержка где то пол минуты. И потом только пишет загружено. Вот код отдачи файлов.
Код:
span style="color: #0000BB"><?phperror_reporting(0);ini_set('zlib.output_compression', 'Off');ini_set('output_handler', '');ini_set('max_execution_time', 999);set_time_limit(999);require './sistem/sistem.class.php';$_SET = new Start;$down = true;require './sistem/informator.class.php';$query = $_SERVER['QUERY_STRING'];$id = @explode('/', $_SERVER['REQUEST_URI']);if (substr($id[2], 0, 3) == 'id_') { preg_match('/id_(\d+)/', $id[2], $id); $id = (int)$id[1];} else { $id =(int) $id[2];}$q = mysql_query("SELECT * FROM `video` WHERE `id` = {$id}");if (mysql_num_rows($q)) { $row = mysql_fetch_array($q); $url = $row['url_file'];}if (substr($_SERVER['REQUEST_URI'], -3) == 'flv') { $url = preg_replace('/\.[^\.]+$/', '', $url) . '.flv';}$url = @parse_url($url);$fp = @fsockopen($url['host'], 80, $errno, $errstr, 10);if (!$fp) { exit('Warning. Server problem');}foreach($_SERVER as $k=> $v) { $http=substr($k, 0, 5); if($http == 'HTTP_') { $h=substr($k, 5); if($h == 'HOST') $headers .= 'Host: ' . $url['host'] . "\r\n"; elseif($h == 'REFERER') $headers .= 'Referer: http://' . $url['host'] . "\r\n"; else $headers .= $h.': '.$v."\r\n"; }}fputs ($fp, "GET " . $url['path'] . " HTTP/1.0\r\n" . $headers . "\r\n");$headers = array();while (!feof($fp)) { $b = trim(fgets($fp)); if(!$b) break; if(substr($b, 0, 5) == 'HTTP/') { $headers['HTTP'] = $b; }else { $buf=explode(': ', $b); $headers[$buf[0]] = $buf[1]; }}$name = 'the-best-xxx_ru-' . basename($url['path']); //header($headers['HTTP']); header('Connection: Close'); header('Content-Transfer-Encoding: binary'); header('Content-Disposition: attachment; filename="' . $name . '"'); header('Content-Type: ' . $headers['Content-Type']);if($headers['Content-Range']) header('Content-Range: ' . $headers['Content-Range']);if($headers['Content-Length']) header('Content-Length: ' . $headers['Content-Length']);if($headers['Accept-Ranges']) header('Accept-Ranges: ' . $headers['Accept-Ranges']);while (!feof($fp)) { echo fread($fp, 1024); //usleep(1000); flush();}
#212. Игорь482
Гость
2011.09.08 19:07
Подскажите пожалуйста, сайт стоит на сервере но после обновления ПО Текст: функция toGDImage
выдает ошибку /ffmpeg.so:
undefined symbol:
img_convert...
Зарание спасибо
#213. Gemorroj Off (107)
Administrator
2011.09.08 20:08
TLENS, это антивирус скорее всего) посмотри загрузку проца что жрет ресурсы.
Добавлено спустя    38 секунд:
Игорь482, код приведи плз.
#214. TLENS Off (14)
Moderator
2011.09.08 21:09
Gemorroj написал:
это антивирус скорее всего) посмотри загрузку проца что жрет ресурсы.
Антивирь даже отключил тоже самое, да и на процессах ничего заметного не происходит загрузчик жрет.
Но вот выполнил copy на денвере то он без задержки скопировал.
Я запутался. Если даже проблема в юзер-агенте то почему на других сайтах норм а с моего задержка пробовал оперу и хром.
Может проблема в скрипте?
Отредактировано TLENS (2011.09.08 21:09)
#215. TLENS Off (14)
Moderator
2011.09.09 12:12
Что то с загрузчиком. Пробовал с мобильного 300 кб качает и все. сейчас буду раздуплять
#216. Gemorroj Off (107)
Administrator
2011.09.09 13:01
ну, я не вижу проблем в скрипте..(
#217. TLENS Off (14)
Moderator
2011.09.09 13:01
Изза чего может быть 300 кб?
#218. Gemorroj Off (107)
Administrator
2011.09.09 13:01
возможно, дело в Content-Encoding. Удаленный сервер его передает, а ты нет.
#219. TLENS Off (14)
Moderator
2011.09.09 13:01
Поставил то же самое. Сейчас напишу код похож и буду ему давать заголовки прослежу как он отвечает
#220. TLENS Off (14)
Moderator
2011.09.09 22:10
Паша ответь мне плис что это такое, Какие есть предположения?
Код:
span style="color: #0000BB"><?php //--- Выдача файла --// public function readfile () { //fpassthru($this->fp); $starttime = microtime(1); $fp = fopen('info.txt', 'a'); while (!feof($this->fp)) { $len = strlen(fread($this->fp, 1024)); $stt = microtime(1); fputs($fp, $len . ' - ' . ($stt - $starttime) . "\n"); $starttime = $stt; } }
Дак вот в файле info.txt ряд ожидаемых строчек.
Но последние:

1024 - 5.00679016113E-6
1024 - 0.001140832901
1024 - 2.00271606445E-5
1024 - 1.09672546387E-5
348 - 60.0000932217
0 - 14.9743289948

Это слишком!
---------------------
С другими хостами например с твого норм только с одним сайтом такая трабла.
Предположение бан по маске.
Так как с других серверов норм.
Но почему файлы дает фиг его знает.
Отредактировано TLENS (2011.09.09 22:10)
#221. Gemorroj Off (107)
Administrator
2011.09.09 22:10
я чето не догоняю.
$fp = fopen('info.txt', 'a'); // открыли только для записи
while (!feof($this->fp)) { // тут проверка на конец файла, но модификатор "a" как раз помещает указатель на конец файла, так что внутрь while мы не должны попасть
#222. TLENS Off (14)
Moderator
2011.09.09 22:10
Ты не понял Есть $fp а есть $this->fp который открыт выше
в $this->fp открыт вайл со стороннего хоста.
Отредактировано TLENS (2011.09.09 22:10)
#223. Gemorroj Off (107)
Administrator
2011.09.09 22:10
а епт)
дай весь код. запущу на своей фряхе.
#224. TLENS Off (14)
Moderator
2011.09.09 22:10
Я его запускал на других работает как надо. скорее ip
Код:
span style="color: #0000BB"><?phperror_reporting(0);ini_set('zlib.output_compression', 'Off');ini_set('output_handler', '');ini_set('max_execution_time', 999);//var_dump($GLOBALS["HTTP_SERVER_VARS"]);class Parser { public $host; public $path; public $name; public $url; public $header; public $fp; public $err; public $accept_headers; public function __construct($url, $name = '') { if (!$name) { $this->name = basename($url); } else { $this->name = $name; } $url = parse_url($url); $this->host = $url['host']; $this->path = $url['path']; $this->accept_headers = $this->get_accept_headers(); } //--------- Подготовка принятых заголовков для передачи ------// private function get_accept_headers () { foreach($_SERVER as $k => $v) { $http = substr($k, 0, 5); if($http == 'HTTP_') { $h = substr($k, 5); if($h == 'HOST') $headers .= 'Host: ' . $this->host . "\r\n"; elseif($h == 'REFERER') $headers .= 'Referer: http://' . $this->host . "\r\n"; else $headers .= $h . ': ' . $v . "\r\n"; } } return $headers; } //----- Соеденение и передача заголовков ------// public function connect () { $this->fp = @fsockopen($this->host, 80, $errno, $errstr, 10); if (!$this->fp) { $this->err = '<h1>' . $errno . '</h1>' . "\n" . '<p>' . $errstr . '</p>'; return false; } else { fputs ($this->fp, "GET " . $this->path . " HTTP/1.0\r\n" . $this->accept_headers . "\r\n"); return true; } } //----------- Получаю заголовки -------// public function get_headers () { $headers = array(); while (!feof($this->fp)) { $b = trim(fgets($this->fp)); if(!$b) break; if(substr($b ,0, 5) == 'HTTP/') { $headers['HTTP'] = $b; } else { $buf = explode(': ', $b); $headers[$buf[0]] = $buf[1]; } } return $headers; } //--- Выдача файла --// public function readfile () { //fpassthru($this->fp); $starttime = microtime(1); $fp = fopen('info.txt', 'a'); while (!feof($this->fp)) { $f = fread($this->fp, 1024); $len = strlen($f); $stt = microtime(1); fputs($fp, $len . ' - ' . ($stt - $starttime) . "\n"); if ($len < 1024) { fputs($fp, $f . "\n\n\n"); } $starttime = $stt; } }}set_time_limit(999);$file = new Parser ('http://ds.sasisa.ru/fc/upload_files/1199739600/wap_sasisa_ru_homevideo_tanya_xxx.3gp');if (!$file->connect()) exit($file->err);$headers = $file->get_headers();//var_dump($headers); exit;//header($headers['HTTP']);//header('Keep-Alive: timeout=10, max=60');//header('Connection: Keep-Alive, close');//header ("Cache-Control: None");//header('Content-Encoding: binary');//header('Content-Disposition: attachment; filename="' . $file->name . '"');//if($headers['Content-Range']) //header('Content-Range: ' . $headers['Content-Range']); //if($headers['Accept-Ranges']) //header('Accept-Ranges: ' . $headers['Accept-Ranges']); //header('Content-Length: ' . $headers['Content-Length']); //header('Content-Type: ' . $headers['Content-Type']);$file->readfile();
Добавлено спустя   4 минуты  54 секунды:
Ну что там?
#225. Gemorroj Off (107)
Administrator
2011.09.09 22:10
последние строчки:
1024 - 1,5020370483398E-5
1024 - 1,5020370483398E-5
348 - 60,271856069565
а дальше пидарасня какая-то. такое ощущение, что сам файл пишется. щас код повнимательнее посмотрю.
#226. TLENS Off (14)
Moderator
2011.09.09 22:10
А та не парся то я решил глянуть что там 83 строка
Добавлено спустя   6 минут  41 секунду:
Я конечно люблю загадки но не до такой степени.
Выполнил
Код:
span style="color: #0000BB"><?php$starttime = microtime(1);copy('http://ds.sasisa.ru/fc/upload_files/1199739600/wap_sasisa_ru_homevideo_tanya_xxx.3gp', 'test.file');echo round(microtime(1) - $starttime, 4);
Результат 0.6344
Все таки проблема в коде.
Паша вся надежда на тебя. Сейчас попробую отправляемые заголовки перевести в нижний регистр. Но мало верится что поможет я уже не знаю что делать.
#227. TLENS Off (14)
Moderator
2011.09.09 23:11
Подожди дак у тебя тоже вис, это статы с твоего сервера?
1024 - 1,5020370483398E-5
1024 - 1,5020370483398E-5
348 - 60,271856069565
#228. Gemorroj Off (107)
Administrator
2011.09.09 23:11
да.
смотрю в чем дело.
#229. Gemorroj Off (107)
Administrator
2011.09.09 23:11
smile)
вобщем так)
Добавлено спустя    20 секунд:
Код:
span style="color: #0000BB"><?php//error_reporting(0);ini_set('zlib.output_compression', 'Off');ini_set('output_handler', '');ini_set('max_execution_time', 999);//var_dump($GLOBALS["HTTP_SERVER_VARS"]); class Parser{ public $host; public $path; public $name; public $url; public $header; public $fp; public $err; public $accept_headers; public function __construct($url, $name = '') { if (!$name) { $this->name = basename($url); } else { $this->name = $name; } $url = parse_url($url); $this->host = $url['host']; $this->path = $url['path']; $this->accept_headers = $this->get_accept_headers(); } public function __destruct() { is_resource($this->fp) ? fclose($this->fp) : null; } /** * Подготовка принятых заголовков для передачи * * @return string */ private function get_accept_headers () { $headers = ''; foreach ($_SERVER as $k => $v) { $http = substr($k, 0, 5); if ($http == 'HTTP_') { $h = substr($k, 5); if ($h == 'HOST') { $headers .= 'Host: ' . $this->host . "\r\n"; } else if ($h == 'REFERER') { $headers .= 'Referer: http://' . $this->host . "\r\n"; } else if ($h == 'CONNECTION') { $headers .= "Connection: close\r\n"; } else if ($h == 'ACCEPT_ENCODING' || $h == 'TE') { // пропускаем } else { $headers .= str_replace('_', '-', ucwords(strtolower($h))) . ': ' . $v . "\r\n"; } } } return $headers; } /** * Соеденение и передача заголовков * * @return bool */ public function connect () { $this->fp = @fsockopen($this->host, 80, $errno, $errstr, 10); if (!$this->fp) { $this->err = '<h1>' . $errno . '</h1>' . "\n" . '<p>' . $errstr . '</p>'; return false; } else { fputs ($this->fp, "GET " . $this->path . " HTTP/1.0\r\n" . $this->accept_headers . "\r\n"); return true; } } /** * Получаю заголовки * * @return array */ public function get_headers () { $headers = array(); while (($b = fgets($this->fp)) !== false) { $b = trim($b); if ($b === '') break; if (substr($b, 0, 5) == 'HTTP/') { $headers['HTTP'] = $b; } else { $buf = explode(': ', $b); $headers[$buf[0]] = $buf[1]; } } return $headers; } /** * Запись файла */ public function readfile () { $starttime = microtime(1); $fp = fopen('info.txt', 'a'); fputs($fp, $this->accept_headers . "\n\n\n\n"); while (($f = fgets($this->fp)) !== false) { $len = strlen($f); $stt = microtime(1); fputs($fp, $len . ' - ' . ($stt - $starttime) . "\n"); $starttime = $stt; } }}set_time_limit(999);$file = new Parser ('http://ds.sasisa.ru/fc/upload_files/1199739600/wap_sasisa_ru_homevideo_tanya_xxx.3gp');if (!$file->connect()) exit($file->err);$headers = $file->get_headers();//var_dump($headers); exit; //header($headers['HTTP']);//header('Keep-Alive: timeout=10, max=60');//header('Connection: Keep-Alive, close');//header ("Cache-Control: None");//header('Content-Encoding: binary');//header('Content-Disposition: attachment; filename="' . $file->name . '"'); //if($headers['Content-Range']) //header('Content-Range: ' . $headers['Content-Range']); //if($headers['Accept-Ranges']) //header('Accept-Ranges: ' . $headers['Accept-Ranges']); //header('Content-Length: ' . $headers['Content-Length']); //header('Content-Type: ' . $headers['Content-Type']); $file->readfile();
#230. TLENS Off (14)
Moderator
2011.09.09 23:11
Слушаю
#231. Gemorroj Off (107)
Administrator
2011.09.09 23:11
Конкретно проблема в 60 задержке - в заголовке Connection: Keep-Alive
Там еще была ошибка в работе с feof
#232. TLENS Off (14)
Moderator
2011.09.09 23:11
Я твой должник. Я до сих пор толком не понял для чего Keep-Alive сейчас почитаю, А что на счет EOF?
#233. Gemorroj Off (107)
Administrator
2011.09.09 23:11
ну там получалось что 1 раз считывал лишнюю строчку.
ну там еще и сзаголовками была проблема, они же в php типа как ACCEPT_CHARSET, а передавать нужно Accept-Charsert. Как минимум _ заменить на - надо.
#234. TLENS Off (14)
Moderator
2011.09.10 00:12
А блин куда я смотрел. Но тоже кстати собирался рыть в get_accept_headers ().
Моя бабушка всегда мне говорила если долго мучится что нибудь получится.
Меня очень запутало то что с Твоего сайта не было проблем.
Спасибо огромное еще раз!
#235. Gemorroj Off (107)
Administrator
2011.09.10 01:01
вапинет отдает такое: Keep-Alive: timeout=5, max=100
т.е. задержка 5 сек, а не 60 сек, как на сасисе.
#236. POFIGISST Off (6)
Участник
2011.09.26 20:08
Помогите плиз написать функцию,которая будет блокировать смайлы в чате в одном посте,вернее чтоб лимит был,например чтоб в одном посте показывало только 2 смайла,а остальные чтоб не выводило,а то есть умники которые в одном посте ставят по 20 смайлов,и страниц х.з. сколько грузиться,к посту прикрепляю файл отвечающий за это(( сам пробовал,но нифига не вышло,только ошибок кучу сделал((
Вложения
sssm.zip 3kb [загрузок: 555]
#237. TLENS Off (14)
Moderator
2011.09.26 20:08
Это ты писал скрипт?
#238. POFIGISST Off (6)
Участник
2011.09.26 20:08
TLENS написал:
Это ты писал скрипт?
нет,файл был написан Шахтером,а мод личных смайлов на заказ писали((
Добавлено спустя   8 минут  41 секунду:
примерно таким

Код:
define('MAX_SMILES',2); // Максимальное количество смайлов
 
$cache_sml;
$cache_pat;
$n = 0;
 
function sml_replace_callback($match)
{
global $cache_sml,$n;
if($n == MAX_SMILES)
return '';
$n++;
return $cache_sml[$match[1]];
}
function smiles($msg)
{
global $cache_pat,$cache_sml,$user,$n;
 
if(empty($cache_sml) or empty($cache_pat))
{
$file = file_get_contents(H.'smiles/smiles.txt');
preg_match_all('%(.+) (.+)%',$file,$arr);
$cache_pat = array_map('sml_mk_pat',$arr[2]);
$arr[1] = array_map('sml_mk_img',$arr[1]);
$cache_sml = array_combine($arr[2],$arr[1]);
}
кодом можно сделать наверное,но не соображу как это замутить((
#239. TLENS Off (14)
Moderator
2011.09.26 20:08
Сейчас напишу дополнение.
Ток скажи честно сколько заплатил за него.
#240. POFIGISST Off (6)
Участник
2011.09.26 20:08
TLENS написал:
Сейчас напишу дополнение.
Ток скажи честно сколько заплатил за него.
честно я не платил за него,писал тот чел что и тотал написал,ну код тотала ты видел,мы с ним договорились,что я привожу к нему на сайт 10 человек,а он мне за это пишет этот мод,без денег у нас был договорsmile
#241. TLENS Off (14)
Moderator
2011.09.26 21:09
Код:
lt;?$count_smiles = 3;/** * Замена по ограничению * @return (string) * By TLENS 26.09.2011 */function my_replace($var1, $var2, $str, $count = 0){ if ($count <= 0) { return str_replace($var1, $var2, $str); } $arr = explode($var1, $str); $c = sizeof($arr); if ($c <= $count) { return str_replace($var1, $var2, $str); } $result = (string)''; for ($i = 0; $i<$c; $i++) { if ($i < $count) { $result .= $arr[$i] . $var2; } else { $result .= $arr[$i] . ((($i + 1) < $c) ? $var1 : ''); } } return $result;}//-------------------------------------//function smiles($msg){ global $db, $set,$user, $count_smiles; $f_smiles=file(H."smiles/smiles.txt"); for ($i=0;$i<count($f_smiles);$i++) { $str_sm=explode(' ',trim($f_smiles[$i])); $str_sm2=''; for ($z=1;$z<count($str_sm);$z++) { if ($z>1){$str_sm2.=' ';} $str_sm2.=$str_sm[$z]; } $str_sm2=explode(',',$str_sm2); for ($i2=0;$i2<count($str_sm2);$i2++) { $str_sm2[$i2]=stripcslashes(htmlspecialchars($str_sm2[$i2])); $msg=str_replace("$str_sm2[$i2]", "<img src=\"/smiles/$str_sm[0].gif\" alt=\"\" />", $msg); } } $q=mysql_query("SELECT * FROM `user_smiles_spis`"); //Личные смайлы while($post = mysql_fetch_array($q)){ $msg = str_replace($post['sim'], '<a><img src="/smiles/usersmiles/'.$post['name'].'.gif" alt="'.$post['name'].'"/></a>', $msg); } if ($user['level']>3){ $f_smiles=file(H."smiles/smiles_mod.txt"); for ($i=0;$i<count($f_smiles);$i++) { $str_sm=explode(' ',trim($f_smiles[$i])); $str_sm2=''; for ($z=1;$z<count($str_sm);$z++) { if ($z>1){$str_sm2.=' ';} $str_sm2.=$str_sm[$z]; } $str_sm2=explode(',',$str_sm2); for ($i2=0;$i2<count($str_sm2);$i2++) { $str_sm2[$i2]=stripcslashes(htmlspecialchars($str_sm2[$i2])); $msg=my_replace("$str_sm2[$i2]", "<img src=\"/smiles/$str_sm[0].gif\" alt=\"\" />", $msg, $count_smiles); } }} return $msg;}function links_preg1($arr){return '<a href="'.$arr[1].'">'.$arr[2].'</a>';}function links_preg2($arr){return $arr[1].'<a href="'.$arr[2].'">'.$arr[2].'</a>'.$arr[4];}function links($msg){$msg=preg_replace_callback('~\[url=([^ \r\n\t`\'"]+)\](.*?)\[/url\]~iu', 'links_preg1', $msg);$msg=preg_replace_callback('~(^|\s)([a-z]+://([^ \r\n\t`\'"]+))(\s|$)~iu', 'links_preg2', $msg);return $msg;}$versiya = '4.0';function bbcodehightlight($arr){$arr[0]=html_entity_decode($arr[0], ENT_QUOTES, 'UTF-8');$arr[0]=preg_replace('#<img src="(.*?)" alt="(.*?)" />#sui', '\\2', $arr[0]);return '<div class="" style="overflow:scroll;clip:auto;max-width:480px;">'.preg_replace('#<code>(.*?)</code>#si', '\\1' ,highlight_string($arr[0],1)).'</div>'."\n";}function BBcode($msg){$msg=preg_replace('#\[b\](.*?)\[/b\]#si', '<span style="font-weight: bold;">\1</span>', $msg);$msg=preg_replace('#\[i\](.*?)\[/i\]#si', '<span style="font-style: italic;">\1</span>', $msg);$msg=preg_replace('#\[u\](.*?)\[/u\]#si', '<span style="text-decoration: underline;">\1</span>', $msg);$msg=preg_replace('#\[b\](.*?)\[/b\]#si', '<span style="font-weight: bold;">\1</span>', $msg);$msg=preg_replace('#\[i\](.*?)\[/i\]#si', '<span style="font-style: italic;">\1</span>', $msg);$msg=preg_replace('#\[q\](.*?)\[/q\]#si', '<span style="text-decoration: underline;">\1</span>', $msg);$msg=preg_replace('#\[del\](.*?)\[/del\]#si', '<del>\1</del>', $msg);$msg=preg_replace('#\[small\](.*?)\[/small\]#si', '<span style="font-size: small;">\1</span>', $msg);$msg=preg_replace('#\[big\](.*?)\[/big\]#si', '<span style="font-size: large;">\1</span>', $msg);$msg=preg_replace('#\[blink\](.*?)\[/blink\]#si', '<blink>\1</blink>', $msg);$msg=preg_replace('#\[red\](.*?)\[/red\]#si', '<span style="color:#FF0000;">\1</span>', $msg);$msg=preg_replace('#\[green\](.*?)\[/green\]#si', '<span style="color:#00FF00;">\1</span>', $msg);$msg=preg_replace('#\[blue\](.*?)\[/blue\]#si', '<span style="color:#0000FF;">\1</span>', $msg);$msg=preg_replace('#\[yellow\](.*?)\[/yellow\]#si', '<span style="color:#ffff22;">\1</span>', $msg);$msg=preg_replace('#\[fea\](.*?)\[/fea\]#si', '<span style="color:#FF00FF;">\1</span>', $msg);return $msg;}define('vb12', true);function br($msg,$br='<br />'){$msg=eregi_replace("((<br( ?/?)>)|\n|\r)+",$br, $msg);return $msg;}function page2($page2){$page2=str_replace('</body>','<div align="center"><small><a href="http://masteram.us">© -=ШАХТЕР=-</a></small></div></body>',$page2);$page2=str_replace('</card>','<div align="center"><small><a href="http://masteram.us">© -=ШАХТЕР=-</a></small></div></card>',$page2);return $page2;}if ((eregi('^/enter\.php',$_SERVER['SCRIPT_NAME']))||(eregi('^/index\.php',$_SERVER['SCRIPT_NAME']))){ob_start(page2);define('set2.0', true);}else if ((eregi('^'.dirname($_SERVER['PHP_SELF']).'/enter\.php',$_SERVER['SCRIPT_NAME']))||(eregi('^'.dirname($_SERVER['PHP_SELF']).'/index\.php',$_SERVER['SCRIPT_NAME']))){ob_start(page2);}function esc($text,$br=NULL){if ($br!=NULL)for ($i=0;$i<=31;$i++)$text=str_replace(chr($i), NULL, $text);else{for ($i=0;$i<10;$i++)$text=str_replace(chr($i), NULL, $text);for ($i=11;$i<20;$i++)$text=str_replace(chr($i), NULL, $text);for ($i=21;$i<=31;$i++)$text=str_replace(chr($i), NULL, $text);}return $text;}function text($str,$br=true,$html=true,$smiles=true,$links=true,$bbcode=true){if ($html==true)if ($smiles==true)$str=smiles($str);if ($links==true)$str=links($str);if ($bbcode==true)$str=bbcode($str);if ($br==true){$str=br($str);$str=esc($str);}else{$str=esc($str);}return $str;}function color_msg($text){global $db, $set,$user, $msg;if ($msg['color']==1)$text = '[red]'.$msg['msg'].'[/red]';elseif ($msg['color']==2)$text = '[blue]'.$msg['msg'].'[/blue]';elseif ($msg['color']==3)$text = '[fea]'.$msg['msg'].'[/fea]';elseif ($msg['color']==4)$text = '[green]'.$msg['msg'].'[/green]';return $text;}function bb_msg($text){global $db, $set,$user, $msg;if ($msg['bb']==1)$text = '[i]'.$text.'[/i]';elseif ($msg['bb']==2)$text = '[u]'.$text.'[/u]';elseif ($msg['bb']==3)$text = '[i][u]'.$text.'[/u][/i]';elseif ($msg['bb']==4)$text = '[b]'.$text.'[/b]';elseif ($msg['bb']==5)$text = '[i][b]'.$text.'[/b][/i]';elseif ($msg['bb']==6)$text = '[big]'.$text.'[/big]';return $text;}function emo_msg($text){global $db, $set,$user, $msg;if ($msg['emo']==1) $text = '[Радостно] '.$text;elseif ($msg['emo']==2) $text = '[Печально] '.$text;elseif ($msg['emo']==3) $text = '[Удивленно] '.$text;elseif ($msg['emo']==4) $text = '[Ласково] '.$text;elseif ($msg['emo']==5) $text = '[Смущенно] '.$text;elseif ($msg['emo']==6) $text = '[Кокетливо] '.$text;elseif ($msg['emo']==7) $text = '[Обиженно] '.$text;elseif ($msg['emo']==8) $text = '[Настойчиво] '.$text;elseif ($msg['emo']==9) $text = '[Шепотом] '.$text;elseif ($msg['emo']==10) $text = '[Задумчиво] '.$text;elseif ($msg['emo']==11) $text = '[Злобно] '.$text;return $text;}function antir($msg){global $db, $set,$user;$msg = str_replace("((http://))((([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z;]{2,3}))|(([0-9]{1,3}\.){3}([0-9]{1,3})))((/|\?)[a-z0-9~#%&'_\+=:;\?\.-]*)*)", "".$set['antir']."", $msg);$msg=str_replace(".wab.","".$set['antir']."",$msg);$msg=str_replace(".com","".$set['antir']."",$msg);$msg=str_replace(".net","".$set['antir']."",$msg);$msg=str_replace(".org","".$set['antir']."",$msg);$msg=str_replace(".kz","".$set['antir']."",$msg);$msg=str_replace(".ua","".$set['antir']."",$msg);$msg=str_replace(".ru","".$set['antir']."",$msg);$msg=str_replace(",ru","".$set['antir']."",$msg);$msg=str_replace("-ru","".$set['antir']."",$msg);$msg=str_replace("-ru","".$set['antir']."",$msg);$msg=str_replace("_ru","".$set['antir']."",$msg);$msg=str_replace("-net","".$set['antir']."",$msg);$msg=str_replace(",net","".$set['antir']."",$msg);$msg=str_replace("-su","".$set['antir']."",$msg);$msg=str_replace("_su","".$set['antir']."",$msg);$msg=str_replace(".su","".$set['antir']."",$msg);$msg=str_replace(",su","".$set['antir']."",$msg);$msg=str_replace("-mobi","".$set['antir']."",$msg);$msg=str_replace("_mobi","".$set['antir']."",$msg);$msg=str_replace(".mobi","".$set['antir']."",$msg);$msg=str_replace(",mobi","".$set['antir']."",$msg);$msg=str_replace("-info","".$set['antir']."",$msg);$msg=str_replace("_info","".$set['antir']."",$msg);$msg=str_replace(".info","".$set['antir']."",$msg);$msg=str_replace(",info","".$set['antir']."",$msg);$msg=str_replace("-com","".$set['antir']."",$msg);$msg=str_replace("_com","".$set['antir']."",$msg);$msg=str_replace(".com","".$set['antir']."",$msg);$msg=str_replace(",com","".$set['antir']."",$msg);$msg=str_replace("-msk","".$set['antir']."",$msg);$msg=str_replace("_msk","".$set['antir']."",$msg);$msg=str_replace(".msk","".$set['antir']."",$msg);$msg=str_replace(",msk","".$set['antir']."",$msg);$msg=str_replace("-tk","".$set['antir']."",$msg);$msg=str_replace("_tk","".$set['antir']."",$msg);$msg=str_replace(".tk","".$set['antir']."",$msg);$msg=str_replace(",tk","".$set['antir']."",$msg);$msg=str_replace(".in","".$set['antir']."",$msg);$msg=str_replace("-cn","".$set['antir']."",$msg);$msg=str_replace("_cn","".$set['antir']."",$msg);$msg=str_replace(".cn","".$set['antir']."",$msg);$msg=str_replace(",cn","".$set['antir']."",$msg);$msg=str_replace("-biz","".$set['antir']."",$msg);$msg=str_replace("_biz","".$set['antir']."",$msg);$msg=str_replace(".biz","".$set['antir']."",$msg);$msg=str_replace(",biz","".$set['antir']."",$msg);$msg=str_replace("-h2m","".$set['antir']."",$msg);$msg=str_replace("_h2m","".$set['antir']."",$msg);$msg=str_replace(".h2m","".$set['antir']."",$msg);$msg=str_replace(",h2m","".$set['antir']."",$msg);$msg=str_replace("-wen","".$set['antir']."",$msg);$msg=str_replace("_wen","".$set['antir']."",$msg);$msg=str_replace(".wen","".$set['antir']."",$msg);$msg=str_replace(",wen","".$set['antir']."",$msg);$msg=str_replace("-ua","".$set['antir']."",$msg);$msg=str_replace("_ua","".$set['antir']."",$msg);$msg=str_replace(".ua","".$set['antir']."",$msg);$msg=str_replace(",ua","".$set['antir']."",$msg);return $msg;}function antim($text){$text=strtr($text,array('сука'=>'***','блядь'=>'***','блядь'=>'***','хуй'=>'***','пизда'=>'***','сучка'=>'***','пидор'=>'***','пидар'=>'***','пидор'=>'***','пидрила'=>'***','чмо'=>'***','ебать'=>'***','бля'=>'***'));return $text;}function url_replace($m) {if( !isset($m[3]) ) {return '<a href="' . $m[1] . '">' . $m[2] . '</a>';} else {return '<a href="' . $m[3] . '">' . $m[3] . '</a>';}}function img_replace($m) {if( !isset($m[3]) ) {return '<img src="' . $m[1] . '" alt="' . $m[2] . '">';} else {return '<img src="' . $m[3] . '" alt="' . $m[3] . '">';}}//------------------ Функция вставки BB-кода --------------------//function bb2($text){$text = preg_replace_callback('~\\[link=(http://.+?)\\](.+?)\\[/link\\]|(http://(www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&amp;_=/%-:#]*)~', 'url_replace', $text);$text = preg_replace_callback('~\\[imgs=(.+?)\\](.+?)\\[/imgs\\]|((www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&amp;_=/%-:#]*)~', 'img_replace', $text);return $text;}?>
Код ужасный. Даж я такого в детстве не писал. Думал подправить потом плюнул
Добавлено спустя    57 секунд:
вверху настройка количества
Отредактировано TLENS (2011.09.26 21:09)
#242. POFIGISST Off (6)
Участник
2011.09.26 21:09
TLENS
с этим кодом весь чат не работает,просто белая страница(((
#243. TLENS Off (14)
Moderator
2011.09.26 21:09
Включи показ ошибок
#244. POFIGISST Off (6)
Участник
2011.09.26 21:09
не показывает((или я не правильно включаю,хотя вот error_reporting(-1); должно выводить ошибки((
Добавлено спустя   2 минуты  17 секунд:
error_reporting (E_ALL); и так включить пытался((нифига(((
#245. TLENS Off (14)
Moderator
2011.09.26 21:09
Попробуй поставить в самом начале ведь этот инклюдится куда то
error_reporting(E_ALL);
ini_set("display_errors", 1);
Добавлено спустя   1 минуту  2 секунды:
В общем код дал рабочий. Ничего в нем не менял кроме одной функции она работает разбирайся сам. Включай мозги
Отредактировано TLENS (2011.09.26 21:09)
#246. Gemorroj Off (107)
Administrator
2011.09.26 22:10
замени <? на
<?php
#247. POFIGISST Off (6)
Участник
2011.09.26 22:10
TLENS
спасибо Дим,это с самим файлом хуйня какая-то,хотя раньше норм вродь работал((
Добавлено спустя   2 минуты  12 секунд:
Gemorroj написал:
замени <? на
<?php
спасиб Паш,забываю это исправлять когда редачу файлы((
#248. POFIGISST Off (6)
Участник
2011.09.26 22:10
а если вот так

Код:
span style="color: #0000BB"><?phpdefine('MAX_SMILES',2); // Максимальное количество смайлов$cache_sml;$cache_pat;$n = 0;function sml_replace_callback($match){global $cache_sml,$n; if($n == MAX_SMILES)return '';$n++;return $cache_sml[$match[1]];}function smiles($msg){global $cache_pat,$cache_sml,$user,$n;if(empty($cache_sml) or empty($cache_pat)){$file = file_get_contents(H.'smiles/smiles.txt');preg_match_all('%(.+) (.+)%',$file,$arr);$cache_pat = array_map('sml_mk_pat',$arr[2]);$arr[1] = array_map('sml_mk_img',$arr[1]);$cache_sml = array_combine($arr[2],$arr[1]);}$q=mysql_query("SELECT * FROM `user_smiles_spis`"); //Личные смайлы while($post = mysql_fetch_array($q)){$msg = str_replace($post['sim'],'<a><img src= "/smiles/usersmiles/'.$pot['name'].'.gif" alt="'.$post['name'].'"/></a>',$msg);}$msg = preg_replace_callback($cache_pat,'sml_replace_callback',$msg);$n = 0;return $msg;}function sml_mk_pat($sml){return '%('.preg_quote($sml).')%';}function sml_mk_img($sml){return '<img src="/smiles/'.$sml.'.gif"/>';}function links_preg1($arr){return '<a href="'.$arr[1].'">'.$arr[2].'</a>';}function links_preg2($arr){return $arr[1].'<a href="'.$arr[2].'">'.$arr[2].'</a>'.$arr[4];}function links($msg){$msg=preg_replace_callback('~\[url=([^ \r\n\t`\'"]+)\](.*?)\[/url\]~iu', 'links_preg1', $msg);$msg=preg_replace_callback('~(^|\s)([a-z]+://([^ \r\n\t`\'"]+))(\s|$)~iu', 'links_preg2', $msg);return $msg;}$versiya = '4.0 Лицензионная';function bbcodehightlight($arr){$arr[0]=html_entity_decode($arr[0], ENT_QUOTES, 'UTF-8');$arr[0]=preg_replace('#<img src="(.*?)" alt="(.*?)" />#sui', '\\2', $arr[0]);return '<div class="" style="overflow:scroll;clip:auto;max-width:480px;">'.preg_replace('#<code>(.*?)</code>#si', '\\1' ,highlight_string($arr[0],1)).'</div>'."\n";}function BBcode($msg){$msg=preg_replace('#\[b\](.*?)\[/b\]#si', '<span style="font-weight: bold;">\1</span>', $msg);$msg=preg_replace('#\[i\](.*?)\[/i\]#si', '<span style="font-style: italic;">\1</span>', $msg);$msg=preg_replace('#\[u\](.*?)\[/u\]#si', '<span style="text-decoration: underline;">\1</span>', $msg);$msg=preg_replace('#\[b\](.*?)\[/b\]#si', '<span style="font-weight: bold;">\1</span>', $msg);$msg=preg_replace('#\[i\](.*?)\[/i\]#si', '<span style="font-style: italic;">\1</span>', $msg);$msg=preg_replace('#\[q\](.*?)\[/q\]#si', '<span style="text-decoration: underline;">\1</span>', $msg);$msg=preg_replace('#\[del\](.*?)\[/del\]#si', '<del>\1</del>', $msg);$msg=preg_replace('#\[small\](.*?)\[/small\]#si', '<span style="font-size: small;">\1</span>', $msg);$msg=preg_replace('#\[big\](.*?)\[/big\]#si', '<span style="font-size: large;">\1</span>', $msg);$msg=preg_replace('#\[blink\](.*?)\[/blink\]#si', '<blink>\1</blink>', $msg);$msg=preg_replace('#\[red\](.*?)\[/red\]#si', '<span style="color:#FF0000;">\1</span>', $msg);$msg=preg_replace('#\[green\](.*?)\[/green\]#si', '<span style="color:#00FF00;">\1</span>', $msg);$msg=preg_replace('#\[blue\](.*?)\[/blue\]#si', '<span style="color:#0000FF;">\1</span>', $msg);$msg=preg_replace('#\[yellow\](.*?)\[/yellow\]#si', '<span style="color:#ffff22;">\1</span>', $msg);$msg=preg_replace('#\[fea\](.*?)\[/fea\]#si', '<span style="color:#FF00FF;">\1</span>', $msg);return $msg;}define('vb3', true);function br($msg,$br='<br />'){$msg=eregi_replace("((<br( ?/?)>)|\n|\r)+",$br, $msg);return $msg;}function esc($text,$br=NULL){if ($br!=NULL)for ($i=0;$i<=31;$i++)$text=str_replace(chr($i), NULL, $text);else{for ($i=0;$i<10;$i++)$text=str_replace(chr($i), NULL, $text);for ($i=11;$i<20;$i++)$text=str_replace(chr($i), NULL, $text);for ($i=21;$i<=31;$i++)$text=str_replace(chr($i), NULL, $text);}return $text;}function text($str,$br=true,$html=true,$smiles=true,$links=true,$bbcode=true){if ($html==true)if ($smiles==true)$str=smiles($str);if ($links==true)$str=links($str);if ($bbcode==true)$str=bbcode($str);if ($br==true){$str=br($str);$str=esc($str);}else{$str=esc($str);}return $str;}function color_msg($text){global $db, $set,$user, $msg;if ($msg['color']==1)$text = '[red]'.$msg['msg'].'[/red]';elseif ($msg['color']==2)$text = '[blue]'.$msg['msg'].'[/blue]';elseif ($msg['color']==3)$text = '[fea]'.$msg['msg'].'[/fea]';elseif ($msg['color']==4)$text = '[green]'.$msg['msg'].'[/green]';return $text;}function bb_msg($text){global $db, $set,$user, $msg;if ($msg['bb']==1)$text = '[i]'.$text.'[/i]';elseif ($msg['bb']==2)$text = '[u]'.$text.'[/u]';elseif ($msg['bb']==3)$text = '[i][u]'.$text.'[/u][/i]';elseif ($msg['bb']==4)$text = '[b]'.$text.'[/b]';elseif ($msg['bb']==5)$text = '[i][b]'.$text.'[/b][/i]';elseif ($msg['bb']==6)$text = '[big]'.$text.'[/big]';return $text;}function emo_msg($text){global $db, $set,$user, $msg;if ($msg['emo']==1) $text = '[Радостно] '.$text;elseif ($msg['emo']==2) $text = '[Печально] '.$text;elseif ($msg['emo']==3) $text = '[Удивленно] '.$text;elseif ($msg['emo']==4) $text = '[Ласково] '.$text;elseif ($msg['emo']==5) $text = '[Смущенно] '.$text;elseif ($msg['emo']==6) $text = '[Кокетливо] '.$text;elseif ($msg['emo']==7) $text = '[Обиженно] '.$text;elseif ($msg['emo']==8) $text = '[Настойчиво] '.$text;elseif ($msg['emo']==9) $text = '[Шепотом] '.$text;elseif ($msg['emo']==10) $text = '[Задумчиво] '.$text;elseif ($msg['emo']==11) $text = '[Злобно] '.$text;return $text;}function antir($msg){global $db, $set,$user;$msg = str_replace("((http://))((([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z;]{2,3}))|(([0-9]{1,3}\.){3}([0-9]{1,3})))((/|\?)[a-z0-9~#%&'_\+=:;\?\.-]*)*)", "".$set['antir']."", $msg);$msg=str_replace(".wab.","".$set['antir']."",$msg);$msg=str_replace(".com","".$set['antir']."",$msg);$msg=str_replace(".net","".$set['antir']."",$msg);$msg=str_replace(".org","".$set['antir']."",$msg);$msg=str_replace(".kz","".$set['antir']."",$msg);$msg=str_replace(".ua","".$set['antir']."",$msg);$msg=str_replace(".ru","".$set['antir']."",$msg);$msg=str_replace(",ru","".$set['antir']."",$msg);$msg=str_replace("-ru","".$set['antir']."",$msg);$msg=str_replace("-ru","".$set['antir']."",$msg);$msg=str_replace("_ru","".$set['antir']."",$msg);$msg=str_replace("-net","".$set['antir']."",$msg);$msg=str_replace(",net","".$set['antir']."",$msg);$msg=str_replace("-su","".$set['antir']."",$msg);$msg=str_replace("_su","".$set['antir']."",$msg);$msg=str_replace(".su","".$set['antir']."",$msg);$msg=str_replace(",su","".$set['antir']."",$msg);$msg=str_replace("-mobi","".$set['antir']."",$msg);$msg=str_replace("_mobi","".$set['antir']."",$msg);$msg=str_replace(".mobi","".$set['antir']."",$msg);$msg=str_replace(",mobi","".$set['antir']."",$msg);$msg=str_replace("-info","".$set['antir']."",$msg);$msg=str_replace("_info","".$set['antir']."",$msg);$msg=str_replace(".info","".$set['antir']."",$msg);$msg=str_replace(",info","".$set['antir']."",$msg);$msg=str_replace("-com","".$set['antir']."",$msg);$msg=str_replace("_com","".$set['antir']."",$msg);$msg=str_replace(".com","".$set['antir']."",$msg);$msg=str_replace(",com","".$set['antir']."",$msg);$msg=str_replace("-msk","".$set['antir']."",$msg);$msg=str_replace("_msk","".$set['antir']."",$msg);$msg=str_replace(".msk","".$set['antir']."",$msg);$msg=str_replace(",msk","".$set['antir']."",$msg);$msg=str_replace("-tk","".$set['antir']."",$msg);$msg=str_replace("_tk","".$set['antir']."",$msg);$msg=str_replace(".tk","".$set['antir']."",$msg);$msg=str_replace(",tk","".$set['antir']."",$msg);$msg=str_replace(".in","".$set['antir']."",$msg);$msg=str_replace("-cn","".$set['antir']."",$msg);$msg=str_replace("_cn","".$set['antir']."",$msg);$msg=str_replace(".cn","".$set['antir']."",$msg);$msg=str_replace(",cn","".$set['antir']."",$msg);$msg=str_replace("-biz","".$set['antir']."",$msg);$msg=str_replace("_biz","".$set['antir']."",$msg);$msg=str_replace(".biz","".$set['antir']."",$msg);$msg=str_replace(",biz","".$set['antir']."",$msg);$msg=str_replace("-h2m","".$set['antir']."",$msg);$msg=str_replace("_h2m","".$set['antir']."",$msg);$msg=str_replace(".h2m","".$set['antir']."",$msg);$msg=str_replace(",h2m","".$set['antir']."",$msg);$msg=str_replace("-wen","".$set['antir']."",$msg);$msg=str_replace("_wen","".$set['antir']."",$msg);$msg=str_replace(".wen","".$set['antir']."",$msg);$msg=str_replace(",wen","".$set['antir']."",$msg);$msg=str_replace("-ua","".$set['antir']."",$msg);$msg=str_replace("_ua","".$set['antir']."",$msg);$msg=str_replace(".ua","".$set['antir']."",$msg);$msg=str_replace(",ua","".$set['antir']."",$msg);return $msg;}function antim($text){$text=strtr($text,array('сука'=>'***','блядь'=>'***','блядь'=>'***','хуй'=>'***','пизда'=>'***','сучка'=>'***','пидор'=>'***','пидар'=>'***','пидор'=>'***','пидрила'=>'***','чмо'=>'***','ебать'=>'***','бля'=>'***'));return $text;}function url_replace($m) {if( !isset($m[3]) ) {return '<a href="' . $m[1] . '">' . $m[2] . '</a>';} else {return '<a href="' . $m[3] . '">' . $m[3] . '</a>';}}function img_replace($m) {if( !isset($m[3]) ) {return '<img src="' . $m[1] . '" alt="' . $m[2] . '">';} else {return '<img src="' . $m[3] . '" alt="' . $m[3] . '">';}}//------------------ Функция вставки BB-кода --------------------//function bb2($text){$text = preg_replace_callback('~\\[link=(http://.+?)\\](.+?)\\[/link\\]|(http://(www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&amp;_=/%-:#]*)~', 'url_replace', $text);$text = preg_replace_callback('~\\[imgs=(.+?)\\](.+?)\\[/imgs\\]|((www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&amp;_=/%-:#]*)~', 'img_replace', $text);return $text;}?>
сделать? но так почему то не выводит лычный смайл,вернее показывает что должна быть картинка,но её нету,оно имя из базы не тянет,по исходному коду показывает вот так

<a><img src= "/smiles/usersmiles/.gif" alt="222"/>


имя не берет почему то((
#249. WapStyle Off (3)
Участник
2011.09.26 22:10
Код:
function links_preg1($arr)
{
return '<a href="'.$arr[1].'">'.$arr[2].'</a>';
}
function links_preg2($arr)
{
return $arr[1].'<a href="'.$arr[2].'">'.$arr[2].'</a>'.$arr[4];
}
Это часть кода...

Жгёш пополной big_smile
Отредактировано WapStyle (2011.09.26 22:10)
#250. POFIGISST Off (6)
Участник
2011.09.26 22:10
WapStyle написал:
Код:
function links_preg1($arr)
{
return '<a href="'.$arr[1].'">'.$arr[2].'</a>';
}
function links_preg2($arr)
{
return $arr[1].'<a href="'.$arr[2].'">'.$arr[2].'</a>'.$arr[4];
}
Это часть кода...

Жгёш пополной big_smile
чесн сказать,я сам даже такого не напишу((
#251. TLENS Off (14)
Moderator
2011.09.26 22:10
WapStyle Заценил? гг
#252. POFIGISST Off (6)
Участник
2011.09.26 22:10
Это был мой позор(((исправил все,теперь работает((правда говнокод остался((
Добавлено спустя   4 минуты  54 секунды:
смайлы личные работают,и обычные тоже,обычных смайлов выводит только по 2 смайла в одном посте,а вот личных,скок напишешь,сток и выведет,хоть 100 штук в одном посте,теперь не знаю как ограничитель личных смайлов сделать((чтоб их тоже выводило только по два в одном посте(( в какой строке или в какой части это можно сделать подскажите((

Код:
span style="color: #0000BB"><?phpdefine('MAX_SMILES',2); // Максимальное количество смайлов$cache_sml;$cache_pat;$n = 0;function sml_replace_callback($match){global $cache_sml,$n; if($n == MAX_SMILES)return '';$n++;return $cache_sml[$match[1]];}function smiles($msg){global $cache_pat,$cache_sml,$user,$n;if(empty($cache_sml) or empty($cache_pat)){$file = file_get_contents(H.'smiles/smiles.txt');preg_match_all('%(.+) (.+)%',$file,$arr);$cache_pat = array_map('sml_mk_pat',$arr[2]);$arr[1] = array_map('sml_mk_img',$arr[1]);$cache_sml = array_combine($arr[2],$arr[1]);}$q=mysql_query("SELECT * FROM `user_smiles_spis`"); //Личные смайлы while($post = mysql_fetch_array($q)){$msg = str_replace($post['sim'],'<a><img src= "/smiles/usersmiles/'.$post['name'].'.gif" alt="'.$post['name'].'"/></a>',$msg);}$msg = preg_replace_callback($cache_pat,'sml_replace_callback',$msg);$n = 0;return $msg;}function sml_mk_pat($sml){return '%('.preg_quote($sml).')%';}function sml_mk_img($sml){return '<img src="/smiles/'.$sml.'.gif"/>';}function links_preg1($arr){return '<a href="'.$arr[1].'">'.$arr[2].'</a>';}function links_preg2($arr){return $arr[1].'<a href="'.$arr[2].'">'.$arr[2].'</a>'.$arr[4];}function links($msg){$msg=preg_replace_callback('~\[url=([^ \r\n\t`\'"]+)\](.*?)\[/url\]~iu', 'links_preg1', $msg);$msg=preg_replace_callback('~(^|\s)([a-z]+://([^ \r\n\t`\'"]+))(\s|$)~iu', 'links_preg2', $msg);return $msg;}$versiya = '4.0 Лицензионная';function bbcodehightlight($arr){$arr[0]=html_entity_decode($arr[0], ENT_QUOTES, 'UTF-8');$arr[0]=preg_replace('#<img src="(.*?)" alt="(.*?)" />#sui', '\\2', $arr[0]);return '<div class="" style="overflow:scroll;clip:auto;max-width:480px;">'.preg_replace('#<code>(.*?)</code>#si', '\\1' ,highlight_string($arr[0],1)).'</div>'."\n";}
#253. POFIGISST Off (6)
Участник
2011.09.27 23:11
Блин,создаю таблицу в базе вот такую

Код:
`id` INT( 11 ) NULL DEFAULT NULL AUTO_INCREMENT ,
`name` INT( 20 ) NULL DEFAULT NULL AUTO_INCREMENT ,
`id_dir` INT( 50 ) NULL DEFAULT NULL ,
`sim` VARCHAR( 50 ) NULL DEFAULT NULL ,
`user` INT( 11 ) NULL DEFAULT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
и выдает ошибку "#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key "
это значить что в таблице может быть только одно поле с атрибутом AUTO_INCREMENT,а мне нужно два таких поля(( как это сделать? или лучше обойтись одним полем id ? в принципе значения в поле id и name ,будут одинаковые если поставить AUTO_INCREMENT  (
#254. Gemorroj Off (107)
Administrator
2011.09.28 00:12
тебе не нужно 2 автоинкремента. тут, на сколько я понял, нужна связь многие ко многим.
#255. POFIGISST Off (6)
Участник
2011.09.28 00:12
Gemorroj написал:
тебе не нужно 2 автоинкремента. тут, на сколько я понял, нужна связь многие ко многим.
наверное поле name нужно убрать,ведь значения в полях id и name будут одинаковые,и поле ид можно использовать в двух значениях сразу как имя(чтоб не повторялось имя файла при загрузке) и как ид ))
Отредактировано POFIGISST (2011.09.28 00:12)
#256. TLENS Off (14)
Moderator
2011.09.28 00:12
POFIGISST
Ну оно за частую так и делается.
#257. POFIGISST Off (6)
Участник
2011.09.28 22:10
как мне в этом

Код:
span style="color: #0000BB"><?phprequire'../../config.php';$align='left';$title='Личные смайлы';aut();head();who_add(0,'enter');echo '<div class="menu">';if(!isset($user)){ echo '<div class="err">Доступ закрыт</div>'; }if($_GET['act']=='dir'){if(isset($_POST['name']) && isset($_POST['pos'])){ $name = esc(stripcslashes(htmlspecialchars($_POST['name']))); $pos = intval($_POST['pos']); if(strlen2($name)>32){ $err='Слишком большое название директории'; }else if(strlen2($name)<3){ $err='Слишком короткое название директории'; }else if($pos<0){ $err='Неверный выбор положения директории'; }else{mysql_query("INSERT INTO `user_smiles_dir` (`name`, `pos`, `user`) values('$name', '$pos', '$user[id]')");mysql_query("OPTIMIZE TABLE `user_smiles_dir` where `user` = $user[id]");print'Директория <b>'.$name.'</b> добавлена';}}echo '<form method="post" action="add.php?act=dir">';echo 'Название:(3-32)<br/><input name="name" maxlength="32"/><br/>';echo 'Позиция:(от 1)<br/><input name="pos"/><br/>';echo '<input value="Добавить" type="submit"/></form>';echo '&#187;&nbsp;<a href="index.php">Отмена</a><br/>';}else if($_GET['act']=='smile'){if(isset($_FILES['file']) && $_FILES['file']!=NULL && isset($_POST['name']) && isset($_POST['sim']) && isset($_POST['dir'])){ $name = esc(stripcslashes(htmlspecialchars($_POST['name']))); $dir_s = intval($_POST['dir']); $sim = htmlspecialchars($_POST['sim']);if($imgc=@imagecreatefromstring(file_get_contents($_FILES['file']['tmp_name']))){ $name = rus_to_lat(tolower($name));if($name==NULL){ $err = 'Название файла не заполнено'; }else if(strlen2($name)>10){ $err = 'Название слишком большое. max 10'; }else if(strlen2($name)<1){ $err = 'Название слишком маленькое. min 1'; }else{mysql_query("INSERT INTO `user_smiles_spis` (`name`, `id_dir`, `sim`, `user`) values ('".$name."', '$dir_s', '$sim', '$user[id]')");copy($_FILES['file']['tmp_name'], '../../smiles/usersmiles/'.$name.'.gif');chmod('../../smiles/usersmiles/'.$name.'.gif',0666);print"<b>Смайл загружен</b><br>";}}else{ print"Это не смайл"; }mysql_query("OPTIMIZE TABLE `smiles_spis`"); }echo 'Загружать только *.gif<br/>';echo '<form method="post" enctype="multipart/form-data" action="add.php?act=smile">';echo '<input type="file" name="file" accept="image/*,image/gif"/><br/>';echo '<b>Короткое название смайла:</b><br/><input name="name"><br/>';echo '<b>На что заменяем?:</b><br/><input name="sim"><br/>';echo '<b>Директория</b>:<br/><select name="dir">';$q = mysql_query("SELECT * FROM `user_smiles_dir` where `user` = $user[id]");while($dir = mysql_fetch_array($q)){ echo '<option value="'.$dir['id'].'">'.esc(stripcslashes(htmlspecialchars($dir['name']))).'</option>'; }echo '</select><br/>';echo '<input value="Загрузить" type="submit"/></form>';echo '&#187;&nbsp;<a href="index.php">Отмена</a><br/>';}else{ echo '<div class="err">Неверный ввод</div>'; } echo '</div>';echo gb.'<a href="'.H.'my/index">Личный кабинет</a>'.div;echo gb.'<a href="'.H.'enter">Прихожая</a>'.div;foot();?>
сделать,чтоб название файла который закидывают было не то которое юзер пишет,а чтоб файл сохранялся с именем ид,то есть если ид равен 5 например,то чтоб и файл автоматически менял название на 5.gif как такое сделать?sad
#258. tipsun Off (19)
Moderator
2011.09.28 23:11
ID чего/кого? Юзера, смайла в дирректории по порядку?
#259. POFIGISST Off (6)
Участник
2011.09.28 23:11
tipsun написал:
ID чего/кого? Юзера, смайла в дирректории по порядку?
в таблице user_smiles_spis первое поле идет id там автоинкремент стоит,вот хочу чтоб по умолчанию картинкам присваивалось имя их ИДа,чтоб юзер сам не мог давать имя файлу который он закидывает((
#260. POFIGISST Off (6)
Участник
2011.09.29 19:07
а как можно сделать проверку данных которые юзер записывает в форму? то есть есть слова определенные в тхт файле,и над сделать проверку,чтоб если юзер в водит то слово которое в этом тхт файле , то чтоб писало ошибку((
#261. Gemorroj Off (107)
Administrator
2011.09.29 20:08
ну при сабмите проверяй
#262. POFIGISST Off (6)
Участник
2011.09.29 20:08
Gemorroj написал:
ну при сабмите проверяй
напиши название  функции которая делает такую проверку?smile
#263. Gemorroj Off (107)
Administrator
2011.09.29 20:08
==
#264. POFIGISST Off (6)
Участник
2011.09.29 20:08
это примерно так, переменная которую юзер вводит,проверяется в тхт файле,и если есть совпадения,то ошибку выдает?smile
#265. Gemorroj Off (107)
Administrator
2011.09.29 21:09
да
#266. POFIGISST Off (6)
Участник
2011.09.29 21:09
Gemorroj написал:
да
спасиб))
#267. TLENS Off (14)
Moderator
2011.09.30 22:10
Посоветуйте как лучше перенести таблицы с сервера на сервер.
phpmyadmin переносит  с потерями. А в ручную писать скрипт нет времени. Надо успеть до 0:00
#268. Gemorroj Off (107)
Administrator
2011.09.30 22:10
какие именно "потери"?
#269. TLENS Off (14)
Moderator
2011.09.30 22:10
Ну я бекаплю частями по 10000 - 500000  запросов.
При заливке через phpmyadmin разные ошибки, так заливаю через гменеджер-ий заливщик.
пару ошибок и 10 тыс. потерялась. Ну в общем перелил только что фотки 400тыс. то проц. 5 нет в базе
Отредактировано TLENS (2011.09.30 22:10)
#270. Gemorroj Off (107)
Administrator
2011.09.30 22:10
блин. что за "разные ошибки"?
#271. TLENS Off (14)
Moderator
2011.09.30 22:10
Да я сам фиг проссу.
То поврежденные архивы то нет никаких возвратов. А когда по одному то бывает проблема с кавычками они почему то пишутся не в специал.чаре
Добавлено спустя   8 минут  44 секунды:
Вроде перезалил все, кавычки сменил на соль и в новой базе заменил назад.
#272. TLENS Off (14)
Moderator
2011.10.01 12:12
Паша подскажи что делать.
Стоит nginx и set_time_limit включен но не работает.
Дает 504
читал в гугле решение только max_execution_time но для отдачи файлов ето не вариант надо именно set_time_limit/
Да и безопасный режим отключен
#273. Gemorroj Off (107)
Administrator
2011.10.01 13:01
это в nginx надо ковырять время ожидания ответа.
конкретную директиву не помню.
#274. POFIGISST Off (6)
Участник
2011.10.05 19:07
Блин,написал сохранение писем,но где то ошибка в запросе,при нажатии на ссылку,в определенное поле в базу,должно заносить результат 1,но нифига не заносит его((
подскажите где в коде у мя ошибка?
вот код((

Код:
span style="color: #0000BB"><?phprequire'../config.php';$align='left';$title='Сообщения';head();aut();who_add(0,'enter');switch($mod){default:if (isset($_GET['delread'])){$db->sql_query("DELETE FROM `privat` where to_id = '".$user['id']."' and readin =1");header ('Location: privat?'.SID);}if (isset($_GET['save'])){$db->sql_query("INSERT INTO `saved` where to_id = '".$user['id']."'");header ('Location: privat?'.SID);}if (isset($_GET['delall'])){$db->sql_query("DELETE FROM `privat` where to_id = '".$user['id']."'");header ('Location: privat?'.SID);}echo '&#187; <a href="privat?mod=in">Входящие</a>(<b>'.$db->sql_fetchfield($db->sql_query("select count(*) as num from privat where to_id = '".$user['id']."' and readin !=1"),0).'</b>/'.$db->sql_fetchfield($db->sql_query("select count(*) as num from privat where to_id = '".$user['id']."'"),0).')<br />';echo '&#187; <a href="privat?mod=aut">Исходящие</a>(<b>'.$db->sql_fetchfield($db->sql_query("select count(*) as num from privat where user_id = '".$user['id']."' and readin !=1"),0).'</b>/'.$db->sql_fetchfield($db->sql_query("select count(*) as num from privat where user_id = '".$user['id']."'"),0).')<br />';echo '&#187; <a href="privat?mod=saved">Сохраненные </a>(<b>'.$db->sql_fetchfield($db->sql_query("select count(*) as num from saved where user_id = '".$user['id']."'"),0).'</b>)<br /><br />';echo '&#187; <a href="privat?mod=add">Написать</a><br />';echo '&#187; <a href="privat?save">Сохранить все прочитанные</a><br />';echo '&#187; <a href="privat?delread">Удалить все прочитанные</a><br />';echo '&#187; <a href="privat?delall">Удалить все входящие</a><br />';echo '&#187; <a href="friends">Ваши Друзья</a><br />';echo '&#187; <a href="ignor">Черный список</a><br />';break;case add:if (empty($act)){if ($_GET['err']==1)echo '<b>Сообщение должно быть длиннее 5 символов!</b>';if ($_GET['err']==2)echo '<b>Такого пользователя не существует!</b><br />';if ($_GET['err']==3)echo '<b>Проверочный код введен неверно!</b>';if ($_GET['err']==4)echo '<b>Чтобы писать записки, нужно набрать '.$set['posts_pr'].' постов!</b>';if ($_GET['err']==5)echo '<b>Запрещено писать пользователям с х-статусом "Не беспокоить"<img src="'.H.'img/online/zaniat.png" alt="" /></b>';if ($_GET['err']==6)echo '<b>Вы не можете писать этому пользователю, т.к. находитесь в его черном списке.</b>';if ($_GET['err']==7)echo '<b>Этому пользователю писать могут только друзья.</b>';if ($_GET['err']==8)echo '<b>Полозователь запретил отправлять ему сообщения.</b>';if ($ver!='wml')echo '<form action="privat?mod='.$mod.'&amp;act=act&amp;'.SID.'" method="post">';$to = check($_GET['to']);if ($ver=='wml'){echo 'Кому (Ник/ID):<br /><input name="to'.$ref.'" maxlength="15" value="'.$to.'" title="komu"/><br/>';echo 'Сообщение:<br /><input name="msg'.$ref.'" maxlength="512" title="komu"/><br/>';$chislo=rand(1000,9999);$db->sql_query("DELETE FROM `chislo` WHERE `ip` = '".$ip."'");$db->sql_query("INSERT INTO `chislo` (chislo,ip) values('$chislo','".$ip."')");echo '&#160;<b>'.$chislo.'</b><br/>Проверочный код:<br/><input type="text" name="code'.$ref.'" size="4" maxlength="4" title="code"/>';echo '<br /><anchor title="go">Написать<go href="privat?mod='.$mod.'&amp;act=add&amp;'.SID.'" method="post"><br />';echo '<postfield name="to" value="$to'.$ref.'"/><postfield name="msg" value="$msg'.$ref.'"/><postfield name="code" value="$code'.$ref.'"/></go></anchor><br />';}else{echo "Кому (Ник/ID):<br /><input name='to' maxlength='15' value='$to' title='komu'/><br/>\n";echo'Сообщение:<br /><textarea cols="'.$user['pole2'].'" rows="'.$user['pole1'].'" name="msg" ></textarea><br />';$chislo=rand(1000,9999);$db->sql_query("DELETE FROM `chislo` WHERE `ip` = '".$ip."'");$db->sql_query("INSERT INTO `chislo` (chislo,ip) values('$chislo','".$ip."')");echo '&#160;<b>'.$chislo.'</b><br/>Проверочный код:<br/><input type="text" name="code" size="4" maxlength="4" title="code"/><br/>';echo '<input type="submit" class="ibutton" value="Написать"/></form><br /><br />';}}else{$to = check($_POST['to']);$msg = check($_POST['msg']);$_POST['code'] = check($_POST['code']);$msg = iconv('utf-8', 'windows-1251', $msg);$msg = substr($msg,0,512);$msg = iconv('windows-1251', 'utf-8', $msg);if ($user['translit']==1)$msg = translit($msg);if ($user['posts']<$set['posts_pr']){header ('Location: privat?mod='.$mod.'&err=4&'.SID); exit;}if (!user($to)){header ('Location: privat?mod='.$mod.'&err=2&'.SID); exit;}if (strlen2($msg)<5){header ('Location: privat?mod='.$mod.'&err=1&'.SID); exit;}if (user_inf($to,'xstatus')==2){header ('Location: privat?mod='.$mod.'&err=5&'.SID); exit;}if (ignor(user_inf($to),$user['id'])==1){header ('Location: privat?mod='.$mod.'&err=6&'.SID); exit;}if (user_inf($to,'pp_m_s')==2){header ('Location: privat?mod='.$mod.'&err=8&'.SID); exit;}if (user_inf($to,'pp_m_s')==1 && friends($to,$user['id'])!=1){header ('Location: privat?mod='.$mod.'&err=7&'.SID); exit;}$online = $db->sql_fetchrow($db->sql_query("SELECT * FROM `chislo` WHERE `ip` = '".$ip."'"));if($online['chislo'] != intval($_POST['code'])){header ('Location: privat?mod='.$mod.'&err=3&'.SID); exit;}if ($db->sql_query ("INSERT INTO privat (user,user_id,to_user,to_id,time,msg) VALUES ('$user[user]','$user[id]','".user($to)."','".user_inf($to)."','$time','$msg')")){if (user_inf($to,'pm_notify')==1){if ($user['sex']==1)$sex = 'оставил'; else $sex = 'оставила';$msgmail = "".$user['user']." ".$sex." Вам личное сообщение.\n Просмотреть Ваши новые личные сообщения можно на странице:\n http://".$_SERVER['HTTP_HOST']."/my/privat \n\n С уважением,Администрация ".$_SERVER['HTTP_HOST']."\n_ _ _ _ _\nВы можете поменять настройки e-mail оповещений на странице:http://".$_SERVER['HTTP_HOST']."/my/setting?mod=notify";$mail=explode('|',user_inf($to,'mail'));addmail($mail[0], $user['user'].' '.$sex.' Вам личное сообщение', $msgmail);}echo 'Сообщение для <b>'.user_inf($to,'user').'</b> отправлено!<br />';$db->sql_query("DELETE FROM `chislo` WHERE `ip` = '".$ip."'");if (user_inf($to,'onl')<($time-300)){if(user_inf($to,'avtootvet')!=""){echo 'Автоответчик: '.user_inf($to,'avtootvet').'<br/>';}}}}break;case in:if (isset($_GET['del'])){$db->sql_query("DELETE FROM `privat` WHERE `id` = '".intval($_GET['del'])."' and `to_id` = '$user[id]'");}if (isset($_GET['delall'])){$db->sql_query("DELETE FROM `privat` WHERE `user_id` = '".intval($_GET['delall'])."' and `to_id` = '$user[id]'");}if (isset($_GET['save'])){$db->sql_query("update privat set save = '1' where id = '".$a['id']."'");}if (empty($user['max_pr'])) $user['max_pr']=5;$max = $user['max_pr'];$k_post=$db->sql_fetchfield($db->sql_query("select count(*) as num from privat where to_id = '".$user['id']."'"),0);$k_page=k_page($k_post,$max);$page=page($k_page);$start=$max*$page-$max;$r = $db->sql_query ("Select * from privat where to_id = '".$user['id']."' order by time desc LIMIT $start, $max");$k = $db->sql_numrows($r);if ( $k == 0 ){echo 'Сообщений пока нет :(<br />';}$post_k=$start+1;while($a = @$db->sql_fetchrow($r)){if ($a['readin'] == 0){$db->sql_query ("Update privat set readin = '1' WHERE id ='".$a['id']."'");echo links.'<img src="'.H.'img/new.gif" alt="" /> ';}else echo links;if ($a['user_id']==0)echo '<b>'.nik($a['user']).'</b> ('.times($a['time']).')<br />'.div;else echo '<b>'.nik($a['user_id']).'</b> ('.times($a['time']).')<br />'.div;echo antir(text($a['msg']))."<br/>";echo '<dl><dt></dt></dl><a href="privat?mod=add&amp;to='.user_inf($a['user']).'">Ответить</a>| <a href="privat?mod='.$mod.'&amp;save='.$a['id'].'">Сохранить</a> | <a href="friends?mod=add&amp;act=add&amp;nick='.user_inf($a['user']).'">В друзья</a>|<a href="ignor?mod=add&amp;act=add&amp;nick='.user_inf($a['user']).'">В черный список</a>|<a href="privat?mod='.$mod.'&amp;del='.$a['id'].'">Удалить</a>|<a href="privat?mod='.$mod.'&amp;delall='.user_inf($a["user"]).'">Удалить всё от</a> '.user($a["user"]).'';echo "<hr />";}if ($k_page>1){echo "<dl><dt></dt></dl>";str('privat?mod=in&amp;',$k_page,$page); // Вывод страницecho "<br /><dl><dt></dt></dl><br />";}break;case aut:if (empty($user['max_pr'])) $user['max_pr']=5;$max = $user['max_pr'];$k_post=$db->sql_fetchfield($db->sql_query("select count(*) as num from privat where user_id = '".$user['id']."'"),0);$k_page=k_page($k_post,$max);$page=page($k_page);$start=$max*$page-$max;$r = $db->sql_query ("Select * from privat where user_id = '".$user['id']."' order by time desc LIMIT $start, $max");$k = $db->sql_numrows($r);if ( $k == 0 ){echo 'Сообщений пока нет :(<br />';}$post_k=$start+1;while($a = @$db->sql_fetchrow($r)){if ($a['to_id']=='')echo user($a['to_user"']).'('.times($a['time']).')<br />';else echo '<b>'.nik($a['to_user']).'</b> ('.times($a['time']).')<br />';echo antir(text($a['msg']))."<br/>";echo '<dl><dt></dt></dl><a href="privat?mod=add&amp;to='.user_inf($a['to_user']).'">Написать ещё</a>|<a href="friends?mod=add&amp;user='.user_inf($a['to_user']).'">В друзья</a>|<a href="ignor?mod=add&amp;act=add&amp;nick='.$inf['id'].'">В черный список</a>';echo "<hr />";}if ($k_page>1){echo "<dl><dt></dt></dl>";str('privat?mod='.$mod.'&amp;',$k_page,$page); // Вывод страницecho "<br /><dl><dt></dt></dl><br />";}break;case del:break;}if ($mod)echo gb.'<a href="'.H.'my/privat">Ваши письма</a>'.div;echo gb.'<a href="'.H.'my/index">Личный кабинет</a>'.div;echo gb.'<a href="'.H.'enter">Прихожая</a>'.div;foot();?>
вот запрос в базу который отвечает за занос 1 в базу((

$db->sql_query("update privat set save = '1' where id = '".$a['id']."'");
#275. Gemorroj Off (107)
Administrator
2011.10.05 20:08
после запроса сделай вывод ошибки. какой драйвер для работы с бд используется?
#276. POFIGISST Off (6)
Участник
2011.10.05 20:08
Gemorroj написал:
после запроса сделай вывод ошибки. какой драйвер для работы с бд используется?
ошибку не показывает,а просто обновляет страницу,ссылка на сохранение письма идет такая http://test4.ru/my/privat?mod=in&save=14
save=14 - это ид письма,которому нужно присвоить значение 1 в базе в определенную строку,а оно нифига не заносит(
#277. Gemorroj Off (107)
Administrator
2011.10.05 22:10
ну пиши ошибку в лог
#278. POFIGISST Off (6)
Участник
2011.10.05 22:10
Gemorroj написал:
ну пиши ошибку в лог
не умею((не знаю как делатьsad
#279. Gemorroj Off (107)
Administrator
2011.10.06 10:10
error_log('error');
#280. TLENS Off (14)
Moderator
2011.10.06 13:01
неужели так еще кто то пишет?
POFIGISST написал:
if ($_GET['err']==1)echo '<b>Сообщение должно быть длиннее 5 символов!</b>';
if ($_GET['err']==2)echo '<b>Такого пользователя не существует!</b><br />';
if ($_GET['err']==3)echo '<b>Проверочный код введен неверно!</b>';
if ($_GET['err']==4)echo '<b>Чтобы писать записки, нужно набрать '.$set['posts_pr'].' постов!</b>';
if ($_GET['err']==5)echo '<b>Запрещено писать пользователям с х-статусом "Не беспокоить"<img src="'.H.'img/online/zaniat.png" alt="" /></b>';
if ($_GET['err']==6)echo '<b>Вы не можете писать этому пользователю, т.к. находитесь в его черном списке.</b>';
if ($_GET['err']==7)echo '<b>Этому пользователю писать могут только друзья.</b>';
if ($_GET['err']==8)echo '<b>Полозователь запретил отправлять ему сообщения.</b>';
#281. POFIGISST Off (6)
Участник
2011.10.06 15:03
TLENS написал:
неужели так еще кто то пишет?
POFIGISST написал:
if ($_GET['err']==1)echo '<b>Сообщение должно быть длиннее 5 символов!</b>';
if ($_GET['err']==2)echo '<b>Такого пользователя не существует!</b><br />';
if ($_GET['err']==3)echo '<b>Проверочный код введен неверно!</b>';
if ($_GET['err']==4)echo '<b>Чтобы писать записки, нужно набрать '.$set['posts_pr'].' постов!</b>';
if ($_GET['err']==5)echo '<b>Запрещено писать пользователям с х-статусом "Не беспокоить"<img src="'.H.'img/online/zaniat.png" alt="" /></b>';
if ($_GET['err']==6)echo '<b>Вы не можете писать этому пользователю, т.к. находитесь в его черном списке.</b>';
if ($_GET['err']==7)echo '<b>Этому пользователю писать могут только друзья.</b>';
if ($_GET['err']==8)echo '<b>Полозователь запретил отправлять ему сообщения.</b>';
вывод ошибок,а как ты предлогаешь написать?smile
#282. TLENS Off (14)
Moderator
2011.10.06 15:03
Тот вариант тоже правильный но там в место if надо использовать elseif дабы предотвратить бессмысленные проверки.
А вообще по всем принципам кодинга, да и по производительности такой вариант будет правильней.
Код:
span style="color: #0000BB"><?phpif (isset($_GET['err'])) { switch($_GET['err']) case 1 : echo '<b>Сообщение должно быть длиннее 5 символов!</b>'; break; case 2 : echo '<b>Такого пользователя не существует!</b><br />'; break; case 3 : echo '<b>Проверочный код введен неверно!</b>'; break; case 4 : echo '<b>Чтобы писать записки, нужно набрать '.$set['posts_pr'].' постов!</b>'; break; case 5 : echo '<b>Запрещено писать пользователям с х-статусом "Не беспокоить"<img src="'.H.'img/online/zaniat.png" alt="" /></b>'; break; case 6 : echo '<b>Вы не можете писать этому пользователю, т.к. находитесь в его черном списке.</b>'; break; case 7 : echo '<b>Этому пользователю писать могут только друзья.</b>'; break; case 8 : echo '<b>Полозователь запретил отправлять ему сообщения.</b>'; break; }}
Отредактировано TLENS (2011.10.06 15:03)
#283. POFIGISST Off (6)
Участник
2011.10.06 15:03
TLENS написал:
Тот вариант тоже правильный но там в место if надо использовать elseif дабы предотвратить бессмысленные проверки.
А вообще по всем принципам кодинга, да и по производительности такой вариант будет правильней.
Код:
span style="color: #0000BB"><?phpif (isset($_GET['err'])) { switch($_GET['err']) case 1 : echo '<b>Сообщение должно быть длиннее 5 символов!</b>'; break; case 2 : echo '<b>Такого пользователя не существует!</b><br />'; break; case 3 : echo '<b>Проверочный код введен неверно!</b>'; break; case 4 : echo '<b>Чтобы писать записки, нужно набрать '.$set['posts_pr'].' постов!</b>'; break; case 5 : echo '<b>Запрещено писать пользователям с х-статусом "Не беспокоить"<img src="'.H.'img/online/zaniat.png" alt="" /></b>'; break; case 6 : echo '<b>Вы не можете писать этому пользователю, т.к. находитесь в его черном списке.</b>'; break; case 7 : echo '<b>Этому пользователю писать могут только друзья.</b>'; break; case 8 : echo '<b>Полозователь запретил отправлять ему сообщения.</b>'; break; }}
спасибо,воспользуюсь,а насчет elseif ты прав,чтоб пустых проверок небыло так нужно писать(( ступил((
#284. POFIGISST Off (6)
Участник
2011.10.06 16:04
начал вставлять,была мелкая синтаксическая ошибка,её убрал,теперь выводит только титле вверху страницы((может я где-то ошибку сделал,даже скорее всего(( в какой строке эта ошибка?вот тот код которые вставлял(

Код:
case add:
 
if (isset($_GET['err'])) {
switch($_GET['err'])
{
case 1 :
echo '<b>Сообщение должно быть длиннее 5 символов!</b><br />';
break;
case 2 :
echo '<b>Такого пользователя не существует!</b><br />';
break;
case 3 :
echo '<b>Проверочный код введен неверно!</b>';
break;
case 4 :
echo '<b>Чтобы писать записки, нужно набрать '.$set['posts_pr'].' постов!</b>';
break;
case 5 :
echo '<b>Запрещено писать пользователям с х-статусом "Не беспокоить"<img src="'.H.'img/online/zaniat.png" alt="" /></b>';
break;
case 6 :
echo '<b>Вы не можете писать этому пользователю, т.к. находитесь в его черном списке.</b>';
break;
case 7 :
echo '<b>Этому пользователю писать могут только друзья.</b>';
break;
case 8 :
echo '<b>Полозователь запретил отправлять ему сообщения.</b>';
break;
}
 
if ($ver!='wml')echo '<form action="privat?mod='.$mod.'&amp;act=act&amp;'.SID.'" method="post">';
 
$to = check($_GET['to']);
Отредактировано POFIGISST (2011.10.06 16:04)
#285. TLENS Off (14)
Moderator
2011.10.06 17:05
Ты что не умеешь php валидаторами пользоватся?
http://wapinet.ru/syntax/
#286. POFIGISST Off (6)
Участник
2011.10.06 17:05
TLENS написал:
Ты что не умеешь php валидаторами пользоватся?
http://wapinet.ru/syntax/
я им и пользовался!!! ща я те скрин сделаю!!!! смотри Дим сам скрин(((
Вложения
скринн.PNG 75kb {1440x900} [загрузок: 927]
Отредактировано POFIGISST (2011.10.06 17:05)
#287. Gemorroj Off (107)
Administrator
2011.10.06 19:07
ну так мало ли, у тебя в функциях что. ты же их не валидируешь
#288. TLENS Off (14)
Moderator
2011.10.06 19:07
Нет фгурной скобы.
Я пропустил и ты с ними напортачил.
POFIGISST написал:
if (isset($_GET['err'])) {
    switch($_GET['err'])
      {
        case 1 :
    echo '<b>Сообщение должно быть длиннее 5 символов!</b><br />';
    break;
        case 2 :
    echo '<b>Такого пользователя не существует!</b><br />';
    break;
        case 3 :
    echo '<b>Проверочный код введен неверно!</b>';
    break;
        case 4 :
    echo '<b>Чтобы писать записки, нужно набрать '.$set['posts_pr'].' постов!</b>';
    break;
        case 5 :
    echo '<b>Запрещено писать пользователям с х-статусом "Не беспокоить"<img src="'.H.'img/online/zaniat.png" alt="" /></b>';
    break;
        case 6 :
    echo '<b>Вы не можете писать этому пользователю, т.к. находитесь в его черном списке.</b>';
    break;
        case 7 :
    echo '<b>Этому пользователю писать могут только друзья.</b>';
    break;
        case 8 :
    echo '<b>Полозователь запретил отправлять ему сообщения.</b>';
    break;
    }
}
if ($ver!='wml')echo '<form action="privat?mod='.$mod.'&amp;act=act&amp;'.SID.'" method="post">';
 
$to = check($_GET['to']);
Отредактировано TLENS (2011.10.06 19:07)
#289. POFIGISST Off (6)
Участник
2011.10.06 19:07
Gemorroj написал:
ну так мало ли, у тебя в функциях что. ты же их не валидируешь
а как их можно валидировать? и вообще есть какая нить прога,чтоб проверяла на ошибки код?)
Добавлено спустя   3 минуты  18 секунд:
TLENS написал:
Нет фгурной скобы.
Я пропустил и ты с ними напортачил.
POFIGISST написал:
if (isset($_GET['err'])) {
    switch($_GET['err'])
      {
        case 1 :
    echo '<b>Сообщение должно быть длиннее 5 символов!</b><br />';
    break;
        case 2 :
    echo '<b>Такого пользователя не существует!</b><br />';
    break;
        case 3 :
    echo '<b>Проверочный код введен неверно!</b>';
    break;
        case 4 :
    echo '<b>Чтобы писать записки, нужно набрать '.$set['posts_pr'].' постов!</b>';
    break;
        case 5 :
    echo '<b>Запрещено писать пользователям с х-статусом "Не беспокоить"<img src="'.H.'img/online/zaniat.png" alt="" /></b>';
    break;
        case 6 :
    echo '<b>Вы не можете писать этому пользователю, т.к. находитесь в его черном списке.</b>';
    break;
        case 7 :
    echo '<b>Этому пользователю писать могут только друзья.</b>';
    break;
        case 8 :
    echo '<b>Полозователь запретил отправлять ему сообщения.</b>';
    break;
    }
}
if ($ver!='wml')echo '<form action="privat?mod='.$mod.'&amp;act=act&amp;'.SID.'" method="post">';
 
$to = check($_GET['to']);
а с этой скобкой вообще "Удаленный сервер или файл не найден" Гг
#290. Gemorroj Off (107)
Administrator
2011.10.06 20:08
многие IDE это умеют делать.
#291. POFIGISST Off (6)
Участник
2011.10.06 23:11
Gemorroj написал:
многие IDE это умеют делать.
спасибо,запомню это))
Отредактировано POFIGISST (2011.10.06 23:11)
#292. POFIGISST Off (6)
Участник
2011.10.06 23:11
помогите сделать запрос на проверку существования ида в базе? нужно написать запрос на проверку переменной $user['id'], в таблице group_users в поле user_id во всех полях которые там есть,и если где нибудь переменка $user['id'] равна числу которое в поле user_id,то чтоб скрывало ссылку? как такой запрос сделать можно?
#293. TLENS Off (14)
Moderator
2011.10.06 23:11
Код:
span style="color: #0000BB"><?php$q = mysql_query("SELECT COUNT(*) FROM `group_users` WHERE ` user_id` = '{$user['id']}'");if (!@mysql_result($q, 0)) { echo 'нет';}
Отредактировано TLENS (2011.10.06 23:11)
#294. Gemorroj Off (107)
Administrator
2011.10.06 23:11
='(
в чем собсно сложность?
Добавлено спустя    57 секунд:
COUNT(*) заменить на 1
нам не нужно ничего считать.
и mysql_result заменить на mysql_num_rows
#295. POFIGISST Off (6)
Участник
2011.10.06 23:11
блин,я понимаю что для вас это не сложно,и вообще тут собрались хорошие кодеры(не считая меня,но я и не кодер) для меня синтаксис сложный если писать функции(
#296. POFIGISST Off (6)
Участник
2011.10.07 20:08
блин,это смешно,но я запутался(( не знаю как правильно знак поставить в коде((

вот код

Код:
if(isset($user)){
if($user['level']!=9){echo 'А ты что здесь забыл?';}else{
$action=htmlspecialchars(trim($_GET['action']));
switch ($action){
default:
и вот в этой if($user['level']!=9){echo 'А ты что здесь забыл?'; строке хочу сделать чтоб проверка была не только на левел 9,а хочу сделать чтоб если левел равен 8 или больше чем 8,то чтоб дальше код нормально шел((
#297. Gemorroj Off (107)
Administrator
2011.10.07 20:08
Код:
span style="color: #0000BB"><?phpif (isset($user)) { if ($user['level'] < 8) { echo 'А ты что здесь забыл?'; } else { $action=htmlspecialchars(trim($_GET['action'])); switch ($action){ default:
#298. POFIGISST Off (6)
Участник
2011.10.07 20:08
Gemorroj написал:
Код:
span style="color: #0000BB"><?phpif (isset($user)) { if ($user['level'] < 8) { echo 'А ты что здесь забыл?'; } else { $action=htmlspecialchars(trim($_GET['action'])); switch ($action){ default:
спасиб,а я делал не так((думал что через знак =< делать это((
#299. POFIGISST Off (6)
Участник
2011.10.08 01:01
так я с письмами и не разобрался,поэтому решил их переписать,смысл идет в том,чтоб юзер мог сохранять важные ему письма в архиве,и при чистке чтоб они оставались,решил это сделать так,если юзер сохранил письмо то в базу заносится значение 1,и при чистке чтоб не удаляло письма у которых стоит значение 1,может есть какой нить более удобный и просто способ сделать сохранение писем?
#300. TLENS Off (14)
Moderator
2011.10.08 01:01
POFIGISST написал:
может есть какой нить более удобный и просто способ сделать сохранение писем?
А ты как думаешь, сможешь придумать лучше?
#301. POFIGISST Off (6)
Участник
2011.10.08 01:01
TLENS написал:
POFIGISST написал:
может есть какой нить более удобный и просто способ сделать сохранение писем?
А ты как думаешь, сможешь придумать лучше?
придумать то может и смогу,но воплотить это,х\з,не смогу наверное(
Добавлено спустя   7 минут  14 секунд:
ну или можно наверное еще сделать ,создать отдельную таблу для сохраненных и чтоб те письма которые сохраняют,переносились в эту таблицу и потом уже из нее сделать вывод)
#302. TLENS Off (14)
Moderator
2011.10.08 01:01
Ну блин тебе что трудно почитать мануал?
Я в JS был полным топором. Выучил его основы за три дня. (Далее практика и логика) Кстати он мне более всего нравится. А сейчас читаю мануал по сишарпе очень интересный правда на понятие основ, структурирование и принципов пошло более недели но во всяком случае не пол года как это длится у тебя. Не повторяй моих ошибок (Я наплевал на мануал и учил php методом тыка целых пять лет)
Да но не ленись тестировать! попробуй что лучше тот вариант или тот. Ну не может быть такого что в человека не присутствует логика. Или ты вообще занимаешься херней которая тебе и нах не нужна
#303. POFIGISST Off (6)
Участник
2011.10.08 01:01
я сначала сам пробую сделать,а потом уже на форуме пишу,у тебя опыта намного больше чем у меня,поэтому и спрашиваю совет как лучше сделать(
#304. POFIGISST Off (6)
Участник
2011.10.08 17:05
посмотрите плиз код загрузки личных смайлов(переписан) все хорошо работает,но может что-то подправить нужно в коде или по другому сделать((вот сам код загрузчика)))

Код:
span style="color: #0000BB"><?phprequire'../config.php';$align='left';$title='Анкета';aut();head();who_add(0,'enter');switch($mod) {case smile:if (empty($act)) {echo 'Размер загружаемого смайла не должен привышать 25 кб. 100х100px. Форматы: gif, jpg, jpeg, png<br/>';if ($_GET['err'] == 1) echo '<b style="color: red">Недопустимое расширение файла!</b><br />';if ($_GET['err'] == 2) echo '<b style="color: red">Размер файла не должен превышать 25 кб.</b><br />';if ($_GET['err'] == 3) echo '<b style="color: red">Достигнут лимит загружаемых смайлов!</b><br />';if ($_GET['err'] == 4) echo '<b style="color: red">Неправильное расширение смайла!</b><br />';$count = mysql_fetch_assoc(mysql_query("SELECT `lsmile`,`lsmile2`,`lsmile3` FROM `users` WHERE `id`='$id'"));if (!empty($count['lsmile'])) {$l = 1;}if (!empty($count['lsmile2'])) {$l2 = 1;}if (!empty($count['lsmile3'])) {$l3 = 1;}echo '<u>Личных смайлов '.($l+$l2+$l3).' из 3</u><br/>';echo '<form ENCTYPE="multipart/form-data" action="upload?mod=smile&amp;act=act&amp;'.SID.'" method="post">';echo '<b>Прикрепить смайл:</b><br/>';echo '<INPUT NAME="file" TYPE="file" SIZE="20"><br/><input type="submit" class="ibutton" value="Загрузить"></form><br/>';} else {if (!isset($_FILES['file'])) $err = "<b>Вы не указали файл!</b><br/>";$pictures = array('.gif', '.jpg', '.jpeg', '.png');$ext = strtolower(strrchr($_FILES['file']['name'], '.'));$par = getimagesize($_FILES['file']);if (($par[0] > 100) or ($par[1] > 100)) {header ('Location: upload?mod=smile&err=4&'.SID);exit;}$fnames = $_FILES['file']['name']; //имяif ((preg_match("/.php/i", $fnames)) or (preg_match("/.pl/i", $fnames)) or ($fnames == ".htaccess")) {header ('Location: upload?mod=smile&err=1&'.SID);exit;}if (!empty($user['lsmile']) && !empty($user['lsmile2']) && !empty($user['lsmile3'])) {header ('Location: upload?mod=smile&err=3&'.SID);exit;}if (!in_array($ext, $pictures)) {header ('Location: upload?mod=smile&err=1&'.SID);exit;}if ($_FILES['file']['size'] > (1024 * 25)) {header ('Location: upload?mod=smile&err=2&'.SID);exit;}if (empty($user['lsmile'])) {$foto = "files/lsmiles/smile_".$user['id'].$ext."";} elseif (empty($user['lsmile2'])) {$foto = "files/lsmiles/smile2_".$user['id'].$ext."";} elseif (empty($user['lsmile3'])) {$foto = "files/lsmiles/smile3_".$user['id'].$ext."";}if (empty($user['lsmile']) || empty($user['lsmile2']) || empty($user['lsmile3'])) {@copy($_FILES['file']['tmp_name'], H.$foto);@chmod(H.basename($foto), 0751);}if (empty($user['lsmile'])) {$db->sql_query("Update users set lsmile='".$foto."' where id ='".$user['id']."'");} elseif (empty($user['lsmile2'])) {$db->sql_query("Update users set lsmile2='".$foto."' where id ='".$user['id']."'");} elseif (empty($user['lsmile3'])) {$db->sql_query("Update users set lsmile3='".$foto."' where id ='".$user['id']."'");}header ('Location: profile?mod=lsmile&ok=add&'.SID);exit;}break;case 'photo':if (empty($act)){echo 'Размер загружаемого фото не должен привышать '.$set['size_photo'].' кб. Форматы: gif, jpg, jpeg, png.<br/>';if ($_GET['err']==1)echo '<b>Недопустимое расширение файла!</b><br />';if ($_GET['err']==2)echo '<b>Размер файла не должен превышать '.$set['size_photo'].' кб.</b><br />';echo '<form ENCTYPE="multipart/form-data" action="upload?mod=photo&amp;act=act&amp;'.SID.'" method="post">';echo '<b>Прикрепить фотку:</b><br/>';echo '<INPUT NAME="file" TYPE="file" SIZE="20"><br/><input type="submit" class="ibutton" value="Отправить"></form><br/>';}else{if(!isset($_FILES['file'])) $err = "<b>Вы не указали файл!</b><br/>";$pictures = array('.gif', '.jpg', '.jpeg', '.png');$ext = strtolower(strrchr($_FILES['file']['name'], '.'));$fnames=$_FILES['file']['name']; //имяif ((preg_match("/.php/i", $fnames)) or (preg_match("/.pl/i", $fnames)) or ($fnames == ".htaccess")){header ('Location: upload?mod='.$mod.'&err=1&'.SID);exit;}if(!in_array($ext, $pictures)){header ('Location: upload?mod=photo&err=1&'.SID);exit;}if($_FILES['file']['size'] > (1024 * $set['size_photo'])) {header ('Location: upload?mod=photo&err=2&'.SID);exit;}$foto = "files/photos/photo_".$user['id'].$ext."";unlink (H.$user['photo'].'');@copy($_FILES['file']['tmp_name'], H.$foto);@chmod(H.basename($foto), 0644);@$db->sql_query ("Update users set photo='".$foto."', vote_photo='0' where id ='".$user['id']."'");@$db->sql_query ("Delete from golos where user ='".$user['id']."'");header ('Location: profile?mod=photo&ok=add&'.SID);exit;}break;}echo gb.'<a href="index?mod=smile">Меню смайла</a>'.div;echo gb.'<a href="index">Личный кабинет</a>'.div;echo gb.'<a href="'.H.'enter">Прихожая</a>'.div;foot();?>
Добавлено спустя   4 минуты  3 секунды:
вот это

Код:
echo 'Размер загружаемого смайла не должен привышать 25 кб. 100х100px. Форматы: gif, jpg, jpeg, png<br/>';
if ($_GET['err'] == 1) echo '<b style="color: red">Недопустимое расширение файла!</b><br />';
if ($_GET['err'] == 2) echo '<b style="color: red">Размер файла не должен превышать 25 кб.</b><br />';
if ($_GET['err'] == 3) echo '<b style="color: red">Достигнут лимит загружаемых смайлов!</b><br />';
if ($_GET['err'] == 4) echo '<b style="color: red">Неправильное расширение смайла!</b><br />';
исправлю,делали уже замечание за такой вывод ошибок(
#305. POFIGISST Off (6)
Участник
2011.10.08 23:11
а есть функция которая вырезает картинки со страниц,например смайлы, чтоб такой big_smile смайл отображался вот так :  D  если эта функция включена,а если нет,то чтоб норм показывались смайлы?
#306. TLENS Off (14)
Moderator
2011.10.08 23:11
Ну напиши и будет тебе такая функция.
#307. POFIGISST Off (6)
Участник
2011.10.09 00:12
название хоть такой функции скажи,поищу ман по ней,и буду пробовать сам писать)
#308. tipsun Off (19)
Moderator
2011.10.10 23:11
Да просто пусть пользователь в браузере показ картинок выключит и все smile
- - - -
Или просто вырезать, с готовой к выводу страницы, <img /> тег.

Код:
span style="color: #0000BB"><?phpfunction img_cut($html=0) { return preg_replace('/<img[^>]+>/i', '[image]', $html); }?>
Отредактировано tipsun (2011.10.10 23:11)
#309. POFIGISST Off (6)
Участник
2011.10.11 00:12
tipsun написал:
Да просто пусть пользователь в браузере показ картинок выключит и все smile
- - - -
Или просто вырезать, с готовой к выводу страницы, <img /> тег.

Код:
span style="color: #0000BB"><?phpfunction img_cut($html=0) { return preg_replace('/<img[^>]+>/i', '[image]', $html); }?>
ну мне нужно чтоб при скрытие картинок показывало их название,а то в чате не понятно какой смайл ставят если их вырезать((
Добавлено спустя   2 минуты  24 секунды:
tipsun
спасибо,дальше сам уже разберусь))
#310. tipsun Off (19)
Moderator
2011.10.11 00:12
POFIGISST написал:
а есть функция которая вырезает картинки со страниц...
Как написал так и понял smile
- - - -
Для смайлов по-другому.
Там у тебя есть функция для вставки смайлов, её выключать и все.
Отредактировано tipsun (2011.10.11 00:12)
#311. POFIGISST Off (6)
Участник
2011.10.11 00:12
tipsun
спасиб,разберусь тамsmile)
#312. TLENS Off (14)
Moderator
2011.10.11 08:08
POFIGISST написал:
название хоть такой функции скажи,поищу ман по ней,и буду пробовать сам писать)
В базу записывай не конвертированные Смайлы тип :) . А при выводе пользователю с базы обработай смайлы если надо, ну и понятно если не надо то не обрабатывай.
Добавлено спустя   4 минуты  1 секунду:
Ну или тоже самое как меняешь :) на <img ... .
Конвертируй эту функцию.
#313. POFIGISST Off (6)
Участник
2011.10.17 09:09
Посмотрите пожалуйста код у кого есть время,скажите мои недочеты в нем?sad

Код:
span style="color: #0000BB"><?phprequire'../config.php';$align='left';$title='Удаление всех писем!';aut();head();who_add(0,'enter');echo '<div class="menu">';levels(9);//защита от ололожек...if (isset($_GET['act'])) { $act = check(intval($_GET['act']));} else { $act = '1';} switch ($act):case '1':echo '<b>Удаление всех писем!</b><br/>';if($user['level']==9) echo '<a href="delet?act=2">Удаляем все письма?</a><br/>';//если да,то переход на страницу подверждения...if($user['level']==9)echo '<a href="/enter">Нет,не удалять письма!</a><br/>';//отказ от удаления...if($user['level']!=9)echo 'Эээ...Верните копирайт сцуки....<br/>';//выводит если ололожка все таки пробрался...break;/** * Подтверждение удаления */ case '2':echo '<b>Вы уверены?</b><br/>';if($user['level']==9) echo '<a href="delet?act=3">Да!!</a><br/>';//подтверждаем...if($user['level']==9)echo '<a href="/enter">Нет!!</a><br/>';//не подтверждаем...break;case '3':/** * Сама функция удаления... */mysql_query("TRUNCATE TABLE `privat`");//запрос в бд на удаление...echo 'Письма успешно удалены!<br/>';if($user['level']==9) echo'<a href="index">В админку</a><br />';break;/** * the end... */default:header("location: delet.php");exit;endswitch;echo gb.'<a href="'.H.'enter">Прихожая</a>'.div;foot();?>
#314. Gemorroj Off (107)
Administrator
2011.10.17 11:11
многабукаф
#315. POFIGISST Off (6)
Участник
2011.10.17 11:11
как по другому сделать я х.з. ,сначала написал этот код на 2 страницы,на одной странице была ссыль на вторую страницу с подтверждением,потом решил так написать,с функцией case ((
#316. tipsun Off (19)
Moderator
2011.10.17 11:11
Код:
span style="color: #0000BB"><?php$text = preg_replace('/<img[^>]+>/i', '[image]', $text);?>
Регулярному выражению есть альтернативный синтаксис, покрасивше?
Отредактировано tipsun (2011.10.17 11:11)
#317. Gemorroj Off (107)
Administrator
2011.10.17 11:11
tipsun тебе все img теги нужно вырезать?
я бы на твоем месте не парился. норм.
#318. POFIGISST Off (6)
Участник
2011.10.17 23:11
как делать проверку при загрузке на размер файла,например если установлено 75х75 то чтоб если файл больше,то выдавало ошибку,как такую проверку можно сделать?smile
#319. TLENS Off (14)
Moderator
2011.10.17 23:11
Ну очень просто ты уже задавал этот вопрос и полчал на него ответ.
http://php.net/manual/ru/function.getimagesize.php
#320. POFIGISST Off (6)
Участник
2011.10.17 23:11
TLENS написал:
Ну очень просто ты уже задавал этот вопрос и полчал на него ответ.
http://php.net/manual/ru/function.getimagesize.php
ты прав Дим,завтыкал совсем,сорри((
#321. tipsun Off (19)
Moderator
2011.10.18 10:10
Gemorroj написал:
tipsun тебе все img теги нужно вырезать?
я бы на твоем месте не парился. норм.
Ну мне надо просто чтоб ограничить до символа ">" . Я, если не ошибаюсь, видел твой пост с каким-то другим ограничением, чтоб не пропустило символ нужный. Как-то с этими что-ли: |<тег>|
Отредактировано tipsun (2011.10.18 10:10)
#322. POFIGISST Off (6)
Участник
2011.10.20 00:12
блин,как сделать запрос в базу примерно вот такой

Код:
if (isset($_GET['del'])){
$db->sql_query("DELETE FROM `privat` WHERE `id` = '".intval($_GET['del'])."' and `to_id` = '$user[id]'");
}
но чтоб вместо удаления,заносилось число 1 в таблицу privat в поле save?((
#323. TLENS Off (14)
Moderator
2011.10.20 00:12
POFIGISST написал:
блин,как сделать запрос в базу примерно вот такой
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
Первый результат с гугла
#324. POFIGISST Off (6)
Участник
2011.10.20 01:01
TLENS написал:
POFIGISST написал:
блин,как сделать запрос в базу примерно вот такой
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
Первый результат с гугла
а эта SET column1=value, column2=value2,... строка за что отвечает?
#325. TLENS Off (14)
Moderator
2011.10.20 01:01
UPDATE `privat`
SET `save` = 1
WHERE `id` = '".intval($_GET['del'])."' and `to_id` = '$user[id]'
#326. POFIGISST Off (6)
Участник
2011.10.20 01:01
TLENS написал:
UPDATE `privat`
SET `save` = 1
WHERE `id` = '".intval($_GET['del'])."' and `to_id` = '$user[id]'
да,понял,просто запись не привычная((
#327. TLENS Off (14)
Moderator
2011.10.20 01:01
POFIGISST
А что именно не привычно?
#328. POFIGISST Off (6)
Участник
2011.10.20 01:01
TLENS
ну я привык что запросы пишутся примерно так "$db->sql_query("DELETE FROM `privat` WHERE `id` = '".intval($_GET['del'])."' and `to_id` = '$user[id]'");" а у тя как то столбиком,и не знал для чего нужно SET не сталкивался с таким)((
#329. tipsun Off (19)
Moderator
2011.10.22 10:10
Как правильно/лучше/итд?

1)
Код:
span style="color: #0000BB"><?php$a = 2;if($a != 1) echo $a;?>
2)
Код:
span style="color: #0000BB"><?php$a = 2;if(1 != $a) echo $a;?>
Отредактировано tipsun (2011.10.22 10:10)
#330. POFIGISST Off (6)
Участник
2011.10.22 11:11
tipsun написал:
Как правильно/лучше/итд?

1)
Код:
span style="color: #0000BB"><?php$a = 2;if($a != 1) echo $a;?>
2)
Код:
span style="color: #0000BB"><?php$a = 2;if(1 != $a) echo $a;?>
а если переменная $a будет равна 0,то переменную а выведет))

я бы так сделал))

Код:
$a = 2;
if($a>=2) echo $a;
#331. TLENS Off (14)
Moderator
2011.10.22 12:12
tipsun
Разницы никакой
#332. POFIGISST Off (6)
Участник
2011.10.22 17:05
Блин,нашел парс с o5wap.ru,на денвере норм работает,а на хосте вот такую ошибку выдает

Код:
Warning: set_time_limit() has been disabled for security reasons in /home2/d4cc1zrx/public_html/index3.php on line 4
ошибка в 4 строке,ток х.з что это за ошибка(( как её можно исправить?smile
#333. tipsun Off (19)
Moderator
2011.10.22 21:09
POFIGISST, ты кажется не понял сути моего вопроса smile
TLENS, спс.
#334. Gemorroj Off (107)
Administrator
2011.10.23 01:01
1 != $a предпочтительнее чем $a != 1, т.к. в случае если забыли ! написать php кинет ошибку. такая страховка от описок.
#335. tipsun Off (19)
Moderator
2011.10.23 08:08
Gemorroj, ок, спс.
#336. TLENS Off (14)
Moderator
2011.10.23 19:07
Gemorroj
Кстате да бывает частенько допустишь где то ошибку а а синтаксис правильный и ищи ее тогда.
#337. Escos Off (2)
Участник
2011.10.25 14:02
есть ли возможность, изменить время последнего редактирования файла/директории?
#338. Gemor
Гость
2011.10.25 14:02
touch
#339. POFIGISST Off (6)
Участник
2011.10.30 16:04
что это за  ошибка ?

Код:
Warning: file_get_contents(http://pron.siza.us/?) [function.file-get-contents]: failed to open stream: Operation now in progress in /home2/d4cc1zrx/public_html/set/index.php on line 21
это из за того что хост грабб не тянет? или ошибка в файле?
#340. Gemorroj Off (107)
Administrator
2011.10.30 19:07
хз честно говоря, не сталкивался.
дай полный код, попробую у себя запустить.
#341. POFIGISST Off (6)
Участник
2011.10.30 19:07
Gemorroj написал:
хз честно говоря, не сталкивался.
дай полный код, попробую у себя запустить.
Паш,я тебе в личку скину,потому что грабб платный,не могу выкладывать в паблик))
Добавлено спустя   7 минут  14 секунд:
Бля,хотя это из-за хоста (( на денвер только что поставил,работает(а на хосте ошибка((
#342. Gemorroj Off (107)
Administrator
2011.10.30 20:08
у меня проблема не воспроизвелась, но там определенно есть ошибка в построении http запроса.
попробуй в index.php исправить код вначале на это:
Код:
$user = stream_context_create(array(
'http' => array(
'method' => 'GET',
'header' => array(
'User-Agent: Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95_8GB/15.0.015; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413',
'Referer: http://pron.siza.us/'
)
)
));
 
$set = file_get_contents('http://pron.siza.us/?' . $_SERVER['QUERY_STRING'], false, $user);
#343. POFIGISST Off (6)
Участник
2011.10.30 23:11
Gemorroj написал:
у меня проблема не воспроизвелась, но там определенно есть ошибка в построении http запроса.
попробуй в index.php исправить код вначале на это:
Код:
$user = stream_context_create(array(
'http' => array(
'method' => 'GET',
'header' => array(
'User-Agent: Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN95_8GB/15.0.015; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413',
'Referer: http://pron.siza.us/'
)
)
));
 
$set = file_get_contents('http://pron.siza.us/?' . $_SERVER['QUERY_STRING'], false, $user);
Благодарю Паш,код заменил,на более дорогом хосте все работает,без ошибок,а на том на котором я сейчас,ошибка такая((Автор сказал возможную причину этой ошибки "видимо ip забанен на хосте,обратись в поддержку" )) напишу в поддержку,посмотрю,что они ответят,а там уже буду далее решать,что делать))
#344. POFIGISST Off (6)
Участник
2011.10.31 03:03
Заебись,на другой хост валю(( вот что поддержка хоста ответила

"Здравствуйте, ip адрес на котором находится сайт pron.siza.us принадлежит подсети с которой совершалась атака на наш сервер, в текущий момент в бан листе находится вся подсеть. Доступ с нашего сервера к ней невозможен."

ну я в принципе так и думал((
#345. POFIGISST Off (6)
Участник
2011.11.01 16:04
Подскажите,есть ли прога которая массово меняет кодировку в нескольких файлах сразу? Или может как-то можно сделать по другому,у меня есть скрипт,но там во всех страницах кодирока неверная стоит,и на страницах фигню выводит(( а на каждой странице менять кодировку заипусь((
#346. DarkRiDDeR Off (4)
Участник
2011.11.01 17:05
Должна быть
#347. Gemorroj Off (107)
Administrator
2011.11.01 17:05
http://wapinet.ru/script/show.php?d=%2F … Ficonv.zip
#348. POFIGISST Off (6)
Участник
2011.11.01 21:09
Gemorroj
Благодарю ))
#349. POFIGISST Off (6)
Участник
2011.11.01 23:11
Блин,возникла небольшая проблема,поставил скрипт библиотеки себе,так там при создании категории имя категории если оно русскими буквами написано,то в базу не заноситься,а если английские буквы или просто цифры,то нормик заносит в базу,как можно убрать это,это в базе ошибка ошибка? или в файле который отвечает за данные которые заносятся в базу?
#350. POFIGISST Off (6)
Участник
2011.11.04 09:09
каким кодом можно сделать очистку папок? например написать код в какой нить файл,поставить на этот файл крон на 00.00 например,и чтоб при запуске этого файла,очищалась папка files,чтоб в ней удалялись все папки,какая функция это реализовывает? без бд все идет))

\\\\\\\\\\\\\\\\\\\\\\\\\\\
хотя нах крон,без крона вот так

Код:
lt;? function old($papka,$times){ $old_time = time()-60*$times; $dir = opendir ($papka); while ($file = readdir ($dir)) { if (( $file != ".") && ($file != "..")) $files[]="$papka/$file"; $time[]=filemtime("$papka/$file" ); } closedir ($dir); $count_files = count($files); for($i = 1; $i< $count_files; $i++){ if($time[$i] <= $old_time){ @unlink($files[$i]); } } } ?>
сделаю)) может есть вариант лучше?)
Отредактировано POFIGISST (2011.11.04 10:10)
#351. DarkRiDDeR Off (4)
Участник
2011.11.04 10:10
Тебе удалит в папке все файлы и все папки?
#352. POFIGISST Off (6)
Участник
2011.11.04 10:10
DarkRiDDeR написал:
Тебе удалит в папке все файлы и все папки?
да,у меня идет папка files в ней подпапки ну типа kartinki и в этих подпапках файлы идут) мне нужно полностью очищать папку files )
#353. DarkRiDDeR Off (4)
Участник
2011.11.04 15:03
Код:
//Функция "Удаления каталога с файлами"
function delete_dir($dir){
$opendir = opendir($dir);
if(!is_dir($dir) || !$opendir) return FALSE;
 
while(($file = readdir($opendir)) !== false){
if($file == "." xor $file == "..") continue;
$file = $dir . '/' . $file;
 
if(is_dir($file)) delete_dir($file);
else unlink($file);
}
closedir($dir);
 
return rmdir($dir);
}
Получше, наверно, будет
Отредактировано DarkRiDDeR (2011.11.04 16:04)
#354. POFIGISST Off (6)
Участник
2011.11.04 16:04
DarkRiDDeR
в 4 строке ошибка какая то((
#355. DarkRiDDeR Off (4)
Участник
2011.11.04 16:04
конец строки пропустил
#356. Warwar50
Гость
2011.11.04 22:10
Привет. Подскажите код чтоб просмотреть всю инфу бравзера даже если юзер с оперы.
#357. Gemorroj Off (107)
Administrator
2011.11.04 23:11
print_r($_SERVER);
#358. DarkRiDDeR Off (4)
Участник
2011.11.05 11:11
А есть такая функция, которая возвращает номер строки скрипта? К примеру эта функция написана на 15 строке скрипта, 15 она и вернёт
#359. Gemorroj Off (107)
Administrator
2011.11.05 12:12
__LINE__
#360. DarkRiDDeR Off (4)
Участник
2011.11.05 13:01
Пасяб
#361. Nu3oN Off (11)
Moderator
2011.11.06 16:04
В общем вернулся к разработке своей cms системы, и опять работаю над mvc

Нужно определить путь к контроллеру, файл класса контроллера и метод который нам должен выдать скрипт!
В общем пока писал, запутался во всем этом! глянь те ка все нормально?

Код:
span style="color: #0000BB"><?php// константа PATH_CONTROLLERS это папка с контроллерамиclass WorkingWithUrl{ private $_arrDefault = array( 'path' => 'home/', 'class' => 'index', 'method' => 'default' ); function __construct() { if (! empty($_GET['do'])) { /* * Режем url. */ $arrURL = array_filter(explode('/', $_GET['do']), 'trim'); /* * Узнаем колличество эллементов. */ $intURL = count($arrURL); /* * Создаем временное хранилище. */ $i=0; $get = array('str'=>'', 'dir'=>'', 'class'=>'', 'method'=>'method'); /* * Обрабатываем каждый эллемент массива. */ foreach ($arrURL as $key) { /* * Узнаем была ли уже определен путь или нет, если да, то добавляем еще папку. */ $get['str'] = (empty($get['dir']) ? null : $get['dir']) . $key; /* * Определяем тип (папка это или файл)*/ if (is_dir(PATH_CONTROLLERS . $get['str']. '/')) { /* * Если это папка пишем в хранилище путь. */ $get['dir'] = $get['str'] . '/'; } else { /* * Определяем тип (файл это метод). */ if (is_file(PATH_CONTROLLERS . $get['str'] . '.php')) { /* * Если это файл класса, то пишем в хранилище название класса. */ $get['class'] = $arrURL[$i]; /* * Проеряем наличие метода в классе. */ } else { /* * Подключаем файл класса. */ include_once (PATH_CONTROLLERS . $this -> _arrDefault['path'] . $this -> _arrDefault['class'] . '.php'); /* * Проверяем наличие метода в классе. */ if (is_callable(array('Download_' . $get['class'], $key))) { /* * Если это метод то пишем в хранилище название. */ $get['method'] = $key; /* * Останавливаем выполнеие цикла (что бы не обрабатывал оставшиеся эллементы если они есть). */ continue; } else { /* * Если не найдена категория и файл класса, то очищаем хранилище. */ $get = array('str'=>'', 'dir'=>'', 'class'=>'', 'method'=>'method'); } } } ++$i; } $this -> _arrDefault['path'] = empty($get['dir']) ? $this -> _arrDefault['path'] : $get['dir']; $this -> _arrDefault['class'] = empty($get['class']) ? $this -> _arrDefault['class'] : $get['class']; $this -> _arrDefault['method'] = empty($get['method']) ? $this -> _arrDefault['method'] : $get['method']; } }}
Я буду лучше голоден, но между креслом и рулем и на дороге.
#362. Gemorroj Off (107)
Administrator
2011.11.06 16:04
м, я тоже путаюсь тут. добавь к коду комментарии.
$get['str'] - это что?
#363. Nu3oN Off (11)
Moderator
2011.11.06 17:05
Gemorroj написал:
м, я тоже путаюсь тут. добавь к коду комментарии.
$get['str'] - это что?
это для склеивания эллементов массива в строку составляющую путь
типа: из массива array(dir1, dir2, dir3) в строку  di1/dir2/dir3
Я буду лучше голоден, но между креслом и рулем и на дороге.
#364. Gemorroj Off (107)
Administrator
2011.11.06 17:05
ну вроде норм. хотя я не понимаю, почему меня постоянно что-то путает)
#365. Nu3oN Off (11)
Moderator
2011.11.06 18:06
Gemorroj написал:
ну вроде норм. хотя я не понимаю, почему меня постоянно что-то путает)
не знаю что там тебя пугает, но мне категорически не нравится такое колличество действий за один проход цикла...
Я буду лучше голоден, но между креслом и рулем и на дороге.
#366. Gemorroj Off (107)
Administrator
2011.11.06 18:06
ну видимо это и путает
#367. POFIGISST Off (6)
Участник
2011.11.07 06:06
как можно замутить время онлайна? чтоб показывало сколько времени человек провел на сайте? Например Онлайн: 3дн.4ч.56м. как такое можно замутить?
#368. TLENS Off (14)
Moderator
2011.11.07 06:06
Пиши в базу время когда последний раз был юзер и еще online_timer
И при следуещем посещении вычесли промежуток сколько небыло его, если меньше 5 мин. Тогда онлайн и до плюсовуй в online_timer эту разницу в секундах
#369. POFIGISST Off (6)
Участник
2011.11.07 06:06
TLENS
в базу заносит когда юзер был последний раз вот так "2011-11-07 06:42:12"  это нужно все в секунды перекидывать?
#370. Gemorroj Off (107)
Administrator
2011.11.07 10:10
нет. тебе нужно использовать нормальные функции для работы со временем. http://dev.mysql.com/doc/refman/5.5/en/ … tions.html
#371. POFIGISST Off (6)
Участник
2011.11.07 13:01
Gemorroj написал:
нет. тебе нужно использовать нормальные функции для работы со временем. http://dev.mysql.com/doc/refman/5.5/en/ … tions.html
Благодарю,за одно и английский выучу cool  big_smile
#372. tipsun Off (19)
Moderator
2011.11.07 13:01
Из любопытства пытаюсь написать http://www.kolobok.us/smiles/madhouse/mail1.gif задумку POFIGISST

Код:
span style="color: #0000BB"><?php//Для юзера обычно запускается.session_start();//Обычно для счетчика онЛайн бывает уже задан.//$offTimeLimit = 10; //seconds$offTimeLimit = 240; //seconds = 4 minutes$offTime = $_SERVER['REQUEST_TIME'] - $_SESSION['lastActivity'];if ( $offTimeLimit > $offTime )$_SESSION['onLineTime'] += $offTime;$_SESSION['lastActivity'] = $_SERVER['REQUEST_TIME'];//echo $_SESSION['onLineTime'];?>
Вместо того, чтоб заносить в
Код:
span style="color: #0000BB"><?php $_SESSION['onLineTime'] += $offTime; ?>
, получается надо в базу.
А в базе я попытался сделать поле
Код:
`lifeTime` DATETIME '0000-00-00 00:00:00'
и при помощи
Код:
`lifeTime`=DATE_ADD(`lifeTime`, INTERVAL '15' SECOND)
обновить, но сохраняет NULL (Проверил через SELECT как в примерах "там").
Значит `lifeTime` надо держать в INT/BIGINT?
Отредактировано tipsun (2011.11.07 14:02)
#373. Gemorroj Off (107)
Administrator
2011.11.07 18:06
да.
#374. tipsun Off (19)
Moderator
2011.11.07 19:07
Gemorroj, понятно, спс.

Оптимизация немножко big_smile если с базой дело будет.
Для чатов думаю как раз актуально.

Код:
span style="color: #0000BB"><?php //Для юзера обычно запускается.session_start();//$_SESSION = array();//интервал между обновлениями времени, жизни на сайте юзера, в базе.$updateInterval = 15; //sec//Обычно для счетчика онЛайн бывает уже задан.$offTimeLimit = 240; //seconds = 4 minutes$offTime = $_SERVER['REQUEST_TIME'] - $_SESSION['lastActivity']; if ($updateInterval < $offTime) { if ($offTimeLimit > $offTime) { $_SESSION['onLineTime'] += $offTime; //или запрос в базу на обновление... } $_SESSION['lastActivity'] = $_SERVER['REQUEST_TIME']; }//echo (int) $_SESSION['onLineTime'];?>
Отредактировано tipsun (2011.11.07 20:08)
#375. POFIGISST Off (6)
Участник
2011.11.08 01:01
вот такая проблема у меня возникла,в топе сайтов у меня есть функция автомодерация сайтов,то есть проверяет есть ли код счетчика на сайте,и если есть,то активирует сайт,а если нету,то не активирует(( но эта хрень не работает,ошибка какая-то в ней,посмотрите пожалуйста код этой функции

Код:
lt;? case 'auto_moderacia': if($id) { $platform_isset = mysql_query("SELECT * FROM `".$prefix."sait` WHERE `id` = '".$id."' AND `id_user` = '".$user_data['id']."' LIMIT 1"); $platform_isset_c = mysql_num_rows($platform_isset); if($platform_isset_c > 0) { $us = mysql_fetch_array($platform_isset); if($us['status'] == 0) { $sait = file_get_contents('http://'.$us['url']); $preg = preg_quote('#<a href="http://'.$set['home'].'/go.php?id='.$id.'"><img src="http://'.$set['home'].'/image.php?id='.$id.'" alt="'.$set['top_name'].'"/></a>#iU'); if(preg_match($preg,$sait)) { $up = mysql_query("UPDATE `".$prefix."sait` SET `status` = '1' WHERE `id` = '".$id."'"); if($up) { echo '<div class="main">'; echo 'Сайт успешно активирован<br/>'; echo '</div>'; } else { echo '<div class="error">'; echo 'Сайт не активирован<br/>'; echo '</div>'; } } } else { echo '<div class="error">'; echo 'Сайт уже был ранее активирован<br/>'; echo '</div>'; } } } break; }
#376. TLENS Off (14)
Moderator
2011.11.08 02:02
Надо регулярку нормальную написать. У меня глаза слипаются.
#377. POFIGISST Off (6)
Участник
2011.11.08 02:02
TLENS написал:
Надо регулярку нормальную написать. У меня глаза слипаются.
спасибо Дим,в аське все объяснил,я не прошу чтоб кто то за меня написал,хочу сам исправить,прошу только подсказать где ошибка((
#378. TLENS Off (14)
Moderator
2011.11.08 02:02
Ну видимо если есть ошибка то она в той самой регулярке.
#379. POFIGISST Off (6)
Участник
2011.11.08 02:02
TLENS написал:
Ну видимо если есть ошибка то она в той самой регулярке.
пока отключу автомодерацию,днем еще подумаю на этой темкой,а то ща тоже уже засыпаю))
#380. Gemorroj Off (107)
Administrator
2011.11.08 11:11
а тебе там вообще регулярка не нужна. проверяй соответствие через stripos
#381. POFIGISST Off (6)
Участник
2011.11.08 13:01
Код:
case 'auto_moderacia':
$findme = 'mastop.ru';
$platform_isset = mysql_query("SELECT * FROM `".$prefix."sait` WHERE `id` = '".$id."' AND `id_user` = '".$user_data['id']."' LIMIT 1");
$us = mysql_fetch_array($platform_isset);
$mystring1 = file_get_contents('http://'.$us['url']);
 
$pos1 = stripos($mystring1, $findme);
if ($pos1 === false) {
echo "Не нашел";
}
 
 
if ($pos1 !== false) {
echo "Нашел ";
}
написал вот так для проверки,пока без базы,чтоб посмотреть какое сообщение выведет, и показало только что ошибкаbig_smile
Добавлено спустя   5 минут  23 секунды:
Warning: Unexpected character in input: ''' (ASCII=39) state=1   такую ошибку вообще первый раз вижу:0
#382. DarkRiDDeR Off (4)
Участник
2011.11.08 14:02
С кодировкой что-то наверно
#383. POFIGISST Off (6)
Участник
2011.11.08 14:02
DarkRiDDeR написал:
С кодировкой что-то наверно
не знаю,но все равно код не верный,сейчас переделывать его буду,внимательнее вникну в него))
#384. DarkRiDDeR Off (4)
Участник
2011.11.08 14:02
Да ты в file_get_contents адрес введи вручную, если ошибки нет, то точно с MySQL связано
Добавлено спустя   2 минуты  16 секунд:
POFIGISST написал:
if ($pos1 === false) {
echo "Не нашел";
}


if ($pos1 !== false) {
echo "Нашел ";
}
не проще ли
Код:
if ($pos1 === false) {
echo "Не нашел";
} else{
echo "Нашел ";
}
#385. POFIGISST Off (6)
Участник
2011.11.08 14:02
DarkRiDDeR
ввел,все равно ошибка,код наверн не правильный,я по примеру смотрел,так и написал как в примере,но где то ошибку допустил))
#386. DarkRiDDeR Off (4)
Участник
2011.11.08 14:02
Текс загружаемой странице возможно в другой кодировке
#387. POFIGISST Off (6)
Участник
2011.11.08 14:02
DarkRiDDeR написал:
Текс загружаемой странице возможно в другой кодировке
так там берет код загружаемой страницу,его берет нормально,вчера проверял,и кодировка в той странице нормальная,я ищу только адрес сайта,а он на английском,думаю что не  с кодировкой проблема)
#388. DarkRiDDeR Off (4)
Участник
2011.11.08 14:02
Неожиданный символ на входе:'''(ASCII = 39 - это перевод
#389. POFIGISST Off (6)
Участник
2011.11.08 14:02
сделал пока вот так

Код:
case 'auto_moderacia':
 
$findme = 'mastop.ru';
$mystring1 = file_get_contents('http://masteram.us');
$pos1 = stripos($mystring1, $findme);
if ($pos1 === false) {
echo "Не нашел";
} else{
echo "Нашел ";
 
}
если в переменную $mystring1 засунуть адрес мастоп.ру ,то пишет что найдена строка,а я вот для проверки всунул туда мастерам.ус и вывело сообщение,что строка не найдена)
#390. Gemorroj Off (107)
Administrator
2011.11.08 14:02
смотри что в $mystring1
возможно, отдается не то, что ты ожидаешь.
#391. POFIGISST Off (6)
Участник
2011.11.08 15:03
Gemorroj написал:
смотри что в $mystring1
возможно, отдается не то, что ты ожидаешь.
если ставлю вот так echo $mystring1; то выводит нормально ту страницу которая в переменной,а если вот так echo highlight_string($mystring1); то выводит исходный код страницы)  если вот так echo $mystring1; то оно тоже должно выводить полностью исходный код? или оно все нормально выводит?
#392. TLENS Off (14)
Moderator
2011.11.08 15:03
Highlight я тебе дал просто для тестов он переобразовует всякие кавычки ампресанты и прочее в в тип &gt; &amp; и т.д. Блин ну не леничь почитай мануал про функцию. Неужели это так трудно?
#393. POFIGISST Off (6)
Участник
2011.11.08 15:03
вот так

Код:
case 'auto_moderacia':
$platform_isset = mysql_query("SELECT * FROM `".$prefix."sait` WHERE `id` = '".$id."' AND `id_user` = '".$user_data['id']."' LIMIT 1");
$us = mysql_fetch_array($platform_isset);
$findme = 'mastop.ru';
$mystring1=file_get_contents('http://'.$us['url']);
$pos1 = stripos($mystring1, $findme);
if ($pos1 === false) {
echo "Не нашел";
} else{
echo "Нашел ";
 
}
проверка работает,теперь осталось только сделать запрос в базу,чтоб если находило код счетчика,то модерировало)
#394. TLENS Off (14)
Moderator
2011.11.08 15:03
а там же был какой то запрос
#395. POFIGISST Off (6)
Участник
2011.11.08 15:03
TLENS написал:
а там же был какой то запрос
все,уже все сделал,всунул запрос,и теперь работает,вот код

Код:
case 'auto_moderacia':
$platform_isset = mysql_query("SELECT * FROM `".$prefix."sait` WHERE `id` = '".$id."' AND `id_user` = '".$user_data['id']."' LIMIT 1");
$us = mysql_fetch_array($platform_isset);
$findme = 'mastop.ru';
$mystring1=file_get_contents('http://'.$us['url']);
$pos1 = stripos($mystring1, $findme);
if ($pos1 === false) {
echo "Не нашел";
} else{
$up = mysql_query("UPDATE `".$prefix."sait` SET `status` = '1' WHERE `id` = '".$id."'");
echo "Нашел ";
 
}
Добавлено спустя   7 минут  42 секунды:
вместо stripos,поставил stristr ,чтоб чувствителен к регистру небыл)
#396. Gemorroj Off (107)
Administrator
2011.11.08 17:05
POFIGISST написал:
вместо stripos,поставил stristr ,чтоб чувствителен к регистру небыл)
stripos и так не чувствителен к регистру. к регистру чувствителен strpos
#397. tipsun Off (19)
Moderator
2011.11.08 17:05
POFIGISST,
Описание stristr()
Возвращает подстроку строки haystack начиная с первого вхождения needle до конца строки.
Эта функция не учитывает регистр.
Если подстрока needle не найдена, stristr() возвращает FALSE.
Если needle не является строкой, он приводится к целому и трактуется как код символа.

Код:
span style="color: #0000BB"><?php$email = 'USER@EXAMPLE.com';$domain = stristr($email, 'e');echo $domain; // выводит ER@EXAMPLE.com?>
Ты уверен, что выбрал правильную функцию?
Отредактировано tipsun (2011.11.08 17:05)
#398. Gemorroj Off (107)
Administrator
2011.11.08 17:05
где вы маны читаете??? читайте на оф сайте!
#399. tipsun Off (19)
Moderator
2011.11.08 17:05
Я на php.su иногда читаю. Английский плохо знаю. И переводчик не по "человечески" переводит.
Добавлено спустя   3 минуты  2 секунды:
Ох еба, в натуре не сравнить. На офф все возможности описаны.
#400. POFIGISST Off (6)
Участник
2011.11.08 18:06
Бля,чет я ща сам не пойму где вычитал про регистр((
Добавлено спустя   1 минуту  30 секунд:
tipsun написал:
Я на php.su иногда читаю. Английский плохо знаю. И переводчик не по "человечески" переводит.
Добавлено спустя   3 минуты  2 секунды:
Ох еба, в натуре не сравнить. На офф все возможности описаны.
в адресе заменяй en на ru ,примерно вот так
http://www.php.net/manual/ru/function.stristr.php и будет счастье на русском)
Отредактировано POFIGISST (2011.11.08 18:06)
#401. TLENS Off (14)
Moderator
2011.11.08 19:07
Немного почистил потому что это не аська.
Для Не учитывания регистра используй в регулярке модификатор i
#402. tipsun Off (19)
Moderator
2011.11.08 19:07
POFIGISST написал:
Бля,чет я ща сам не пойму где вычитал про регистр((
Добавлено спустя   1 минуту  30 секунд:
tipsun написал:
Я на php.su иногда читаю. Английский плохо знаю. И переводчик не по "человечески" переводит.
Добавлено спустя   3 минуты  2 секунды:
Ох еба, в натуре не сравнить. На офф все возможности описаны.
в адресе заменяй en на ru ,примерно вот так
http://www.php.net/manual/ru/function.stristr.php и будет счастье на русском)
Неа. Вот почему:
PHP.NET-EN: http://www.php.net/manual/en/function.stristr.php
PHP.NET-RU: http://www.php.net/manual/ru/function.stristr.php
| |
PHP.SU: www.php.su/functions/?stristr

Сравни полноту информации. smile
Отредактировано tipsun (2011.11.08 19:07)
#403. POFIGISST Off (6)
Участник
2011.11.08 19:07
tipsun
ну если я английский не знаю,то хоть там 50 текстов на одной странице будет,я всеравно нифига там не поймуbig_smile
#404. tipsun Off (19)
Moderator
2011.11.08 20:08
Если указать в классе
Код:
span style="color: #0000BB"><?php class myClass { public static $myVar; } ?>
То это только чтоб она была доступна так self::$myVar в классе?
Она не сохраняется при перезагрузке страницы же?
Отредактировано tipsun (2011.11.08 20:08)
#405. TLENS Off (14)
Moderator
2011.11.08 21:09
tipsun написал:
Если указать в классе
Код:
span style="color: #0000BB"><?php class myClass { public static $myVar; } ?>
То это только чтоб она была доступна так self::$myVar в классе?
Она не сохраняется при перезагрузке страницы же?
В ASP сохраняется, а в php нет
#406. tipsun Off (19)
Moderator
2011.11.08 21:09
TLENS, ок. Спс.
#407. tipsun Off (19)
Moderator
2011.11.08 22:10
Для чего делают так, указывают типы при создании функции?
Код:
span style="color: #0000BB"><?phpfunction test(integer $var1, bool $var2) { /**/ }?>
Можно ссылку, а то не могу найти.
#408. TLENS Off (14)
Moderator
2011.11.08 22:10
Это взято с низкоуровневого программирования.
Можно просто типо var i стековая или object obj для ссылочной
Но если введешь func..(integer var)
то она  не сможет принять например string или другой тип и компилятор даст ошибку.
#409. tipsun Off (19)
Moderator
2011.11.08 22:10
TLENS, ну вроде более-менее понятно. Спс. smile
Отредактировано tipsun (2011.11.08 22:10)
#410. TLENS Off (14)
Moderator
2011.11.08 22:10
Блин я не сплю другие сутки хочу назад день на ночь вернуть.
С сакрытыми глазапи пишу там немного ошибок исправил.
На счет php http://php.su/learnphp/datatypes/
#411. Gemorroj Off (107)
Administrator
2011.11.08 22:10
указание типов в php 5.4 введут. нужно это чтобы точно знать какого типа данные у нас имеются.
в php ничто не сохраняется между перезагрузкой страницы. сессии - это по сути тоже "костыль" чтоли в плане сохранения состояния)
#412. TLENS Off (14)
Moderator
2011.11.08 22:10
Gemorroj
Паш а ты как с сишарпом разобрался?
#413. Gemorroj Off (107)
Administrator
2011.11.08 23:11
забил) нет задач в принципе для кодинга на десктопе, поэтому незачем. ввязался в несколько оупенсорсных проектов на javascript, поэтому времени еще и на изучение C# мало. да и состояние не то сейчас.
#414. TLENS Off (14)
Moderator
2011.11.08 23:11
Ясн.
#415. Gemorroj Off (107)
Administrator
2011.11.08 23:11
...
Добавлено спустя    35 секунд:
охуенно, хули)
#416. TLENS Off (14)
Moderator
2011.11.08 23:11
А что на счет состояние? я не понимаю
#417. Gemorroj Off (107)
Administrator
2011.11.08 23:11
ай, бред) у меня такое бывает. в блогах читай
#418. TLENS Off (14)
Moderator
2011.11.08 23:11
А я кстати наивный начал C# учить я то думал и другие языки так легко будут даватся.
И пошел за ассемблером и теперь понимаю зачем был придуман Си))
#419. Gemorroj Off (107)
Administrator
2011.11.08 23:11
мм, ну современный ассемблер тоже крут. Просто обучение идет с основ, а на практике потом проще. Я в основном с FASM знакомился, там куча уже готовых процедур написано. остается только использовать. экзамплы, по крайней мере, внушают.
#420. TLENS Off (14)
Moderator
2011.11.08 23:11
А у меня все понимаю но как говорится сказать не могу.
При практике уже строк на 500 - 1000 начинаю крупно терятся.
Еще толкового отладчика не найду да и вычисление это, новое все, не успевает усвоится в голове.
Добавлено спустя   1 минуту  37 секунд:
На masm32 начинаю.
Добавлено спустя   7 минут  48 секунд:
В общем позже обязательно изучу его. Хорошая штука. Меня больше интересуют микро контролеры я с 8 лет в проводах рос.
#421. POFIGISST Off (6)
Участник
2011.11.09 00:12
скажите,а вот этот код

Код:
span style="color: #0000BB"><?phpsession_start();$width=75;$height=20;$im=imagecreatetruecolor($width, $height);imagefill($im, 0, 0, imagecolorallocate($im, 255, 255, 255));$str=NULL;for($i=0; $i<5; $i++) { $y=rand(2, 5); $x+=rand(8, 14); $str.=rand(1, 9); imagestring($im, rand(1, 10), $x, $y, $str[$i], imagecolorallocate($im, rand(90, 150), rand(90, 150), rand(90, 150))); }$_SESSION['kod'] = $str;header('Content-type: image/png');imagepng($im);imagedestroy($im);?>
отвечает за то,как на счетчиках расположены цифры хитов и хостов?
#422. Gemorroj Off (107)
Administrator
2011.11.09 00:12
он за полную отрисовку картинки отвечает.
#423. POFIGISST Off (6)
Участник
2011.11.09 00:12
блин,а мне над найти где  только за цифры отвечает,хочу сделать чтоб хосты и хиты шли в столбик,а не горизонтально(
#424. DarkRiDDeR Off (4)
Участник
2011.11.09 15:03
Так напиши, не вижу в этом уж такой большой проблемы
#425. TLENS Off (14)
Moderator
2011.11.09 15:03
POFIGISST
Тему надо надо создать новую. Засрали эту тему. Надо переименовать помоги Пофигисту и прикрепить. smile
Лан Дима шучу.
ps. Надо тему создать со статьей как пользоваться гуглом.
Опять шучу.
Ты Дима задавай все свои вопросы, и просьбы мы все тебе поможем и напишем любой скрипт какой ты захочешь, раз уж такой уж Лентяй что лежа на деване даже ВИДЕО КУРСЫ посмотреть лень.
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Мм да я в семье был самый ленивый настолько ленивый что все родственники меня поддергивали. Но увы не настолько!
Ты даже меня переплюнул.
Обижайся не обижайся но ты конкретный Лентяй.
Добавлено спустя   2 минуты :
Но ты не унывай все это лечится.
#426. tipsun Off (19)
Moderator
2011.11.09 16:04
POFIGISST, просто пользуйся этим правилом: прежде чем писать на форум, забей в гугл пару запросов.
Добавлено спустя   7 минут  17 секунд:
POFIGISST написал:
скажите,а вот этот код

Код:
span style="color: #0000BB"><?phpsession_start();$width=75;$height=20;$im=imagecreatetruecolor($width, $height);imagefill($im, 0, 0, imagecolorallocate($im, 255, 255, 255));$str=NULL;for($i=0; $i<5; $i++) { $y=rand(2, 5); $x+=rand(8, 14); $str.=rand(1, 9); imagestring($im, rand(1, 10), $x, $y, $str[$i], imagecolorallocate($im, rand(90, 150), rand(90, 150), rand(90, 150))); }$_SESSION['kod'] = $str;header('Content-type: image/png');imagepng($im);imagedestroy($im);?>
отвечает за то,как на счетчиках расположены цифры хитов и хостов?
Отвечает за captcha. Мне кажется.
Отредактировано tipsun (2011.11.09 16:04)
#427. tipsun Off (19)
Moderator
2011.11.09 17:05
POFIGISST, как видно из твоего поста за вид счетчика отвечает файл: image.php в корне скрипта. Скорее всего.
Отредактировано tipsun (2011.11.09 17:05)
#428. Nu3oN Off (11)
Moderator
2011.11.13 23:11
Гемор, у тебя нет обработчика для set_error_handler() уже написанного?
а то лень самому все условия подберать...
Я буду лучше голоден, но между креслом и рулем и на дороге.
#429. Gemorroj Off (107)
Administrator
2011.11.13 23:11
неа. в гменеджере что-то вроде есть, но мне не оч нравится
#430. POFIGISST Off (6)
Участник
2011.11.15 00:12
блин,что я делаю не так? у меня идет страница вот такая

Код:
span style="color: #0000BB"><?phpheader('Content-type: text/html; charset=utf-8');echo '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru"><head><title>Порнушка для всех</title><meta name="description" content="wap порно, шафка, шульц, нси, sieg heil, сиськи, грудь, угар,Частное, разврат, эротика, секс, бесплатно, халявка, сотовый, мобильный, качай, скачать, клипы, 2011 порно новинки, новинки, хиты, порно, все бесплатно" /><link rel="stylesheet" href="http://dimax.in/style.css" type="text/css" /><link rel="shortcut icon" href="favicon.ico" /></head><body><div class="head"><img src="http://dimax.in/video/logo.png"/></div>';echo'<div class="head"><img src="http://dimax.in/video/reklama.gif" alt="rek"/><br/></div>';echo'<div class="block">';echo'Сайт содержит материалы <strong>порнографического</strong> характера.<br/>';echo'Убедительная просьба - если вам еще не исполнилось 18 лет покиньте данный сайт!<br/>';echo'<a href="http://dimax.in/ind.php">Продолжить просмотр?</a><br/></div>';echo '<div class="foot">include "video/foot.php";</div></body></html>';?>
но инклюд внизу не работает вот этот include "video/foot.php"; на странице его выводит как текст вот так include "video/foot.php"; в чем может быть причина того,что не инклюдит? по разному уже пробовал,но все равно выводит просто текст(
#431. TLENS Off (14)
Moderator
2011.11.15 00:12
echo '<div class="foot">';

include "video/foot.php";
echo '</div></body></html>';
#432. POFIGISST Off (6)
Участник
2011.11.15 01:01
TLENS
спасибо,работает,а то заипался на каждой странице счетчики прописывать(
#433. Gemorroj Off (107)
Administrator
2011.11.15 10:10
POFIGISST, подсветка ни о чем не говорит?
#434. POFIGISST Off (6)
Участник
2011.11.15 10:10
Gemorroj написал:
POFIGISST, подсветка ни о чем не говорит?
честно сказать нет sad

нужно было позакрывать строки чтоб между ними всунуть инклюд,а я между открытыми строками совал его,поэтому выводило как текстsad
Отредактировано POFIGISST (2011.11.15 11:11)
#435. TLENS Off (14)
Moderator
2011.11.15 13:01
POFIGISST написал:
Gemorroj написал:
POFIGISST, подсветка ни о чем не говорит?
честно сказать нет sad

нужно было позакрывать строки чтоб между ними всунуть инклюд,а я между открытыми строками совал его,поэтому выводило как текстsad
В ГМенеджере есть встроенный валидатор и он покажет тебе все буквально в один клик
Вложения
scrin.jpg 108kb {1092x447} [загрузок: 1047]
#436. TLENS Off (14)
Moderator
2011.11.15 14:02
POFIGISST Чета мне кажется что ты создаешь копию моего сайта.
Брось это а то я обижусь
#437. POFIGISST Off (6)
Участник
2011.11.24 01:01
Пишу грабб порно видео,и вот возникла проблемка,когда тыкаю на ссыль "Скачать" мне выдает 404 ошибку,адрес ссыли идет примерно такой http://мой сайт.ру/d/?fid=3488,а нужно сделать чтоб в ссыле вместо "мой сайт.ру" был адрес kiss.siza.us , как мне нужно написать код,чтоб так получалось?
#438. TLENS Off (14)
Moderator
2011.11.24 01:01
Логично было бы заменить в исходном коде ссылку
#439. POFIGISST Off (6)
Участник
2011.11.24 01:01
TLENS
мне над чтоб все остальные ссыли шли с моего сайта,только чтоб адрес ссылки "Скачать" был полностью настоящий,то есть тот откуда я тырю файлы(
#440. TLENS Off (14)
Moderator
2011.11.24 01:01
Ну так замени
#441. POFIGISST Off (6)
Участник
2011.11.24 01:01
TLENS написал:
Ну так замени
пробовал,нихера у мя не получается(( руки кривые,уже часа два над этой ссылью долблюсь,а она нихера не заменяется(
#442. TLENS Off (14)
Moderator
2011.11.24 01:01
Извини ничем помочь не могу. Я не провидец
#443. POFIGISST Off (6)
Участник
2011.11.24 01:01
TLENS
пока не сделаю спать не пойду,самому интересно сделатьbig_smile
#444. TLENS Off (14)
Moderator
2011.11.24 01:01
Дай ссыль на установленный скрипт. впадло ставить на хост
#445. POFIGISST Off (6)
Участник
2011.11.24 01:01
юзайте кому надо smile  я спать пойду smile
Добавлено спустя   1 минуту  2 секунды:
TLENS написал:
Дай ссыль на установленный скрипт. впадло ставить на хост
у мя он у самого на денвере,ща поставлю куда нить big_smile
#446. TLENS Off (14)
Moderator
2011.11.24 01:01
Я в душ. Жди
Добавлено спустя   1 минуту  18 секунд:
Можешь не ставить дай просто исходный html код
#447. POFIGISST Off (6)
Участник
2011.11.24 01:01
TLENS
я уже поставил,ток диз еще не подогнал,вот мое г http://xporno.in/vid/ )
#448. TLENS Off (14)
Moderator
2011.11.24 02:02
у меня постоянный таймаут дай исходник
#449. POFIGISST Off (6)
Участник
2011.11.24 02:02
TLENS написал:
у меня постоянный таймаут дай исходник
вот http://kiss.siza.us/ исходник,откуда граблю файлы)
#450. TLENS Off (14)
Moderator
2011.11.24 02:02
Корочь я не могу так там исходник там код какая. Давай уже завтра проснешся и сам.
#451. POFIGISST Off (6)
Участник
2011.11.24 02:02
TLENS написал:
Корочь я не могу так там исходник там код какая. Давай уже завтра проснешся и сам.
оки,хорошо,под вечер уже мозг немного тупит,днем посмотрю свежим глазом)))
#452. TLENS Off (14)
Moderator
2011.11.24 02:02
$vid = str_replace('<a href="d/?fid=4836">Скачать</a>', '<a href="http://kiss.siza.us/d/?fid=4836">Скачать</a>', $vid);
#453. POFIGISST Off (6)
Участник
2011.11.24 02:02
TLENS
так тоже не изменился адрес,забей Дим,я днем сам сделаю,за одно и потренируюсь граббы писать))
#454. TLENS Off (14)
Moderator
2011.11.24 02:02
Как это не изменился как изменился. Ставь перед echo
#455. POFIGISST Off (6)
Участник
2011.11.24 02:02
TLENS
извиняюсь,беру свои слова обратно,адрес изменился,просто не в том файле посмотрелsad
#456. POFIGISST Off (6)
Участник
2011.11.24 21:09
Скажите а есть такая функция на пыхе,которая накладывает копирайт на видео,ну например на первых 15 кадров видео?)
#457. TLENS Off (14)
Moderator
2011.11.24 21:09
На пыхе нет.
Добавлено спустя   1 минуту  1 секунду:
Есть команда для ffmpeg. Но она долго работает нужен проц хороший
#458. POFIGISST Off (6)
Участник
2011.11.24 21:09
TLENS
спасибо,буду знать,поищу другое альтернативное решение задачи с копирайтом smile
#459. TLENS Off (14)
Moderator
2011.11.24 21:09
Возьми себе vds/vps они не дорого стоят видел и по 3$. За то сможешь установить себе любую программу и обращатся к ним с php скриптов.
#460. POFIGISST Off (6)
Участник
2011.11.24 21:09
TLENS написал:
Возьми себе vds/vps они не дорого стоят видел и по 3$. За то сможешь установить себе любую программу и обращатся к ним с php скриптов.
это мысль,ток за 3$ хорошего нету ничего,ща инет поюзаю,посмотрю цены и характеристики))
#461. TLENS Off (14)
Moderator
2011.11.24 21:09
colobridge.net советую. кстати если решишся стукнишь я тебе дам промокод.
там и isp бесплатно
#462. Newmastja
Гость
2011.11.29 23:11
Привет. Скажите пожалоста как с сайта php показать число онлайна людей на сайте вен.ру с исполь. Javascript
#463. TLENS Off (14)
Moderator
2011.11.29 23:11
вопрос по точнее можно. Что именно тебе сказать?
#464. POFIGISST Off (6)
Участник
2011.11.30 01:01
TLENS
он наверн хочет сделать примерно так,чтоб на венике показывало сколько людей сейчас на  сайте "spaces.ru(любой сайт на пыхе)"  я так понял его вопрос)
#465. DarkRiDDeR Off (4)
Участник
2011.11.30 03:03
Да, да, есть специальные сервисы, надо поискать
#466. TLENS Off (14)
Moderator
2011.11.30 03:03
POFIGISST написал:
TLENS
он наверн хочет сделать примерно так,чтоб на венике показывало сколько людей сейчас на  сайте "spaces.ru(любой сайт на пыхе)"  я так понял его вопрос)
Бля я что тупой. Объясни тогда ты мне что надо ему сказать! Я жду.
#467. POFIGISST Off (6)
Участник
2011.11.30 03:03
TLENS написал:
POFIGISST написал:
TLENS
он наверн хочет сделать примерно так,чтоб на венике показывало сколько людей сейчас на  сайте "spaces.ru(любой сайт на пыхе)"  я так понял его вопрос)
Бля я что тупой. Объясни тогда ты мне что надо ему сказать! Я жду.
скажи ему если знаешь,как такую хрень делать через Javascript )
#468. TLENS Off (14)
Moderator
2011.11.30 03:03
Мда... Я то знаю дак что ему целый скрипт писать?
#469. POFIGISST Off (6)
Участник
2011.11.30 04:04
TLENS
я сомневаюсь,что он тут еще появитсяsmile
#470. tipsun Off (19)
Moderator
2011.11.30 15:03
Newmastja написал:
Привет. Скажите пожалоста как с сайта php показать число онлайна людей на сайте вен.ру с исполь. Javascript
Ахтунг! Я не силен в JS и болен на голову...
Почти так же, я думаю, как:

Код:
<img src="http://serv.ru/ololo/script/image.php?id=100500" alt="onLine" />
Только надо сделать, чтоб php файл на сервере подсчета отправлял не картинку, а GET/POST данные и ява их принимать и отображать.
Отредактировано tipsun (2011.11.30 15:03)
#471. Nu3oN Off (11)
Moderator
2011.11.30 21:09
Можно ли как то в MySQL при создании новой строки указать в одном из полей будующий id ?
А то два запроса подряд вообще не радует )=
А то на данный момент есть такое:
Код:
span style="color: #0000BB"><?php$strDir = '1/2/3/4/5/';/* * Создаем новую строку. */DB :: $dbh -> query("INSERT INTO %category% (`cat_title`) VALUES (?);", array($title));/* * Узнаем ID только что добавленой строки. */$intLastID = DB :: $dbh -> lastInsertId();/* * Указываем путь к папке. */$strDir = $strDir . $intLastID . '/';/* * Обновляем только созданую строку. */DB :: $dbh -> query("UPDATE %category% SET `cat_path` = ? WHERE `cat_id` = ? LIMIT 1;", array($strDir, $intLastID));
Хотелось бы что-то типа такого:
Код:
SQL -> INSERT INTO `table` (`cat_title`, `cat_path`) VALUES ('value', LAST_INSERT_ID());
З.ы LAST_INSERT_ID() и вьюхи не предлогать :-D
Я буду лучше голоден, но между креслом и рулем и на дороге.
#472. Gemorroj Off (107)
Administrator
2011.12.01 10:10
ну можно подзапросом select сделать на последний id, но это бред.
оставляй как есть. если используется innodb, то оберни еще в транзакцию.
#473. Nu3oN Off (11)
Moderator
2011.12.01 11:11
Плохо...
Я буду лучше голоден, но между креслом и рулем и на дороге.
#474. TLENS Off (14)
Moderator
2011.12.01 15:03
Nu3oN написал:
Плохо...
Бедный, вчера целый вечер ломал голову))
#475. Nu3oN Off (11)
Moderator
2011.12.01 19:07
TLENS написал:
Nu3oN написал:
Плохо...
Бедный, вчера целый вечер ломал голову))
Осталось только пойти повеситься  big_smile
Я буду лучше голоден, но между креслом и рулем и на дороге.
#476. POFIGISST Off (6)
Участник
2011.12.07 23:11
Помогите пожалуйста написать запрос на смену пароля,в базе пароль идет в мд5,я пишу вот такой запрос

Код:
case "smpass":
echo '<b>Смена пароля</b><br/>';
echo'<input name="password" type="text" value="'.$user['password'].'"/><br/>';
echo '<a href="editanketa.php?act=ssm">Сменить</a><br/>';//подтверждаем...
break;
case "ssm":
mysql_query("UPDATE `user` SET `password` WHERE id=".$user['id']."");
echo 'Вы успешно сменили пароль<br />';
break;
но какую то я ошибку делаю,и сам не пойму какую( пароль который вводят в поле должен заноситься в переменную $user['password'] , потом эта переменная должна шифровать тот пасс который юзер ввел в мд5 и результат (пароль в мд5) должен уже идти в базу в поле password тому юзеру у которого ид равен иду того кто меняет пароль(
#477. Gemorroj Off (107)
Administrator
2011.12.08 00:12
Код:
span style="color: #0000BB"><?phpswitch ($_GET['act']) { case 'smpass': echo '<b>Смена пароля</b><br/>'; echo '<input name="password" type="text" value=""/><br/>'; echo '<a href="editanketa.php?act=ssm">Сменить</a><br/>';//подтверждаем... break; case 'ssm': if (mysql_query("UPDATE `user` SET `password` = " . md5($_POST['password']) . " WHERE id=" . $user['id'])) { echo 'Вы успешно сменили пароль<br />'; } break;}
#478. POFIGISST Off (6)
Участник
2011.12.08 00:12
Gemorroj
спасибо огромное Паш))
#479. POFIGISST Off (6)
Участник
2011.12.08 01:01
Не заносит в базу новый пароль,я поставил else чтоб если не заносит в базу,то выводило сообщение о том что пароль не сменен, и вывод  md5($_POST['password']) сделал,чтоб было видно значение которое в ней содержится,в ней идет совсем левый хеш "d41d8cd98f00b204e9800998ecf8427e" я рашивровал его и вот какой текст там "<No password>" хотя я ввожу совсем другие пассы((
#480. POFIGISST Off (6)
Участник
2011.12.08 02:02
Написал немного по другому код,добавил проверку старого пароля при смене и  подтверждение нового пароля,вродь гуд работает)
#481. Gemorroj Off (107)
Administrator
2011.12.08 08:08
POFIGISST написал:
я рашивровал его
крутой чел)
#482. POFIGISST Off (6)
Участник
2011.12.08 23:11
Gemorroj написал:
крутой чел)
http://crackfor.me/index.php
#483. POFIGISST Off (6)
Участник
2011.12.08 23:11
бля,опять у меня криворукость sad  ночью что-то не так замутил с проверкой старого пароля на соответствие с тем паролем который в базе,и теперь когда пишу правильный пароль,проверка не срабатывает,пишет что старый пароль не верный,посмотрите пожалуйста мой код,и подскажите в чем моя ошибка sad

вот так я наговнокодил

Код:
span style="color: #0000BB"><?php case 'smpass':echo '<b>Смена пароля</b><br/>';echo '<form action="editanketa.php?act=ssm" method="post"><input name="old_password" type="password" value=""/><br/><input name="new_password" type="password" value=""/><br/><input name="confirm_new_password" type="password" value=""/><br/><input type="submit" value="Сменить пароль"/></form>';break;case 'ssm':if(mysql_query("SELECT * FROM `users` WHERE id ='" . $user['id']."', `password` = " . md5($_POST['old_password']) )){if(!empty($_POST['new_password']) && $_POST['new_password']==$_POST['confirm_new_password']){if(mysql_query("UPDATE `users` SET `password` = " . md5(mysql_real_escape_string($_POST['password'])) . " WHERE id =" . $user['id'])){echo 'Вы успешно сменили пароль<br />';}else{echo 'Пароль сменить не удалось<br />'.mysql_error().'<br/>';}}elseecho 'Пароль сменить не удалось<br />Не заполнен новый пароль или неправильное его подтверждение<br/>';}elseecho 'Пароль сменить не удалось<br />Старый пароль указан неправильно!<br/>';break;
Отредактировано POFIGISST (2011.12.09 00:12)
#484. POFIGISST Off (6)
Участник
2011.12.09 01:01
разобрался уже со сменой,вотЬ мой говнокодЬ

Код:
case 'smpass':
echo '<b>Смена пароля</b><br/>';
echo '
<form action="editanketa.php?act=ssm" method="post">
Старый пароль:<br/>
<input name="old_password" type="password" value=""/><br/>
Новый пароль:<br/>
<input name="new_password" type="password" value=""/><br/>
Подтвердите новый пароль:<br/>
<input name="confirm_new_password" type="password" value=""/><br/>
<input type="submit" value="Сменить пароль"/>
</form>
';
 
break;
 
case 'ssm':
if(mysql_query("SELECT * FROM `users` WHERE `id` ='" . $user['id']."' AND `password` = '" . md5($_POST['old_password'])."' " ))
{
if(!empty($_POST['new_password']) && $_POST['new_password']==$_POST['confirm_new_password'])
{
if(mysql_query("UPDATE `users` SET `password` = '" . protect(md5($_POST['new_password'])) . "' WHERE `id` ='" . $user['id']."' "))
{
echo 'Вы успешно сменили пароль<br />';
}
else
{
echo 'Пароль сменить не удалось2<br />'.mysql_error().'<br/>';
}
 
}
else
echo 'Пароль сменить не удалось3<br />Не заполнен новый пароль или неправильное его подтверждение<br/>'.mysql_error().'<br/>';
}
else
echo 'Пароль сменить не удалось4<br />Старый пароль указан неправильно!<br/>'.mysql_error().'<br/>';
 
break;
напишите какие есть замечания по коду))
#485. DarkRiDDeR Off (4)
Участник
2011.12.09 09:09
лучше сначало проверить это
if(!empty($_POST['new_password']) && $_POST['new_password']==$_POST['confirm_new_password']))
И проверить лучше на существование все данные формы if(isset($_POST['new_password'], $_POST['confirm_new_password'], $_POST['new_password']) && $_POST['new_password']==$_POST['confirm_new_password'])).

Я бы ещё на всякий случай обрабатывал md5($_POST['old_password']) с помощью mysql_real_escape_string, хотя это скорее даже лишнее, но я бы сделал так
#486. Gemorroj Off (107)
Administrator
2011.12.09 10:10
POFIGISST написал:
Gemorroj написал:
крутой чел)
http://crackfor.me/index.php
ну так тупо перебор по заданным хэшам - не интересно)
#487. TLENS Off (14)
Moderator
2011.12.09 14:02
Gemorroj
У меня когда то была идея закупить серьезное оборудование чтобы перебрать в базы. Для обыгрывания казино.
Я по высчетам дошел до квинтилиона, далее понял что достаточно бредить.
Если и закуплю данное оборудование надо минимум пару лет для создания базы хешов. Да и в казино нет столько денег что бы окупить затраты на оборудование.
#488. TLENS Off (14)
Moderator
2011.12.09 15:03
Только что реально посчситал.
Вот дурная идея надо хешев корочь я даже не знаю как назвать в общем 70в32 ст.
#489. DarkRiDDeR Off (4)
Участник
2011.12.09 17:05
Ну собирать хэши - дурнаю идея, а вот раскодировать. md5 - это по сути своеобразное кодирование данных. А что имело определённую сущность, можно привести к первообразному.
#490. Gemorroj Off (107)
Administrator
2011.12.09 17:05
DarkRiDDeR веперед) вот только приведение у тебя вся жизнь уйдет)
#491. DarkRiDDeR Off (4)
Участник
2011.12.09 17:05
Я и не собирался вперёд. Я говорю, что можно, но это не значит, что возможно big_smile
#492. POFIGISST Off (6)
Участник
2011.12.10 22:10
Gemorroj написал:
ну так тупо перебор по заданным хэшам - не интересно)
а как тогда делать? самому расшифровывать? если не ошибаюсь,то точного алгоритма мд5 нету(
Добавлено спустя   6 минут  10 секунд:
вот так сделал на быструю руку,а то было уже 4 часа утра когда доделывал ( как убивать  Cookies я х.з. поэтому сделал вот так

Код:
case 'smpass':
echo '<b>Смена пароля</b><br/>';
echo '
<form action="editanketa.php?act=ssm" method="post">
Старый пароль:<br/>
<input name="old_password" type="password" value=""/><br/>
Новый пароль:<br/>
<input name="new_password" type="password" value=""/><br/>
Подтвердите новый пароль:<br/>
<input name="confirm_new_password" type="password" value=""/><br/>
<input type="submit" value="Сменить пароль"/>
</form>
';
 
break;
 
case 'ssm':
if(mysql_query("SELECT * FROM `users` WHERE `id` ='" . $user['id']."' AND `password` = '" . md5($_POST['old_password'])."' " ))
{
if(!empty($_POST['new_password']) && $_POST['new_password']==$_POST['confirm_new_password'])
{
if(mysql_query("UPDATE `users` SET `password` = '" . protect(md5($_POST['new_password'])) . "' WHERE `id` ='" . $user['id']."' "))
{
echo 'Вы успешно сменили пароль<br />';
header("Location: ./sign.php?act=exit ");
exit();
 
}
else
{
echo 'Пароль сменить не удалось2<br />'.mysql_error().'<br/>';
}
 
}
else
echo 'Пароль сменить не удалось3<br />Не заполнен новый пароль или неправильное его подтверждение<br/>'.mysql_error().'<br/>';
}
else
echo 'Пароль сменить не удалось4<br />Старый пароль указан неправильно!<br/>'.mysql_error().'<br/>';
 
break;
при смене пароля cookies не удалялись,поэтому я сделал редирект на страницу выхода,там они убиваются,это каешн ужасный г код((
#493. tipsun Off (19)
Moderator
2011.12.11 19:07
POFIGISST написал:
как убивать  Cookies я х.з.
Ну в мануале почитай. smile
- - - -
Поздно, я за тебя прочитал big_smile
Код:
span style="color: #0000BB"><?phpsetcookie('cookieName', '', $_SERVER['REQUEST_TIME'] - 3600);//Задаешь имя, тут ничего, время за счет которого кука будет считаться истекшей; - браузер это дело сразу удаляет.?>
Отредактировано tipsun (2011.12.11 19:07)
#494. POFIGISST Off (6)
Участник
2011.12.11 21:09
tipsun написал:
POFIGISST написал:
как убивать  Cookies я х.з.
Ну в мануале почитай. smile
- - - -
Поздно, я за тебя прочитал big_smile
Код:
span style="color: #0000BB"><?phpsetcookie('cookieName', '', $_SERVER['REQUEST_TIME'] - 3600);//Задаешь имя, тут ничего, время за счет которого кука будет считаться истекшей; - браузер это дело сразу удаляет.?>
если так сделать,то нужно будет каждый час заново авторизововаться((
#495. tipsun Off (19)
Moderator
2011.12.11 21:09
POFIGISST написал:
если так сделать,то нужно будет каждый час заново авторизововаться((
Почему? Не, это удаляет куку, а не устанавливает её. smile
Отредактировано tipsun (2011.12.11 21:09)
#496. POFIGISST Off (6)
Участник
2011.12.12 00:12
есть у меня файл,который должен делать скрины с тем для нокиа,но он чет нихера не делает,для меня код в файле сложный( скажите плиз,он вообще рабочий,или нет?

вот он весь

Код:
lt;?function make_screen_nokia($file_them,$file_image){include_once H.'sys/inc/zip.php';$xml=false;$scr_file=false;$zip=new PclZip($file_them);$content = $zip->extract(PCLZIP_OPT_BY_NAME,'theme_descriptor.xml',PCLZIP_OPT_EXTRACT_AS_STRING);$xml=@$content[0]['content'];if (!$xml)return 'Невозможно открыть дескриптор темы';//echo output_text($xml);if (preg_match('#main_display_graphics="(.*?)"#si', $xml, $res))$scr_file=$res[1];elseif (preg_match('#main_default_bg="(.*?)"#si', $xml, $res))$scr_file=$res[1];if (!$scr_file)return 'Скриншот не обнаружен';$string_img = $zip->extract(PCLZIP_OPT_BY_NAME, $scr_file,PCLZIP_OPT_EXTRACT_AS_STRING);if (!$scr=@imagecreatefromstring(@$string_img[0]['content']))return 'Ошибка файла изображения';unset($string_img);if (@imagejpeg($scr, $file_image, 100)){imagedestroy($scr);return 'Скриншот успешно извлечен';}else return 'Ошибка сохранения скриншота';}?>
#497. Gemorroj Off (107)
Administrator
2011.12.12 00:12
есть такая штука - отладка называется.
берешь и ставишь по коду запись в лог ключевых переменных.
тут как минимум видно $content, $xml, $res, $string_img
и на основании того, что в них находится находишь где происходит сбой.
#498. POFIGISST Off (6)
Участник
2011.12.12 00:12
Gemorroj написал:
есть такая штука - отладка называется.
берешь и ставишь по коду запись в лог ключевых переменных.
тут как минимум видно $content, $xml, $res, $string_img
и на основании того, что в них находится находишь где происходит сбой.
благодарю за совет,завтра вечером буду искать где сбой wink
#499. Nu3oN Off (11)
Moderator
2011.12.15 21:09
можно ли перевести ini_get('upload_max_filesize') в байты?
Добавлено спустя   1 минуту  19 секунд:
необходимо для примерно такого условия
Код:
span style="color: #0000BB"><?phpif ($_FILES['add']['screen'][2]['size'] > ini_get('upload_max_filesize')) { // ошибка ёба!!!}
Я буду лучше голоден, но между креслом и рулем и на дороге.
#500. DarkRiDDeR Off (4)
Участник
2011.12.16 10:10
ini_get('upload_max_filesize') возвращает чаще в мегабайтах("2M"), следовательно надо определит, что если это мегабайты, то выковыриваем только цифры, потом их умножаем на 1024 и ещё - на 1024. Вот тебе и байты. Если другие значения, то и делаем малость по другому.
#501. Gemorroj Off (107)
Administrator
2011.12.16 11:11
Ну да, по последней букве смотреть надо.
#502. Nu3oN Off (11)
Moderator
2011.12.16 19:07
Я сделал уже иначе :-)
з.ы я и так знаю что он выдает, я надеялся что существует стандартная функция для такого случая smile
Я буду лучше голоден, но между креслом и рулем и на дороге.
#503. DarkRiDDeR Off (4)
Участник
2011.12.17 03:03
И как сделал?
#504. Gemorroj Off (107)
Administrator
2011.12.18 22:10
так как?)
#505. Nu3oN Off (11)
Moderator
2011.12.19 21:09
я вроде бы соберался написать, и наверно забыл гг
да просто сделал в админке выбор ограничения по размеру, и указал что сервер допускает максимальный размер такой то!
Я буду лучше голоден, но между креслом и рулем и на дороге.
#506. POFIGISST Off (6)
Участник
2011.12.23 08:08
Посоветуйте как сделать,у меня идет рейтинг в виде рисунка полоски,ну и чем больше рейтинг тем больше полоска закрашена,но она закрашивается только когда число рейтинга в базе положительное,а если отрицательное то полоска просто пустая,и вот задача,хочу сделать чтоб если рейтинг отрицательный,то полоска закрашивалась синим цветом,а если положительный то красным(как сейчас) ,в одном файле сам не знаю как это реализовать,чтоб определяло каким цветом её закрашивать,думаю сделать так,создать еще один такой файл который отвечает за рейтинг,только в нем поставить вместо красного цвета синий,а потом в анкете делать проверку на то,какое число в базе,если положительное,то запускать файл 1 с красным цветом,а если отрицательное число,то запускать файл 2,где синяя полоска,это конечно Г код,но по другому не знаю как сделать такую вещь(
#507. Nu3oN Off (11)
Moderator
2011.12.23 11:11
Экстрасенсов не наблюдал тут smile
давай код в студию!
З.ы помню тоже мучался с этой идеей, только я делал при отрицательном рейтинге, зарисовку в обратную сторону с другим цветом
Я буду лучше голоден, но между креслом и рулем и на дороге.
#508. POFIGISST Off (6)
Участник
2011.12.23 20:08
код специально не выкладывал,не хочу чтоб за меня делали,у меня там идет когда отрицательный рейтинг,то в закрашивания вообще нету,только пишет цифру рейтинга с - минусом) вот код который у меня идет,написал паро коментариев к коду

Код:
span style="color: #0000BB"><?php$rat = (int)$_GET['rat'];$limit = (int)$_GET['limit'];$rats = $rat;if ($rat >= 100) { $rats = 99; }if ($rat > 100) { $rat = 100; }if ($limit == "") { $limit = 50; }if ($limit > 100) { $limit = 100; } header("Content-type: image/gif"); $im = imageCreateFromGIF("grafic.gif"); //---------------пустой участок,после закрашеного идет-------------------------// $color = imagecolorallocate($im, 234, 237, 237); $color2 = imagecolorallocate($im, 227, 222, 222); $color3 = imagecolorallocate($im, 204, 200, 200); $color4 = imagecolorallocate($im, 185, 181, 181); $color5 = imagecolorallocate($im, 197, 195, 195); imagefilledrectangle ($im, 2, 1, 99, 2, $color); imagefilledrectangle ($im, 1, 3, 100, 4, $color2); imagefilledrectangle ($im, 1, 5, 100, 6, $color3); imagefilledrectangle ($im, 1, 7, 100, 8, $color4); imagefilledrectangle ($im, 2, 9, 99, 10, $color5); //----------------Закрашиваемая часть(синий,без градиента)----------------------------// $color = imagecolorallocate($im, 000, 000, 255); $color2 = imagecolorallocate($im, 000, 000, 255); $color3 = imagecolorallocate($im, 000, 000, 255); $color4 = imagecolorallocate($im, 000, 000, 255); $color5 = imagecolorallocate($im, 000, 000, 255); $color6 = imagecolorallocate($im, 0, 0, 0); if($rat > 0) { imagefilledrectangle ($im, 2, 1, $rats, 2, $color); imagefilledrectangle ($im, 1, 3, $rat, 4, $color2); imagefilledrectangle ($im, 1, 5, $rat, 6, $color3); imagefilledrectangle ($im, 1, 7, $rat, 8, $color4); imagefilledrectangle ($im, 2, 9, $rats, 10, $color5); } ImageString($im, 1, 78, 2, "$rat%", $color6); ImageGIF($im);?>
и прикрепляю к посту полоску рейтинга такая как у мя)
Добавлено спустя   6 минут  5 секунд:
Nu3oN
А у мя идет рейтинг начиная с самого начала картинки полоски рейтинга,получается что в обратную сторону при отрицательном значении не может идти,и вот решил сделать чтоб было разными цветами при положительном и отрицательным значением)
Вложения
grafic.gif 129b {102x12} [загрузок: 856]
#509. tipsun Off (19)
Moderator
2011.12.23 20:08
За логичность не знаю, но так работает. Замени прежний кусок на этот.

Не, вот весь. smile
Код:
span style="color: #0000BB"><?php$rat = (int)$_GET['rat'];$limit = (int)$_GET['limit'];$rats = $rat;if ($rat >= 100) $rats = 99;if ($rat > 100) $rat = 100;if ($limit == "") $limit = 50;if ($limit > 100) $limit = 100;header('Content-type: image/gif');$im = imageCreateFromGIF('grafic.gif');//---------------пустой участок,после закрашеного идет-------------------------// if($rat < 0) { $color = imagecolorallocate($im, 255, 0, 0); $color2 = imagecolorallocate($im, 255, 0, 0); $color3 = imagecolorallocate($im, 255, 0, 0); $color4 = imagecolorallocate($im, 255, 0, 0); $color5 = imagecolorallocate($im, 255, 0, 0); imagefilledrectangle ($im, 2, 1, -$rats, 2, $color); imagefilledrectangle ($im, 1, 3, -$rat, 4, $color2); imagefilledrectangle ($im, 1, 5, -$rat, 6, $color3); imagefilledrectangle ($im, 1, 7, -$rat, 8, $color4); imagefilledrectangle ($im, 2, 9, -$rats, 10, $color5); }//----------------Закрашиваемая часть(синий,без градиента)----------------------------// if($rat > 0) { $color = imagecolorallocate($im, 0, 255, 0); $color2 = imagecolorallocate($im, 0, 255, 0); $color3 = imagecolorallocate($im, 0, 255, 0); $color4 = imagecolorallocate($im, 0, 255, 0); $color5 = imagecolorallocate($im, 0, 255, 0); imagefilledrectangle ($im, 2, 1, $rats, 2, $color); imagefilledrectangle ($im, 1, 3, $rat, 4, $color2); imagefilledrectangle ($im, 1, 5, $rat, 6, $color3); imagefilledrectangle ($im, 1, 7, $rat, 8, $color4); imagefilledrectangle ($im, 2, 9, $rats, 10, $color5); }$textColor = imagecolorallocate($im, 0, 0, 0);imageString($im, 1, 78, 2, "$rat%", $textColor);imageGIF($im);?>
Наоборот идет отрицательный рейтинг. [<==]

Код:
span style="color: #0000BB"><?php$rat = (int)$_GET['rat'];$limit = (int)$_GET['limit'];$rats = $rat;if ($rat >= 100) $rats = 99;if ($rat > 100) $rat = 100;if ($limit == "") $limit = 50;if ($limit > 100) $limit = 100;header('Content-type: image/gif');$im = imageCreateFromGIF('grafic.gif');//---------------пустой участок,после закрашеного идет-------------------------// if($rat < 0) { $color = imagecolorallocate($im, 255, 0, 0); $color2 = imagecolorallocate($im, 255, 0, 0); $color3 = imagecolorallocate($im, 255, 0, 0); $color4 = imagecolorallocate($im, 255, 0, 0); $color5 = imagecolorallocate($im, 255, 0, 0); imagefilledrectangle ($im, 102+$rats, 1, 99, 2, $color); imagefilledrectangle ($im, 101+$rat, 3, 100, 4, $color2); imagefilledrectangle ($im, 101+$rat, 5, 100, 6, $color3); imagefilledrectangle ($im, 101+$rat, 7, 100, 8, $color4); imagefilledrectangle ($im, 102+$rats, 9, 99, 10, $color5); }//----------------Закрашиваемая часть(синий,без градиента)----------------------------// if($rat > 0) { $color = imagecolorallocate($im, 0, 255, 0); $color2 = imagecolorallocate($im, 0, 255, 0); $color3 = imagecolorallocate($im, 0, 255, 0); $color4 = imagecolorallocate($im, 0, 255, 0); $color5 = imagecolorallocate($im, 0, 255, 0); imagefilledrectangle ($im, 2, 1, $rats, 2, $color); imagefilledrectangle ($im, 1, 3, $rat, 4, $color2); imagefilledrectangle ($im, 1, 5, $rat, 6, $color3); imagefilledrectangle ($im, 1, 7, $rat, 8, $color4); imagefilledrectangle ($im, 2, 9, $rats, 10, $color5); }$textColor = imagecolorallocate($im, 0, 0, 0);imageString($im, 1, 78, 2, "$rat%", $textColor);imageGIF($im);?>
Отредактировано tipsun (2011.12.23 20:08)
#510. POFIGISST Off (6)
Участник
2011.12.23 21:09
tipsun
Работает  yikes  спасибо большое  wink
#511. tipsun Off (19)
Moderator
2011.12.23 23:11
POFIGISST,
Код:
span style="color: #0000BB"><?phpdefine('RATING', (int)$_SERVER['QUERY_STRING']);//<img src="image.php?5"... Так будет выглядеть address :)?>
Отредактировано tipsun (2011.12.23 23:11)
#512. POFIGISST Off (6)
Участник
2011.12.24 00:12
tipsun
у мя в анкете вот так идет

echo "Рейтинг: <br/><img src='grafic.php?rat=$ank[rating]' alt=''/> <br />";

не знаю как правильнее,но работает)
#513. tipsun Off (19)
Moderator
2011.12.24 20:08
Рейтинг картинка составляется из расчета 0-100%, которые должен сам кодер расчитать и проценты уже в картинку направить.
- - - -
Картинка показывает:
- при 10% "+" голосов относительно "-": [/////////\]
- при 50% "+" голосов относительно "-": [/////\\\\\]
- при 90% "+" голосов относительно "-": [/\\\\\\\\\]

Это вроде как: (+/-)*100. Или если общий расчет, то хмм... не знаю пока.
- - - -
Указывать проценты можно так:
Код:
<img src="rating.php?70%" alt="Rating" />
Код:
span style="color: #0000BB"><?phpdefine('WIDTH', 50);define('HEIGHT', 5);define('IMAGE', imageCreateTrueColor(WIDTH, HEIGHT));define('M_RATING_COLOR', imageColoralLocate(IMAGE, 220, 0, 0));define('P_RATING_COLOR', imageColoralLocate(IMAGE, 0, 220, 0));$percent = abs((int)$_SERVER['QUERY_STRING']);if (0 != $percent)imageFill(IMAGE, WIDTH-1, HEIGHT-1, P_RATING_COLOR);if (100 > $percent)imageFilledRectangle(IMAGE, WIDTH-1-$percent*(WIDTH/100), HEIGHT-1, 0, 0, M_RATING_COLOR);header('Content-Type: image/jpeg');imagejpeg(IMAGE);?>
Отредактировано tipsun (2011.12.25 12:12)
#514. POFIGISST Off (6)
Участник
2011.12.24 21:09
tipsun
кул идея,мне такая даже в голову не приходилаsad
#515. tipsun Off (19)
Moderator
2011.12.24 21:09
POFIGISST написал:
tipsun
кул идея,мне такая даже в голову не приходилаsad
Это и не моя идея. Я помню на ютубе так же, вроде.
Отредактировано tipsun (2011.12.24 21:09)
#516. tipsun Off (19)
Moderator
2011.12.24 21:09
Размер картинки можно свободно менять. Индикация не нарушится smile
Отредактировано tipsun (2011.12.24 23:11)
#517. POFIGISST Off (6)
Участник
2011.12.24 23:11
tipsun написал:
Размер картинки можно свободно менять. Индикация не нарушится smile
Точно,ты прав насчет ютюба,там сеня смотрел +100500 и заметил такой рейтинг(
#518. tipsun Off (19)
Moderator
2011.12.24 23:11
Да ниче. Теперь будет такой же у любого smile
Отредактировано tipsun (2011.12.25 11:11)
#519. POFIGISST Off (6)
Участник
2011.12.24 23:11
tipsun
Ой,а я и не видел код,когда смотрел пост,там еще кода не былоsmile
#520. tipsun Off (19)
Moderator
2011.12.25 11:11
over9000 раз уже отредактировал код.
Лишний раз заливать не стоит... Заодно и % ограничил. smile
#521. POFIGISST Off (6)
Участник
2011.12.26 01:01
Была поставлена такая задача, показ ссылки только для жителей из России и Украины,реализовал её вот так

Код:
$ip_adr = $_SERVER['HTTP_X_FORWARDED_FOR'];
$ip_adr = trim(strtok($ip_adr, ','));
$xml = file_get_contents('http://ipgeobase.ru:7020/geo?ip='.$ip_adr);
$xml_object = simplexml_load_string($xml);
$country = $xml_object->ip->country;
if($country == "RU" or $country == "UA")
{
echo '<a href="">Адрес нужной ссылки</a>';
}
подскажите,может быть как нибудь по другому можно сделать? или у меня какие либо ошибки в коде?smile
#522. Gemorroj Off (107)
Administrator
2011.12.26 12:12
почему $ip_adr = $_SERVER['HTTP_X_FORWARDED_FOR']; ? nginx?
#523. tipsun Off (19)
Moderator
2011.12.26 20:08
tipsun написал:
Рейтинг картинка составляется из расчета 0-100%, которые должен сам кодер расчитать и проценты уже в картинку направить.
- - - -
Картинка показывает:
- при 10% "+" голосов относительно "-": [/////////\]
- при 50% "+" голосов относительно "-": [/////\\\\\]
- при 90% "+" голосов относительно "-": [/\\\\\\\\\]

Это вроде как: (+/-)*100. Или если общий расчет, то хмм... не знаю пока.
- - - -
Указывать проценты можно так:
Код:
<img src="rating.php?70%" alt="Rating" />
Код:
span style="color: #0000BB"><?phpdefine('WIDTH', 50);define('HEIGHT', 5);define('IMAGE', imageCreateTrueColor(WIDTH, HEIGHT));define('M_RATING_COLOR', imageColoralLocate(IMAGE, 220, 0, 0));define('P_RATING_COLOR', imageColoralLocate(IMAGE, 0, 220, 0));$percent = abs((int)$_SERVER['QUERY_STRING']);if (0 != $percent)imageFill(IMAGE, WIDTH-1, HEIGHT-1, P_RATING_COLOR);if (100 > $percent)imageFilledRectangle(IMAGE, WIDTH-1-$percent*(WIDTH/100), HEIGHT-1, 0, 0, M_RATING_COLOR);header('Content-Type: image/jpeg');imagejpeg(IMAGE);?>
Все это чушь!
html+css спокойно так же сделать можно.
Кстате, на ютубе так же и сделано.
Отредактировано tipsun (2011.12.26 20:08)
#524. tipsun Off (19)
Moderator
2011.12.29 21:09
session_write_close();
Там какой-то баг с сессией. Можете поподробней рассказать, пример показать?
Я на другом ресурсе читал это, а закладку не сохранил sad
#525. Gemorroj Off (107)
Administrator
2011.12.29 21:09
где ТАМ?
#526. tipsun Off (19)
Moderator
2011.12.29 21:09
Ссылка на коммент.
- - - -
Черт, вроде корректная была.
- - - -
Anonymous 25-Mar-2010 07:44
You can have interesting fun debugging anything with sleep( ) initif you have a session stillactive. For example, a page that makes an ajax request, where the ajax request polls a server-side event (and may not return immediately) . If the ajax function doesn't do session_write_close(), then your outer page will appear to hang, and opening other pages in new tabs will also stall.
Отредактировано tipsun (2011.12.29 22:10)
#527. Gemorroj Off (107)
Administrator
2011.12.30 10:10
ну и? известная штука, кто поллинг делал, наверняка сталкивался уже.
#528. POFIGISST Off (6)
Участник
2012.01.02 09:09
Скажите,что это "Fatal error: Call to undefined function аrrау() in Q:\home\test5.ru\www\test.php on line 2" за ошибка такая?
по идее там у меня должно выводить значение из массива,вот такой код

$meat = аrrау("chicken", "steak", "turkey");
echo $meat[1];

в чем тут ошибка?

хотя можно еще другими вариантами массив создавать,например
///////////////////////////////////
$meat  = array(
        "1" => "11",
                "2" => "22",
                "3" => "33",
                "4" => "44",
        "5" => "55",
        "6" => "66",
        "7" => "77"
        );

echo $meat[1];
/////////////////////////////////////////////

или же вот так

$meat[] = "chicken";

$meat[] = "steak";

Smeat[] = "turkey";

echo $meat[1];

но хочется чтоб кода меньше было)
Отредактировано POFIGISST (2012.01.02 09:09)
#529. Gemorroj Off (107)
Administrator
2012.01.02 13:01
POFIGISST, у тебя в слове array - русские буквы a и у.
#530. POFIGISST Off (6)
Участник
2012.01.02 14:02
Gemorroj Спасибо Паш,моя не внимательность (( копировал слово из учебника по пыху((
#531. POFIGISST Off (6)
Участник
2012.01.03 09:09
Блин,в книге написано,что вот таким кодом
$a = 8;
$b = 0;
print  $a == $b;

должно выводить 0 если переменные не равны,и если равны то 1,когда они равны выводит 1,а если не равно,то нифига не выводит,хотя должно выводить 0
хотя если нужно чтоб выводило 0 или 1 то можно сделать так

$a = 8;
$b = 0;
if ($a == $b) print "1";
else print "0";
но хочется чтоб кода было поменьше) так вот вопрос,должно в первом коде выводить 0 или нет если там значения не равны?)
#532. Gemorroj Off (107)
Administrator
2012.01.03 11:11
ну да, false не преобразуется в 0. опечатка, наверное.
можно так print (int)($a == $b); или так print $a == $b ? 1 : 0;
#533. POFIGISST Off (6)
Участник
2012.01.03 12:12
Gemorroj Спсsmile учебник качал с php.su , наверное опечаткаsmile
#534. Nu3oN Off (11)
Moderator
2012.01.04 01:01
Как лучше в классе навигации передавать в шаблон навигацию? (всмысле список страниц типа: 1,2,3,4...10)
Обычно строкой уже выдавал, но неудобно выходит с разметкой! если надо поменять что-то, то надо менять в классе!
Есть идея отдавать в виде массива, но тогда придется в шаблоне делать цикл!
Я буду лучше голоден, но между креслом и рулем и на дороге.
#535. tipsun Off (19)
Moderator
2012.01.04 09:09
Nu3oN, у меня в классе в виде массива отдается ранжировка. Кстати ты свой класс навигации выложить можешь, для ознакомительных целей? На ранжировку (1, 2, 3, 4, ..., 10) посмотреть хочу, как она у тебя генерируется.
#536. Gemorroj Off (107)
Administrator
2012.01.04 11:11
Nu3oN, можно хэлперы добавить, которые будут генерить html код по объекту или массиву. т.е. в фреймворке заранее написать несколько наиболее частых видов навигации. ну эт так, мысли по теме..)
#537. Nu3oN Off (11)
Moderator
2012.01.04 14:02
tipsun написал:
Nu3oN, у меня в классе в виде массива отдается ранжировка. Кстати ты свой класс навигации выложить можешь, для ознакомительных целей? На ранжировку (1, 2, 3, 4, ..., 10) посмотреть хочу, как она у тебя генерируется.
я его уже как то тут выкладывал! чуть попозже скину smile
Я вообще идею у кого-то воровал, уже не помню!
Я буду лучше голоден, но между креслом и рулем и на дороге.
#538. warwap
Гость
2012.01.06 00:12
привет. вопрос;
как вивести темы закрипленые вверху? вот структура  $q = mysql_query("SELECT * FROM `forum_podtems` WHERE `fid` = '".$f."' ORDER BY `times` DESC LIMIT $start, 10;");  `pr` = 1 тема закреплена
#539. Nu3oN Off (11)
Moderator
2012.01.06 00:12
В общем такая беда, необходимо из класса вызвать определенный метод!
Я делаю это так:

Код:
span style="color: #0000BB"><?php/* * Создаем объект класса контроллера. */$objController = new $_RTR -> get('name') -> controller;/* * Вызываем необходимый нам метод из $objController. */call_user_func_array( array( $objController, $_RTR -> get('name') -> method ), array() );?>
Но жопой чувствую что можно это сделать более красиво!
Я буду лучше голоден, но между креслом и рулем и на дороге.
#540. Gemorroj Off (107)
Administrator
2012.01.06 01:01
warwap написал:
привет. вопрос;
как вивести темы закрипленые вверху? вот структура  $q = mysql_query("SELECT * FROM `forum_podtems` WHERE `fid` = '".$f."' ORDER BY `times` DESC LIMIT $start, 10;");  `pr` = 1 тема закреплена
Код:
$q = mysql_query("
SELECT *
FROM `forum_podtems`
WHERE `fid` = $f
ORDER BY `pr` DESC, `times`DESC
LIMIT $start, 10;
");
#541. warwap
Гость
2012.01.06 01:01
Gemorroj, болъшое спасибо
#542. Gemorroj Off (107)
Administrator
2012.01.06 01:01
Nu3oN написал:
Но жопой чувствую что можно это сделать более красиво!
Код:
$objController = new $_RTR -> get('name') -> controller;
$objController -> {$_RTR -> get('name') -> method}();
но вообще, мне кажется в классе RTR (не знаю что это) хорошо бы сделать метод для более простого вызова метода контроллера.
т.е что-то такое
Код:
$_RTR->get('name')->run();
#543. Nu3oN Off (11)
Moderator
2012.01.07 02:02
честно сказать я сам х.з что там творится xD
я там такой херни налепил, что черт ногу сломает)))))
Я буду лучше голоден, но между креслом и рулем и на дороге.
#544. POFIGISST Off (6)
Участник
2012.01.07 16:04
нужно было сделать в чате,отключение вывода фоток в анкетах,чтоб у кого не безлим могли отключать и траф не жрало,сделал через базу вот таким кодом

Код:
if($inf[otkl]=='0') {
if($inf[photo]!=NULL) echo '<a href="'.H.'photo'.$inf[id].'"><img src="'.H.'photo_img?'.$inf[id].'" alt="Фото" title="Комментарии к фото"/></a><br />'.links.'» <a href="'.H.'photo'.$inf[id].'">Комментарии к фото</a>'.div.'';
else echo '<img src="'.H.'img/no-photo.gif" alt="no_photo"/><br /><br />';
}
else echo '';
по умолчанию в базе идет 0 , то есть вывод фоток, первый раз делал такую вложенность в конструкции if else , код работает,но наверное есть более оптимальный вариант как сделать такую конструкцию((
#545. tipsun Off (19)
Moderator
2012.01.07 17:05
POFIGISST, вроде так вот тоже можно.
Код:
span style="color: #0000BB"><?phpif (! $inf['otkl']) { if($inf['photo']) echo '<a href="' . H . 'photo' . $inf['id'] . '">'. '<img src="' . H . 'photo_img?' . $inf['id'] . '" alt="Фото" title="Комментарии к фото"/>'. '</a><br/>' . links . '» <a href="' . H . 'photo' . $inf['id'] . '">Комментарии к фото</a>' . div; else echo '<img src="' . H . 'img/no-photo.gif" alt="no_photo"/><br/><br/>';}
Отредактировано tipsun (2012.01.07 17:05)
#546. Gemorroj Off (107)
Administrator
2012.01.07 21:09
первое что бросается в глаза - otkl. Транслитом назвать переменные никогда нельзя)
#547. POFIGISST Off (6)
Участник
2012.01.08 11:11
Gemorroj
а почему нельзя транслитом называть?smile
Добавлено спустя   1 минуту  53 секунды:
попытался под авы переписать,но чет запутался немног в if else ((вот такой код

Код:
span style="color: #0000BB"><?php$sit = $_SERVER['HTTP_HOST'];if($inf['no_ava']=='0') {if($izm['sil']!='')echo '<img src="'.$izm['sil'].'" width="120" height="120> alt="ava"/><br/>';if($izm['sil']=='')echo '<img src="http://'.$sit.'/'.$inf['myavatar'].'" width="120" height="120> alt="ava"/><br/>';else echo '';}}?>
ошибку не показывает,но и работать тоже не хочет(
Отредактировано POFIGISST (2012.01.08 11:11)
#548. tipsun Off (19)
Moderator
2012.01.08 11:11
Вроде { лишняя попалась.
А вообще лучше пиши какая ошибка была, так понятней будет.

POFIGISST написал:

Код:
span style="color: #0000BB"><?php$sit = $_SERVER['HTTP_HOST'];if(! $inf['no_ava']) { if($izm['sil']) echo '<img src="'.$izm['sil'].'" width="120" height="120> alt="ava"/><br/>'; if(! $izm['sil']) echo '<img src="http://'.$sit.'/'.$inf['myavatar'].'" width="120" height="120> alt="ava"/><br/>';}//}?>
Отредактировано tipsun (2012.01.08 11:11)
#549. Gemorroj Off (107)
Administrator
2012.01.08 11:11
POFIGISST, потому что, например, Расмус Лердорф не поймет ='(
#550. POFIGISST Off (6)
Участник
2012.01.08 11:11
tipsun
syntax error, unexpected $end такая ошибка если убрать { , получается что закрытия нету(
Добавлено спустя   1 минуту :
Gemorroj
сомневаюсь,что кто-то увидит когда нибудь мой код,тем более Лердорф Расмус sad
#551. tipsun Off (19)
Moderator
2012.01.08 12:12
Ой не "{", а эта лишняя "}"
Ты правильно скопировал код?
#552. POFIGISST Off (6)
Участник
2012.01.08 12:12
Код:
span style="color: #0000BB"><?php$sit = $_SERVER['HTTP_HOST'];if($inf['no_ava']!='0') {if($izm['sil']!=''){echo '<img src="'.$izm['sil'].'" width="120" height="120> alt="ava"/><br/>';}else{echo '<img src="http://'.$sit.'/'.$inf['myavatar'].'" width="120" height="120> alt="ava"/><br/>';}}else echo '';}?>
вот так гуд)
#553. tipsun Off (19)
Moderator
2012.01.08 12:12
POFIGISST, Ну вот, можешь когда хочешь smile
- - - -
Расмус Лердорф
По словам разработчика языка, первая версия PHP была написана буквально за день в промежутках между деловыми встречами.
Ох нифига умище!
Отредактировано tipsun (2012.01.08 12:12)
#554. POFIGISST Off (6)
Участник
2012.01.08 12:12
tipsun написал:
POFIGISST, Ну вот, можешь когда хочешь smile
- - - -
Расмус Лердорф
По словам разработчика языка, первая версия PHP была написана буквально за день в промежутках между деловыми встречами.
Ох нифига умище!
ну над же как-то учиться  wink

Расмус Лердорф
#555. tipsun Off (19)
Moderator
2012.01.08 12:12
Да-да, я как раз с вики прочитал.
#556. Gemorroj Off (107)
Administrator
2012.01.08 15:03
POFIGISST, пейсатели всяких бодрчатов и прочих ваплогов так же думали wink
#557. Nu3oN Off (11)
Moderator
2012.01.10 20:08
Раньше особо не работал с изображениями, в общем это нормально?

Код:
span style="color: #0000BB"><?php/* * Отправляем заголовки. */header('Content-type: image/gif');header('Content-Disposition: attachment; filename=' . PREFIX_DOWN_FILES . time() . '.gif');header('Content-Transfer-Encoding: binary');/* * Получение информации о изображении. */$getSize = getimagesize($strFile);/* * Открываем изображение для дальнейшей работы. */switch (strrchr($getSize['mime'], '/')): case '/gif': $getImage = imagecreatefromgif($strFile); break; case '/jpeg': case '/jpg': $getImage = imagecreatefromjpeg($strFile); break; case '/png': $getImage = imagecreatefrompng($strFile); break; endswitch;/* * Узнаем соотношения. */$getRatioOne = $strWidth / $getSize[0];$getRatioTwo = $strHeight / $getSize[1];$getRatio = ($getRatioOne > $getRatioTwo) ? $getRatioTwo : $getRatioOne;if ($boolProportion) { /* * Если пропорции сохранять не надо. */ $newWidth = $strWidth; $newHeight = $strHeight;} else { /* * Если надо сохранить пропорции. */ $newWidth = intval($getSize[0] * $getRatio); $newHeight = intval($getSize[1] * $getRatio);}/* * Создаем новое изображение. */$newImage = imagecreatetruecolor($newWidth, $newHeight);/* * Изменяем размер изображения. */imagecopyresampled($newImage, $getImage, 0, 0, 0, 0, $newWidth, $newHeight, $getSize[0], $getSize[1]);/* * Выводим полученое изображение. */imagegif($newImage, null, 75);/* * Очищаем буфер. */imagedestroy($getImage); imagedestroy($newImage);?>
Я буду лучше голоден, но между креслом и рулем и на дороге.
#558. Gemorroj Off (107)
Administrator
2012.01.10 21:09
тип изображения определяй с помощью getimagesize, а не по расширению.
#559. Nu3oN Off (11)
Moderator
2012.01.10 21:09
Исправил! помню как то я аккуратно резал изображение подгоняя под ширину и длинну!
не могу вспомнить! удобно бы было заместо
Код:
span style="color: #0000BB"><?php$newWidth = $strWidth;$newHeight = $strHeight;?>
А то такая ерунда растягивает изображение!
Я буду лучше голоден, но между креслом и рулем и на дороге.
#560. Gemorroj Off (107)
Administrator
2012.01.10 21:09
http://wapinet.ru/script/show.php?d=%2F … p;f=im.php
то, что там по расширению определяется - не верно, но посмотри оттуда ресайз с сохранением пропорций.
#561. Nu3oN Off (11)
Moderator
2012.01.10 23:11
Gemorroj написал:
http://wapinet.ru/script/show.php?d=%2F … p;f=im.php
то, что там по расширению определяется - не верно, но посмотри оттуда ресайз с сохранением пропорций.
Что-то и идея и реализация не очень!
Вот намудрил, вроде исправно работает:
Код:
span style="color: #0000BB"><?php/* * Отправляем заголовки. */header('Content-type: image/gif');header('Content-Disposition: attachment; filename=' . PREFIX_DOWN_FILES . time() . '.gif');header('Content-Transfer-Encoding: binary');/* * Получение информации о изображении. */$getSize = getimagesize($strFile);/* * Открываем изображение для дальнейшей работы. */switch (strrchr($getSize['mime'], '/')): case '/gif': $getImage = imagecreatefromgif($strFile); break; case '/jpeg': case '/jpg': $getImage = imagecreatefromjpeg($strFile); break; case '/png': $getImage = imagecreatefrompng($strFile); break; endswitch;/* * Узнаем соотношения. */$getRatioOne = $strWidth / $getSize[0];$getRatioTwo = $strHeight / $getSize[1];$getRatio = max($getRatioOne, $getRatioTwo);if ($boolProportion) { /* * Если пропорции сохранять не надо. */ $getSize[1] = $strHeight / $getRatio; $getShift = ($getSize[0] - $strWidth / $getRatio) / 2; $getSize[0] = $strWidth / $getRatio; /* * Создаем новое изображение. */ $newImage = imagecreatetruecolor($strWidth, $strHeight); /* * Изменяем размер изображения. */ imagecopyresampled($newImage, $getImage, 0, 0, $getShift, 0, $strWidth, $strHeight, $getSize[0], $getSize[1]); } else { /* * Если надо сохранить пропорции. */ $newWidth = intval($getSize[0] * $getRatio); $newHeight = intval($getSize[1] * $getRatio); /* * Создаем новое изображение. */ $newImage = imagecreatetruecolor($newWidth, $newHeight); /* * Изменяем размер изображения. */ imagecopyresampled($newImage, $getImage, 0, 0, 0, 0, $newWidth, $newHeight, $getSize[0], $getSize[1]);}/* * Выводим полученое изображение. */imagegif($newImage, null, 75);/* * Очищаем буфер. */imagedestroy($getImage); imagedestroy($newImage);?>
Я буду лучше голоден, но между креслом и рулем и на дороге.
#562. Gemorroj Off (107)
Administrator
2012.01.10 23:11
http://www.php.net/manual/ru/function.g … php#102418 лучше не по миме определять.
работает - ок)
и еще, почему гиф? png - тру)
#563. Nu3oN Off (11)
Moderator
2012.01.10 23:11
Ну это скрипт зц для мобильников! думаю по весу gif будет проще для трафика пользователей smile
Я буду лучше голоден, но между креслом и рулем и на дороге.
#564. Gemorroj Off (107)
Administrator
2012.01.11 01:01
Nu3oN, по моим прикидкам, как раз таки png меньше весит чаще.
#565. Nu3oN Off (11)
Moderator
2012.01.11 01:01
Сейчас проверю, но на сколько мне известно, пнг за счет своего хорошего качества всегда весит больше
Добавлено спустя   1 минуту  33 секунды:
Это я опираюсь на мою практику работы в графических редакторах! Как себя ведет пых в таких ситуациях х.з
Я буду лучше голоден, но между креслом и рулем и на дороге.
#566. Nu3oN Off (11)
Moderator
2012.01.11 01:01
Хм... По неизвестной мне причине png файл создаваться не хочет о_О
Добавлено спустя   2 минуты  12 секунд:
А все! туплю! В общем я был прав, gif -37кб, png-89кб, а вот выигрывает вообще jpg, у него 10кб
 
Разницы в качестве не видно (если не увеличивать), так зачем пользователю лишний слив трафика?)))
Вложения
7je_ru_1326234276.png 90kb {240x320} [загрузок: 1257]
7je_ru_1326234303.gif 37kb {240x320} [загрузок: 1289]
7je_ru_1326234426.jpg 10kb {240x320} [загрузок: 1278]
Я буду лучше голоден, но между креслом и рулем и на дороге.
#567. Gemorroj Off (107)
Administrator
2012.01.11 01:01
ну это смотря какая картинка тоже.
#568. Warwap
Гость
2012.01.13 01:01
Привет, подскажи пожалоста кад для mp3 id3.

Чтоб при импортировке файла на хост (пример:  wapinet.ru/music.mp3)  файл сохранялся с тегом альбома site.ru
#569. Nu3oN Off (11)
Moderator
2012.01.13 02:02
А какое отношение id3 имеет к названию импортируемого файла?
Добавлено спустя   2 минуты  22 секунды:
А! Понял! Тебе надо в тегах (метаданных) записать имя песни? если да, то вот:
Код:
span style="color: #0000BB"><?php require_once ('Mp3_Id.php'); $id3 = new MP3_Id(); $result = $id3 -> read('путь к mp3 файлу'); $id3 -> setTag('name', 'название песни'); $id3 -> write();?>
А вот класс MP3_Id http://wapinet.ru/forum/download.php?aid=986
Вложения
MP3_Id.zip 5kb [загрузок: 746]
Я буду лучше голоден, но между креслом и рулем и на дороге.
#570. Warwap
Гость
2012.01.13 04:04
Ошибка
Fatal error: Class 'PEAR' not found in /home/warwap/public_html/obmen/MP3_Id.php on line 194
#571. Gemorroj Off (107)
Administrator
2012.01.13 11:11
поставь PEAR. И еще этот класс работает только с Idv1, а не с Idv2
#572. Nu3oN Off (11)
Moderator
2012.01.13 17:05
Gemorroj ну тогда http://pear.php.net/package/MP3_IDv2
Я буду лучше голоден, но между креслом и рулем и на дороге.
#573. Gemorroj Off (107)
Administrator
2012.01.13 18:06
http://getid3.sourceforge.net/
#574. Nu3oN Off (11)
Moderator
2012.01.13 18:06
Gemorroj написал:
http://getid3.sourceforge.net/
Что-то я не догоню как там инфу вытянуть
Я буду лучше голоден, но между креслом и рулем и на дороге.
#575. Gemorroj Off (107)
Administrator
2012.01.13 18:06
я тоже, но по описанию либа всемогущая))
там экзамплы просто пиздец. как будто сам эти теги разгребаешь, безо всякой помощи.
#576. Nu3oN Off (11)
Moderator
2012.01.20 00:12
Не могу вникнуть! как вытащить скриншет из тем для мобилок?
я понял что надо его открыть, а вот откуда его брать? hmm
Там много изображений, но как понять какое нужно мне?
Я думал wallpaper.jpg но не во всех темах оно есть!
Я буду лучше голоден, но между креслом и рулем и на дороге.
#577. Nu3oN Off (11)
Moderator
2012.01.20 00:12
Кажется разобрался с одним из форматов тем!
логика такова: открываем nth файл, открываем theme_descriptor.xml узнаем что у нас в <wallpaper  ...> если изображение, то как обычно выводим изображение!
если swf то ничего не выводим smile
Добавлено спустя   3 минуты  20 секунд:
с thm та же логика! открываем thm файл, открываем Theme.xml узнаем что у нас в <Background_image> и узнаем имя файла фона
utz таже логика что и у thm, только смотрим что у нас в <preview>

а что делать с sis?
Я буду лучше голоден, но между креслом и рулем и на дороге.
#578. POFIGISST Off (6)
Участник
2012.01.20 01:01
Такой вопрос у меня,как можно сделать определение поддерживается ли сжатие страниц софтом ?
#579. Gemorroj Off (107)
Administrator
2012.01.20 12:12
Nu3oN, там вроде еще есть варианты с nth,utz,thm. а с sis, да, проблема. открыть этот формат у меня так и не вышло. готовых реализаций работы с sis я не видел, а реализовывать свое, основываясь на доках нокии побоялся)
POFIGISST, заголовки Accept-Encoding или TE.
#580. POFIGISST Off (6)
Участник
2012.01.21 00:12
Gemorroj
спс Пашsmile
#581. TLENS Off (14)
Moderator
2012.01.22 02:02
Не срабатывает сборщик мусора в сессиях.
в php.ini все настроено для чистки:
шанс запуска 1 к 10 и время 24 минуты.
session.gc_probability = 1
session.gc_divisor = 10
session.gc_maxlifetime = 1440
И права все выставленные правильно, владелец www-data
Но все же забивает сотни тысяч файлов и сайты выходят из строя
Прблема решена. Забыл об apachectl restart
Отредактировано TLENS (2012.01.22 23:11)
#582. POFIGISST Off (6)
Участник
2012.01.22 16:04
а можно как нить сделать,чтоб ссылка не показывалась на определенной странице? у меня идет файл foot и там ссыль на главную,и на всех страницах эта ссыль показывается, и на главной в том числе,и вот хочу как нибудь сделать,чтоб эта ссылка показывалась на всех страницах,а на главной она не выводилась,это мне для главной над другой файл фоот писать? или же можно как то сделать чтоб ссылка на главной не отображалась?
#583. tipsun Off (19)
Moderator
2012.01.22 16:04
POFIGISST
Код:
span style="color: #0000BB"><?php$main = 1; // на главной//на остальных ниче не надо.//а файле foot.phpif (! $main) echo '<a href="/">Главная</a>';
Отредактировано tipsun (2012.01.22 16:04)
#584. POFIGISST Off (6)
Участник
2012.01.22 21:09
tipsun
Спасибо,работает,даже обидно,что сам не додумалсяsad
#585. POFIGISST Off (6)
Участник
2012.01.25 00:12
Реклама от бегуна мне покоя не дает уже неделю дет, накатал простой грабб поиска музыки с o5wap.ru все вырезал (счетчики,рекламные ссылки,копирайт и т.д.) а рекламу от бегуна не могу ни как вырезать,помогите с вырезкой этой рекламы,или её вырезать нельзя? вот мое г творение  http://xporno.in/ppoissk/   ( там сразу под кнопкой "Найти" реклама,и  ссылка там на пол страницы если посмотреть исходный код,подскажите как её вырезать((
Отредактировано POFIGISST (2012.01.25 00:12)
#586. Gemorroj Off (107)
Administrator
2012.01.25 00:12
Код:
$file = file_get_contents('http://xporno.in/ppoissk/');
$file = preg_replace('/<div id="begun_block.+[^<\/div>]/', '', $file);
echo $file;
#587. POFIGISST Off (6)
Участник
2012.01.25 01:01
Gemorroj
Ты как волшебник Паш,всегда все знаешь,спасибо огромноеsmile
#588. POFIGISST Off (6)
Участник
2012.01.25 23:11
Gemorroj написал:
почему $ip_adr = $_SERVER['HTTP_X_FORWARDED_FOR']; ? nginx?
Эт чтоб юзеры которые сидят с оперы  из России и Украины тоже видели ссыль,идет реальный ип юзера и ип прокси smile
#589. warwap
Гость
2012.01.26 00:12
привет. вопрос как сделать чтоб название файла менялось? вот код
<?php
$font='Turtles.ttf';
$line=''.$_SERVER['HTTP_HOST'].'';
$head='image/jpeg';
if (isset($_GET['file']) and preg_match('/^[A-z0-9_\.\/\-]+$/',$_GET['file'])) {
$url='http://wapos.ru/im/base/'.$_GET['file'];
$get=get_headers($url,1);
if ($get[0]!='HTTP/1.1 200 OK') {header ('location:index.php'); exit;}
if ($get['Content-Type']==$head)
{$new_image=@file_get_contents($url);
$new_image=imagecreatefromstring($new_image);
$f=imagecolorallocate($new_image,200,200,200);
imagettftext($new_image,15,0,14,14,$f,$font,$line);
header('Content-Type: image/jpeg');
imagejpeg($new_image);
imagedestroy($new_image);}else{header ('location:'.$url);}
}else{header ('location:index.php');}
?>
#590. Gemorroj Off (107)
Administrator
2012.01.26 00:12
O_o
#591. warwap
Гость
2012.01.26 00:12
?
#592. tipsun Off (19)
Moderator
2012.02.05 13:01
Если, допустим, с файла index.php отправить на свой же сайт заголовки (с данными/GET|POST), то файл, который принимает эти заголовки, будет выполнять работу, при отсутствии браузера?
Отредактировано tipsun (2012.02.05 13:01)
#593. Nu3oN Off (11)
Moderator
2012.02.05 14:02
Откуда берется еще один тик?
Код:
span style="color: #0000BB"><?php$a = 0;function getLimitParse($b) { global $a; print $a++ . ' -> next <br />';}print 'start <br />';register_tick_function ('getLimitParse'); declare (ticks=1){ 1;}print 'end';?>
Результат выполнения
start
0 -> next
1 -> next
end
Я буду лучше голоден, но между креслом и рулем и на дороге.
#594. Gemorroj Off (107)
Administrator
2012.02.06 12:12
Код:
span style="color: #0000BB"><?phpfunction getLimitParse() { static $a = 0; print $a++ . ' -> next' . "\n";}register_tick_function ('getLimitParse');print 'start' . "\n";declare(ticks=1) { '1 tick'; '2 tick';}print 'end';
я не работал с тиками, но так погоняв код, склоняюсь к мысли, что один тик (нулевой в данном случае) происходит всегда. мб само объявление declare считается тоже.
#595. POFIGISST Off (6)
Участник
2012.02.12 21:09
а если такой $posts=rand(1,200); ранд задаеться,это же число будет колебаться от 1 до 200 ?))
#596. Gemorroj Off (107)
Administrator
2012.02.12 21:09
лучше mt_rand
#597. POFIGISST Off (6)
Участник
2012.02.13 20:08
это тогда вот так будет $posts=mt_rand(1,200) , увеличивает скорость генерации чисел по сравнению с   rand smile Спс smile
#598. tipsun Off (19)
Moderator
2012.02.13 23:11
session_regenerate_id() - регенерирует id
А при этом сохраняется срок/домен/итд самой куки?
Если указать true - то она удаляет старый файл или создает новый и сохраняет инфу старого файла?
Отредактировано tipsun (2012.02.13 23:11)
#599. tipsun Off (19)
Moderator
2012.02.14 00:12
tipsun написал:
session_regenerate_id() - регенерирует id
А при этом сохраняется срок/домен/итд самой куки?
Если указать true - то она удаляет старый файл или создает новый и сохраняет инфу старого файла?
Она удаляет старый файл И сохраняет инфу старого файла/копирует.
Но не копирует инфу со старой куки: срок/домен/итд... Если явно не указано тобой/мной через session_set_cookie_params()
Отредактировано tipsun (2012.02.14 00:12)
#600. tipsun Off (19)
Moderator
2012.02.16 17:05
Как представить секунды в виде даты?
Так можно? Или легче есть?
Код:
span style="color: #0000BB"><?php//Для юзера обычно запускается.session_start();//Обычно для счетчика онЛайн бывает уже задан.$offTimeLimit = 240; //seconds = 4 minutes//$_SESSION = array();///*$_SESSION['lastActivity'] -= $_SERVER['REQUEST_TIME'];if ($offTimeLimit > -$_SESSION['lastActivity']) { $_SESSION['onLineTime'] -= $_SESSION['lastActivity'];} $_SESSION['lastActivity'] = $_SERVER['REQUEST_TIME'];//*/function secToDate($value){ $array = getDate($value); $array['mday'] -= 1; $array['mon'] -= 1; $array['year'] -= 1970; return sprintf('%01d/%01d/%01d %02d:%02d:%02d', $array['mday'], $array['mon'], $array['year'], $array['hours'], $array['minutes'], $array['seconds']);}echo '<pre>';echo secToDate($_SESSION['onLineTime']);echo '</pre>';
Отредактировано tipsun (2012.02.16 17:05)
#601. POFIGISST Off (6)
Участник
2012.02.17 18:06
Такой вопрос по бд возник,если делать функцию как в вк 'мне нравится' то как там ид того кому понравилось в базу заносится? Неможет же в бд для каждого кому понравилось создаватся новое поле) а если ид всех заносить в одно поле,то скрипт не разделит то число что в базе на иды тех кому понравилось,так как же в базу ИДы заносятся?
Отредактировано POFIGISST (2012.02.17 18:06)
#602. tipsun Off (19)
Moderator
2012.02.17 19:07
Учесть повторы.
"Объект любви" должен быть.
Код:
| table_id | object_address | browser | ip | referer |
Наверно такая таблица нужна.
Отредактировано tipsun (2012.02.17 19:07)
#603. POFIGISST Off (6)
Участник
2012.02.18 04:04
Ну учесть повторы можно через ид,если юзер кликает,то его ид идет,ну и потом делать проверки из базы,если в ней есть уже ид юзера,ну тоесть он уже кликал,то повторно незасчитывать клик)я прост х.з как в базу ИДы тех кто клинул заносить чтоб потом можно было посмотреть кто кликал,ведь юзеров может быть и 1000,вот как эту 1000 ИДов заносить в базу,а потом выводить их по отдельности я х.з.(
#604. tipsun Off (19)
Moderator
2012.02.18 10:10
Я думал для всех, даже для гостей будет система работать.
Тогда наверно так:
Код:
| table_id | object_address/id | user_id |
Отредактировано tipsun (2012.02.18 10:10)
#605. POFIGISST Off (6)
Участник
2012.02.18 14:02
tipsun спасиб,дома буду еще код блогов посмотрю,там такая функция есть,посмотрю как там это сделано:-)
#606. ByVlad Off (1)
Участник
2012.02.18 15:03
как вы все знаете в mysqli нету метода result.
как его можно прикрутить так, что бы он работал не как функция $mysqli -> result($mysqli -> query())
а как $mysqli -> query("SOME QUERY") -> result();
буду благодарен за помощь.
#607. Gemorroj Off (107)
Administrator
2012.02.18 23:11
ByVlad, использовать mysqli не как нативный класс, а наследовать его своим классом и воротить там все что угодно.
т.е.
MyMySqli extends mysqli
{

}
#608. POFIGISST Off (6)
Участник
2012.02.21 08:08
какой функцией заменяют в граббах реальный адрес на адрес домена где стоит грабб,чтоб скрыть реальный адрес?smile
#609. Gemorroj Off (107)
Administrator
2012.02.21 11:11
трах тибидох
#610. POFIGISST Off (6)
Участник
2012.02.21 12:12
пи*датая функцияbig_smile
#611. tipsun Off (19)
Moderator
2012.02.21 22:10
Gemorroj
big_smile
POFIGISST
» str_replace()
» preg_replace()
» substr_replace()
Отредактировано tipsun (2012.02.21 22:10)
#612. POFIGISST Off (6)
Участник
2012.02.22 11:11
Блее,почему может кнопка не работать? код вродь весь правильно написал,а кнопка не кликабельна(( и х.з почему((

вот такой код идет у мя

Код:
span style="color: #0000BB"><?phpinclude 'inc/head.php'; include 'inc/config.php';?><form action="/inc/insert.php" method="post" name="form"></form><p> Введите название фильма: <br/><input name="nazv" type="text" size="50" maxlength="200"></p><p> Введите описание фильма:<br/> <input name="opis" type="text" size="50" maxlength="255"></p><p> Введите код фильма:<br/> <input name="kod" type="text" size="50"></p><p> Введите дату добавления:<br/> <input name="data" type="text" size="50"></p><input class="submit" type="submit" value="Добавить">
и кнопка "Добавить" не работает нихера(( какая тут ошибка у меня?

проверил обработчик,с ним все норм,добавляет инфу в базу))
Отредактировано POFIGISST (2012.02.22 11:11)
#613. tipsun Off (19)
Moderator
2012.02.22 13:01
POFIGISST, </form> - закрыл не там, где надо.
Код:
span style="color: #0000BB"><?php//HTML<form action="/inc/insert.php" method="post" name="form"> <p> Введите название фильма: <br/> <input name="nazv" type="text" size="50" maxlength="200" /></p> <p> Введите описание фильма:<br/> <input name="opis" type="text" size="50" maxlength="255" /></p> <p> Введите код фильма:<br/> <input name="kod" type="text" size="50" /></p> <p> Введите дату добавления:<br/> <input name="data" type="text" size="50" /></p> <input class="submit" type="submit" value="Добавить" /></form>
Отредактировано tipsun (2012.02.22 13:01)
#614. POFIGISST Off (6)
Участник
2012.02.22 15:03
tipsun
спасибо,чет я ступил(( теперь нормик работает)))
#615. Siddhesh
Гость
2012.02.27 00:12
Hey friends, i want know how to make 'download counter" for AutoIndex Script(its means how many times files has been download). Please use english because i don't know russian language .i m using google translator using reading this forum
#616. Gemorroj Off (107)
Administrator
2012.02.27 11:11
http://wapinet.ru/script/show.php?d=%2F … %2Fout.zip
#617. POFIGISST Off (6)
Участник
2012.02.27 16:04
пишу запрос в базу,который будет в файле запускаться по крону, но он не работает(( вот сам запрос mysql_query("update `users` where day = '".date("d")."' and month = '".date("m")."' set `posts`=`posts`+'200'"); то есть над обновить поле posts в таблице users где инфа в поле  day совпадает с сегодняшним днем и так же где инфа из поля month совпадает с текущим месяцем и если условия совпадают то в поле posts добавить 200 ( но дет я накосячил,и запрос нихера не работает(
Отредактировано POFIGISST (2012.02.27 19:07)
#618. Gemorroj Off (107)
Administrator
2012.02.27 18:06
сначала set, а потом where
#619. POFIGISST Off (6)
Участник
2012.02.27 19:07
Gemorroj
Спс smile тогда вот так запрос идет mysql_query("update `users` set `posts`=`posts`+'200' where day = '".date("d")."' and month = '".date("m")."'"); теперь работает все smile
#620. Nu3oN Off (11)
Moderator
2012.03.03 18:06
Как облегчить учесть такого запроса?
Код:
span style="color: #0000BB"><?php DB :: $dbh -> query("UPDATE ".RotorPrivat :: TABLE_LIST." l, ".RotorPrivat :: TABLE_PRIVAT." p, ".RotorPrivat :: TABLE_PRIVAT." o, `users` u SET l.`list_new` = '0', p.`privat_read` = '1', o.`privat_read` = '1', u.`users_newprivat` = u.`users_newprivat` - ".$getCorresp['list_new']." WHERE l.`list_id` = ? AND u.`users_login` = ? AND p.`privat_user` = ? AND p.`privat_author` = ? AND o.`privat_user` = ? AND o.`privat_author` = ?;", array($getCorresp['list_id'], self :: $_userLogin, self :: $_userLogin, $user, $user, self :: $_userLogin) );?>
Когда записей больше 10 000 этот запрос очень тяжко переживает этот процесс...
Я буду лучше голоден, но между креслом и рулем и на дороге.
#621. Gemorroj Off (107)
Administrator
2012.03.03 20:08
какие индексы на таблицах стоят?
я не вижу связи таблицы TABLE_LIST и TABLE_PRIVAT
#622. Nu3oN Off (11)
Moderator
2012.03.03 20:08
Индексы стоят везде где выборка происходит!
P/s проблема решена! просто разделил все на отдельные запросы и все стало работать на порядок быстрее
Я буду лучше голоден, но между креслом и рулем и на дороге.
#623. Gemorroj Off (107)
Administrator
2012.03.03 21:09
у тебя не связаны эти 2 таблицы. почти уверен что проблема в этом.
#624. POFIGISST Off (6)
Участник
2012.03.09 02:02
бля,написал код для очистки файлов по запуску крона,но не хочет работать(( крон выставляю 100% правильно,так как у меня там еще 2 задания стоят которые норм работают,файл тоже 100% рабочий,если вручную запускать,то срабатывает)) а по крону не хочет(( может проблема в коде,вот сам код)

Код:
span style="color: #0000BB"><?php$dir='sxv/files';$dh = opendir($dir);while(($file=readdir($dh))!==false){if($file!='.' && $file!='..'){unlink($dir.'/'.$file);echo 'файл "'.$file.'" удален нах<br/>';}}closedir($dh);?>
#625. Gemorroj Off (107)
Administrator
2012.03.09 13:01
делай логирование ошибок. т.е.
Код:
span style="color: #0000BB"><?php$dir = 'sxv/files';$dh = opendir($dir);if (!$dh) { exit('Невозможно открыть директорию "' . $dir . '"');}while (($file = readdir($dh)) !== false) { if ($file != '.' && $file != '..') { if (unlink($dir . '/' . $file)) { echo 'файл "' . $file . '" удален' . PHP_EOL; } else { echo 'ошибка при удалении файла "' . $file . '"' . PHP_EOL; } }}closedir($dh);
+ там нужна проверка на то, что это файл или директория, как минимум.
#626. tipsun Off (19)
Moderator
2012.03.11 20:08
Еще лучше сделать возможно?
И вообще стоит http_build_query() использовать?
Вроде как тот запрос, что содержится в url никуда не исчезает
+ должно действовать по принципу: <a href="/">/</a>

Код:
span style="color: #0000BB"><?phpfunction redirect ($url='', $params=''){ $redirect = $_SERVER['HTTP_HOST']; if ($url and '/' == $url{0}) { $redirect .= DIRECTORY_SEPARATOR . subStr($url, 1); } else { $redirect .= dirName($_SERVER['PHP_SELF']) . DIRECTORY_SEPARATOR . $url; } if (is_array($params) and array() <> $params) { $redirect .= (strPos($url, '?') ? '&' : '?') . http_build_query($params, null, '&'); } //Windows "\" and "/+" $redirect = preg_replace('#[\\\\/]+#', '/', $redirect); header('Location: http://' . rawUrlDecode($redirect)); exit();}//Для опытов >:Dredirect('/world//\/some', array('user' => array('name' => 'Bob Smith', 'age' => 47, 'sex' => 'M', 'dob' => '5/12/1956'), 'pastimes' => array('golf', 'opera', 'poker', 'rap'), 'children' => array('bobby' => array('age' => 12, 'sex' => 'M'), 'sally' => array('age' => 8, 'sex' => 'F')), 'CEO') );
Отредактировано tipsun (2012.03.11 20:08)
#627. Gemorroj Off (107)
Administrator
2012.03.11 21:09
http_build_query заменяет в ключах точки и пробелы на подчеркивания - это проблемка.
#628. tipsun Off (19)
Moderator
2012.03.12 22:10
Полный адрес в Location, так полный.
А можно ли чтоб он содержал "../"?
http://site.ru/1/2/3/4/../../dr.php
#629. TLENS Off (14)
Moderator
2012.03.13 02:02
Ну попробуй
#630. wapwer
Гость
2012.03.13 19:07
привет, я сделал новости на сайт но почемуто буква "Ш" шифруется в "�?" почему так? как исправить?
#631. Gemorroj Off (107)
Administrator
2012.03.13 20:08
делать все в кодировке utf-8
#632. wapwer
Гость
2012.03.13 20:08
что сдесь не так?
if ($_REQUEST['ok']) {
if ($_POST['title'] and $_POST['text']) {
$title = check($_POST['title']);
$text = check($_POST['text']);
$closed = abs(intval($_POST['closed']));
mysql_query("INSERT INTO `news` SET `title` = '$title', `text` = '$text', `time` = '".time()."', `closed` = '$closed', `mas` = '$id'");
echo "<div

class=\"title\"><center>Добавить новость</center></div>";
echo 'Новость успешно добавлена!<br/>';
echo '<a href="?mod=news&act=manage">К новостям</a><br />';
} else {
error('Вы не заполнили важные поля.');
nav('?mod=news&act=add');
}
} else {
echo "<div

class=\"title\"><center>Добавить новость</center></div>";
echo '<form action="?mod=news&act=add&amp;ok=1" method="post">
Название(max100):<br /><input name="title" type="text" maxlength="100" /><br />
Текст:<br /><textarea cols="35" rows="7" name="text" cols="" rows="5"></textarea><br />
<input name="closed" type="checkbox" value="1" /> закрыть комментирование<br />
<input name="submit" type="submit" value="Добавить" />
</form>';
echo '<a href="?mod=news&act=bbcode">Теги (bb-code)</a><br />';
echo '<a href="?mod=news&act=manage">К новостям</a><br />';
}
break;
#633. Gemorroj Off (107)
Administrator
2012.03.13 23:11
тут все не так, но проблема не тут.
посмотри в какой у тебя кодировке бд и после соединения с бд указывай кодировку utf8
#634. tipsun Off (19)
Moderator
2012.03.14 01:01
Вот. Исправился.
Теперь норм?
Код:
span style="color: #0000BB"><?phpfunction redirect ($value=''){ $url = ''; $ds = '/'; if (0 === $value or $value) { if ($ds == $value{0}) { $url = subStr($value, 1); } else { $url = dirName($_SERVER['PHP_SELF']) . $ds . $value; } $old = preg_split('#\/+#', $url); $new = array(); $key = 0; foreach ($old as $value) { if ('..' == $value) { $key -= (0 < $key) ? 1 : 0; unSet($new[$key]); continue; } if ('' <> $value) { $new[$key] = $value; $key += 1; } } if (array() <> $new) { $url = rawUrlDecode(implode($ds, $new)); } else { $url = ''; } } //header('Location: http://' . $_SERVER['HTTP_HOST'] . $ds . $url, true, 301); //exit(); exit('Location: http://' . $_SERVER['HTTP_HOST'] . $ds . $url);}
Отредактировано tipsun (2012.03.14 01:01)
#635. Gemorroj Off (107)
Administrator
2012.03.14 13:01
хз) проверь на практике)
#636. tipsun Off (19)
Moderator
2012.03.14 15:03
Тестировал, ошибок не заметил.
Оптимизация подсказывает, так лучше будет.

Код:
span style="color: #0000BB"><?php// foreach if ('..' == $value) { if (0 < $key) { $key -= 1; unSet($new[$key]); //or //unSet($new[--$key]); } continue; } if ('' <> $value) { $new[$key] = $value; $key += 1; //or //$new[$key++] = $value; }
+
+
Еще можно перед разбивкой попробовать проверить strPos($url, '../')
+
Код:
span style="color: #0000BB"><?phpfunction redirect ($value=''){ $url = ''; $ds = '/'; if (0 === $value or $value) { if ($ds == $value{0}) { $url = subStr($value, 1); } else { $url = dirName($_SERVER['PHP_SELF']) . $ds . $value; } $url = trim($url, $ds); if (false !== strPos($url . $ds, '../')) { $old = preg_split('#\/+#', $url); $new = array(); $key = 0; foreach ($old as $value) { if ('..' == $value) { if (0 < $key) { $key -= 1; unSet($new[$key]); //or //unSet($new[--$key]); } continue; } if ('' <> $value) { $new[$key] = $value; $key += 1; //or //$new[$key++] = $value; } } if (array() <> $new) { $url = implode($ds, $new); } else { $url = ''; } } $url = ($url) ? rawUrlDecode($url) : ''; } //header('Location: http://' . $_SERVER['HTTP_HOST'] . $ds . $url, true, 301); //exit(); exit('Location: http://' . $_SERVER['HTTP_HOST'] . $ds . $url);}
Отредактировано tipsun (2012.03.14 16:04)
#637. tipsun Off (19)
Moderator
2012.03.15 15:03
Это все конечно хорошо. Но по идее можно было делать так:
При указании (/url) с корня вообще не проверять на "../", "/..", а просто сносить.
При указании (url/) относительного пути рассматривать с начала строки столько "upDir" сколько есть на самом деле.
Тем более в PHP_SELF в нормальном виде. Первую не считать... Остальные "../", "/.." сносить.
- - - -
Или вообще фигней не страдать, у Akdmeh'а спросил, он ответил ничего страшного в том, что "../" будут в полном адресе перенаправления.
Да и при шаблонах можно вызвать другой шаблон, чтоб пользователь сам "push the button".
Отредактировано tipsun (2012.03.15 15:03)
#638. ВАДИМ
Гость
2012.03.16 13:01
Столкнулся с такой проблеммой.

В магазине реализовал создание категорий и подкатегорий с неограниченым уровнем вложенности.

конечная категория содержит товар,который находится в другой таблице.

Собственно сам вопрос.

Подскажите или напишите алгоритм или код как можно например с первой категории узнать количество товаров в подкатегориях.
#639. Gemorroj Off (107)
Administrator
2012.03.16 13:01
Я бы советовал разбить на 2 действия.
1 - вытаскиваешь все id детей нужной категории. (даже просто в php цикле несколько запросов)
2 - вытаскиваешь товары у которых категория IN (результат 1 запроса). ну в твоем случае просто COUNT(1)
Объединять в 1 запрос будет накладнее.
вот еще ссылка по теме http://habrahabr.ru/post/47280/
#640. ВАДИМ
Гость
2012.03.16 14:02
Дело в том что это тестовый вариант,поэтому если не трудното желательно готовое решение.
Я так понял тут нужен цикл,а вот как реализовать все это не могу понять.
Циклом я смог добится чтоб шел подсчет но проблемма в том что цикл заходит только в первые категории и подкатегории,то есть если в категории тест есть подкатегории тест1 тест2 тест3 тест4 то цакл входит в тест потом в тест1 и все,а остальные не проходит и не считает там товар.
#641. Gemorroj Off (107)
Administrator
2012.03.16 14:02
ВАДИМ, покажи свой код. либо скажи какой драйвер для работы с бд используется? mysql, mysqli, pdo?
#642. ВАДИМ
Гость
2012.03.16 17:05
Драйвер mysql
Вот код вывода категорий и подкатегорий
Код:
if ($id)
{
$tip = mysql_query("SELECT * FROM `chop` WHERE `id`= '" . $id .
"' LIMIT 1");
$type = mysql_fetch_assoc($tip);
$tips = $type['type'];
switch ($tips)
{
 
case 'r':
echo '<div class="phdr">';
echo '<b>Магазин | ' . $type['name'] . '</b></div>';
 
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `chop` WHERE `refid`='" .
$id . "'"), 0);
if ($count)
{
$req = mysql_query("SELECT * FROM `chop` WHERE `refid`='$id'");
 
while ($res = mysql_fetch_array($req))
{
 
//подкаталоги
$t = mysql_fetch_assoc(mysql_query("SELECT * FROM `chop` WHERE `id`= '" .
$res['id'] . "' LIMIT 1"));
$ts = $t['type'];
if ($ts == 'k')
{
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `refid`='" .
$t['id'] . "'"), 0);
}
else
{
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `chop` WHERE `refid`='" .
$res['id'] . "'"), 0);
}
 
echo '<a class="menu" href="index.php?id=' . $res['id'] .
'"><img src="/images/dir.png" alt="*"/> ' . checkout($res['name'],
1, 1) . ' [' . $count . '/' . $cuntsss . ']</a>';
 
if ($rights >= 7)
echo '<a class="delete" href="submit.php?id=' . $res['id'] .
'">X</a>';
if (!empty($res['opis']))
{
$text = $res['opis'];
$text = mb_substr($text, 0, 100);
$text = checkout($text, 1, 1);
}
 
++$i;
}
}
else
{
echo '<div class="list">Каталог пуст</div>';
}
 
if ($rights >= 7)
{
echo '<div class="gr">Создаем каталог</div>';
echo '<form action="submit.php?id=' . $id .
'" method="post"><div class="list">';
echo '<b>Название:</b><br/><input type="text" name="name" maxlength="40" value="" /><br />';
echo '<b>Описание:<small>max 150</small></b><br/><input type="text" name="opis" /><br/>';
echo '<input type="checkbox" name="type" value="k" /> Для файлов<br/>';
echo '<input type="submit" name="chop_kat" value="Создать"/></div></form>';
}
echo '<a class="menu" href="?id=' . $type['refid'] . '">Назад</a>';
break;
 
case 'k':
echo '<div class="phdr">';
echo '<b>Магазин | ' . $type['name'] . '</b></div>';
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `refid`='" .
$id . "'"), 0);
if ($count)
{
$req = mysql_query("SELECT * FROM `tovar` WHERE `refid`='$id'");
 
while ($res = mysql_fetch_array($req))
{
 
//тут выводы товаров
 
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `refid`='" .
$id . "'"), 0);
echo '<a class="menu" href="tovar.php?id=' . $res['id'] . '">' .
checkout($res['name'], 1, 1) . '</a> ';
if ($rights >= 7)
echo '<a class="delete" href="submit.php?id=' . $res['id'] .
'">X</a>';
if (!empty($res['opis']))
{
$text = $res['opis'];
$text = mb_substr($text, 0, 100);
$text = checkout($text, 1, 1);
}
 
++$i;
}
 
}
else
{
echo '<div class="gr">Товар еще не добавлен</div>';
}
if ($user_id && !$ban['1'] && !$ban['11'])
{
echo '<div class="list"><form action="add.php?&amp;id=' . $id .
'" method="post"><input type="submit" value="Добавить товар" /></form></div>';
}
echo '<div class="list"><a href="?id=' . $type['refid'] .
'"><font color="red">Назад</font></a></div>';
break;
 
default:
 
echo '<div class="list"><b>Ошибка!</b><br />Товар удален или же не существует!</p></div>';
break;
}
 
}
else
{
// Список разделов магазина
 
echo '<div class="gr">';
echo '<b>Магазин</b></div>';
 
$req = mysql_query("SELECT * FROM `chop` WHERE `type`='r' and `refid`='0' ORDER BY `real`");
 
while ($res = mysql_fetch_array($req))
{
 
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `chop` WHERE `refid`='" .
$res['id'] . "'"), 0);
echo '<a class="menu" href="index.php?id=' . $res['id'] .
'"><img src="/images/dir.png" alt="*"/> ' . $res['name'] . ' [' .
$count . '/' . $c . ']</a>';
if ($rights >= 7)
echo '<a class="delete" href="submit.php?id=' . $res['id'] .
'">X</a>';
if (!empty($res['opis']))
{
$text = $res['opis'];
$text = mb_substr($text, 0, 100);
$text = checkout($text, 1, 1);
 
}
 
++$i;
}
 
if ($rights >= 7)
{
echo '<div class="gr">Создание раздела магазина</div>';
echo '<form action="submit.php" method="post"><div class="list">';
echo '<b>Имя раздела:</b><br/><input type="text" name="name" maxlength="40" value="" /><br />';
echo '<b>Описание:<small>max 150</small></b><br/><input type="text" name="opis" /><br/>';
echo '<input type="submit" name="chop_raz" value="Создать"/></div></form>';
}
}
#643. Gemorroj Off (107)
Administrator
2012.03.16 18:06
многабукав)
Код:
span style="color: #0000BB"><?php$id = 1; //ID родительской категорииfunction getCategories (array $ids){ $out = array(); $q = mysql_query('SELECT id FROM categories WHERE parent_id IN(' . implode(',', array_map('intval', $ids)) . ')'); while ($row = mysql_fetch_assoc($q)) { $out[] = $row['id']; } return $out;}$out = array();while ($id = getCategories((array)$id)) { $out = array_merge($out, $id);}$offers = array();$q = mysql_query('SELECT * FROM offers WHERE category IN (' . implode(',', $out) . ')');while ($row = mysql_fetch_assoc($q)) { $offers[] = $row;}
я не проверял, но вроде должно работать.
Отредактировано Gemorroj (2012.03.17 00:12)
#644. ВАДИМ
Гость
2012.03.16 20:08
Спасибо,но код не работает почему то.
#645. Gemorroj Off (107)
Administrator
2012.03.16 21:09
что именно не работает?)
#646. ВАДИМ
Гость
2012.03.16 21:09
Ничего не выводит,решил проверить что в массивах вывел их функцией prinr_r там пусто
#647. Gemorroj Off (107)
Administrator
2012.03.16 22:10
эм,напиши вверху скрипта:
error_reporting(-1);
ini_set('display_errors', '1');
и напиши сюда какие ошибки пишет.
#648. ВАДИМ
Гость
2012.03.16 23:11
Ошибки вот

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /var/www/freeze/data/www/wapseller.ru/schop/index.php on line 23

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /var/www/freeze/data/www/wapseller.ru/schop/index.php on line 179
Array
(
)


Код в 23 строке,это код из функции
Код:
while ($row = mysql_fetch_assoc($q))
Функция записанна так
Код:
function getCategories(array $id)
{
$out = array();
$q = mysql_query('SELECT (*) FROM `chop` WHERE `refid` IN(' .
implode(',', array_map('intval', $id)) . ')');
while ($row = mysql_fetch_assoc($q))
{
$out[] = $row['id'];
}
return $out;
}
Код в 179 строке
Код:
while ($row = mysql_fetch_assoc($q))
Записанно так
   
Код:
$offers = array();
$q = mysql_query('SELECT (*) FROM `tovar` WHERE `refid` IN (' .
implode(',', $out) . ')');
$i = 0;
while ($row = mysql_fetch_assoc($q))
{
$offers[] = $row;
}
#649. Gemorroj Off (107)
Administrator
2012.03.17 00:12
ВАДИМ написал:
SELECT (*)
SELECT *

Вообще, в первом селекте лучше только id бери, а не все. Т.к. избыточная информация повышает нагрузку на канал между mysql и php. Это, конечно, мелочи, но как о хорошей практике это надо знать и желательно применять.
#650. ВАДИМ
Гость
2012.03.17 00:12
В общем методом проб и ошибок сократил до одной ошибки

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /var/www/freeze/data/www/wapseller.ru/schop/index.php on line 180


Сделал такой трюк дабы узнать что за ошибка
Код:
print mysql_error();
И мне вывело что

Unknown column 'Array' in 'where clause'Array
(
)

Собственно сам код в 180 строке
Код:
while ($row = mysql_fetch_assoc($qaa))
А вот блок используемого кода
Код:
$qaa = mysql_query('SELECT * FROM `tovar` WHERE `refid` in ( '.$out.')');
$i = 0;
while ($row = mysql_fetch_assoc($qaa))
{
$offers[] = $row;
}
#651. Gemorroj Off (107)
Administrator
2012.03.17 00:12
implode(',', $out)
#652. ВАДИМ
Гость
2012.03.17 00:12
Таким образом
Notice: Array to string conversion in /var/www/freeze/data/www/wapseller.ru/schop/index.php on line 178

Notice: Array to string conversion in /var/www/freeze/data/www/wapseller.ru/schop/index.php on line 178

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /var/www/freeze/data/www/wapseller.ru/schop/index.php on line 180

Unknown column 'Array' in 'where clause'Array
(
)


Ошибка в строке 178,вот сама строка
Код:
$qaa = mysql_query('SELECT * FROM `tovar` WHERE `refid` in (' . implode(',', $out) . ')');
Ошибка в 180,вот строка
Код:
while ($row = mysql_fetch_assoc($qaa))
Ну и сам блок естественно
Код:
$qaa = mysql_query('SELECT * FROM `tovar` WHERE `refid` in (' . implode(',', $out) . ')');
$i = 0;
while ($row = mysql_fetch_assoc($qaa))
{
$offers[] = $row;
}
#653. Gemorroj Off (107)
Administrator
2012.03.17 00:12
print_r($out); ?
#654. ВАДИМ
Гость
2012.03.17 00:12
Вот
Array
(
    [0] => Array
        (
            [0] => 15
            [1] => 16
            [2] => 17
            [3] => 37
        )

    [1] => Array
        (
            [0] => 22
            [1] => 23
            [2] => 24
            [3] => 25
            [4] => 26
            [5] => 27
            [6] => 28
            [7] => 29
            [8] => 30
            [9] => 31
            [10] => 32
            [11] => 33
            [12] => 38
            [13] => 39
            [14] => 40
            [15] => 41
        )

)


Можешь посмотреть вживую http://wapseller.ru/schop/index.php
#655. Gemorroj Off (107)
Administrator
2012.03.17 00:12
точняк!)
там где $out собираешь замени $out[] = $row; на:
$out = array_merge($out, $row);
#656. ВАДИМ
Гость
2012.03.17 00:12
О,ошибки пропали,все норма.
Теперь глупый вопрос,КАК вывести количество товаров в категорииях и покатегориях?
#657. Gemorroj Off (107)
Administrator
2012.03.17 00:12
эм, echo не?)
#658. ВАДИМ
Гость
2012.03.17 01:01
Так,в каталогах вывел функцией count()
Написал так
Код:
count($offers)
А вот в подкаталогах такая не прошла,выбило ошибку
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /var/www/freeze/data/www/wapseller.ru/schop/index.php on line 80

Вот сам код
Код:
while ($row = mysql_fetch_assoc($qw))
Ну и собственно сам блок кода
Код:
$qw = mysql_query('SELECT * FROM `tovar` WHERE `refid` in (' . implode(',', $out) . ')');
$i = 0;
while ($row = mysql_fetch_assoc($qw))
{
$offers[] = $row;
}
#659. Gemorroj Off (107)
Administrator
2012.03.17 01:01
товаров нет?
проверь mysql_num_rows
и еще, если тебе не нужны товары, а нужно только их количество, выборку лучше переписать.
#660. ВАДИМ
Гость
2012.03.17 01:01
Не,сами товары у меня выводятся в другом месте,мне нужен их подсчет в каталогах и подкаталогах.
#661. Gemorroj Off (107)
Administrator
2012.03.17 01:01
$qaa = mysql_query('SELECT COUNT(1) FROM `tovar` WHERE `refid` in (' . implode(',', $out) . ')');
$count = mysql_result($qaa);
#662. ВАДИМ
Гость
2012.03.17 01:01
Кстати,а где ты mysql_num_rows нашел? тут нету в коде ее.
#663. ВАДИМ
Гость
2012.03.17 01:01
При таком варианте выбивает
Warning: mysql_result() expects at least 2 parameters, 1 given in /var/www/freeze/data/www/wapseller.ru/schop/index.php on line 80
#664. Gemorroj Off (107)
Administrator
2012.03.17 01:01
а, второй 0 передай
#665. ВАДИМ Off (0)
Участник
2012.03.17 01:01
В общем врубил показ ошибки мускула и вот что выдало
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
#666. Gemorroj Off (107)
Administrator
2012.03.17 01:01
блин, давай весь код
#667. ВАДИМ Off (0)
Участник
2012.03.17 01:01
Gemorroj написал:
а, второй 0 передай
Блок кода
Код:
$qw = mysql_query('SELECT * FROM `tovar` WHERE `refid` in (' . implode(',', $out) . ')');
$i = 0;
while ($row = mysql_fetch_assoc($qw))
{
$offers[] = $row;
}
print mysql_error();
Добавлено спустя   1 минуту  6 секунд:
Gemorroj написал:
блин, давай весь код
Верю что достал но я сам уже весь череп расколол
Код:
error_reporting(-1);
ini_set('display_errors', '1');
function getCategories(array $id)
{
$out = array();
$q = mysql_query('SELECT id FROM `chop` WHERE `refid` IN(' .
implode(',', array_map('intval', $id)) . ')');
while ($row = mysql_fetch_assoc($q))
{
$out[] = $row['id'];
}
return $out;
}
 
if ($id)
{
$tip = mysql_query("SELECT * FROM `chop` WHERE `id`= '" . $id .
"' LIMIT 1");
$type = mysql_fetch_assoc($tip);
$tips = $type['type'];
switch ($tips)
{
 
case 'r':
echo '<div class="phdr">';
echo '<b>Магазин | ' . $type['name'] . '</b></div>';
 
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `chop` WHERE `refid`='" .
$id . "'"), 0);
if ($count)
{
$req = mysql_query("SELECT * FROM `chop` WHERE `refid`='$id'");
$i=0;
while ($res = mysql_fetch_array($req))
{
 
//подкаталоги
$t = mysql_fetch_assoc(mysql_query("SELECT * FROM `chop` WHERE `id`= '" .
$res['id'] . "' LIMIT 1"));
$ts = $t['type'];
if ($ts == 'k')
{
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `refid`='" .
$t['id'] . "'"), 0);
}
else
{
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `chop` WHERE `refid`='" .
$res['id'] . "'"), 0);
}
$id = $res['id'];
$out = array();
while ($id = getCategories((array )$id))
{
$out = array_merge($out, $id);
}
 
$offers = array();
$qw = mysql_query('SELECT * FROM `tovar` WHERE `refid` in (' . implode(',', $out) . ')');
$i = 0;
while ($row = mysql_fetch_assoc($qw))
{
$offers[] = $row;
}
print mysql_error();
echo '<a class="menu" href="index.php?id=' . $res['id'] .
'"><img src="/images/dir.png" alt="*"/> ' . checkout($res['name'],
1, 1) . ' [' . $count . '/'.count($offers).']</a>';
 
if ($rights >= 7)
echo '<a class="delete" href="submit.php?id=' . $res['id'] .
'">X</a>';
if (!empty($res['opis']))
{
$text = $res['opis'];
$text = mb_substr($text, 0, 100);
$text = checkout($text, 1, 1);
}
 
++$i;
}
}
else
{
echo '<div class="list">Каталог пуст</div>';
}
 
if ($rights >= 7)
{
echo '<div class="gr">Создаем каталог</div>';
echo '<form action="submit.php?id=' . $id .
'" method="post"><div class="list">';
echo '<b>Название:</b><br/><input type="text" name="name" maxlength="40" value="" /><br />';
echo '<b>Описание:<small>max 150</small></b><br/><input type="text" name="opis" /><br/>';
echo '<input type="checkbox" name="type" value="k" /> Для файлов<br/>';
echo '<input type="submit" name="chop_kat" value="Создать"/></div></form>';
}
echo '<a class="menu" href="?id=' . $type['refid'] . '">Назад</a>';
break;
 
case 'k':
echo '<div class="phdr">';
echo '<b>Магазин | ' . $type['name'] . '</b></div>';
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `refid`='" .
$id . "'"), 0);
if ($count)
{
$req = mysql_query("SELECT * FROM `tovar` WHERE `refid`='$id'");
$i=0;
while ($res = mysql_fetch_array($req))
{
 
//тут выводы товаров
 
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `refid`='" .
$id . "'"), 0);
echo '<a class="menu" href="tovar.php?id=' . $res['id'] . '">' .
checkout($res['name'], 1, 1) . '</a> ';
if ($rights >= 7)
echo '<a class="delete" href="submit.php?id=' . $res['id'] .
'">X</a>';
if (!empty($res['opis']))
{
$text = $res['opis'];
$text = mb_substr($text, 0, 100);
$text = checkout($text, 1, 1);
}
 
++$i;
}
 
}
else
{
echo '<div class="gr">Товар еще не добавлен</div>';
}
if ($user_id && !$ban['1'] && !$ban['11'])
{
echo '<div class="list"><form action="add.php?&amp;id=' . $id .
'" method="post"><input type="submit" value="Добавить товар" /></form></div>';
}
echo '<div class="list"><a href="?id=' . $type['refid'] .
'"><font color="red">Назад</font></a></div>';
break;
 
default:
 
echo '<div class="list"><b>Ошибка!</b><br />Товар удален или же не существует!</p></div>';
break;
}
 
}
else
{
// Список разделов магазина
 
echo '<div class="gr">';
echo '<b>Магазин</b></div>';
 
$req = mysql_query("SELECT * FROM `chop` WHERE `type`='r' and `refid`='0' ORDER BY `real`");
$i=0;
while ($res = mysql_fetch_array($req))
{
 
$id = $res['id'];
$out = array();
while ($id = getCategories((array )$id))
{
$out = array_merge($out, $id);
}
 
$offers = array();
$qaa = mysql_query('SELECT * FROM `tovar` WHERE `refid` in (' . implode(',', $out) . ')');
$i = 0;
while ($row = mysql_fetch_assoc($qaa))
{
$offers[] = $row;
}
 
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `chop` WHERE `refid`='" .
$res['id'] . "'"), 0);
echo '<a class="menu" href="index.php?id=' . $res['id'] .
'"><img src="/images/dir.png" alt="*"/> ' . $res['name'] . ' [' .
$count . '/'.count($offers).']</a>';
if ($rights >= 7)
echo '<a class="delete" href="submit.php?id=' . $res['id'] .
'">X</a>';
if (!empty($res['opis']))
{
$text = $res['opis'];
$text = mb_substr($text, 0, 100);
$text = checkout($text, 1, 1);
 
}
 
++$i;
}
 
if ($rights >= 7)
{
echo '<div class="gr">Создание раздела магазина</div>';
echo '<form action="submit.php" method="post"><div class="list">';
echo '<b>Имя раздела:</b><br/><input type="text" name="name" maxlength="40" value="" /><br />';
echo '<b>Описание:<small>max 150</small></b><br/><input type="text" name="opis" /><br/>';
echo '<input type="submit" name="chop_raz" value="Создать"/></div></form>';
}
}
#668. Gemorroj Off (107)
Administrator
2012.03.17 01:01
не, я в таком коде боюсь глаза сломать)
там много каких-то непонятных мне селектов.
ошибка mysql скорее всего из-за того что $out пустой.
#669. ВАДИМ Off (0)
Участник
2012.03.17 01:01
Gemorroj написал:
не, я в таком коде боюсь глаза сломать)
там много каких-то непонятных мне селектов.
ошибка mysql скорее всего из-за того что $out пустой.
Щас принтом попробую вывести массив
#670. ВАДИМ Off (0)
Участник
2012.03.17 02:02
Gemorroj написал:
не, я в таком коде боюсь глаза сломать)
там много каких-то непонятных мне селектов.
ошибка mysql скорее всего из-за того что $out пустой.
Все понял в чем ошибка,в самой функции,в подкаталоге который является непосредственно каталогом товаров там же нет никакого рефида,то есть функция не находила нужные ей значения,теперь все норм,поправил и все робит,завтра возьмусь за оптимизацию кода.
Спасибо тебе за помощь,реально выручил.
И еще,могу помоч с антидоссом от хакфорума.
#671. Gemorroj Off (107)
Administrator
2012.03.17 09:09
хех) ну если можешь, помоги.
#672. werwap
Гость
2012.03.24 21:09
привет,
подскажите пожалоста как в граббе добавить подставной ip и useragent
а то мой ip хоста забанили?
#673. Gemorroj Off (107)
Administrator
2012.03.24 21:09
через прокси
#674. werwap
Гость
2012.03.24 21:09
напиши пожалоста как? пример
#675. Gemorroj Off (107)
Administrator
2012.03.24 22:10
Код:
span style="color: #0000BB"><?php// создание нового ресурса cURL$ch = curl_init();// установка URL и других необходимых параметровcurl_setopt($ch, CURLOPT_URL, "http://www.example.com/");curl_setopt($ch, CURLOPT_HEADER, false);curl_setopt($ch, CURLOPT_PROXY, '192.168.1.1'); // тут устанавливаем проксю// загрузка страницы и выдача её браузеруcurl_exec($ch);// завершение сеанса и освобождение ресурсовcurl_close($ch);
но вообще, я бы не советовал этим заморачиваться, проблем с постоянно умирающими проксями не оберешься. делай новый граббер.
#676. werwap
Гость
2012.03.24 22:10
спасибо, я с грабами не очень (не умею)
#677. werwap
Гость
2012.03.25 19:07
привет, немогу поставить копирайт на картинку, в чем проблема? вот
Код:
span style="color: #0000BB"><?php$sait='site.ru';$id=$_GET['id'];if(isset($id)){header("Content-type: image/gif");$url='http://s5.7ba.ru/video/img/'.$id;$path=pathinfo($url); header('Content-Disposition: attachment; filename="'.$path.'"');$img=imagecreatefromgif($url);$red=imagecolorallocate($img,255,2,50);imagestring($img,2,2,90,$sait,$red);echo imagegif($img); }?>
Отредактировано Gemorroj (2012.03.25 20:08)
#678. Gemorroj Off (107)
Administrator
2012.03.25 20:08
pathinfo в твоем случае возвращает массив, на 7ba, на сколько я вижу, не gif, а jpeg. imagegif отправляет результат в выходной поток или пишет в файл, так что echo там не к месту.
#679. werwap
Гость
2012.03.25 20:08
что там сменить нужна?
#680. werwap
Гость
2012.03.25 20:08
нет, вот s5.7ba.ru/video/img/4964.gif
#681. Gemorroj Off (107)
Administrator
2012.03.25 20:08
Код:
span style="color: #0000BB"><?php<?php$sait = 'site.ru';if (isset($_GET['id'])) { header('Content-type: image/gif'); header('Cache-Control: public, must-revalidate, max-age=8640000'); header('Pragma: public'); $img = imagecreatefromgif('http://s5.7ba.ru/video/img/' . $_GET['id']); $red = imagecolorallocate($img, 255, 2, 50); imagestring($img, 2, 2, 90, $sait, $red); imagegif($img);}?>
#682. ByVlad Off (1)
Участник
2012.03.29 11:11
Гемор подскажи как подсвечивать текст при поиске smile
#683. ByVlad Off (1)
Участник
2012.03.29 11:11
И как можно сделать срез массива, если массив в JSON?
array_slice() не помогает
#684. Gemorroj Off (107)
Administrator
2012.03.29 12:12
ByVlad написал:
И как можно сделать срез массива, если массив в JSON?
array_slice() не помогает
ну декодируй его через json_decode и делай что хочешь.
Добавлено спустя   2 минуты  13 секунд:
ByVlad написал:
как подсвечивать текст при поиске
Код:
span style="color: #0000BB"><?php$search = 'text';$find = 'some text 1';echo str_replace($search, '<strong>' . $search . '</strong>', $find);
#685. ByVlad Off (1)
Участник
2012.03.29 13:01
Gemorroj написал:
ByVlad написал:
И как можно сделать срез массива, если массив в JSON?
array_slice() не помогает
ну декодируй его через json_decode и делай что хочешь.
Добавлено спустя   2 минуты  13 секунд:
ByVlad написал:
как подсвечивать текст при поиске
Код:
span style="color: #0000BB"><?php$search = 'text';$find = 'some text 1';echo str_replace($search, '<strong>' . $search . '</strong>', $find);
ну так декодировал) а по-поводу подсветки, а если например два слова в запросе, а в результатах есть только одно?
#686. Gemorroj Off (107)
Administrator
2012.03.29 13:01
ByVlad написал:
ну так декодировал
ну так значит это уже никакого отношения к JSON не имеет.
ByVlad написал:
два слова в запросе
Код:
span style="color: #0000BB"><?php$search = 'text wap strong';$find = 'some text 1 wap 2';$replace = array();$tag = 'strong';foreach (explode(' ', $search) as $v) { if ($v == $tag) { // если искомое слово == тэгу, которым выделяем найденное, добавляем искомое слово в начало массива $replace = array_reverse($replace, true); $replace[$v] = '<' . $tag . '>' . $v . '</' . $tag . '>'; $replace = array_reverse($replace, true); } else { $replace[$v] = '<' . $tag . '>' . $v . '</' . $tag . '>'; }}echo str_replace(array_keys($replace), array_values($replace), $find);
#687. tipsun Off (19)
Moderator
2012.04.06 16:04
Я вот думал как учитывать активных/онлайн пользователей+гостей.
Чтоб потом легко было вытащить или объединить, если где надо.
Код:
span style="color: #0000BB"><?php/*-- Создал отдельную таблицу.CREATE TABLE IF NOT EXISTS `activity` ( `active_id` bigint(20) unsigned NOT NULL DEFAULT '0', `active_ip` varchar(15) CHARACTER SET utf8 NOT NULL, `active_browser` varchar(300) CHARACTER SET utf8 NOT NULL, `active_point` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`active_ip`,`active_browser`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;*/define('WAITING_ACTIVITY', 240);// PDO$db->prepare("REPLACE `activity` " ."SET `active_id` = '" . ((int) @$_SESSION['user_id']) . "', " ."`active_ip` = ?, " ."`active_browser` = ?, " ."`active_point` = NOW() + INTERVAL '" . WAITING_ACTIVITY . "' SECOND;" )->execute(array($_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_USER_AGENT']));
Код:
span style="color: #0000BB"><?phpdefine('ACCESS', 1);require_once 'engine.php';require_once 'class.PageMan.php';$sql = 'SELECT COUNT(*) FROM `activity` WHERE `activity`.`active_point` > NOW();';$count = $db->query($sql)->fetchColumn();if ($count) { $PM = new PageMan; $PM->setCount($count); $PM->setPage($_REQUEST['page']); $limit = $PM->getTable(); $sql = 'SELECT * ' . 'FROM `activity` ' . 'LEFT JOIN `users` ON (`activity`.`active_id` = `users`.`user_id`) ' . 'WHERE `activity`.`active_point` > NOW()' . 'ORDER BY `active_point` DESC ' . 'LIMIT ' . $limit[0] . ', ' . $limit[1] . ';'; $result = $db->query($sql)->fetchAll();}else { exit('No activity');}?><?php foreach ($result as $value): ?><?php echo ($value['user_name']) ? htmlSpecialChars($value['user_name']) : 'Guest'; ?><br/><?php echo $value['active_ip']; ?><br/><?php echo htmlSpecialChars($value['active_browser']); ?><hr/><?php endforeach;?>
Отредактировано tipsun (2012.04.06 16:04)
#688. Gemorroj Off (107)
Administrator
2012.04.06 16:04
а почему браузер и юзерагент через плейсхолдеры передаешь, а id нет?
и я не понял совсем про джоин
#689. tipsun Off (19)
Moderator
2012.04.06 16:04
Я думал зачем лишний раз гонять, в принципе, чистые данные.
Добавлено спустя   3 минуты  52 секунды:
Про джоин.
Например есть сообщение с ид пользователя, чтобы на каждый пост не лезть в базу, наверно лучше джоином сразу зацепить все необходимое.
Вот с гостями уже фиг знает. Там у всех будет ведь id = 0

Так получается вроде:

Таблица с сообщениями (Ид автора)
+
Таблица с пользователями (ИД автора = Ид пользователя)
+
Таблица с активными/онлайн (ИД автора = Ид активного пользователя)

В итоге по недалекой идее:

Имя автора (или просто гость) (он/офф)
Сообщение
- - - -
Или это все просто глупость?
Отредактировано tipsun (2012.04.06 16:04)
#690. Gemorroj Off (107)
Administrator
2012.04.06 17:05
ну еще не глупость. но само по себе 1 запрос не всегда лучше, чем 2 более мелких. например, на крупных проектах таблицы могут разноситься по разным серверам и JOIN вообще использовать становится невозможным.
#691. tipsun Off (19)
Moderator
2012.04.06 18:06
Хмм. Понятно. Спс.
#692. tipsun Off (19)
Moderator
2012.04.06 23:11
Ну я злодей, хотел показывать активность гостей написавших сообщение, а потом подумал и big_smile Ахаха

Код:
span style="color: #0000BB"><?php$result = $db->query('SELECT `active_id` FROM `activity` WHERE `active_id` > 0 AND `active_point` > NOW();');$activity = $array = array();while ($array = $result->fetch()) { if ($array['active_id']) { $activity[$array['active_id']] = $array; }/* else { $key = md5($array['active_ip'] . $array['active_browser']); $activity[$key] = $array; }*/}$result = $db->query('SELECT * FROM `users`;');$users = $array = array();while ($array = $result->fetch()) { $users[$array['user_id']] = $array;}foreach ($users as $user) { echo $user['user_id']; echo ' '; echo isSet($activity[$user['user_id']]) ? 'On' : 'Off'; echo '<br/>';}
Отредактировано tipsun (2012.04.07 20:08)
#693. Akdmeh Off (9)
Участник
2012.04.07 18:06
Привет, Геморрой.
Стоит задача написать свой небольшой шаблонизатор на нейтивном php.
Вот и стоит задача импортировать с помощью функции extract в область видимости метода класса view переменные с массива.
Какие минусы этого метода, стоит ли его использовать или нет?
Компилировать шаблоны или использовать другие решения не очень-то хочется, а писать $this->array['var'] - слишком длинно.
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#694. Gemorroj Off (107)
Administrator
2012.04.07 18:06
во первых, я бы настоятельно рекомендовал не велосипедить, а найти шаблонизатор по вкусу. от банальных smarty и twig до blitz и xslt.
что до extract, то в принципе, можно все сделать достаточно безопасно, если делать аккуратно, учитывая все моменты описанные в документации.
#695. Akdmeh Off (9)
Участник
2012.04.07 18:06
Понятно.
Да я понимаю, что лучше не велосипедить, все же чтобы использовать готовое решение - хочется самому попытаться понять, как оно работает изнутри.
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#696. Akdmeh Off (9)
Участник
2012.04.07 19:07
Кстати, вспомнил об одной уязвимости.
Есть файл, внутри него код:
<?php
$addr="my_file.txt\0";
echo $addr;
if(file_exists($addr.".php")) echo 'OK!';
include $addr.".php";

Результат будет отличным - мы проинклюдим файл my_file.txt, а остальная строка проигнорится!!!
То есть, как это может сработать.
Мы хотели получить от пользователя имя файла, к примеру, lol, а затем проверить, если существует файл lol.php - инклюдим его.
Но с помощью символа конца строки \0 остаток строки игнорируется, что позволит пройти проверку и подключить другой файл с другим расширением!

Вопрос - а какие еще функции подверждены этой уязвимости?
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#697. Akdmeh Off (9)
Участник
2012.04.07 19:07
Кстати, есть объект $test, он является экземпляром класса son, а son является сыном (через extends) абстрактного класса parent.

Если сделать $test instanceof parent - запрос будет работать?
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#698. Gemorroj Off (107)
Administrator
2012.04.07 21:09
Akdmeh написал:
"my_file.txt\0"
на какой версии php проверял?
проверил сейчас на php 5.3.8 - не работает.
по-моему, это что-то из времен бородатого php 4.
Код:
span style="color: #0000BB"><?phpabstract class _parent {}class son extends _parent {}$test = new son;var_dump($test instanceof _parent); //bool(true)
#699. Akdmeh Off (9)
Участник
2012.04.07 22:10
На какой версии:
на php 5.3.1, винда.
Попытаюсь обновить, посмотреть.
Пришли код, как проверил, посмотрю.
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#700. Gemorroj Off (107)
Administrator
2012.04.08 00:12
Код:
span style="color: #0000BB"><?php$file = '../robots.txt';var_dump(include $file);var_dump(include $file . "\0txt");// если бага присутствует, то файл должен проинклудится
#701. Akdmeh Off (9)
Участник
2012.04.08 00:12
Вот в чем прикол - проинклюдилось ведь.
На днях попытаюсь обновить php до последней версии с линейки 5.3, но это довольно странно...
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#702. Gemorroj Off (107)
Administrator
2012.04.08 09:09
да ничего странного, 5.3.1 вышел 19 ноября 2009г. много всего уже поправили.
#703. Akdmeh Off (9)
Участник
2012.04.12 01:01
Ого, вот это я прогнал.
Надо обновиться до последней версии с 5.3
Кстати, стабильная ли сейчас 5.4?
Хотя особо использовать не планирую, но мало ли, просто интересно.
Добавлено спустя   5 минут  20 секунд:
Вот что еще удивило:
http://windows.php.net/download/
вот здесь версии для windows.
В опциях есть только VC9 Thread Safe или non thread safe.
Что выбрать и какая разница?
Кроме того, слева на странице написано:
If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP
Do NOT use VC9 version with apache.org binaries

Я не понял, все же выбрать VC6? Ведь тем нет VC6 для php 5.3. То что выбирать? Немного меня это запутало.
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#704. Gemorroj Off (107)
Administrator
2012.04.12 14:02
ну да, 5.4 стабильная. 5.4.1 в релиз кандидатах.
>> Немного меня это запутало. http://forum.ru-board.com/topic.cgi?for … opic=15377
апач лучше брать отсюда http://www.apachelounge.com/download/
#705. Akdmeh Off (9)
Участник
2012.04.12 19:07
Как я понял, в приватных методах и свойствах принято переменную называть, начиная с нижнего подчеркивания, то есть $_var? Или метод _userFunc?
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#706. Gemorroj Off (107)
Administrator
2012.04.12 19:07
В разных стандартах по разному. В PEAR, например, нет. А в Zend да.
Для проверки соответствия стандартов кодирования используется CodeSniffer.
Я лично предпочитаю Zend, да и используется он чаще.
#707. maksimoff
Гость
2012.04.16 13:01
Помогите переделать импорт файлов для wap-host (copy не канает!)
Код:
span style="color: #0000BB"><?php/** * @package JohnCMS * @link http://johncms.com * @copyright Copyright (C) 2008-2011 JohnCMS Community * @license LICENSE.txt (see attached file) * @version VERSION.txt (see attached file) * @author http://johncms.com/about */defined('_IN_JOHNCMS') or die('Error: restricted access');require('../incfiles/head.php');if ($rights == 4 || $rights >= 6) { $req = mysql_query("SELECT * FROM `down_files` WHERE `type` = 1 AND `id` = '$id' LIMIT 1"); $res = mysql_fetch_assoc($req); if (!mysql_num_rows($req) || !is_dir($res['dir'] . '/' . $res['name'])) { echo functions::display_error('Каталог не существует<br /><a href="index.php">К категориям</a>'); require('../incfiles/end.php'); exit; } $al_ext = $res['field'] ? explode(', ', $res['text']) : $defaultExt; if (isset($_POST['submit'])) { $load_cat = $res['dir'] . '/' . $res['name']; $error = array (); $link = isset($_POST['fail']) ? str_replace('./', '_', trim($_POST['fail'])) : null; if ($link) { if (mb_substr($link, 0, 7) !== 'http://') $error[] = 'Неправильная ссылка'; else $link = str_replace('http://', '', $link); } if ($link && !$error) { $fname = basename($link); $new_file = isset($_POST['new_file']) ? trim($_POST['new_file']) : null; $name = isset($_POST['text']) ? trim($_POST['text']) : null; $name_link = isset($_POST['name_link']) ? functions::check(mb_substr($_POST['name_link'], 0, 200)) : null; $text = isset($_POST['opis']) ? mysql_real_escape_string(trim($_POST['opis'])) : null; $ext = explode(".", $fname); if (!empty($new_file)) { $fname = strtolower($new_file . '.' . $ext[1]); $ext = explode(".", $fname); } if (empty($name)) $name = $fname; if (empty($name_link)) $error[] = 'Не заполнено поле.'; if (count($ext) != 2) $error[] = 'Неправильное имя файла! К отправке разрешены только файлы имеющие имя и одно расширение (<b>name.ext</b>)'; if (!in_array($ext[1], $al_ext)) $error[] = 'Запрещенный тип файла! К отправке разрешены только файлы, имеющие следующее расширение: ' . implode(', ', $al_ext); if (strlen($fname) > 30) $error[] = 'Длина названия файла и названия для сохранеия не должна превышать 30 символов'; if (preg_match("/[^\da-z_\-.]+/", $fname)) $error[] = 'В названии файла присутствуют недопустимые символы. Разрешены только латинские символы, цифры и некоторые знаки ( .()+_- ). Запрещены пробелы.'; } elseif (!$link) { $error[] = 'Вы не ввели ссылку.'; } if ($error) { $error[] = '<a href="index.php?act=import&id=' . $id . '">Повторить</a>'; echo functions::display_error($error); } else {if (file_exists("$load_cat/$fname")) $fname = $realtime . $fname; if (copy('http://' . $link, "$load_cat/$fname")) { echo '<div class="phdr"><b>Импорт файла</b></div>'; echo '<div class="gmenu">Файл выгружен</div>'; $fname = mysql_real_escape_string($fname); $name = mysql_real_escape_string(mb_substr($name, 0, 200)); mysql_query("INSERT INTO `down_files` SET `refid`='$id', `dir`='$load_cat', `time`='$realtime',`name`='$fname', `text` = '$name_link',`rus_name`='$name', `type` = '2',`user_id`='$user_id', `about` = '$text'"); $file_id = mysql_insert_id(); require('../incfiles/lib/class.upload.php'); $handle = new upload($_FILES['screen']); if ($handle->uploaded) { if (mkdir($screens_path . '/' . $file_id, 0777) == true) @chmod($screens_path . '/' . $file_id, 0777); $handle->file_new_name_body = $file_id; $handle->allowed = array ( 'image/jpeg', 'image/gif', 'image/png' ); $handle->file_max_size = 1024 * $set['flsz']; $handle->file_overwrite = true; if ($set_down['screen_resize']) { $handle->image_resize = true; $handle->image_x = 240; $handle->image_ratio_y = true; } $handle->process($screens_path . '/' . $file_id . '/'); if ($handle->processed) { echo '<div class="rmenu">Скриншот прикреплен</div>'; } else echo '<div class="rmenu">Скриншот не прикреплен: ' . $handle->error . '</div>'; } echo '<div class="menu"><a href="index.php?act=view&id=' . $file_id . '">К файлу</a></div>'; $dirid = $id; $sql = ''; while ($dirid != '0' && $dirid != "") { $res_down = mysql_fetch_assoc(mysql_query("SELECT `refid` FROM `down_files` WHERE `type` = 1 AND `id` = '$dirid' LIMIT 1")); if ($i) $sql .= ' OR '; $sql .= '`id` = \'' . $dirid . '\''; $dirid = $res_down['refid']; ++$i; } mysql_query("UPDATE `down_files` SET `total` = (`total`+1) WHERE $sql"); mysql_query("OPTIMIZE TABLE `down_files`"); echo '<div class="phdr"><a href="index.php?act=import&id=' . $id . '">Выгрузить еще</a> | '; echo '<a href="index.php?id=' . $id . '">Вернуться в категорию</a></div>'; } else echo '<div class="rmenu">Ошибка импорта.<br /><a href="index.php?act=import&id=' . $id . '">Повторить</a></div>'; } } else { echo '<div class="phdr"><b>Импорт файла: ' . functions::checkout($res['rus_name']) . '</b></div>'; echo '<div class="list1"><form action="index.php?act=import&id=' . $id . '" method="post" enctype="multipart/form-data"> Ссылка<span class="red">*</span>:<br /><input type="post" name="fail" value="http://"/><br /> Сохранить как (max. 30, без расширения):<br /><input type="text" name="new_file"/><br /> Скриншот:<br /><input type="file" name="screen"/><br /> Название файла (мах. 200):<br /><input type="text" name="text"/><br /> Ссылка для скачки файла (мах. 200)<span class="red">*</span>:<br /><input type="text" name="name_link" value="Скачать файл"/><br /> Описание (max. 500)<br /><textarea name="opis"></textarea>'; echo '<br /><input type="submit" name="submit" value="Импортировать"/></form>'; echo '</div><div class="phdr"><small>Max. вес: ' . $set['flsz'] . ' кб, расширения: ' . implode(', ', $al_ext) . ($set_down['screen_resize'] ? '<br />Скриншот будет автоматически преобразован в картинку, шириной не превышающую 240px (пропорции сохранятся)' : '') . '</small></div>'; echo '<p><a href="index.php?id=' . $id . '">Назад</a></p>'; }} else { header('Location: ' . $set['homeurl'] . '/?err');}?>
#708. Gemorroj Off (107)
Administrator
2012.04.16 15:03
что за полотно? где код, который не работает?
#709. tipsun Off (19)
Moderator
2012.04.17 21:09
Хочу, чтоб было просто, логично, практично и "быстро" идеально smile
Есть другие предложения?
Код:
span style="color: #0000BB"><?php/*---- Table structure for table `activity`--CREATE TABLE IF NOT EXISTS `activity` ( `active_id` bigint(20) unsigned DEFAULT NULL, `active_ip` varchar(15) NOT NULL, `active_browser` varchar(300) NOT NULL, `active_point` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`active_ip`,`active_browser`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;*/// $db = PDO Driver//+ ACTIVITY//$db->prepare("REPLACE `activity` " ."SET `active_id` = '" . ((int) @$_SESSION['user_id']) . "', " ."`active_ip` = ?, " ."`active_browser` = ?, " ."`active_point` = NOW() + INTERVAL '" . ACTIVITY_EXPIRE . "' SECOND;" )->execute(array($_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_USER_AGENT']));//- ACTIVITY//
.
.
Может лучше удалять неактивных,
Чтоб при выборке не задавать условие `active_point` > NOW()
Отредактировано tipsun (2012.04.17 21:09)
#710. tipsun Off (19)
Moderator
2012.04.17 21:09
Один хрен с этим INTERVAL что в DELETE, что в REPLACE.
Зато при выборке можно без лишних `active_point` > NOW()
Зато каждый раз выполняется запрос DELETE
Мдэ big_smile
- - - -
Что делать?
Отредактировано tipsun (2012.04.17 22:10)
#711. Gemorroj Off (107)
Administrator
2012.04.17 22:10
чего ты к какой-то херне приколебался?) нормально все)
#712. tipsun Off (19)
Moderator
2012.04.17 22:10
Я не знаю. Бзик видимо big_smile
Спс, что посмотрел. smile
Отредактировано tipsun (2012.04.17 22:10)
#713. tipsun Off (19)
Moderator
2012.04.18 19:07
Как правильно сделать?
Принимаешь данные с формы. Допустим что-то не соотв. треб. Как быть, если допустим не хочется запускать ничего лишний раз, db_connect.php как пример?

Код:
span style="color: #0000BB"><?phpif (isSet($_POST['auth']))$case = 1;else if (isSet($_POST['save']))$case = 2;else { $tpl->assign('error', 'auth'); $tpl->display('faceControl.form.tpl'); exit();}require_once 'engine.php'; // dbc, session, online
Отредактировано tipsun (2012.04.18 19:07)
#714. Gemorroj Off (107)
Administrator
2012.04.18 19:07
есть такое понятие - lazy loading. т.е. грубо говоря подгрузка нужных классов по первому требованию, а не сразу.
делается через автолоадеры.
#715. tipsun Off (19)
Moderator
2012.04.18 20:08
Ок. СПС.
#716. retsat
Гость
2012.04.19 22:10
как сделать вивод даты на форуме вот так: Сегодня в 13:15, вчера в 13:15
#717. retsat
Гость
2012.04.19 22:10
привет
#718. retsat
Гость
2012.04.20 00:12
так не работает
if($datest > (time() - 0))
{
$date = "Сегодня";
}
else
{
if($datest > (time() - 86400))
{
$date = "Bчера";
}
}
#719. Masternet
Гость
2012.04.20 04:04
привет, подскажите как сделать в грабе вапоса чтоб при скачке песни в название файла вставлялся копирайт? 
как сдесь http://xmast.ru/mp3/?user=1&mid=10887
#720. Gemorroj Off (107)
Administrator
2012.04.20 10:10
retsat, что в переменной $datest?
Masternet, по ссылке не ходил, подозреваю, что через http заголовок content-disposition
#721. retsat
Гость
2012.04.20 10:10
в $datest записано время добавления поста time()
#722. Masternet
Гость
2012.04.20 11:11
напиши пожалойста пример как ето сделать?
#723. Gemorroj Off (107)
Administrator
2012.04.20 12:12
retsat
Код:
span style="color: #0000BB"><?php/** * Время * * @param int $t timestamp * @return string */function tm($t){ if (date('Y.m.d', $t) == date('Y.m.d', $_SERVER['REQUEST_TIME'])) { return 'Сегодня ' . date('H:i', $t); } else if (date('Y.m.d', $t) == date('Y.m.d', $_SERVER['REQUEST_TIME'] - 86400)) { return 'Вчера ' . date('H:i', $t); } else { return date('Y.m.d H:i', $t); }}
Добавлено спустя   1 минуту  50 секунд:
Masternet
Код:
span style="color: #0000BB"><?phpheader('Content-Disposition: attachment; filename=newNameFile.ext');readfile('http://example.com/file.ext');
#724. POFIGISST Off (6)
Участник
2012.04.20 16:04
Блин,возникла проблема,делаю личные подарки,то есть чтоб перед тем как дарить,можно было отмечать поле "Лично" и никто не видит подарок,кроме получателя,форму добавил,в бд новое поле добавил,но вот с запросом проблема,не выполняется он( вот как я делаю

форма
Код:
echo '<input type="checkbox" name="publ" value="1"/> Личный<br/>';
переменная prriv
Код:
$prriv = ($_POST['publ']);
запрос в бд
Код:
mysql_query("INSERT INTO `present_give` SET `id_user` = '".$user['id']."', `id_give` = '$ank[id]', `time` ='".time()."', `id_p` ='$p[id]', `coment` ='$komm', `priv_pod` ='$prriv'");
но с таким кодом нифига не работает(( в чем моя ошибка?
#725. Gemorroj Off (107)
Administrator
2012.04.20 17:05
$prriv = ($_POST['publ']); замени на $prriv = isset($_POST['publ']) ? 1 : 0;
'$ank[id]' замени на '".$ank['id']."'
'$p[id]' замени на '".$p['id']."'
покажи структуру бд.
#726. POFIGISST Off (6)
Участник
2012.04.20 19:07
Gemorroj , спасибо Паш,теперь норм передается единица в бд,по умолчанию я поставил там 0 , тип поставил интежер,поставил там ограничение 2 , на кол-во чисел, хотя я думаю, что это лишнее,так как туда всеравно нифига не смогут передатьsmile
#727. Gemorroj Off (107)
Administrator
2012.04.20 20:08
тебе там тип enum в бд нужно сделать
#728. retsat
Гость
2012.04.21 01:01
Gemorroj, Большое спасибо
#729. POFIGISST Off (6)
Участник
2012.04.21 01:01
Gemorroj написал:
тебе там тип enum в бд нужно сделать
а как его делать? вот структура бд)
Вложения
структура.png 33kb {742x245} [загрузок: 899]
#730. Masternet
Гость
2012.04.21 02:02
Gemorroj. спасибо но ищо проблема есть, при скачке мр3 такая проблема:
Имя: wapos113299.htm
Тип: Chrome HTML Document
Источник: site.ru
#731. Masternet
Гость
2012.04.21 03:03
Gemorroj, сделал так:

$file = $_GET['file'];


header('Content-Type: audio/mpeg');




header('Content-Disposition: attachment; filename='.$file.'');
readfile('http://mp3.ru/'.$file.'');


а как определить вес файла? (при скачке вот что: ?Кб)
#732. Gemorroj Off (107)
Administrator
2012.04.21 10:10
на все int unsigned еще поставь.
время лучше хранить в типах БД (т.е. timestamp или datatime)
priv_pod сделать enum
подозреваю, что и индексы не расставлены...
как делать..? тыкаешь изменить и выбираешь тип данных enum
Добавлено спустя   2 минуты  12 секунд:
Masternet, отдавать заголовок content-Length
.'' - и от такого бреда нужно отвыкать
#733. POFIGISST Off (6)
Участник
2012.04.21 20:08
Gemorroj
ток с работы пришел, поставил enum('0', '1') , там где время поставил timestamp, а int unsigned ты имеешь в виду в бд поставить? в бд я такого не нашел,или ты имеешь в виду для форм поставить?
Отредактировано POFIGISST (2012.04.21 20:08)
#734. Masternet
Гость
2012.04.21 22:10
Gemorroj, почему нужно отвыкать? 
ну там нужна както вес определить, незнаю как, вот
header('Content-Length: '.(вес файла));
#735. Gemorroj Off (107)
Administrator
2012.04.21 23:11
POFIGISST, ну получше поищи. В остальном все так.
Masternet, потому что это абсолютно лишняя конкатенация.
Чтобы определить вес файла, нужно либо так же спарсить заголовок Content-Length с удаленного сервера (get_headers), либо перекачать файл к себе и получить размер через filesize.
#736. POFIGISST Off (6)
Участник
2012.04.22 00:12
Gemorroj, int unsigned - это в типах он должен быть Паш?
#737. Gemorroj Off (107)
Administrator
2012.04.22 00:12
тип - int. unsigned в phpmyadmin в свойствах типа где-то.
#738. POFIGISST Off (6)
Участник
2012.04.22 00:12
Gemorroj
нашел,unsigned в атрибутах ставится))
Отредактировано POFIGISST (2012.04.22 00:12)
#739. Masternet
Гость
2012.04.22 18:06
Gemorroj, ясно. подскажи пожалоста функцию определения формата удаленного файла ?
#740. Gemorroj Off (107)
Administrator
2012.04.22 19:07
Masternet, нет такой функции. Определять тип можно по mime (заголовок Content-Type) или по расширению, т.к. зачастую админы/разработчики мудаки и не указывают правильный mime тип. В опере с этим долго возились, кстати.
#741. Masternet
Гость
2012.04.24 20:08
Gemorroj, ясно, ищо вопрос: а можна в мр3 менять теги и сразу передавать файл пользователю, (ну чтоб файл не сохранать на хосте)
#742. POFIGISST Off (6)
Участник
2012.04.24 20:08
Masternet, можно,но я х.з как,Паша знает как это делать,а лучше при скачивании тащи файл к себе на хост,и сделай файл удаления и крон на него выставьsmile
#743. Gemorroj Off (107)
Administrator
2012.04.24 21:09
Masternet, можно, но тогда, тебе все ~5-10мб файла нужно будет держать в оперативной памяти. Лучше так не делать, а просто после редактирования файл удалять, если он не нужен.
Вообще тут нужно воспользоваться какой-нибудь готовой библиотекой, типа PEAR_IDv2.
#744. POFIGISST Off (6)
Участник
2012.04.25 10:10
Как можно сделать удаление строки из бд через определенный срок не используя крон? Например в поле в бд идет дара 29.03.2012 и нужно что через 30 дней от этой даты строка удалялась из бд,как такое можно замутить?
#745. Gemorroj Off (107)
Administrator
2012.04.25 11:11
почему не крон?
#746. POFIGISST Off (6)
Участник
2012.04.25 12:12
Gemorroj, прост мод хочу дописать и закинуть в паблик,а на г хостах крона нет,вот и хочу сделать без крона,у мя то проблем с кроном нет,думаю о людях которые на г хостах,та еще и некоторые крон выставлять не умеют(
#747. Gemorroj Off (107)
Administrator
2012.04.25 13:01
ну будет г решение)
обычно, дата, когда нужно сделать какую-то операцию записывается в БД/файл и при каждом заходе пользователя смотрится эта дата. если она меньше или равна текущей, то выполняется операция и перезаписывается новая дата со сдвигом вперед.
#748. POFIGISST Off (6)
Участник
2012.04.25 13:01
Gemorroj, нее,тогда пошел паблик и г хосты в жопу,сделаю на кроне,пусть юзают те у крон естьbig_smile
#749. POFIGISST Off (6)
Участник
2012.04.26 23:11
Пишу такой запрос в бд

$count_g1 = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `garem` WHERE `thief_id` = '".$ank['id']."'"),0);

но он не работает(( вернее выводит 0 ,где  у мя тут ошибка?
#750. Gemorroj Off (107)
Administrator
2012.04.26 23:11
ну смотри что в переменной $ank['id']
#751. POFIGISST Off (6)
Участник
2012.04.26 23:11
Gemorroj написал:
ну смотри что в переменной $ank['id']
в переменной выводится ид юзера чья страница( только что проверил эту переменную,выводит норм ид(
Добавлено спустя   4 минуты  53 секунды:
нужно узнать какое кол-во записей есть в табле garem с  с ид который в переменке $ank['id'] (
#752. Gemorroj Off (107)
Administrator
2012.04.26 23:11
echo "SELECT COUNT(`id`) FROM `garem` WHERE `thief_id` = '".$ank['id']."'";
и структуру бд давай
#753. POFIGISST Off (6)
Участник
2012.04.26 23:11
user_id - ид юзера кого я ворую,thief_id - мой ид,cost - цена кражи smile
Вложения
структура2.png 21kb {888x174} [загрузок: 833]
#754. Gemorroj Off (107)
Administrator
2012.04.27 09:09
что echo "SELECT COUNT(`id`) FROM `garem` WHERE `thief_id` = '".$ank['id']."'"; показывает?
#755. POFIGISST Off (6)
Участник
2012.04.27 21:09
Gemorroj , SELECT COUNT
(`id`) FROM `garem` WHERE
`thief_id` = '".$ank['id']."'  запрос выводит,через паро часов за комп сяду,попробую чуть по другому сделать)
#756. Gemorroj Off (107)
Administrator
2012.04.28 09:09
бляяять, мне покажи этот запрос!
#757. POFIGISST Off (6)
Участник
2012.04.28 19:07
Gemorroj написал:
бляяять, мне покажи этот запрос!
SELECT COUNT(`id`) FROM `garem` WHERE`thief_id` = '".$ank['id']."'  вот что выводит)
#758. Gemorroj Off (107)
Administrator
2012.04.28 21:09
ну значит вместо id у тебя в переменной $ank['id'] какая-то хрень.
#759. POFIGISST Off (6)
Участник
2012.04.29 22:10
Gemorroj написал:
ну значит вместо id у тебя в переменной $ank['id'] какая-то хрень.
уже разобрался с этим вопросом,там не то что я ожидал должно было выводить,там не сколько раз украден,а сколько человек ты украл должно выводить(
Добавлено спустя   4 минуты  21 секунду:
блин,такой вопрос, есть код,сказали что в нем уязвимости, проверил страницу на сайте http://find-xss.net/scanner/ ,там показало что уязвимостей нет,посмотрите пожалуйста код,дырко он или нет? вот сам код

Код:
span style="color: #0000BB"><?phpinclude_once '../sys/inc/start.php';include_once '../sys/inc/compress.php';include_once '../sys/inc/sess.php';include_once '../sys/inc/home.php';include_once '../sys/inc/settings.php';include_once '../sys/inc/db_connect.php';include_once '../sys/inc/ipua.php';include_once '../sys/inc/fnc.php';include_once '../sys/inc/user.php';if (!isset($user)) { $set['title'] = 'Ошибочка вышла гг'; include_once '../sys/inc/thead.php'; title(); err(); echo "<center>Система определила Вас как Гостя сайта, для полноценного пользования и просмотра сайта **** Вам необходимо пройти <a href='/aut.php'>Авторизацию</a> или <br/><a href='/reg.php'>Регистрацию</a><img src='/style/smiles/ops.gif' alt='' class='icon'/></center>"; include_once '../sys/inc/tfoot.php'; exit();}if (isset($user)) mysql_query("DELETE FROM `chat_who` WHERE `id_user` = '$user[id]'");mysql_query("DELETE FROM `chat_who` WHERE `time` < '" . ($time - 120) . "'");if (isset($user) && isset($_GET['id']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `besedka_rooms` WHERE `id` = '" . intval($_GET['id']) . "'"), 0) == 1 && isset($_GET['msg']) && mysql_result(mysql_query ("SELECT COUNT(*) FROM `user` WHERE `id` = '" . intval($_GET['msg']) . "'"), 0) == 1) { $room = mysql_fetch_assoc(mysql_query("SELECT * FROM `besedka_rooms` WHERE `id` = '" . intval($_GET['id']) . "' LIMIT 1")); $ank = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = '" . intval($_GET['msg']) . "' LIMIT 1")); if (isset($user)) mysql_query("INSERT INTO `chat_who` (`id_user`, `time`, `room`) values('$user[id]', '$time', '$room[id]')"); if ($set['time_chat'] != 0) header("Refresh: $set[time_chat]; url=/besedka/room/$room[id]/" . rand(1000, 9999) . '/'); // автообновление $set['title'] = 'Беседка - Ответ (' . mysql_result(mysql_query("SELECT COUNT(*) FROM `chat_who` WHERE `room` = '$room[id]'"), 0) . ')'; // заголовок страницы include_once 'inc/thead.php'; title(); if ($_GET['priv'] == 1) $checkbox = ' checked="checked"'; echo "<div class='tmn'>\n"; echo "<a href='/info.php?id=$ank[id]'>Посмотреть страничку</a> | <a href='/prof.php?id=$ank[id]'>анкету</a><br />\n"; echo "</div>\n"; echo "<form method=\"post\" action=\"/besedka/room/$room[id]/" . rand(1000, 9999) . "/\">\n"; echo "Сообщение:<br />\n<textarea name=\"msg\">$ank[nick], </textarea><br />\n"; echo "<label><input type=\"checkbox\"$checkbox name=\"privat\" value=\"$ank[id]\" /> Приватно</label><br />\n"; if ($user['group_access'] > 1) { echo "<label><input type=\"checkbox\" name=\"bold\" value=\"$ank[id]\" /> Жирный</label><br />\n"; echo "<label><input type=\"checkbox\" name=\"under\" value=\"$ank[id]\" /> Подчёркнутый</label><br />\n"; } if ($user['set_translit'] == 1) echo "<label><input type=\"checkbox\" name=\"translit\" value=\"1\" /> Транслит</label><br />\n"; echo 'Цвет текста <select name="color"><option value="">Стандарт</option><option value="#000000">Чёрный</option><option value="#808080">Серый</option><option value="#808000">Оливковый</option><option value="#008000">Зеленый</option><option value="#800080">Фиолетовый</option><option value="#0000FF">Синий</option><option value="#00FFFF">Голубой</option><option value="#FF00FF">Розовый</option><option value="#00FF00">Салатовый</option><option value="#FFFF00">Желтый</option><option value="#ff0000">Красный</option><option value="#e90080">Малиновый</option><option value="#008800">Хаки</option><option value="#f7bc5b">Телесный</option><option value="#446d8c">Мурена</option><option value="#b7770d">Коричневый</option></select><br/>'; echo "<input value=\"Отправить\" type=\"submit\" />\n"; echo "</form>\n"; echo "<div class=\"foot\">\n"; echo "&laquo;<a href=\"/besedka/room/6/5555/\">Назад</a><br />\n"; echo "</div>\n"; include_once '../sys/inc/tfoot.php';}if (isset($_GET['call'])) { echo "<div class=\"err\">"; echo "Вы действительно хотите вызвать модера? За вызов модера просто так Вы можете получить бан!<br />\n"; echo "<a href=\"?call2\">Да</a> \n"; echo "<a href=\"?\">Нет</a><br />\n"; echo "</div>";}if (isset($_GET['call2'])) { include 'call.php'; msg('Вы успешно вызвали модера');}if (isset($_GET['id']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `besedka_rooms` WHERE `id` = '" . intval($_GET['id']) . "'"), 0) == 1) { $room = mysql_fetch_assoc(mysql_query("SELECT * FROM `besedka_rooms` WHERE `id` = '" . intval($_GET['id']) . "' LIMIT 1")); if (isset($user)) mysql_query("INSERT INTO `chat_who` (`id_user`, `time`, `room`) values('$user[id]', '$time', '$room[id]')"); $set['title'] = 'Беседка NaKnopke.Ru (' . mysql_result(mysql_query("SELECT COUNT(*) FROM `chat_who` WHERE `room` = '$room[id]'"), 0) . ')'; // заголовок страницы include_once 'inc/thead.php'; title(); include 'inc/room.php'; include_once 'roomcount.php'; include_once '../sys/inc/tfoot.php';}$set['title'] = 'Беседка'; // заголовок страницыinclude_once 'inc/thead.php';title();include 'inc/admin_act.php';err();echo "<table class='post'>\n";$q = mysql_query("SELECT * FROM `besedka_rooms` ORDER BY `pos` ASC");if (mysql_num_rows($q) == 0) { echo "Нет комнат\n";}while ($room = mysql_fetch_array($q)) { if ($num == 1) { echo "<div class='rekl_main'>"; $num = 0; } else { echo "<div class='menu_razd'>"; $num = 1; } echo "<div class='tmn'>"; echo "</div>";}include_once '../sys/inc/tfoot.php';?>
код сделал более читаемымsmile
Отредактировано POFIGISST (2012.04.30 00:12)
#760. Gemorroj Off (107)
Administrator
2012.04.30 11:11
не понятно откуда берется $ank, $user и $room.
echo "Сообщение:<br />\n<textarea name=\"msg\">$ank[nick], </textarea><br />\n"; // где htmlspecialchars?
#761. tipsun Off (19)
Moderator
2012.04.30 16:04
Gemorroj написал:
есть такое понятие - lazy loading. т.е. грубо говоря подгрузка нужных классов по первому требованию, а не сразу.
делается через автолоадеры.
Типа этого:

Код:
span style="color: #0000BB"><?php// функция автоматической загрузки классовfunction dcmsAutoload($className) { $path = $className . '.php'; //if (file_exists($path)) { require_once ($path); //}}// регистрируем функцию для автоматической загрузки классовspl_autoload_register('dcmsAutoload');$class = new ClassName1;$class = new ClassName2;$class = new ClassName3;
Отредактировано tipsun (2012.04.30 16:04)
#762. POFIGISST Off (6)
Участник
2012.04.30 16:04
echo "Сообщение:<br /><textarea name='msg'>".htmlspecialchars($ank[nick])."</textarea><br />"; вот так тогда?
#763. tipsun Off (19)
Moderator
2012.04.30 17:05
Код:
span style="color: #0000BB"><?phpecho 'Сообщение:<br /><textarea name="msg">' . htmlspecialchars($ank['nick']) . '</textarea><br />';
#764. Gemorroj Off (107)
Administrator
2012.04.30 17:05
tipsun, да, только лучше обернуть функцию в класс
#765. tipsun Off (19)
Moderator
2012.04.30 21:09
Эмм, так?
Код:
span style="color: #0000BB"><?php//+ LAZYLOAD//class LazyLoad{ const PRE = 'class.', EXT = '.php'; public static function get ($className) { require_once self::PRE . $className . self::EXT; }} spl_autoload_register('LazyLoad::get');//- LAZYLOAD//
Отредактировано tipsun (2012.04.30 21:09)
#766. POFIGISST Off (6)
Участник
2012.04.30 22:10
htmlspecialchars обрабатывает переменную $ank[nick] ,то есть ник,а сам текст сообщения не нужно обрабатывать?
#767. Gemorroj Off (107)
Administrator
2012.04.30 22:10
ну, лучше не статикой.
Код:
span style="color: #0000BB"><?php class LazyLoad{ const PRE = 'class.', EXT = '.php'; public function load ($className) { require_once self::PRE . $className . self::EXT; }}spl_autoload_register(array('LazyLoad', 'load'));
#768. tipsun Off (19)
Moderator
2012.04.30 22:10
Gemorroj, ух круто. smile Спс.
Отредактировано tipsun (2012.04.30 22:10)
#769. Gemorroj Off (107)
Administrator
2012.04.30 22:10
POFIGISST, ну нужно, наверное. Только я его в коде твоем не вижу что-то.
#770. tipsun Off (19)
Moderator
2012.04.30 22:10
Требует статику smile
Показать скрытый текст
#771. POFIGISST Off (6)
Участник
2012.04.30 22:10
Gemorroj, я сам нихера найти не смог где переменная текста идет,сеня полажу по инклюдам)
#772. tipsun Off (19)
Moderator
2012.04.30 22:10
Код:
span style="color: #0000BB"><?php//+ LAZYLOAD//class LazyLoad{ const DIR = 'classes/', PRE = 'class.', EXT = '.php'; public static function load ($className) { require_once self::DIR . self::PRE . $className . self::EXT; }}spl_autoload_register(array('LazyLoad', 'load'));//- LAZYLOAD//
Отредактировано tipsun (2012.04.30 22:10)
#773. Akdmeh Off (9)
Участник
2012.05.04 19:07
Кстати, тема немного оффтопная.
Смотрел ли ты код phpbb-wap 7 и что ты о нем думаешь?
Имеет ли право на жизнь этот скрипт в наше время?wink
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#774. Gemorroj Off (107)
Administrator
2012.05.04 21:09
давно очень смотрел. не 7, а 4 вроде. любой скрипт имеет право на жизнь, если он востребован. код этого форума много хуже, например.
#775. Akdmeh Off (9)
Участник
2012.05.06 11:11
Даже так? Интересноroll)
Почему-то думал, что с этим форумом лучше дела обстоят.
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#776. POFIGISST Off (6)
Участник
2012.05.06 15:03
А почему тогда этот скрипт поставил? Выделение из кучи г форумов?
#777. Akdmeh Off (9)
Участник
2012.05.06 18:06
Если я не ошибаюсь, когда он этот форум ставил, тогда и близко засилья phpbb-wap не было, а только начиналось.
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#778. POFIGISST Off (6)
Участник
2012.05.06 19:07
Мне этот форум больше нравиться чем phpbb,ничего лишнего,просто форум) хотя Паша мог бы и свой скрипт написать и лучше чем phpbb, ну всмысле по коду)
#779. tipsun Off (19)
Moderator
2012.05.06 23:11
А мне он перестал нравиться, как только я взглянул на него изнутри neutral
Но дизайн бомба! LEXIN молот.
Отредактировано tipsun (2012.05.06 23:11)
#780. POFIGISST Off (6)
Участник
2012.05.07 15:03
как можно сделать чтоб поисковики не видели счетчик мобтопа ? сделал вот так

Код:
echo '<center><script type="text/javascript" src="http://mobtop.ru/c/29532.js"></script><noscript><span class="linkrep" title="/some-page"><a href="http://mobtop.ru/in/29532"></span><img src="http://mobtop.ru/29532.gif" alt="MobTop.Ru - Рейтинг и статистика мобильных сайтов"/></a></noscript></span>';
но боты всеравно видят ссыль на мобтоп(
#781. tipsun Off (19)
Moderator
2012.05.07 16:04
Хотел посмотреть какие загрузчики бывают.
Вот наткнулся на такой и другой.
Вопрос: кодеру придется этот класс запустить, чтоб класс зарегистрировал себя как автозагрузчик?
- - - -
Вроде 1 класс по 1й ссыле регится сам.
А для другого уже нет, так?
Отредактировано tipsun (2012.05.07 16:04)
#782. Gemorroj Off (107)
Administrator
2012.05.07 18:06
1 какой-то нагроможденный. особо не вижу смысла в логировании, когда есть функция get_required_files.
2 мне симпатичнее, но вот эта строка preg_replace('#_#', '\\', $className); вымораживает.
для примера, мой рабочий велосипед.
Код:
span style="color: #0000BB"><?php/** * Класс реализации autoload * * @author Anton Polumiskov * @copyright 2011 * */class Autoloader{ protected static $_instance = null; protected function __clone() { } /** * Конструктор */ protected function __construct() { self::restore(); } /** * Объект автолоадера * * @return Autoloader */ public static function getInstance() { if (self::$_instance === null) { self::$_instance = new self; } return self::$_instance; } /** * Возвращаем автолоадер * * @return boolean */ public function restore() { //if (self::$_instance !== null) { return spl_autoload_register(array($this, '_register')); //} } /** * Снимаем с регистрации * * @return boolean */ public function unregister() { if (self::$_instance !== null) { return spl_autoload_unregister(array($this, '_register')); } return true; } /** * Подклчение классов * * @param string $name */ protected function _register($name) { require __DIR__ . '/' . str_replace('_', '/', $name) . '.class.php'; }}?>
вызывается примерно так
Код:
span style="color: #0000BB"><?phprequire_once __DIR__ . '/API/Autoloader.class.php';Autoloader::getInstance();?>
#783. tipsun Off (19)
Moderator
2012.05.07 18:06
Ок. СПС.
#784. POFIGISST Off (6)
Участник
2012.05.25 15:03
Помогите создать форму для ввода чисел,и чтоб то число которое вводят в форму заносилось в переменную,хочу сделать у ся на сайте переход по страницам чтоб вводишь номер страницы и переходишь на нее, ссылка для перехода идет так "http://адрес.ру/?sort=time&page=номер страницы" и вот где номер страницы я хочу всунуть переменную которую вводят в форму) вчера пробовал,но чет нихера не получилось(

делал так

Код:
echo "<br/><input type=\"text\" name=\"num\" maxlength=\"50\" value=\"\"/><br/>";
 
$num = $_POST["num"] ;
Ну и потом переменную $num вставлял в адрес где идет номер страницы,но не работает(
#785. Gemorroj Off (107)
Administrator
2012.05.25 17:05
данные передаются из формы, а не просто из инпутов
#786. POFIGISST Off (6)
Участник
2012.05.25 18:06
Это тогда вот так будет

Код:
echo '<form method="post" enctype="text/plain">';
echo "<input type=\"text\" name=\"num\" maxlength=\"50\" value=\"\"/><br/></form>";
$num = $_POST["num"] ;
?
Отредактировано POFIGISST (2012.05.25 18:06)
#787. Gemorroj Off (107)
Administrator
2012.05.25 18:06
text/plain там при чем??
#788. POFIGISST Off (6)
Участник
2012.05.25 19:07
Ты прав, enctype="text/plain та не нужно,ведь там ток числа будут срабатывать,а какой тип тогда там ставить? или вообще никакого не нужно?
#789. Gemorroj Off (107)
Administrator
2012.05.25 19:07
http://htmlbook.ru/html/form/enctype
application/x-www-form-urlencoded
#790. Akdmeh Off (9)
Участник
2012.05.31 13:01
Привет!
Вопрос по подготовленным выражениям в mysqli.
Есть ли разница, если я все параметры буду передавать как s, а не i?
К тому же, можно ли вызывать bind_param несколько раз (заранее неизвестно количество входных параметров)?
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#791. Gemorroj Off (107)
Administrator
2012.05.31 13:01
на чет mysqli не уверен, но в PDO как минимум в обрамлении кавычками разница при указании параметра как int или string.
bind_param - попробуй, с ходу не скажу, т.к. mysqli не использую.
#792. Akdmeh Off (9)
Участник
2012.05.31 17:05
Пока решил, что не стоит в это лезтьsmile
Кстати, плохо ли то, что я передаю объект с соединением mysqli во все модели, или объекты передаются по ссылке? (вот никак не могу вспомнить)
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#793. Gemorroj Off (107)
Administrator
2012.05.31 18:06
модель работы с бд хорошо ложится на логику синглтона.
т.е. получение объекта работы с бд может выглядеть как $db = DB::getInstance();
#794. Akdmeh Off (9)
Участник
2012.05.31 21:09
Я знаю.
Но мне совсем не сложно передавать sql в модель, это позволит, к примеру, подключится к разным базам данных.
Этот функционал у меня есть, но я его решил не использовать
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#795. Gemorroj Off (107)
Administrator
2012.05.31 22:10
для подключения к разным бд, мне кажется, лучше сделать что-то типа DB::getBlog(); DB::getForum();
#796. Akdmeh Off (9)
Участник
2012.06.01 13:01
Ладно, я понял, это все очень интересно.
_________________
Есть вот какой вопрос.
Представь, что есть таблица Users, в которой хранятся только самые важные данные - логин, пароль, хэш, емейл, к примеру.
Но есть и другие настройки пользователя, тысячи их: настройки количества постов на страницу, анкетные данные и прочее, прочее, прочее.
Казалось бы, бери да добавляй дополнительные столбчики в таблицу Users да не знай проблем.
Но:
Их могут добавлять разные модули, что само по себе проблема (вдруг в модулей совпадут названия колонок, ведь все модули не проследишь, и не смотря на соглашение о наименовании столбцов, могут найтись криворукие), а в самом ActiveRecord классе количество столбцов не динамично, а строго вписывается в файл (чтобы каждый раз не запрашивать в базы данных существующие столбцы). Я понимаю, что сам себя загнал в слегка неудобную архитектуру, при которой дописывание столбцов требует изменение файла с моделью, что при динамичных модулях становится невозможным. В принципе, решить эту проблему можно, просто переписав метод, который возвращает список столбцов для конкретной модели, заставляя список колонок брать именно с базы данных, тратя на это еще один запрос.

Как вариант я подумал, что можно создать таблицу settings с подобной структурой: id_user, module, parameter_name, parameter_value.
Это позволит любому модулю хранить свои настройки, не изменяя самой структуры главной таблицы users.
С минусов, какие мне показались - возможная потеря производительности (ведь надо запросить не одну строчку, а несколько записей с достаточно огромной таблицы).

Как ты считаешь - заниматься ли дописыванием столбцов в таблице Users, или все же лучше создать отдельную таблицу с конфигурацией пользователей, а в Users хранить самые базовые данные, которые касаются только авторизации?
Буду благодарен за твою точку зрения на этот вопрос.
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#797. Gemorroj Off (107)
Administrator
2012.06.01 14:02
в процессе чтения зацепилось внимание за фразу "заставляя список колонок брать именно с базы данных, тратя на это еще один запрос". но ведь эти метаданные можно и нужно кэшировать. а кэш чистить скриптом по требованию.
на счет альтернативного варианта - да, вполне вариант и производительность повышается все тем же кэшированием.
что лучше однозначно сказать мне сложно. 2 вариант, например, используется в sea. довольно удобно и расширение проходит абсолютно безболезненно. 1 вариант, по памяти вспоминаю, в других не публичных проектах. При относительно небольшом и редко меняющемся кол-ве столбцов проблем не создает, в принципе.
#798. Akdmeh Off (9)
Участник
2012.06.01 14:02
//Гм, о том, чтобы писать это в кеш - я даже и не подумал. Кеш имеешь в виду файловый, а по возможности - на средства типа eAccelerator или memcache?
Просто именно поэтому я и решил писать метаданные прямо в файл. Ведь модель вообще редко меняется, а для тех, которые изменяются - можно как раз и использовать кеш. Неплохая идея ведь!smile
Я конечно думал о кешировании, это бесспорно. Но хорошее кеширование - это memcache (не так ли?), а Армеру придется переежать на VDS. Поэтому пока что буду без него, думаю, проект справится на первых порах, а может и вообще отлично будет справлятся. Участки, которые можно кешировать - я отмечаю.

Вопрос о том, что 2 способ подходит хуже, так как настроек может быть реально много для одного пользователя. Но то, что их можно бы кешировать - отличный совет, спасибо!


//Кратко о своей модели - просто список полей возвращает определенная функция. Ей ничто не мешает запрашивать метаданные с базы или просто с кеша, но в большинстве случаев я просто возвращаю массив со списком столбцов.

Вот за это я и люблю свои велосипеды - это заставляет тебя думать над проблемами, искать их решение, а работа программиста - это как раз на 95% - решение интересных задач.
Писал бы я на готовом фреймворке - я бы об этом никогда не задумывалсяsmile

Еще раз спасибо!
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#799. Gemorroj Off (107)
Administrator
2012.06.01 15:03
Akdmeh, ну memcache или просто файловый кэш - это уже вопрос того, сколько прослоек ты напишешь..)
Akdmeh написал:
Писал бы я на готовом фреймворке - я бы об этом никогда не задумывался
почему же не задумывался? я вот сейчас symfony ковыряю, очень даже задумываешься по ходу над техническими решениями примененными в фреймворке.
#800. Akdmeh Off (9)
Участник
2012.06.01 19:07
Ну ясноsmile
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#801. POFIGISST Off (6)
Участник
2012.06.03 18:06
как можно блокнуть челу доступ к сайту,если ип динамический? у мя есть ip и userAgent этого чела,мне нужно ему полностью закрыть доступ к сайту)
#802. Akdmeh Off (9)
Участник
2012.06.04 15:03
Можно в куки прописать ему, но он может догадаться, кроме того с другого браузера не будет работать бан.
Поэтому нету никаких средств это сделать кроме как банить конкретного авторизированного пользователя.
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#803. Nu3oN Off (11)
Moderator
2012.06.06 17:05
Объяните мне, как так? скрипт:
Код:
span style="color: #0000BB"><?php$a = 90;$a += ++$a;echo $a;
Дает результат: 182
В то время как по этой же системе не другими "методами"
Код:
span style="color: #0000BB"><?php$a = 90 + 90;echo ++$a;///////$a = 90;$a += $a;++$a;echo $a;///////$a = 90;$a += $a + 1;echo $a;
Выдает нам уже: 181
Я буду лучше голоден, но между креслом и рулем и на дороге.
#804. Gemorroj Off (107)
Administrator
2012.06.06 18:06
ну так собсно в этом отличие ++$i и $i++
Добавлено спустя   1 минуту  15 секунд:
А результаты разные, так как там последовательность выполнения операций другая. сначала инкремент, а потом сложение.
#805. Nu3oN Off (11)
Moderator
2012.06.06 18:06
Про постфиксы и префиксы я знал, а то-что =+ является префиксным инкрементом только сейчас...
Я буду лучше голоден, но между креслом и рулем и на дороге.
#806. Gemorroj Off (107)
Administrator
2012.06.06 18:06
Nu3oN написал:
=+ является префиксным инкрементом
??
это просто установка знака, скорее всего.
#807. Nu3oN Off (11)
Moderator
2012.06.06 18:06
т.е наоборот
Я буду лучше голоден, но между креслом и рулем и на дороге.
#808. POFIGISST Off (6)
Участник
2012.06.07 02:02
Знакомый попросил накатать ему код для баннера,чтоб он был виден только для компов,ну я ему накатал такой велосипед

Код:
span style="color: #0000BB"><?php$gg = "Адрес баннера";if (stristr($_SERVER['HTTP_USER_AGENT'], 'Firefox')) echo $gg;elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Chrome')) echo $gg;elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Safari')) echo $gg;elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Opera')) echo $gg;elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 8.0')) echo $gg;elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 7.0')) echo $gg;elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0')) echo $gg;?>
как это можно сделать компактнее и более удобнее ?
#809. TLENS Off (14)
Moderator
2012.06.07 02:02
Nu3oN
Кстати оператор "+=" это обычная функция на С++ можно её перегружать.
Представим что $a это объект типа int32. присваеваем с помощью метода присвоения 90
$a = 90;
а оператор "+=" это обычный метод
собственно тело метода
function method($val) {
    this->value = this->value + $val;
    return this->value;
}
Собственно если сделать:
$a->method(++$a);
приватное свойство value из-за инкремента сровняется 91 так же в методе в переменной $val будет хранится 91 что после будет приплюсовано свойству value
в результате на выходе будет 91+91
Тоже самое и с другими операторами(методами)
#810. TLENS Off (14)
Moderator
2012.06.07 02:02
POFIGISST
Используй mobile_device_detect или что то аналогичное. А то что ты написал выше это говно так как длинная конструкция с перебором каждый раз всех символов. Лучше один раз перебери и результат через свич прогони
#811. POFIGISST Off (6)
Участник
2012.06.07 02:02
TLENS написал:
POFIGISST
Используй mobile_device_detect или что то аналогичное. А то что ты написал выше это говно так как длинная конструкция с перебором каждый раз всех символов. Лучше один раз перебери и результат через свич прогони
Чет только что поискал инфу о mobile_device_detect особо ничего на русском не нашел,ща еще буду гуглить))
#812. Nu3oN Off (11)
Moderator
2012.06.07 08:08
POFIGISST написал:
Чет только что поискал инфу о mobile_device_detect особо ничего на русском не нашел,ща еще буду гуглить))
Вот сразу же нашел http://code.google.com/p/php-mobile-detect/
Я буду лучше голоден, но между креслом и рулем и на дороге.
#813. TLENS Off (14)
Moderator
2012.06.07 14:02
Просмотрел только что исходник. То там тоже не такой уж и быстрый код но все же правильный.
#814. Gemorroj Off (107)
Administrator
2012.06.07 14:02
TLENS, на скорость кода смотри в последнюю очередь.
#815. TLENS Off (14)
Moderator
2012.06.07 14:02
Gemorroj
Может и так а то чет помешался на ней.
#816. TLENS Off (14)
Moderator
2012.06.07 16:04
А это еще что такое?)
http://code.google.com/p/php-mobile-det … emo.php#95
#817. POFIGISST Off (6)
Участник
2012.06.07 20:08
сделал вот так

Код:
echo '<form action="/strip/case.php?act=m_strip" method="post">
<input type="submit" value="Парни"/></div></form>';
работает,но выглядит не айс(


хочу вот так сделать
Код:
echo '<form action="/strip/case.php?act=" method="post">
<select name="go"><option value="m_strip">Парни</option>
<option value="g_strip">Девушки</option></select>
<input type="submit" value="Погнали"/></div></form>';
но так в адрес не передает имя кейса(
Отредактировано POFIGISST (2012.06.07 20:08)
#818. Nu3oN Off (11)
Moderator
2012.06.08 00:12
POFIGISST,
Код:
span style="color: #0000BB"><?php$strAction = (! empty($_POST['go']) and $_POST['go'] == 'g_strip') ? 'g_strip' : 'm_strip';switch($strAction): case 'g_strip': echo 'girl'; break; case 'm_strip': default: echo 'men'; break;endswitch;
Я буду лучше голоден, но между креслом и рулем и на дороге.
#819. POFIGISST Off (6)
Участник
2012.06.08 00:12
Nu3oN них какой код:0 спс,большое!
#820. TLENS Off (14)
Moderator
2012.06.09 01:01
Nu3oN написал:
POFIGISST,
Код:
span style="color: #0000BB"><?php$strAction = (! empty($_POST['go']) and $_POST['go'] == 'g_strip') ? 'g_strip' : 'm_strip';switch($strAction): case 'g_strip': echo 'girl'; break; case 'm_strip': default: echo 'men'; break;endswitch;
Люблю китайцев они всегда все упрощают но иногда больше чем надо.
А у нас наоборот надо все усложнять.
Зачем перебор тернарным оператором если дальше это же обрабатывается свитчем?
Код:
span style="color: #0000BB"><?phpif (empty($_POST['go'])) switch($_POST['go']) { case 'g_strip': echo 'girl'; break; case 'm_strip': echo 'men'; break; default: echo 'Воно'; break; }else ; // Форма не была переданой
Даже можно обойтись и без if (empty($_POST['go'])) если не нужен обработчик на не переданную форму. При этом будут выскакивать предупреждения на них должна стоять заглушка error_reporting
Завтыкал
if (empty($_POST['go']))
Надо заменить на

if (isset($_POST['go']))
Отредактировано TLENS (2012.06.10 12:12)
#821. TLENS Off (14)
Moderator
2012.06.09 08:08
POFIGISST написал:
сделал вот так

Код:
echo '<form action="/strip/case.php?act=m_strip" method="post">
<input type="submit" value="Парни"/></div></form>';
работает,но выглядит не айс(


хочу вот так сделать
Код:
echo '<form action="/strip/case.php?act=" method="post">
<select name="go"><option value="m_strip">Парни</option>
<option value="g_strip">Девушки</option></select>
<input type="submit" value="Погнали"/></div></form>';
но так в адрес не передает имя кейса(
А с чего оно должно передаваться в адрес если метот пост?
#822. POFIGISST Off (6)
Участник
2012.06.09 18:06
TLENS
А чтоб в адрес передавалось нужен метод GET ?
#823. TLENS Off (14)
Moderator
2012.06.10 12:12
POFIGISST Советую тебе разобраться что где
#824. POFIGISST Off (6)
Участник
2012.06.10 18:06
как сделать ранд не целых чисел? попробовал так $qq = mt_rand (12.7 , 15.9); но не срабатывает,выводит целые числа,а мне нужно чтоб выводило не целые(
#825. TLENS Off (14)
Moderator
2012.06.10 18:06
POFIGISST
А пробовал просто rand?

Код:
lt;?function myrand($start, $finish, $num = 10) { return rand (round ($start * $num), round ($finish * $num)) / $num;}$start = 11.3;$finish = 25.7;echo myrand ($start, $finish);
#826. POFIGISST Off (6)
Участник
2012.06.10 19:07
TLENS
спасибо,работает функция)))
#827. Gemorroj Off (107)
Administrator
2012.06.10 20:08
рекомендуется, кстати, использовать mt_rand, т.к. он использует более совершенный алгоритм генерирования случайного числа.
Добавлено спустя   2 минуты  21 секунду:
Прежде, необходимо разобраться в способах генерации случайных чисел. Для этих целей в PHP существуют две функции: rand() и mt_rand(). Первая использует библиотеку libc, а вторая является реализацией генератора случайных чисел Mersenne Twister, причем mt_rand() позволяет получить более рандомные числа. Оба алгоритма относятся к детерминированным, т.е. генерируются случайные числа с определенной зависимостью между ними, иначе говоря, числа псевдослучайны. К слову, существует еще один тип генераторов, которые позволяют получить абсолютно случайные числа. Такие генераторы имеют внешний источник энтропии. Например, стандартное устройство в UNIX /dev/random генерирует случайные числа, используя внешний шум драйверов устройств. Своеобразной энтропией для генераторов псведослучайных чисел является первоначальное число или сид (seed), исходя из которого выводятся все последующие случайные числа. Например, такой код будет всегда возвращать одни и те же числа:
Код:
span style="color: #0000BB"><?phpmt_srand(1337);echo mt_rand()."\n";echo mt_rand()."\n";echo mt_rand();?>
При каждом запуске такого скрипта будут всегда возвращены одни и те же числа, так как все они образованы от одного сида. Как видно из примера, задать сид можно с помощью функции mt_srand() (или srand() для rand()), однако делать это вовсе не обязательно – при вызове функции mt_rand() PHP (начиная с версии 4.2.0) самостоятельно задаст первоначальное число. По умолчанию в качестве сида, как для rand(), так и для mt_rand(), PHP задает 32 битный dword (или 4294967295 – максимальное значение для типа данных integer). Как отмечает Стефан, для реализации криптографических операций этого недостаточно. Однако в большинстве случаев такое первоначальное число способно обеспечить достаточную безопасность, даже несмотря на то, что веб-приложения продолжают использовать rand() и mt_rand() для генерации паролей, активационных ссылок, cookie для автоматического входа и идентификаторов сессии. Тем не менее, при особых условиях подбор сида становится вполне осуществимым или даже совсем не нужным.
---
скопипащено из интернетов
#828. TLENS Off (14)
Moderator
2012.06.11 04:04
Gemorroj
Завтра почитаю подробнее. Но не пойму зачем нужны семя для рандомов в php вед семья автоматически меняется при каждом вызове.
Ладно утро вечера мудренее.
#829. Nu3oN Off (11)
Moderator
2012.06.13 00:12
Нужен класс для работы с бд (желательно основанный на PDO) что бы строить запросы в объектно ориентированном виде...
Код:
span style="color: #0000BB"><?php$database -> select('table') -> where('pole', $var) -> limit('1', '19');// или$database -> name = 'table';$databese -> where = array('pole', $var)$database -> limit = 1;$database -> select();
Смотрел в сторону DB_DataObject но что-то мне не понравился синтаксис...
Добавлено спустя    57 секунд:
Просто самому лень такую прослойку писать... Слишком геморойно, да и зачем изобретать велосипед...
Я буду лучше голоден, но между креслом и рулем и на дороге.
#830. Gemorroj Off (107)
Administrator
2012.06.13 10:10
Nu3oN, стандартный ответ - Doctrine2 (можно взять только DBAL) или Propel.
#831. Akdmeh Off (9)
Участник
2012.06.14 23:11
Вот вижу в Kohana подобный код:
public static function factory($file = NULL, array $data = NULL)
{
    return new View($file, $data);
}

Возник вопрос - зачем использовать фабрику, если это - обычный вызов объекта?
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#832. Gemorroj Off (107)
Administrator
2012.06.14 23:11
ну я не в курсе в принципе что там происходит по логике.
но, как вариант, это вполне могло быть раньше реальной фабрикой, потом код переписали, но для совместимости оставили и это.
либо наоборот, задел на будущее.
#833. Akdmeh Off (9)
Участник
2012.06.15 00:12
Ну а если в общем - для чего используются фабрики?
Типа вызов объекта с дополнительными параметрами?
Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink
#834. Gemorroj Off (107)
Administrator
2012.06.15 00:12
во, вроде клевое описание) http://irbis-team.com/15/23/2
#835. POFIGISST Off (6)
Участник
2012.06.15 19:07
Блин,делаю запрос в бд с рандомным выбором из бд,ставлю лимит на вывод 5,но чет не срабатывает,выводит только 1 поле( в чем ошибка у мя в запросе?
вот собсно запрос

Код:
$hit = mysql_fetch_array(mysql_query("SELECT * FROM `info` ORDER BY RAND() LIMIT 5"));
#836. Gemorroj Off (107)
Administrator
2012.06.15 20:08
Код:
span style="color: #0000BB"><?php$q = mysql_query("SELECT * FROM `info` ORDER BY RAND() LIMIT 5");while ($row = mysql_fetch_assoc($q)) { print_r($row);}
#837. POFIGISST Off (6)
Участник
2012.06.15 21:09
Gemorroj написал:
Код:
span style="color: #0000BB"><?php$q = mysql_query("SELECT * FROM `info` ORDER BY RAND() LIMIT 5");while ($row = mysql_fetch_assoc($q)) { print_r($row);}
Огромное спасибо))
#838. POFIGISST Off (6)
Участник
2012.06.16 00:12
А с таким кодом можно сделать листинг? или нужно код менять для листинга?

Код:
span style="color: #0000BB"><?phpinclude 'head.php';include 'db.php';$today = date("j/n/Y"); $q = mysql_query("SELECT * FROM `info` ORDER BY 'id' DESC LIMIT 5");while ($row = mysql_fetch_assoc($q)) { echo '<div class="gmenu2"><br><br>'; echo "<b>Имя:</b> $row[name] <br>"; echo'<img src="' . $row['url'] .'"alt="*" width="70" height="60" /><br>'; echo "<b>Описание:</b> $row[opis] <br>"; echo "<b>Скачали:</b> $row[kols] <br>"; echo "<b>Добавлено:</b> $today <br>"; echo "<a href ='/ko.php'> <b>Комментарии: </b></a>(2)<br>"; echo "<a href ='/download.php'> <b>Скачать</b></a> $row[ves] (Мб.) "; echo '</div>';}?>
#839. Gemorroj Off (107)
Administrator
2012.06.16 00:12
не понял вопроса.
в коде есть проблемы.
#840. POFIGISST Off (6)
Участник
2012.06.16 00:12
Gemorroj написал:
не понял вопроса.
в коде есть проблемы.
ну я хочу сделать чтоб было по страницам,на каждой странице чтоб выводило по 5 файлов,смотрел примерно как это делается,но нифига не понял,там в коде который я смотрел лимит идет не так как у меня,и функция листинга там написана, но её я тож не смог понять(
#841. tipsun Off (19)
Moderator
2012.06.16 11:11
POFIGISST, 2 запроса надо.
MySQL забыл совсем. Сейчас вспомню, напишу полностью.

Код:
span style="color: #0000BB"><?phprequire_once 'head.php';require_once 'db.php';$today = date("j/n/Y");$count = mysql_result(mysql_query('SELECT COUNT(1) FROM `info` LIMIT 1;', $db), 0);if ($count) { require_once 'PageMan.class.php'; // На форуме тут есть этот класс или возьми любой другой. У ZF например есть лучше. $PageMan = new PageMan; $limit = $PageMan->setCount($count) ->setPage($_REQUEST['page']) ->getTable(); $q = mysql_query('SELECT * FROM `info` ORDER BY `id` DESC LIMIT ' . $limit[0] . ', ' . $limit[1] . ';'); while ($row = mysql_fetch_assoc($q)) { echo '<div class="gmenu2"><br/><br/>' . '<b>Имя:</b> ' . $row['name'] . ' <br/>' . '<img src="' . $row['url'] . '" alt="*" width="70" height="60" /><br/>' . '<b>Описание:</b> ' . $row['opis'] . ' <br/>' . '<b>Скачали:</b> ' . $row['kols'] . ' <br/>' . '<b>Добавлено:</b> ' . $today . ' <br/>' . '<a href ="/ko.php"> <b>Комментарии: </b></a>(2)<br/>' . '<a href ="/download.php"> <b>Скачать</b></a> ' . $row['ves'] . ' (Мб.)' . '</div>'; } //+ ссылки для навигации по страницам.}
Отредактировано tipsun (2012.06.16 12:12)
#842. Nu3oN Off (11)
Moderator
2012.06.16 13:01
а что за лажа с тудэй? или я не так понимаю принцип вывода?
Я буду лучше голоден, но между креслом и рулем и на дороге.
#843. tipsun Off (19)
Moderator
2012.06.16 14:02
Там и комментов всегда (2) smile
Код:
span style="color: #0000BB"><?php$today = date('j/n/Y');echo '<b>Добавлено:</b> ' . $today . ' <br/>';
Аля обновления каждый день big_smile
Отредактировано tipsun (2012.06.16 14:02)
#844. POFIGISST Off (6)
Участник
2012.06.16 14:02
tipsun написал:
Там и комментов всегда (2) smile
Код:
span style="color: #0000BB"><?php$today = date('j/n/Y');echo '<b>Добавлено:</b> ' . $today . ' <br/>';
Аля обновления каждый день big_smile
комментарии у мя идут из массива с рандомным выбором,там их всегда 2 выводит,как бы 1 ком от девченки и другой от мужика  big_smile  , каждый файл свеженький,ток сегодня добавлен типаbig_smile
#845. POFIGISST Off (6)
Участник
2012.06.16 15:03
tipsun
эт тут он Функция навигации по страницам класс PageMan ? smile
#846. tipsun Off (19)
Moderator
2012.06.16 16:04
Да. Там и примеры есть (на 15 стр. вроде).
Вот видимо готовый архив: http://wapinet.ru/forum/wap/viewtopic.p … 166#p22166
Отредактировано tipsun (2012.06.16 16:04)
#847. POFIGISST Off (6)
Участник
2012.06.16 16:04
tipsun написал:
Да. Там и примеры есть (на 15 стр. вроде).
Вот видимо готовый архив: http://wapinet.ru/forum/wap/viewtopic.p … 166#p22166
Спасиб,скачал,ща ссылки буду ставить ))
#848. tipsun Off (19)
Moderator
2012.06.16 17:05
Вот из примера возьми. Или в теме пример смотри.
Код:
span style="color: #0000BB"><?php$pages = $PageMan->getPageRangeSimple();$currentPage = $PageMan->getPage();foreach ($pages as $page) { if ($currentPage == $page) { echo '<span class="nowPage">' . $page . '</span>'; } else { echo '<span class="pageRange"><a href="?page=' . $page . '&amp;">' . $page . '</a></span>'; }}
Отредактировано tipsun (2012.06.16 17:05)
#849. tipsun Off (19)
Moderator
2012.06.16 17:05
Или проще: curPage - 1 | curPage + 1
+
Форма быстрого перехода.
Самый экономный вариант smile
Отредактировано tipsun (2012.06.16 17:05)
#850. POFIGISST Off (6)
Участник
2012.06.16 17:05
tipsun
Ооо,работает,ваще огонь)) спс большое)))
#851. tipsun Off (19)
Moderator
2012.06.16 17:05
Рад, что кому-то, кроме меня, мой класс пригодился big_smile
#852. tipsun Off (19)
Moderator
2012.06.17 19:07
Где-то видел такое вот, как называется даже не знаю.
Типа:

Код:
span style="color: #0000BB"><?php(Fishka $string);
Типа фишка проверяет переменную, или что-то в этом роде. Типа самописный класс проверяет эту переменную.
Если такого нет, то есть где-то готовый набор валидации или парсинга?
Добавлено спустя   1 минуту  41 секунду:
На хабре кажется видел.
Отредактировано tipsun (2012.06.17 19:07)
#853. Gemorroj Off (107)
Administrator
2012.06.17 19:07
ну.. ограниченная проверка типов в php есть.
можно в методах и функциях указывать имя класса или array (возможно еще что-то, уже не помню).
в твоем случае это больше на instanceof похоже.
#854. tipsun Off (19)
Moderator
2012.06.17 19:07
А в принципе у PHP есть встроенные ресурсы filter_var().
Отредактировано tipsun (2012.06.17 19:07)
#855. Gemorroj Off (107)
Administrator
2012.06.17 19:07
http://www.php.net/manual/ru/language.o … inting.php
#856. tipsun Off (19)
Moderator
2012.06.17 19:07
Да, что-то похожее. СПС.
#857. tipsun Off (19)
Moderator
2012.06.19 15:03
Какой путь является правильным?
Код:
span style="color: #0000BB"><?php// Путь #1function wayFirst (){ global $db;}class wayFirst{ protected $_db; public function __construct (/* global or from here */ $db) { global $db; $this->_db = $db; }}// Путь #2function wayAnother (){ $db = DB::singleton(); $db->query();}class wayAnother{ protected $_db; public function __construct () { $this->_db = DB::singleton(); }}
Отредактировано tipsun (2012.06.21 22:10)
#858. Gemorroj Off (107)
Administrator
2012.06.19 15:03
что за global $db??? убирай это.
#859. POFIGISST Off (6)
Участник
2012.06.23 22:10
делаю вывод поля из бд,но чет не как не выводит его big_smile  посмотрите пожалуйста в чем ошибка ((

Код:
span style="color: #0000BB"><?php/** * подключение к бд */$db=mysql_connect('localhost','юзер','пасс') or die(mysql_erorr());mysql_select_db('имя бд',$db) or die(mysql_erorr());/** * запрос */$kol = mysql_fetch_assoc(mysql_query(" select `sca` from users where `id`=1 limit 1"));//ну и сама переменная echo $kol;
но переменная пустая,не пойму почему,вытаскиваю поле sca из таблицы users где ид равен 1  (




З.Ы. в подключении данные у мя вписаны,это тут я их скрыл)
Отредактировано POFIGISST (2012.06.23 23:11)
#860. TLENS Off (14)
Moderator
2012.06.23 23:11
POFIGISST
echo mysql_error();
#861. POFIGISST Off (6)
Участник
2012.06.23 23:11
TLENS написал:
POFIGISST
echo mysql_error();
проверил

Unknown column 'sca' in 'field list'

в этой таблице нет такой колонки,но она там точно есть(


мля,ошибся,там не sca идет поле,а ska,но теперь выводит пустое слово Array (
Отредактировано POFIGISST (2012.06.23 23:11)
#862. TLENS Off (14)
Moderator
2012.06.23 23:11
POFIGISST
Значит это массив  var_dump($kol); или print_f($kol);
#863. POFIGISST Off (6)
Участник
2012.06.23 23:11
TLENS написал:
print_f($kol);
функция print_r вродь не для массивов,для массивов идет print_r  smile
#864. TLENS Off (14)
Moderator
2012.06.24 00:12
Спутал с форматным выводом
#865. POFIGISST Off (6)
Участник
2012.06.24 00:12
TLENS написал:
Спутал с форматным выводом
уже разобрался,нормик все выводит,спс за помощь в аське))
#866. tipsun Off (19)
Moderator
2012.06.24 00:12
Gemorroj, почему, в твоем велике автолоадера/lazyload, в конструкторе обычный метод вызывается как статический? Проведи ликбез, пожалуйста.
#867. Gemorroj Off (107)
Administrator
2012.06.24 01:01
хз. в каком именно?
#868. tipsun Off (19)
Moderator
2012.06.24 10:10
Gemorroj, в этом.
Отредактировано tipsun (2012.06.24 10:10)
#869. Gemorroj Off (107)
Administrator
2012.06.24 12:12
хз, честно говоря. зачем-то реализован синглтон.
а почему именно статический..? ну так. мне показалось так симпатишней.
#870. tipsun Off (19)
Moderator
2012.06.24 18:06
Gemorroj, а зачем в методе unregister условие?
Все равно конструктор закрыт. Путь только через метод singleton(), или я ошибаюсь?
Отредактировано tipsun (2012.06.24 18:06)
#871. Gemorroj Off (107)
Administrator
2012.06.24 19:07
tipsun, да, похоже ты прав. условие там не нужно.
#872. POFIGISST Off (6)
Участник
2012.06.27 02:02
даж не знаю в нужной ли теме пишу,но задача такая,нужно сделать автоматическое перенаправление через определенное время,поюзал инет,нашел там 2 метода,но там идет через HTML - META-тег REFRESH, вот так

Код:
<meta HTTP-EQUIV="Refresh" CONTENT="10;URL=http://трутуту">
этот способ работает,и еще один метод там прочитал,но лично у меня он не срабатывает,вот так там показано

Код:
header("Refresh:10; url=трутутуту");
еще нашел как делать через javascript , но на теле javascript не работает,так вот,какие способы еще есть решить такую задачу с переадресацией через заданное время?
#873. tipsun Off (19)
Moderator
2012.06.27 09:09
POFIGISST написал:

Код:
header("Refresh:10; url=http://site.ru");
А без пробела пробовал?
Код:
header('Refresh:10;url=http://site.ru');
Отредактировано tipsun (2012.06.27 09:09)
#874. TLENS Off (14)
Moderator
2012.06.27 12:12
POFIGISST написал:
даж не знаю в нужной ли теме пишу,но задача такая,нужно сделать автоматическое перенаправление через определенное время,поюзал инет,нашел там 2 метода,но там идет через HTML - META-тег REFRESH, вот так

Код:
<meta HTTP-EQUIV="Refresh" CONTENT="10;URL=http://трутуту">
этот способ работает,и еще один метод там прочитал,но лично у меня он не срабатывает,вот так там показано

Код:
header("Refresh:10; url=трутутуту");
еще нашел как делать через javascript , но на теле javascript не работает,так вот,какие способы еще есть решить такую задачу с переадресацией через заданное время?
Используй метатег и не выдумывай.
#875. POFIGISST Off (6)
Участник
2012.06.27 17:05
tipsun
неа,не пробовал,я сделал через метатег ))
Добавлено спустя   2 минуты  42 секунды:
TLENS
я через него и сделал:-D
#876. tipsun Off (19)
Moderator
2012.06.28 13:01
tipsun написал:
POFIGISST написал:

Код:
header("Refresh:10; url=http://site.ru");
А без пробела пробовал?
Код:
header('Refresh:10;url=http://site.ru');
POFIGISST написал:
tipsun
неа,не пробовал,я сделал через метатег ))
А зря, работает (проверил).
Отредактировано tipsun (2012.06.28 13:01)
#877. POFIGISST Off (6)
Участник
2012.06.28 16:04
tipsun
ты прав,работает если без пробела,спасибо,учту этот способ))
-------------------------

З.Ы. твой код который ты мне недавно скинул для постраничной навигации еще раз мне пригодился))
#878. tipsun Off (19)
Moderator
2012.06.28 18:06
POFIGISST, очень рад smile
#879. Merzavetz Off (1)
Участник
2012.07.11 13:01
Подскажите пожалуйста, как сделать чтобы один файл коннектился к нескольким сайтам?
Вот код:
Код:
lt;? for ($start=0, $end=10; $start <= $end; $start++) { file_get_contents("http://site.net"); } ?>
Сейчас он коннектится только к site.net.
#880. Gemorroj Off (107)
Administrator
2012.07.11 14:02
Код:
span style="color: #0000BB"><?php$array = array( 'http://vk.com', 'http://wapinet.ru', 'http://microsoft.com',);foreach ($array as $v) { file_get_contents($v); } ?>
#881. Merzavetz Off (1)
Участник
2012.07.11 14:02
Gemorroj, спасибо большое)
А количество обращений к сайту как установить? В моем примере было 10 коннектов, в твоем все работает, но делается только один коннект(
#882. Gemorroj Off (107)
Administrator
2012.07.11 15:03
Код:
span style="color: #0000BB"><?php$array = array( 'http://vk.com', 'http://wapinet.ru', 'http://microsoft.com',);foreach ($array as $v) { for ($i = 0; $i <= 10; ++$i) { file_get_contents($v); }}?>
#883. Merzavetz Off (1)
Участник
2012.07.11 16:04
Gemorroj, спасибо еще раз большое! Очень помогло.
#884. POFIGISST Off (6)
Участник
2012.07.19 22:10
помогите пожалуйста исправить ошибку,выдает ошибку в первой строке,но я не пойму почему там ошибка,по моему вродь синтаксис функции if идет норм то есть if (условие) {вывод}  (

Код:
span style="color: #0000BB"><?phpif ($user[level] => 1){ if (isset($_GET['act']) && $_GET['act'] == 'delete' && $l != '/') { echo "<div class=\"err\">"; echo "Удалить файл \"$file_id[name]\"?<br />\n"; echo "<a href='?showinfo&amp;act=delete&amp;ok'>Да</a> \n"; echo "<a href='?showinfo'>Нет</a><br />\n"; echo "</div>"; } else { echo "<div class=\"foot\">\n"; echo "<a href='?showinfo&amp;act=delete'>Удалить файл</a><br />\n"; echo "</div>\n"; }}?>
#885. Gemorroj Off (107)
Administrator
2012.07.19 22:10
$user[level] -> $user['level']
$file_id[name] -> $file_id['name'], вероятно, еще тут htmlspecialchars нужен.
#886. POFIGISST Off (6)
Участник
2012.07.19 22:10
Gemorroj написал:
$user[level] -> $user['level']
$file_id[name] -> $file_id['name'], вероятно, еще тут htmlspecialchars нужен.
$file_id[name] вообще убрал,оно там не нужно,а это $user[level] -> $user['level'] сделал,но phpdesigner все равно ошибку светит( раньше там был код вот такой

Код:
span style="color: #0000BB"><?phpif (user_access('obmen_file_delete')){ if (isset($_GET['act']) && $_GET['act'] == 'delete' && $l != '/') { echo "<div class=\"err\">"; echo "Удалить файл \"$file_id[name]\"?<br />\n"; echo "<a href='?showinfo&amp;act=delete&amp;ok'>Да</a> \n"; echo "<a href='?showinfo'>Нет</a><br />\n"; echo "</div>"; } else { echo "<div class=\"foot\">\n"; echo "&raquo;<a href='?showinfo&amp;act=delete'>Удалить файл</a><br />\n"; echo "</div>\n"; }}?>
я только первую строку заменил(
#887. POFIGISST Off (6)
Участник
2012.07.19 23:11
стыдно( и кстать стыдно должно быть не только мнеbig_smile еллементарная ошибка( моя не внимательность( не так

if ($user['level'] => 1);

а так

if ($user['level'] >= 1);

sad

З.Ы. Ошибка была double arrow -> двойная стрелка( баран я(
Отредактировано POFIGISST (2012.07.19 23:11)
#888. tipsun Off (19)
Moderator
2012.07.23 22:10
Что делать, если смарти и автолоадер не дружат?
#889. Gemorroj Off (107)
Administrator
2012.07.23 22:10
подружить)
чем они не дружат?
#890. tipsun Off (19)
Moderator
2012.07.23 22:10
Мой ленивец в смарти лезет.
Я вроде там (в автолоадере) делал замену '_' => '/'. Наверно поэтому.
Можно наверно проверку там сделать, если нет такого, то загрузить как обычно.
#891. Gemorroj Off (107)
Administrator
2012.07.23 23:11
а где в смарти _ ?
#892. tipsun Off (19)
Moderator
2012.07.23 23:11
W:\home\tt.php\www\trunk\includes\library\Smarty_Internal_TemplateCompilerBase.php у меня не может загрузиться.
Я сделал так:
- Папка с классами лежит тут: includes\library
- Папка со смарти: includes\library\Smarty
- Ленивец: includes\library\LazyLoad.class.php
Код:
span style="color: #0000BB"><?php//Ленивецclass LazyLoad{ const EXT = '.class.php'; private $_status, $_dir; protected static $_instance; private function __clone () {} private function __wakeup () {} public static function singleton () { if (null === self::$_instance) { self::$_instance = new self; } return self::$_instance; } protected function __construct () { $this->_dir = dirname(__FILE__); } public function register () { if (! $this->_status) { return $this->_status = spl_autoload_register(array($this, '_loader')); } } public function unregister () { if ($this->_status) { return ! $this->_status = ! spl_autoload_unregister(array($this, '_loader')); } } private function _loader ($className) { require_once $this->_dir . DIRECTORY_SEPARATOR . str_replace('_', DIRECTORY_SEPARATOR, $className) . self::EXT; }}
#893. tipsun Off (19)
Moderator
2012.07.23 23:11
Я без замены '_' => '/' тоже пробовал. Не получается.
Добавлено спустя   5 минут  22 секунды:
Почему именно я сказал, что не дружат - расширение мое:
Показать скрытый текст
#894. tipsun Off (19)
Moderator
2012.07.24 01:01
Если я правильно понял пост #2, то это есть решение проблемы:
www.smarty.net/forums/viewtopic.php?t=16819
#895. tipsun Off (19)
Moderator
2012.07.24 04:04
Жестко тупил [это мое обычное состояние], но потом, методом тыка, получилось.
Код:
span style="color: #0000BB"><?php// common.phpLazyLoad::singleton()->register();// some code...$tpl = new TemplateMan(PATH_DESIGN . $design);// library/TemplateMan.class.phpLazyLoad::singleton()->unregister();//define('SMARTY_SPL_AUTOLOAD', 1);require_once 'Smarty' . DIRECTORY_SEPARATOR . 'Smarty.class.php';LazyLoad::singleton()->register();// Надо в переменной держать, оказывается пригодится может. Если в классе каком, так же через сингтон в переменную и вперед. :)$LazyLoad = LazyLoad::singleton();$LazyLoad->register();
#896. werwap
Гость
2012.07.26 04:04
привет. подскажи как в граббе определить адрес файла есла переадресация на файл? вот http://flash.mobik.ru/?module=download&category=20&id=67
#897. tipsun Off (19)
Moderator
2012.07.26 14:02
werwap написал:
привет. подскажи как в граббе определить адрес файла есла переадресация на файл? вот http://flash.mobik.ru/?module=download&category=20&id=67
http://flash.mobik.ru/index.php?module=download&category=20&id=67
#898. werwap
Гость
2012.07.26 15:03
tipsun, адрес файла Flash нужна
#899. tipsun Off (19)
Moderator
2012.07.26 15:03
werwap написал:
tipsun, адрес файла Flash нужна
Ну так сразу и надо писать, что конкретно нужно.
- - - -
Если у тебя есть адрес:
http://flash.mobik.ru/index.php?module=download&category=20&id=67
Меняешь на такой:
http://flash.mobik.ru/download.php?id=67
Ловищь переадресацию в заголовках:
Location: http://...
Имя файла передается через, когда переходишь по переадресации:
Content-Disposition    attachment; filename=1109072.swf
#900. werwap
Гость
2012.07.26 15:03
подробнее код можеш написать?
#901. werwap
Гость
2012.07.26 16:04
вот что нужно
Код:
span style="color: #0000BB"><?php$filename = "сюда нужно определить адрес файла"; $fh = fopen($filename, "r"); while(($str = fread($fh, 1024)) != null) $fsize += strlen($str); header('Content-Length: ' . $fsi);
#902. tipsun Off (19)
Moderator
2012.07.26 17:05
werwap написал:
подробнее код можеш написать?
Как-то так наверно.
Код:
span style="color: #0000BB"><?php$headers = get_headers('http://flash.mobik.ru/download.php?id=67', true);/*echo '<pre>';var_dump($headers);echo '</pre>';*/$pos = strrpos($headers['Content-Disposition'], '=');$file = substr($str, $pos + 1);echo $headers['Location'] . $file;//echo $headers['Content-Length'][1];
#903. tipsun Off (19)
Moderator
2012.07.26 18:06
Как найти home_url для моего скрипта?
Вчера сидел пытался найти. (В интернете искал способ найти путь до css файла, ничего нормального не нашел (плохо искал))
Вот что получилось.
Меня радует одно, что не надо вручную делать ничего smile
и $_SERVER['DOCUMENT_ROOT'] не используется.

Принцип прост:
Из текущего/запущеного файла, который проинклудил код/файл ниже,
удаляется относительный путь, остается абсолютный.
Потом из-за виндовса надо поменять слеши.
Потом берем значение __FILE__ include файла.
Удаляем из него абсолютный путь, остается относительный smile
Сохраняем результат.

Код:
span style="color: #0000BB"><?php//common.php [this is including file]//FIND HOME URL//define('COMMON_PATH', dirname(__FILE__) . DIRECTORY_SEPARATOR); //exampledefine('COMPILED_FILE', COMMON_PATH . 'compiled.php'); //example@include_once COMPILED_FILE;/*Условие можно и попроще, просто подумал, вдруг скрипт будет перенесен, переименована папка и т.п.*///+ FIND HOME URL//@include_once COMPILED_FILE;if (! (defined('PARENT_FILE') and __FILE__ == PARENT_FILE)) { $search = $replace = array(); if ('\\' == DIRECTORY_SEPARATOR) { $search[] = DIRECTORY_SEPARATOR; $replace[] = '/'; } $search[] = str_replace($_SERVER['SCRIPT_NAME'], null, $_SERVER['SCRIPT_FILENAME']); $replace[] = null; define('COMMON_URL', 'http://' . $_SERVER['HTTP_HOST'] . str_replace($search, $replace, COMMON_PATH)); define('CSS_URL', COMMON_URL . DESIGN_DIR . '/' . $designName . '/'); $content = '<?php' . PHP_EOL . '//' . $_SERVER['REQUEST_TIME'] . PHP_EOL . 'define(\'' . 'PARENT_FILE' . '\', \'' . __FILE__ .'\');' . PHP_EOL . 'define(\'' . 'COMMON_URL' . '\', \'' . COMMON_URL .'\');' . PHP_EOL . 'define(\'' . 'CSS_URL' . '\', \'' . CSS_URL . '\');'; file_put_contents(COMPILED_FILE, $content);}//- FIND HOME URL///* COMPILED FILE<?php//1343481047define('PARENT_FILE', 'W:\home\tt.php\www\trunk\includes\common.php');define('COMMON_URL', 'http://tt.php/trunk/includes/');define('CSS_URL', 'http://tt.php/trunk/includes/design/default/');*/
Отредактировано tipsun (2012.07.28 17:05)
#904. tipsun Off (19)
Moderator
2012.07.26 20:08
Еще другой вариант есть.
Как-то так.
Код:
span style="color: #0000BB"><?php// some file// Путь до общего файла пишется руками, всегда.define('LEVEL', '../../');require_once LEVEL . 'includes/common.php';// common.php file$myPath = 'includes/design/userDesignName/';$path = dirname($_SERVER['SCRIPT_NAME']);if (DIRECTORY_SEPARATOR <> $path) { $path = 'http://' . $_SERVER['HTTP_HOST'] . '/' . LEVEL . $myPath;}
#905. werwap
Гость
2012.07.26 22:10
чтото не работает, вот пример кода
Код:
span style="color: #0000BB"><?php$file = $_GET['file']; $headers = get_headers('http://gruzmob.com/mp3_poisk/dload.php?id=88528254&br=0', true); $pos = strrpos($headers['Content-Disposition'], '='); $filename = substr($str, $pos + 1); $fh = fopen($filename, "r"); while(($str = fread($fh, 1024)) != null) $fsize += strlen($str); header('Content-Length: '.$fsize); header('Content-Type: audio/mpeg'); header('Content-Disposition: attachment; filename='.$filename.''); readfile(''.$filename.'');?>
#906. tipsun Off (19)
Moderator
2012.07.26 23:11
werwap, Это уже другой сайт, к которому ты подключаешься, значит и другие методы, возможно.
Код:
span style="color: #0000BB"><?php$headers = get_headers('http://flash.mobik.ru/download.php?id=67', true);// Посмотри на заголовки ответа.// Раскомментируй это:/*echo '<pre>';var_dump($headers);echo '</pre>';*/$pos = strrpos($headers['Content-Disposition'], '=');$file = substr($str, $pos + 1);echo $headers['Location'] . $file; //вот же адрес.//echo $headers['Content-Length'][1]; //вот вес.
#907. werwap
Гость
2012.07.27 01:01
не работает, проверь у себя на хосте код
#908. Gemorroj Off (107)
Administrator
2012.07.27 10:10
werwap, ну ты же не бездумно копируй код. а постарайся понять почему не работает.
Например Content-Disposition не всегда выдается. Можно воспользоваться просто filesize, если нету Content-Length.
#909. tipsun Off (19)
Moderator
2012.07.28 17:05
Поправил код: p24536
#910. werwap
Гость
2012.07.29 01:01
привет, подскажите пожалоста как определить размер папки с файлами public_html/files
#911. tipsun Off (19)
Moderator
2012.07.29 02:02
werwap написал:
привет, подскажите пожалоста как определить размер папки с файлами public_html/files
Как-то так.
Код:
span style="color: #0000BB"><?phpfunction size ($var){ if (is_dir($var)) { $d = dir($var); while (($entry = $d->read()) !== false) { if ('.' == $entry or '..' == $entry or 'php' == pathinfo($entry, PATHINFO_EXTENSION)) continue; $unit = $var . DIRECTORY_SEPARATOR . $entry; if (is_dir($unit)) { //$self = __FUNCTION__; //$result += $self($unit); $result += size($unit); } else { $result += filesize($unit); } } $d->close(); } else { $result = filesize($var); } return $result;}
Отредактировано tipsun (2012.07.29 02:02)
#912. werwap
Гость
2012.07.29 02:02
tipsun, большое спасибо
#913. Gemorroj Off (107)
Administrator
2012.07.29 10:10
werwap, рекурсивно читать папки и файлы в них, складывая размер.
#914. tipsun Off (19)
Moderator
2012.07.29 23:11
Можете привести пример, когда нужно использовать и как исключения:
не оборачивать же весь код файла в скобки try.
Код:
span style="color: #0000BB"><?phpfunction inverse($x) { if (!$x) { throw new Exception('Division by zero.'); } else return 1/$x;}try { echo inverse(5) . "\n"; echo inverse(0) . "\n";} catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n";}// Continue executionecho 'Hello World';
Из примера, я понимаю, что надо использовать когда есть всяко функции и классы.
Но код ими изобилует.
- - - -
Хоть что-то поконкретней
Код:
span style="color: #0000BB"><?php try { // код, который может выбросить исключение } catch(Exception $ex) { //$ex - экземпляр класса Exception // или его наследника }
Исключения нужны там, где код не просто вот так в 10 строк умещается, а где есть сложные структура и иерархии классов, каждый содержит тьму методов, где идут всякие делегации-декорации и прочие паттеры. И тогда throw делается в одном месте (где ошибка выявлена), а catch -- где-то далеко-далеко, где эту ошибку могут обработать.

Плюс ко всему, отличие исклчений от die() в том, что исключение на каком-то промежуточном этапе можно поймать, и, на усмотрение, полностью обработать (например, делать insert, а при DbUniqueError делать update; это если нету replace или insert on duplicate update как в MySQL), перевкинуть другое исклоючение (например, заменить DbUniqueError на EmailALreadyUsedError), или сделать окаточный код (например, rollback) и кинуть исходное исключение.
http://wiki.agiledev.ru/doku.php?id=ooa … tion_using
http://i-novice.net/obrabotka-isklyuchi … j-chast-1/
#915. Gemorroj Off (107)
Administrator
2012.07.30 10:10
tipsun, исключения хорошо вписываются в mvc модель. когда модель кидает исключение. а контроллер его перехватывает.
#916. tipsun Off (19)
Moderator
2012.07.30 16:04
Gemorroj, спс.
#917. tipsun Off (19)
Moderator
2012.07.31 21:09
POFIGISST написал:
Млин,возник такой вопрос, есть код javascript всунутый в страницу,но незнаю как сделать функцию if else,вот там кусок кода
Мне нужно сделать,чтоб если переменная например $zz == 2 то чтоб выводило выводило строки смайлов и цветов, а если $zz != 2 то чтоб скрывалась эта панелька со смайлами и цветами,подскажите плиз как в этом случае сделать if else?
Код:
span style="color: #0000BB"><?phpecho '</table><br /></td><td class="textmes">';/*******************************************************/?><div class='anput'><script language="JavaScript" type="text/javascript"> function tag(text1, text2) { if ((document.selection)) { document.message.msg.focus(); document.message.document.selection.createRange().text = text1+document.message.document.selection.createRange().text+text2; } else if(document.forms['message'].elements['msg'].selectionStart!=undefined) { var element = document.forms['message'].elements['msg']; var str = element.value; var start = element.selectionStart; var length = element.selectionEnd - element.selectionStart; element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length); document.forms['message'].elements['msg'].focus(); } else document.message.msg.value += text1+text2; document.forms['message'].elements['msg'].focus();}</script><div style="margin:2px;padding:1px;border:1px solid #333">Цвета: <a href="javascript:tag('[red]', '[/red]')"><img src="/style/bb/re.png" alt="red" title="Красный"/></a> <a href="javascript:tag('[green]', '[/green]')"><img src="/style/bb/gr.png" alt="green" title="Зелёный"/></a><a href="javascript:tag('[blue]', '[/blue]')"><img src="/style/bb/bl.png" alt="blue" title="Синий"/></a><br />Cмайлы:<a href="javascript:tag(':-*','')"><img src="/style/smiles/lips.gif" alt=":-*" title=":-*"/></a> <a href="javascript:tag('.ковыр2.','')"><img src="/style/smiles/kovyr2.gif" alt="ковыр" title="ковыр2"/></a><a href="javascript:tag('.ах.','')"><img src="/style/smiles/ah.gif" alt="ах" title="ах"/></a><a href="javascript:tag('.дум.','')"><img src="/style/smiles/dum.gif" alt="дум" title="дум"/></a><a href="javascript:tag('.дружба.','')"><img src="/style/smiles/druzhba.gif" alt="дружба" title="дружба"/></a><a href="javascript:tag(':-D','')"><img src="/style/smiles/biggrin.gif" alt=":-D" title=":-D"/></a><a href="javascript:tag('.ржу.','')"><img src="/style/smiles/rzhu.gif" alt="ржу" title="ржу"/></a><a href="javascript:tag('.неа.','')"><img src="/style/smiles/nea.gif" alt="неа" title="неа"/></a><a href="javascript:tag('.лол.','')"><img src="/style/smiles/lol.gif" alt="лол" title="лол"/></a><a href="javascript:tag('.кофе.','')"><img src="/style/smiles/kofe.gif" alt="кофе" title="кофе"/><a href="javascript:tag('.курит.','')"><img src="/style/smiles/kurit.gif" alt="кур" title="курит"/></a><a href="javascript:tag('.гы.','')"><img src="/style/smiles/gy.gif" alt="гы" title="гы"/></a><a href="javascript:tag('.глаза.','')"><img src="/style/smiles/glaza.gif" alt="глаза" title="глаза"/></a></div></div><?php/*******************************************************/echo "<form method='post' name='message' action='/mail.php?id=$ank[id]&amp;" . rand(1000, 9999) . "' enctype='multipart/form-data'>\n";
#918. tipsun Off (19)
Moderator
2012.07.31 23:11
POFIGISST,
так делал?
Код:
span style="color: #0000BB"><?phpif ($zz == 2): ?>js code<?phpendif;?>
#919. POFIGISST Off (6)
Участник
2012.07.31 23:11
tipsun
Спасибо большое,работает))
#920. werwap
Гость
2012.08.03 23:11
привет, у меня сервис сайтов грузит очень БД, можно както испольэовать 2 БД для одного скрипта?
#921. Gemorroj Off (107)
Administrator
2012.08.07 22:10
используй, в чем дело.
#922. tipsun Off (19)
Moderator
2012.08.07 22:10
werwap написал:
привет, у меня сервис сайтов грузит очень БД, можно както испольэовать 2 БД для одного скрипта?
Наверно можно взять из бд некоторые таблицы и поместить на разные серверы. Не на локальном, а удаленном например (мои догадки всего лишь).
- - - -
Можешь в гугле попробовать найти нормальное решение проблемы.
#923. tipsun Off (19)
Moderator
2012.08.08 22:10
Почему class Registry* делают как singleton, если можно сделать его полностью static?
* ну вместо global.
#924. Gemorroj Off (107)
Administrator
2012.08.09 10:10
tipsun его и делают статическим обычно.
#925. poll
Гость
2012.08.12 02:02
привет, я использую 2 БД в одном скрипте, подскажи пожалоста как подключить запрос
БД1 $users = mysql_query("SELECT COUNT(*) FROM `users`;");


Бд2 $forum = mysql_query("SELECT COUNT(*) FROM `forum`;");
#926. Gemorroj Off (107)
Administrator
2012.08.12 10:10
вторым параметром у mysql_query передается ресурс соединения с бд. его и используй.
#927. pol
Гость
2012.08.12 14:02
а как обяснить запросу что он должен брать с БД1 даные
а запросу 2 с БД2?
#928. Gemorroj Off (107)
Administrator
2012.08.12 18:06
выше читай.
#929. pool
Гость
2012.08.12 21:09
непонимаю как
#930. tipsun Off (19)
Moderator
2012.08.12 21:09
pool, ответ тут
#931. TLENS Off (14)
Moderator
2012.08.19 04:04
Как php работает с памятью?
Код:
span style="color: #0000BB"><?php//Вот интересно обязательно в моем случае надо указывать на присваивание ссылки? static function &get ($key) { if (isset(CacheVars::$buffer[$key])) // Если данные уже закешированы в структуре return CacheVars::$buffer[$key]; if (CacheVars::init()) // Происходит соединени с мемсаче сервером если этого еще небыло CacheVars::$buffer[$key] = CacheVars::$memcache->get($key); // Берем данные с мемкеча если соединение успешно if (!(CacheVars::$buffer[$key] === false || CacheVars::$buffer[$key] === null)) return CacheVars::$buffer[$key]; else return CacheVars::get_file_vars($key); // Берем данные с файла и зиписываем в мемкеч. }// Если большой размер данных а надо только чтение тогда делаю ссылку$var =& MyCalss::get('test');
Вопрос состоит в том обязательно ли мне указывать на ссылку в случае если я далее не буду редактировать полученные данные.
Т.е. копирование данных будет происходить при присваивании или будет создаватся копия при дальнейшем редактировании, если не указана ссылка?
Просто часто встречался с различными вариантами где в целях оптимизации копирование данных/файлов происходить только при потребности.
#932. Gemorroj Off (107)
Administrator
2012.08.19 15:03
>> мемсаче
мемкэше smile
нет. ссылки не надо. http://habrahabr.ru/post/134784/ php это сам оптимизирует. т.е. память будет израсходована только 1 раз (если данные в о 2 переменной не менять).
#933. TLENS Off (14)
Moderator
2012.08.20 03:03
Gemorroj написал:
>> мемсаче
мемкэше
Ну да smile
спс полезная статейка
#934. Nemastja
Гость
2012.09.06 00:12
Привет, подскажите как добавить в Бд текст. На пример: в таблице есть поле text и во все записи что есть в поле text  нужно добавить спериди текст (копирайт) . Подскажите пожалоста такой запрос к бд?
#935. Nemastja
Гость
2012.09.06 00:12
Может както так

mysql_query("UPDATE `bib` SET `text` = `text` = cop;");
#936. Gemorroj Off (107)
Administrator
2012.09.06 00:12
Код:
mysql_query("UPDATE `bib` SET `text` = CONCAT(`text`, " ", "копирайт");
#937. Maniak
Гость
2012.09.08 19:07
Привет, я перенес сайт на другой хост и все сообщения на воруме в символах ????? в чем может быть проблема? Форум на БД.
#938. Gemorroj Off (107)
Administrator
2012.09.08 21:09
Код:
mysql_set_charset('utf8');
http://php.net/mysql_set_charset
#939. Maniak
Гость
2012.09.09 00:12
Непомагает, может чтото с новъм хостом не так?
#940. Gemorroj Off (107)
Administrator
2012.09.09 00:12
Maniak, нет. С настройкой не так.
Какой библиотекой для работы с БД пользуешься?
В какой кодировке БД?
#941. Maniak
Гость
2012.09.09 12:12
MySQL Сервер: Localhost via UNIX socket Версия сервера: 5.1.63-cll Версия протокола: 10 Пользователь: ser@localhost MySQL-кодировка: UTF-8 Unicode (utf8)
#942. Gemorroj Off (107)
Administrator
2012.09.09 12:12
на уровне php как подключаешься к бд?
#943. Maniak
Гость
2012.09.09 13:01
<?php
define("MYSQLHOST", "localhost");
define("DBNAME", "chat");
define("DBUSER", "interclu_chat");
define("DBPASS", "5");

//PROTECTION
if(strpos($_SERVER['HTTP_USER_AGENT'], "'") !== false) die();
if(substr($_SERVER['HTTP_USER_AGENT'], 0 , 7) == "SamSunf") die();
if(preg_match("'Nokia(\d{3})/'", $_SERVER['HTTP_USER_AGENT'])) die();

$dbcnx = mysql_connect(MYSQLHOST, DBUSER, DBPASS);
#944. Gemorroj Off (107)
Administrator
2012.09.09 13:01
вот после mysql_connect напиши, mysql_set_charset('utf8');
#945. Maniak
Гость
2012.09.09 14:02
Непомагает, так и осталось РјРЅРµ очень нрави. Почему ето так на старом хосте все работало?
#946. Maniak
Гость
2012.09.09 14:02
сообщения хранятся в поле msg - cp1251_general_ci
#947. Gemorroj Off (107)
Administrator
2012.09.09 15:03
Maniak измени на utf8_general_ci
#948. Sergeij
Гость
2012.10.09 15:03
Привет, подскажите пожалоста как сделать авторизацию на сесиях? Чтоб ненада каждий день проходить авторизацию.
#949. tipsun Off (19)
Moderator
2013.01.28 16:04
Велосипед?
Код:
span style="color: #0000BB"><?php/*Что-то типа substr, только для файлов/папок.*/function subdir($path, $begin=0, $count=-1) { $array = array(); if (($od = opendir($path))) { while (false != ($rd = readdir($od))) { if ('.' != $rd && '..' != $rd) { if (0 < $begin) { $begin -= 1; continue; } $array[] = $rd; if (! --$count) { break; } } } } return $array;}
#950. Gemorroj Off (107)
Administrator
2013.01.28 16:04
tipsun, я применения не очень вижу
#951. tipsun Off (19)
Moderator
2013.02.01 23:11
Нужна функция перегона картинки в символы. у DarkDaNTe было на сайте.
#952. tipsun Off (19)
Moderator
2013.02.03 00:12
Подскажите, как быть с ссылками во view (шаблонах) с CodeIgniter?
Не руками же его писать?
- - - -
Код:
span style="color: #0000BB"><?phpecho '<a href="class/method/<?php echo $id; ?>"><?php echo $filename; ?></a>';
#953. wweja
Гость
2013.02.07 17:05
Привет,
подскажите пожалоста как сделать запросы к БД с небольшой нагрузкой на БД?
сейчас у меня вот как:

Код:
span style="color: #0000BB"><?php//USER$q = mysql_query("SELECT * FROM `chat_users` WHERE `id` = '".$id."';"); $user = mysql_fetch_array($q); $id = $user['id']; $css = $user['css']; //END USER //ONLINE $online = time() + 900; $update = mysql_query("UPDATE `chat_users` SET `time` = '".$online."', `place` = 0, `ip` = '".getenv ('REMOTE_ADDR')."', `ua` = '".htmlspecialchars(getenv ('HTTP_USER_AGENT'))."', `timevremja` = `timevremja` + IF(NOW() - `timeob` < 500, NOW() - `timeob`, 0), `timeob` = NOW() WHERE `id` = '".$id."';"); //END ONLINE
ето я делал года 4 назад и все было хорошо но сейчас посетителей стало больше и работа скрипта стала медленной.
Отредактировано Gemorroj (2013.02.07 18:06)
#954. Gemorroj Off (107)
Administrator
2013.02.07 18:06
Код:
span style="color: #0000BB"><?php//USER$q = mysql_query("SELECT * FROM `chat_users` WHERE `id` = '".$id."';");$user = mysql_fetch_array($q);$id = $user['id'];$css = $user['css'];//END USER//ONLINE$online = $_SERVER['REQUEST_TIME'] + 900;$update = mysql_query(" UPDATE `chat_users` SET `time` = '".$online."', `place` = 0, `ip` = '".$_SERVER['REMOTE_ADDR']."', `ua` = '".mysql_real_escape_string(htmlspecialchars($_SERVER['HTTP_USER_AGENT']))."', `timevremja` = `timevremja` + IF(NOW() - `timeob` < 500, NOW() - `timeob`, 0), `timeob` = NOW() WHERE `id` = '".$id."';");//END ONLINE
как минимум там SQL-injection. вообще, тут особо нечего оптимизировать. Вероятно, проще индексов расставить. Т.к., вероятно, они не проставлены.
#955. WapStyle Off (3)
Участник
2013.02.07 21:09
wweja написал:
много букав! Переходи на PDO

Код:
$q = mysql_query("SELECT * FROM `chat_users` WHERE `id` = '".$id."';");
$user = mysql_fetch_array($q);
$id = $user['id'];
$css = $user['css'
Мне одному показался говнокод?
Это тож само что и if(сиська = 1) echo '1 сиська'; elseif (сиська = 2) echo '2 сиська';   и т.д. big_smile
Отредактировано WapStyle (2013.02.07 21:09)
#956. wweja
Гость
2013.02.08 07:07
напишите пожалоста пример нормального кода?
#957. WapStyle Off (3)
Участник
2013.02.08 07:07
wweja, http://php.net/manual/ru/book.pdo.php учим, всё на русском и с примерами
#958. Gemorroj Off (107)
Administrator
2013.02.08 12:12
WapStyle, а ты видел вап-чаты не с говнокодом?
они же все по мотивам бодр-чата сделаны и код там такой же.
#959. graberja
Гость
2013.02.23 02:02
привет, подскажите как можно наложить копирайт на картинку если наложение чужого копирайта меняется (то справа то слева и т.д)?
#960. koderrr Off (0)
Участник
2013.02.27 15:03
graberja написал:
привет, подскажите как можно наложить копирайт на картинку если наложение чужого копирайта меняется (то справа то слева и т.д)?
Наложить копирайт на картинку с копирайтом? Вообще через GD это делается если я правильно вопрос понял
Что делать, если Забыли пароль администратора в joomla?
#961. voron
Гость
2013.03.03 02:02
привет, сделал граб а файл скачать нельзя

при клике на файл в грабе вот такая непонятность

Вы запросили файл, расположенный на сервере RuGame.Mobi
RuGame.Mobi - это загрузки и общение с твоими друзьями!
Чтобы скачать файл нажми на ссылку ниже
http://rugame.mobi/android/16840/LostTempleII.apk

ну в самом грабе ссылка на файл прямая, вот
http://rugame.mobi/android/16840/LostTempleII.apk


а при копирование ссылки в строку адереса файл качает (в браузере оперы)

как ето обойти?
#962. Gemorroj Off (107)
Administrator
2013.03.03 10:10
не делай прямую ссылку в грабе (передается реферер) а сделай файл, который будет перенаправлять браузер через заголовок Location (реферер не передется).
#963. voron
Гость
2013.03.03 20:08
Ето тоже не помагает.

Я сделал персер и вставил в файлы свою рекламу (и так сервер без дела 400гб).

Спасибо тебе ты всегда мне помогаешь с php.
#964. Gemorroj Off (107)
Administrator
2013.03.03 21:09
должно помогать. давай код файла с переадресацией
#965. voron
Гость
2013.03.04 02:02
вот так
<?php
$fid = $_GET['fid'];
header("Location: http://rugame.mobi/android/".$fid."");
?>
тока я уже персер сделал и ето мне не нужно.

Вот помог бы ты мне с определением места положения копирайта на картинке...
яб деньгами одблагодарил (300 рублей).
картинка сдесь http://rugame.mobi/android/8877/
#966. Vamp Off (1)
Участник
2013.03.04 10:10
сделал персер игр,
подскажи как менять в файле jad ето
MIDlet-Jar-URL: http://rugame.mobi/game/67756/MZum_SerK500_by_Stox.jar
MIDlet-Delete-Confirm: More Java rugame.mobi

при копировании файла jad на сервер?
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#967. tipsun Off (19)
Moderator
2013.03.04 10:10
Vamp, даже если ты определишь место, то как избавиться собираешься? Просто вырезать? Заместить - каша получится (если только не сделать фон черным и на нем сделать копирайт свой).
Если даже отрезать ту часть, где находится копирайт, то получится какой-то непонятный скрин.
Можно попробовать найти оригиналы на сайте, но это вообще маловероятно.
#968. Vamp Off (1)
Участник
2013.03.04 11:11
с заменой jar разобрался

$filetext = file_get_contents('http://rugame.mobi/game/'.$file.'');
$filetext=str_replace('rugame.mobi','site.ru', $filetext);


$h = fopen("load/".$filename."_Site_Ru.".$format."","w");

fwrite($h,$filetext)
fclose($h);
Добавлено спустя   3 минуты  42 секунды:
tipsun хочу сделать фон черным и на нем сделать свой копирайт.
главное как определять местоположение.

Оригинал не могу найти, а может его вообще нет smile
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#969. Vamp Off (1)
Участник
2013.03.04 11:11
еще вопрос:
Как в файле jar прочитать текст если файл в архиве jar?
путь к файлу META-INF/MANIFEST.MF

содержание файла MANIFEST.MF

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.6.0_26-b03 (Sun Microsystems Inc.)
MIDlet-1: Magic Zum,/icon.png,Mid
MIDlet-Vendor: Qplaze
MIDlet-Name: Magic Zum
MIDlet-Icon: \icon.png
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
MIDlet-Delete-Confirm: Больше Java - только на RuGame.Mobi
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#970. Gemorroj Off (107)
Administrator
2013.03.04 13:01
Код:
var_dump(file_get_contents('zip://file.jar#META-INF/MANIFEST.MF'));
#971. Vamp Off (1)
Участник
2013.03.04 14:02
<?php
include'pclzip.php';
var_dump(file_get_contents('zip://rugame.mobi/game/62184/little_red_riding_hood20128x128.jar#META-INF/MANIFEST.MF'));

?>
ошибка

Warning: file_get_contents(zip://rugame.mobi/game/62184/little_red_riding_hood20128x128.jar#META-INF/MANIFEST.MF) [function.file-get-contents]: failed to open stream: operation failed in /home/wapik/public_html/java/test.php on line 3
bool(false)
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#972. Gemorroj Off (107)
Administrator
2013.03.04 16:04
вообще, вот так, по смыслу надо было
Код:
var_dump(file_get_contents('zip://http://rugame.mobi/game/62184/little_red_riding_hood20128x128.jar#META-INF/MANIFEST.MF'));
zip:// - это дополнительный враппер перепаковывающий налету данные.
но так работать не будет, из-за того, что данные получаем удаленно (http).
поэтому сначала скопируй файл к себе во временную директорию и с ним работай, по окончанию - удаляй.
#973. Vamp Off (1)
Участник
2013.03.04 17:05
Gemorroj
и снова в тупик smile

теперь как мне с помощью
$text=str_replace('rugame.mobi','site.ru', $text);
перезаписать адрес сайта в файле META-INF/MANIFEST.MF  ?
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#974. Gemorroj Off (107)
Administrator
2013.03.04 20:08
Для записи, zip:// уже не подойдет. (http://www.php.net/manual/ru/wrappers.compression.php).
Лучше смотреть в сторону более функционального класса ZipArchive.

Код:
span style="color: #0000BB"><?php$zip = new ZipArchive;$zip->open('test.jar');// Получаем манифест$manifest = $zip->getFromName('META-INF/MANIFEST.MF');$manifest = str_replace('rugame.mobi', 'site.ru', $manifest);// Удаляем старый манифест$zip->deleteName ('META-INF/MANIFEST.MF');// Добавляем новый манифест$zip->addFromString('META-INF/MANIFEST.MF', $manifest);$zip->close();
#975. Vamp Off (1)
Участник
2013.03.05 01:01
Gemorroj большое спасибо
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#976. Vamp Off (1)
Участник
2013.03.05 04:04
можно как то определить папку С картинкой?

вот ссылка на картинку
http://rugame.mobi/img_add.php?id=30743&pid=2

id - ето наверное папка
pid - номер картинки

оригинал без копирайта есть точно так как копирайт на картинке генерируется в случайном месте.


Наверное час искал оригинал и так не нашел sad

здесь http://jafan.ru/ такой самый ЗЦ как на ругаме.
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#977. Gemorroj Off (107)
Administrator
2013.03.05 11:11
нет. вполне возможно, что файлы вообще вне корневой директории для сервера.
#978. Vamp Off (1)
Участник
2013.03.05 18:06
а как тогда вырезать копирайт...
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#979. Gemorroj Off (107)
Administrator
2013.03.05 18:06
затереть его
#980. Vamp Off (1)
Участник
2013.03.05 19:07
да,
ну копирайт не на одном месте,
как определять где именно копирайт если положение копирайта генерируется?
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#981. Karayazi Off (1)
Участник
2013.03.05 22:10
Здравствуйте, в грабе во время скачки файла перенапрвляется на другую страницу с надписью:
We couldn't validate your request, please clear browser cache go back to the game page and select download again.
И по прямой ссылке на файл и через header('Location:
Скажите пожалуйста, как очистить кеш браузера, или как скачать файл?
#982. Vamp Off (1)
Участник
2013.03.05 23:11
на какой сайт граб?
Отредактировано Vamp (2013.03.05 23:11)
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#983. Karayazi Off (1)
Участник
2013.03.06 01:01
phoneky.com/games
#984. Vamp Off (1)
Участник
2013.03.06 02:02
наверное причина в cookies
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#985. Karayazi Off (1)
Участник
2013.03.06 13:01
Может есть какое то решение?
#986. Vamp Off (1)
Участник
2013.03.07 10:10
наверное нужно записывать cookies так как на phoneky.com/games чтоб скачать файл.
Отредактировано Vamp (2013.03.07 10:10)
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#987. WapStyle Off (3)
Участник
2013.03.08 19:07
При частом скачивании с 1 IP у них вместо файла даётся страница рекламы "тенькофф"
#988. Vamp Off (1)
Участник
2013.03.30 10:10
привет. Вывожу с БД случайную фотку вот так
$query = mysql_query("SELECT `photo`, `nickname`, `id`, `time` FROM `chat_users` WHERE `photo` = 'gif' OR `photo` = 'jpeg' ORDER BY RAND() DESC LIMIT 1;");

Как сделать чтоб случайная фотка менялась раз в минуту а не при каждом обновлении страницы??
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#989. Gemorroj Off (107)
Administrator
2013.03.30 11:11
Проще всего, наверное, будет сделать крон задание, на вытягивание фотки и запись в отдельный файл.
Пользователю просто показывать этот файл, без обращений к БД.
#990. Vamp Off (1)
Участник
2013.03.30 13:01
ясно.

вот ище вопрос:
как посчитать посты во всех записях в поле posts (собрать число постов всех пользователей в кучу)

$q = mysql_query("SELECT * FROM `users`");
$f = mysql_fetch_array($q);
echo $f['posts'];
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#991. Gemorroj Off (107)
Administrator
2013.03.30 13:01
Код:
SELECT SUM(`posts`) AS `cnt_posts` FROM `users`
#992. Vamp Off (1)
Участник
2013.03.31 00:12
спасибо
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#993. Vamp Off (1)
Участник
2013.04.01 12:12
привет, подскажи как добавить картинку в мр3 ?

procedure TForm1.Button1Click(Sender: TObject);
var tag:TID3Tag;
begin
tag.ID:='TAG';
tag.Title:='Название';
tag.Artist:='Исполнитель';
tag.Album:='Альбом';
tag.Year:='2004';
tag.Comment:='Комменты';
tag.Genre:=5; //Жанр
If writeId3Tag('demo.mp3', @tag) then showmessage('Поменяли всё');
end;
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#994. Gemorroj Off (107)
Administrator
2013.04.01 12:12
Delphi чтоли? ты форумом ошибся)
#995. Vamp Off (1)
Участник
2013.04.14 17:05
привет, как обрезать число


с 26.0249999999999
в 26.02
или
с 3.4249999999999
в 3.42

??
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#996. Gemorroj Off (107)
Administrator
2013.04.14 19:07
round
#997. Vamp Off (1)
Участник
2013.04.15 01:01
ну да, спасибо
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#998. troi Off (0)
Участник
2013.04.21 19:07
всем привет. у меня такой вопрос кто нить может дать пример кода для полосы опыта к онлайн игре то есть полоска с заполнением при наборе опыта а при переходе на новый уровень она обнулялась
#999. TLENS Off (14)
Moderator
2013.05.15 00:12
Какой класс выбрасывает исключения тип Notice (Предупреждение)?
Пробовал наследоваться от Exception и ErrorExeption они выдают фатальную ошибку. А мне надо выбросить просто предупреждения и что бы оно записалось в лог.
#1000. Gemorroj Off (107)
Administrator
2013.05.15 10:10
TLENS, функция trigger_error
#1001. AND Off (11)
Участник
2013.05.15 10:10
TLENS, подойдет функция trigger_error с флагом E_USER_NOTICE ?
Опоздал)
Отредактировано AND (2013.05.15 10:10)
#1002. TLENS Off (14)
Moderator
2013.05.15 11:11
Спасибо, пригодится. Написал уже крокодила что бы вел логи) Может понадобится.
Код:
span style="color: #0000BB"><?php//include_once ROOT . '/' . SYSTEM . '/function.php'; // Вспомогательные функцииfunction is__writable($path) {//will work in despite of Windows ACLs bug//NOTE: use a trailing slash for folders!!!//see http://bugs.php.net/bug.php?id=27609//see http://bugs.php.net/bug.php?id=30931 if ($path{strlen($path)-1}=='/') // recursively return a temporary file path return is__writable($path.uniqid(mt_rand()).'.tmp'); else if (is_dir($path)) return is__writable($path.'/'.uniqid(mt_rand()).'.tmp'); // check tmp file for read/write capabilities $rm = file_exists($path); $f = @fopen($path, 'a'); if ($f===false) return false; fclose($f); if (!$rm) unlink($path); return true;}class MyException extends Exception { }/* * @name Log * @date 14.05.2013 * @author TLENS */class Log { static private $openLogFile = array(); static private $error = null; static private $log = null; static private $localPath = "Log"; private $logName; private $logData = array(); private $logDir; private $logFileName; private $logFullPath; private $display = false; static public function &init ($name, $mess = null) { if (!isset(Log::$openLogFile[$name])) { Log::$openLogFile[$name] = new Log($name); } Log::$openLogFile[$name]->addMessage($mess); return Log::$openLogFile[$name]; } private function __construct($logName, $display = false) { $this->logName = $logName; $this->display = $display; $this->logFileName = "$this->logName.log"; $this->logDir = ROOT . '/' . DATA . '/' . Log::$localPath . ''; $this->logFullPath = "$this->logDir/$this->logFileName"; if (!file_exists($this->logFullPath)) { $this->addMessage("Created log-file $this->logName"); } } public function __destruct() { //var_dump($this); if (sizeof($this->logData) === 0) { return; } if (!is_dir($this->logDir)) { throw new MyException("Dir '$this->logDir' not found! Plese create this dir."); return; } if (!is__writable($this->logDir)) { throw new MyException("Dir '$this->logDir' puts permission denied! Plese config cmod this dir."); return; } if (file_exists($this->logFullPath) && !is_writable($this->logFullPath)) { throw new MyException("File '$this->logFullPath' fputs permission denied! Plese config this file."); } if (!($fp = fopen($this->logFullPath, 'a'))) { throw new MyException("Falied to open $this->logFullPath!"); } foreach ($this->logData as $log) { $date = date("Y/m/d h:i:s", $log['time']); fputs($fp, "$date [$this->logName]: {$log['mess']}\n"); } fclose($fp); } public function addMessage($mess) { if (!$mess) return; $mess = str_replace("\n", "\n\t", $mess); $this->logData[] = array('time' => time(), 'mess' => $mess); } static public function error($message) { if (!$message) return; if (!Log::$error) { Log::$error = new Log("Error"); } Log::$log->addMessage($message); } static public function log($message) { if (!$message) return; if (!Log::$log) { Log::$log = new Log("log"); } Log::$log->addMessage($message); }}?>
Может можно было это все реализовать в классе MyException но я же не китаец что бы все упрощать)
#1003. Gemorroj Off (107)
Administrator
2013.05.15 12:12
TLENS, сейчас стандарт де факто в php логгерах - это Monolog.
#1004. TLENS Off (14)
Moderator
2013.05.15 18:06
Есть ли в php расширение какое то для взаимодействия с программами через через fcgi?
#1005. Gemorroj Off (107)
Administrator
2013.05.15 18:06
TLENS, по идее самому через сокеты можно сделать. Хотя хз, слишком специфичная задача, не сталкивался сам.
#1006. TLENS Off (14)
Moderator
2013.05.15 20:08
Попробую сам написать но уже тесно связанную со своей задачей. меня больше привлекает непрерывное соединение
#1007. tipsun Off (19)
Moderator
2013.06.23 02:02
Как это работает?
http://www.pvsm.ru/yii/1926
http://www.manhunter.ru/webmaster/412_s … ssiva.html
#1008. tipsun Off (19)
Moderator
2013.06.27 14:02
tipsun, в google забанили? Вот, посмотри тут: http://www.cyberforum.ru/php/thread157657.html
#1009. Gemorroj Off (107)
Administrator
2013.06.27 15:03
tipsun, ты бы просто конкретнее написал что не понятно. а то хз что из этого кода описывать
#1010. Vamp Off (1)
Участник
2013.09.11 22:10
привет, как можно определить на каких сайтах стоит граббер на мой сайт?


вед в статистике опредиляется только ip
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#1011. Vamp Off (1)
Участник
2013.09.12 03:03
вопрос: использует такой код функцию FFmpeg?

и дает такой код большую нагрузку на хост?




КОД

Код:
span style="color: #0000BB"><?php$img = cha($_GET['img']); $wh = getimagesize('copy.png'); $fh = getimagesize('http://7ba.ru/'.$img); $rwatermark = imagecreatefrompng('copy.png'); $sx=$fh[0]-$wh[0]-0; $sy=$fh[1]-$wh[1]-0; if(pathinfo($img, PATHINFO_EXTENSION)=='jpg' || pathinfo($img, PATHINFO_EXTENSION)=='jpeg') { $rfile = imagecreatefromjpeg('http://7ba.ru/'.$img); imagecopy($rfile, $rwatermark, $sx, $sy, 0, 0, $wh[0], $wh[1]); } elseif(pathinfo($img, PATHINFO_EXTENSION)=='gif') { $rfile = imagecreatefromgif('http://7ba.ru/'.$img); imagecopy($rfile, $rwatermark, $sx, $sy, 0, 0, $wh[0], $wh[1]); } elseif(pathinfo($img, PATHINFO_EXTENSION)=='png') { $rfile = imagecreatefrompng('http://7ba.ru/'.$img); imagecopy($rfile, $rwatermark, $sx, $sy, 0, 0, $wh[0], $wh[1]); } imagegif($rfile,'', '100'); imagedestroy($rwatermark); imagedestroy($rfile);
Отредактировано tipsun (2013.09.12 12:12)
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#1012. Gemorroj Off (107)
Administrator
2013.09.12 15:03
по ip и определи.
#1013. Vamp Off (1)
Участник
2013.09.12 22:10
а как на счет кода?
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#1014. TLENS Off (14)
Moderator
2013.10.21 04:04
Как лучше клеить строки? Чета не нашел никакого примера для правильной работы с частым склеиванием строк.
Может там потоками например, или можно смело клеить $str = $str1 . $str2 . $str3; Просто как правило за такое руки отрывают а в пхп хз как оно работает с памятю?
#1015. Gemorroj Off (107)
Administrator
2013.10.21 10:10
Vamp, не очень код.
TLENS, все ок. используй обычную точку.
#1016. TLENS Off (14)
Moderator
2013.10.21 22:10
Gemorroj написал:
TLENS, все ок. используй обычную точку.
Спасибо.
#1017. TLENS Off (14)
Moderator
2013.11.12 14:02
Не пойму почему url_decode не декодирует &amp;
есть строка типа var1=val1&am;var2=var2&am;
parse_str возвращает array([var1]=> 'val1', [amp;var2] => 'val2'...
urldecode боюсь юзать так как могу нарушить структуру для парсера
#1018. TLENS Off (14)
Moderator
2013.11.12 14:02
О помогло htmlspecialchars_decode
#1019. Vamp Off (1)
Участник
2013.12.28 21:09
привет, как сделать Ограничение скорости отдачи файлов с помощью htaccess  ?
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#1020. Gemorroj Off (107)
Administrator
2013.12.28 21:09
Vamp, модуль соответствующий под апач нужно поставить. С ходу находится такое http://httpd.apache.org/docs/trunk/mod/ … limit.html
#1021. Vamp Off (1)
Участник
2013.12.31 18:06
Здравствуйте, помогите пожалуйста разобраться с такой проблемой:
есть сайт с выделенным сервером при заходе, прежде чем начать загружаться, возникает задержка, которая иногда доходит до 15-45 сек. При этом иногда при заходе на эту же страницу задержки практически не возникает (даже после отчистки кеша).

досс атаки нет.

Подскажите, в каком направлении копать для решения?
Добавлено спустя   1 минуту  43 секунды:
так же после перезапуска апача все работает нормально минут 3
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#1022. Gemorroj Off (107)
Administrator
2013.12.31 20:08
касается любой и статических страниц? или только php?
во первых ставить мониторинги расходования ресурсов.
#1023. Vamp Off (1)
Участник
2014.01.01 02:02
у меня только php

генерация страницы 0.0256 сек. а грузится 15 секунд
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#1024. Gemorroj Off (107)
Administrator
2014.01.01 12:12
ну может по диску проседание или сеть забита.. короче ставь мониторинги ресурсов.
#1025. Vamp Off (1)
Участник
2014.01.01 21:09
мониторинги ресурсов - что ето?

сайт тормозит а вот файлы качаются нормально с сайта
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#1026. Gemorroj Off (107)
Administrator
2014.01.01 23:11
Vamp, посмотри эту тему http://wapinet.ru/forum/viewtopic.php?pid=26820
#1027. TLENS Off (14)
Moderator
2014.01.03 01:01
Vamp попробуй последить за продолжительной трасировкой. Возможно проблема не в твоем сервере.
#1028. Vamp Off (1)
Участник
2014.01.15 23:11
привет, можно лы перезапускать апач без входа в роот панель?


с помощью php
Отредактировано Vamp (2014.01.15 23:11)
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#1029. Gemorroj Off (107)
Administrator
2014.01.16 00:12
через консоль. попробуй apachectl restart
#1030. tipsun Off (19)
Moderator
2014.03.15 23:11
Правильный ход мысли? Если нет, скиньте пожалуйста ссылку на схему работы. Я искал и Symfony, и Yii, но не нашел..
Вложения
Application.jpg 78kb {842x560} [загрузок: 892]
#1031. Gemorroj Off (107)
Administrator
2014.03.16 10:10
tipsun, MVC да. Все так.
#1032. tipsun Off (19)
Moderator
2014.03.16 11:11
Gemorroj, спасибо.
#1033. TLENS Off (14)
Moderator
2014.03.29 16:04
Не врубаюсь почему json_decode не хочет парсить строку. последняя ошибка выходит JSON_ERROR_CTRL_CHAR. Уже не знаю что ему нужно.
Пытался прогнать текст по этим регуляркам
Код:
span style="color: #0000BB"><?php$file = preg_replace_callback("/[a-яА-ЯёЁ]+/ui", function($r) { return rawurlencode($r[0]); }, $file);
Код:
span style="color: #0000BB"><?php$file = preg_replace_callback("/\"(.+?)\"([\,\]])/u", function($r) { return '"'. rawurlencode($r[1]) . '"'.$r[2]; }, $file);
вот сам текст
Показать скрытый текст
#1034. TLENS Off (14)
Moderator
2014.04.09 06:06
Как удалить битый utf-8 символ. Глянул в гугле там вроде все варианты перекодирования с игнором или какие то велосипеды. Неужели нету встроенной функции?
(Гугл начал возвращать криво обрезанные тайтлы )
добавили называется костыль
Тег <media:title> определяет название видео. Это поле имеет максимальную длину 60 символов или 100 байт – в зависимости от того, какой предел будет достигнут раньше.
#1035. Gemorroj Off (107)
Administrator
2014.04.09 10:10
что такое "битый utf-8 символ"?
#1036. TLENS Off (14)
Moderator
2014.04.09 15:03
Gemorroj написал:
что такое "битый utf-8 символ"?

Обрезанный символ на пополам)
#1037. Gemorroj Off (107)
Administrator
2014.04.09 18:06
хм. хз.
как он так обрезался?
может как-нибудь прогнать 2 раза через iconv с параметром IGNORE
#1038. TLENS Off (14)
Moderator
2014.04.10 17:05
Gemorroj Да я так и делаю сейчас) Можно один раз из unicode в unicode с игнорированием
#1039. alibek_kz Off (0)
Участник
2014.05.06 11:11
Вопрос к TLENS
как вы сделали скачку видео от ютубе на сайте v-s.mobi?
#1040. TLENS Off (14)
Moderator
2014.05.06 20:08
alibek_kz написал:
Вопрос к TLENS
как вы сделали скачку видео от ютубе на сайте v-s.mobi?
Тебе uml проекта предоставить или же сразу исходный код?
#1041. alibek_kz Off (0)
Участник
2014.05.06 20:08
TLENS написал:
alibek_kz написал:
Вопрос к TLENS
как вы сделали скачку видео от ютубе на сайте v-s.mobi?
Тебе uml проекта предоставить или же сразу исходный код?
Исходной код))))
#1042. TLENS Off (14)
Moderator
2014.05.06 20:08
alibek_kz написал:
TLENS написал:
alibek_kz написал:
Вопрос к TLENS
как вы сделали скачку видео от ютубе на сайте v-s.mobi?
Тебе uml проекта предоставить или же сразу исходный код?
Исходной код))))
php ни причем. У меня самописный проксисервер на Go
#1043. tipsun Off (19)
Moderator
2014.05.17 14:02
TLENS, я думал это API самого YouTube, не?
#1044. TLENS Off (14)
Moderator
2014.05.17 20:08
tipsun написал:
TLENS, я думал это API самого YouTube, не?
Не совсем. Апи не дает прямые ссылки на файлы но а в остальном то да через него
#1045. TLENS Off (14)
Moderator
2014.06.07 09:09
Какая роль грависа в php?
Случайно в массиве ввел ключ используя гравис а не кавычки. Боже как же я долго я искал баг.
#1046. Vamp Off (1)
Участник
2014.06.30 00:12
подскажите пожалоста

как передать потоком видео через rtsp?

такой ссылкой rtsp://domen.ru/file.3gp
Отредактировано Vamp (2014.06.30 01:01)
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#1047. TLENS Off (14)
Moderator
2014.07.11 16:04
Vamp написал:
подскажите пожалоста
как передать потоком видео через rtsp?
такой ссылкой rtsp://domen.ru/file.3gp
Собственно нужен тебе сервер. Слышал о модулях для nginx так же мне известно что ffmpeg может транслировать камеру. Не знаю по поводу файлов. Когда то изучал протокол rtsp хотел сделать программу которая будет сохранять потоковое видео. Но забросил. Сейчас nodejs сильно продвигается и у него десятки всяких серверов есть. Возможно найдешь и rtmp, trsp сервер. Если известен тебе js то проблем не должно быть.
#1048. Vamp Off (1)
Участник
2014.07.12 05:05
TLENS к сожелению я js некогда не изучал.
ты за $ можешь мне ето сделать?


подскажите как через .htaccess передать пробел?


какой символ добавить
RewriteRule ^file/([0-9-a-zA-Z0-9._/%+()='-]+)$ sim.php?file=$1 [L,QSA]

такая вот ссылка

http://сайт.net/game/file/Dungeons%20Sword%20Soul%20Awakening%20240x320%20En-Vn.jad



%20 - ето пробел
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#1049. Gemorroj Off (107)
Administrator
2014.07.12 13:01
[\ ]
#1050. Vamp Off (1)
Участник
2014.07.12 18:06
Gemorroj спс
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#1051. TLENS Off (14)
Moderator
2014.07.19 14:02
Vamp написал:
ты за $ можешь мне ето сделать?
Нет
#1052. Vamp Off (1)
Участник
2014.07.20 14:02
TLENS спс smile
Нельзя вернуться в прошлое и изменить свой старт,
но можно стартовать сейчас и изменить свой финиш.
#1053. semoni
Гость
2014.10.07 14:02
привет, помогите.

<?
ffmpeg -i input1.mp4 -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.mp4 -qscale:v 1 intermediate2.mpg
cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.mp4
?>

почему в етом коде такая ошибка
Parse error: syntax error, unexpected T_STRING in /home/rclu/public_html/test.php on line 2



???
#1054. Gemorroj Off (107)
Administrator
2014.10.07 15:03
Потому что это вообще не php код..)
тебе нужно что-то типа:
Код:
span style="color: #0000BB"><?phpexec('ffmpeg -i input1.mp4 -qscale:v 1 intermediate1.mpg');exec('ffmpeg -i input2.mp4 -qscale:v 1 intermediate2.mpg');exec('cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg');exec('ffmpeg -i intermediate_all.mpg -qscale:v 2 output.mp4');
либо руками выполнить в консоли
#1055. semoni
Гость
2014.10.07 16:04
ты бы немог собрать такой скрипт?
за хорошою оплату
#1056. semobi
Гость
2014.10.07 16:04
на PHP нет библиотеки для вставки кадров в видео (И совмещение).

ето правда?
#1057. Gemorroj Off (107)
Administrator
2014.10.07 19:07
semobi, есть прослойки над консольным ffmpeg. https://github.com/PHP-FFMpeg/PHP-FFMpeg
#1058. meison
Гость
2014.10.13 19:07
привет, подскажите как дать файл на скачку

например http://wapinet.ru/papka/post.mp3

чтобы давать не прямую ссылку на файл а времинную

например так http://wapinet.ru/СгенерувыныйКОД/post.mp3

просто у меня очень много выкачуют другие сайты файлы и сервер умирает от етого.
подскажите пожалойста?
#1059. Gemorroj Off (107)
Administrator
2014.10.13 20:08
если web-сервер - apache, то rewrite rule правилом.
ссылка:
Код:
http://example.com/download/sdfhdfgh435fsgw/file.mp3
правило:
Код:
RewriteRule ^download/([a-z0-9])/(.+)?$ /download.php?code=$1&file=$2
#1060. meison
Гость
2014.10.13 21:09
каким способом отдавать файл?


header("Location: http://site.net/file.mp3");
#1061. TLENS Off (14)
Moderator
2014.10.13 22:10
meison написал:
каким способом отдавать файл?


header("Location: http://site.net/file.mp3");
Здесь все что тебе нужно http://habrahabr.ru/post/151795/
#1062. miseterweb
Гость
2014.10.22 02:02
привет, подскажите что в етом коде не так?
Код:
span style="color: #0000BB"><?phpclass download { public $properties = array('old_name' => '', 'new_name' => '', 'type' => '', 'size' => '', 'resume' => '', 'max_speed' => ''); public $range = 0; public function download($path, $name, $resume = 0, $max_speed = 0) { $name = ($name == '') ? substr(strrchr('/' . $path, '/'), 1) : $name; $name = explode('/', $name); $name = end($name); $file_size = $this->getFilesize($path); $this->properties = array('old_name' => $path, 'new_name' => $name, 'type' => "application/force-download", 'size' => $file_size, 'resume' => $resume, 'max_speed' => $max_speed); if ($this->properties['resume']) { if (isset($_SERVER['HTTP_RANGE'])) { $this->range = $_SERVER['HTTP_RANGE']; $this->range = str_replace("bytes=", '', $this->range); $this->range = str_replace("-", '', $this->range); } else { $this->range = 0; } if ($this->range > $this->properties['size']) $this->range = 0; } else { $this->range = 0; } } public function download_file() { $ctype_arr = array('mp3' => 'audio/mp3'); ($this->range) ? header($_SERVER['SERVER_PROTOCOL'] . ' 206 Partial Content') : header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK'); header("Pragma: public"); header("Expires: 0"); header("Cache-Control:"); header("Cache-Control: public"); header("Content-Description: File Transfer"); $pathinfo = pathinfo($this->properties['old_name']); $ras = $pathinfo['extension']; (array_key_exists($ras, $ctype_arr)) ? header("Content-Type: " . $ctype_arr["$ras"]) : header("Content-Type: " . $this->properties["type"]); header('Content-Disposition: attachment; filename="' . $this->properties['new_name'] . '";'); header("Content-Transfer-Encoding: binary"); if ($this->properties['resume']) header("Accept-Ranges: bytes"); if ($this->range) { header("Content-Range: bytes {$this->range}-" . ($this->properties['size'] - 1) . '/' . $this->properties['size']); header("Content-Length: " . ($this->properties['size'] - $this->range)); } else { header("Content-Length: " . $this->properties['size']); } @ini_set('max_execution_time', 0); @set_time_limit(); $this->_download($this->properties['old_name'], $this->range); } public function _download($filename, $range = 0) { @ob_end_clean(); if (($speed = $this->properties['max_speed']) > 0) $sleep_time = (8 / $speed) * 1e6; else $sleep_time = 0; $handle = fopen($filename, 'rb'); fseek($handle, $range); if ($handle === false) { return false; } while (!feof($handle)) { print (fread($handle, 1024 * 8)); ob_flush(); flush(); usleep($sleep_time); } fclose($handle); return true; } /** * Функция подсчета размера файла */ public function getFilesize($url) { if(file_exists($url)) { return filesize($url); } else { $x = array_change_key_case(get_headers($url, 1), CASE_LOWER); return (strcasecmp($x[0], 'HTTP/1.1 200 OK') != 0) ? $x['content-length'][1] : $x['content-length']; } } } ?>
#1063. masterweb
Гость
2014.10.22 02:02
при нажатии скачать файл через етот класс то все нормально с размером файла, но когда сам файл качается то размер в закачках неопоределен. в чем дело?
#1064. misterweb
Гость
2014.10.22 02:02
скрины
http://wapinet.ru/static/file/2014/10/22//5446e420c7261.jpg
http://wapinet.ru/static/file/2014/10/22//5446e3f6d28dc.jpg
#1065. Gemorroj Off (107)
Administrator
2014.10.22 11:11
как минимум HTTP_RANGE не верно обрабатывается. и могут быть потенциальные проблемы в строчке "return (strcasecmp($x[0], 'HTTP/1.1 200 OK') != 0) ? $x['content-length'][1] : $x['content-length'];"
#1066. misterweb
Гость
2014.10.22 13:01
как исправить подскажешь?

я не автор кода.
#1067. tipsun Off (19)
Moderator
2014.10.25 23:11
Короче вот мой бред по поводу Singleton
Типа чтоб каждый раз в классе не писать код Singleton:
Код:
span style="color: #0000BB"><?phpclass SomeClass {//+ Singleton private static $_instance; private function __clone() { } private function __wakeup() { } public static function instance() { if (null === self::$_instance) { self::$_instance = new self; } return self::$_instance; } private function __construct() { } //- Singleton}
Я подумал запихать код в отдельный файл-класс и от него нужные классы наследовать..
Вот что-то типа такого:
Код:
span style="color: #0000BB"><?php// Singleton.phpclass Singleton{ private static $_instance = array(); public static function instance() { $class = get_called_class(); if (null === self::$_instance[$class]) { self::$_instance[$class] = new $class; } return self::$_instance[$class]; } private function __construct() {} private function __clone() {} private function __wakeup() {}}class Loader extends Singleton{ private $_state; public function register() { if (! $this->_state) { return $this->_state = spl_autoload_register(array($this, '_load')); } } public function unregister() { if ($this->_state) { return ! $this->_state = ! spl_autoload_unregister(array($this, '_load')); } } private function _load($className) { require_once($className . CLASS_EXTENSION); }}
#1068. Gemorroj Off (107)
Administrator
2014.10.26 11:11
да-да посмотрел решения в инете, все сводится именно к этому)
единственное что, сам класс Singleton хорошо бы объявить абстрактным.
#1069. tipsun Off (19)
Moderator
2014.10.26 12:12
Gemorroj написал:
да-да посмотрел решения в инете, все сводится именно к этому)
единственное что, сам класс Singleton хорошо бы объявить абстрактным.
Спасибо
#1070. tipsun Off (19)
Moderator
2014.10.29 18:06
Как лучше всего передавать конфигу!?
Я вот не знаю, что выбрать:
----
1) Передавать через общего класса-предка
Код:
span style="color: #0000BB"><?phpabstract class Progenitor{ protected static $_cfg, $_registry;}
----
2) Создать спец. класс
Код:
span style="color: #0000BB"><?phpclass Config{ private static $_cfg; public static function get($arg) { return self::$_cfg[$arg]; }}
----
3) Каждый класс имеет собственные методы для принятия конфиги:
Код:
span style="color: #0000BB"><?phpclass SomeClass{ private static $_cfg, $_someParam; public static function setCfg($arg) { self::$_cfg = $arg; }// OR public static function setSomeParam($arg) { self::$_someParam = $arg; }}
----
Для автозагрузчика нужен "корень" и расширение, например.
#1071. Gemorroj Off (107)
Administrator
2014.10.29 18:06
ну, универсальнее - 2 вариант. отдельный класс.
#1072. tipsun Off (19)
Moderator
2014.10.29 19:07
Если делать этим вариантом, то надо делать все классы не статическими, чтоб через конструктор можно было сразу общую конфигу скинуть и забыть. Т.е. все равно в классе мы будем создавать переменную $_cfg
Код:
span style="color: #0000BB"><?phpclass SomeClass{ private $_cfg; public function __construct() { $this->_cfg = Cfg::get[__CLASS__]; }}
Допустим можно наследоваться от Progenitor и в определенном классе просто загрузить всю конфигу и забыть
#1073. Gemorroj Off (107)
Administrator
2014.10.29 20:08
конфиг - синглтон.
Config::getInstance()->get('key');
#1074. tipsun Off (19)
Moderator
2014.10.30 20:08
Gemorroj написал:
конфиг - синглтон.
Config::getInstance()->get('key');
Зачем? Почему не static?
#1075. Gemorroj Off (107)
Administrator
2014.10.30 22:10
а зачем статик? как ты его инициализировать будешь?
#1076. tipsun Off (19)
Moderator
2014.10.31 11:11
Ну через bootstrap можно.
#1077. sql555
Гость
2015.01.21 21:09
привет. Есть запрос

Код:
SELECT COUNT(`id`) AS `cnt`, `name`, `score` FROM `table` WHERE `name` = 'aaa' GROUP BY `name` ORDER BY `score` LIMIT 1
и в общем мне нужно, чтобы этот запрос вывел наибольший score, но выводит он вообще как-то странно... Как быть, подскажите.

нужно вывести из таблицы запись с определнным 'name'(это поле у каждого юзера свое - записей с одинаковым нейм может быть в таблице несколько), причем одну. Соответственно, когда я группирую по 'name' - у меня будет только один результат - хоть с LIMIT 1, хоть без него.
И мне нужен именно тот результат, в котором поле 'score' - наибольшее. Поэтому и пытаюсь отсортировать по этому полю в порядке убывания. А mysql сортирует в данном случае "от балды". Т.е. если есть у меня, например, записи со 'score' 1, 2, 3, 4, 5, то они при добавлении/удалении записи сортируются явно не по убыванию.

Помогите?
#1078. Gemorroj Off (107)
Administrator
2015.01.22 12:12
Код:
SELECT COUNT(1) AS `cnt`, `name`, MAX(`score`) AS `max_score` FROM `table` WHERE `name` = 'aaa' GROUP BY `name`
у тебя там сначала группировка, а потом сортировка. Поэтому ты сначала получаешь 1 запись с name = aaa, а потом эту 1 запись сортируешь
#1079. sql555
Гость
2015.01.22 15:03
еще вопрос
Код:
$q = mysql_query("SELECT `id`, `subject`, `read`, `from`, `lid`, `time`, MAX(`lid`) AS max, (select count(*) FROM `letters` WHERE `id` = '".$id."' AND `to` = '".$id."') AS cnt FROM `chat_letters` WHERE `id` = '".$id."' AND `to` = '".$id."' GROUP BY `from` ORDER BY `read` = 0 DESC, max DESC LIMIT $start, 10;");
непонимаю почему непроисходит сортировка по `read` = 0 DESC

помогите?
#1080. sql555
Гость
2015.01.22 15:03
ето одна таблица, пропуст дописать chat_ в примере.
#1081. Gemorroj Off (107)
Administrator
2015.01.22 18:06
нельзя указывать условия сортировки. ты можешь указать только колонку по которой сортировать. т.е. ноль там не понятно к чему.
#1082. sql555
Гость
2015.01.25 10:10
Привет.  вот нашол и переделал код наложение копирайта.
все работает, вот задаю себе вопрос "Все ли я нормально собрал"
подскажите?

Код:
span style="color: #0000BB"><?php$img = 'file.jpg';$wh = getimagesize('cop.png'); //копирайт$fh = getimagesize($img); //файл$sx=$fh[0]-$wh[0]-3;$sy=$fh[1]-$wh[1]-5;$rfile = imagecreatefromjpeg($img);imagecopy($rfile, $rwatermark, $sx, $sy, 0, 0, $wh[0], $wh[1]);imagejpeg($rfile,'filecop.jpg'); //сохраняемimagedestroy($rfile);
Отредактировано Gemorroj (2015.01.26 11:11)
#1083. sql
Гость
2015.01.25 11:11
Проблема в том что после наложения копирайта картинка стает с 200кб в 135кб

почему так?
#1084. Gemorroj Off (107)
Administrator
2015.01.26 11:11
если тебя устраивает результат, то нормально.
почему изменился размер не знаю, т.к. не спец в графике
#1085. tipsun Off (19)
Moderator
2015.01.28 22:10
Качество выстави на максимум на выходе. Кажется тот же imagejpeg имеет 3й параметр качество.
Добавлено спустя   3 минуты  40 секунд:
http://php.net/manual/ru/function.imagejpeg.php
#1086. despod Off (0)
Участник
2015.07.19 13:01
Всем привет!
есть небольшой кусочек кода
вроде все работает но Гистограмма уходет почему то вниз причем не вся только 1.3.6 из 10
остольные норм

Код:
span style="color: #0000BB"><?php$arr = array('20','55','7','189','102','27','200','76','300','210');$arrX = array('Q','W','E','R','T','Y','U','I','O','P');$vizit = 700;Header("Content-type: image/png");$imageY = 150; $im = imageCreate(370, $imageY);//300x120 $colors = imageColorAllocate($im, 0, 0, 0); $color1 = imageColorAllocate($im, 0, 110, 240);for ($x=1; $x<=10; $x++){ $h = round(($arr[$x-1]*$imageY)/$vizit); imageFilledRectangle($im,$x*34-13,$imageY-$h,$x*34+13, $imageY-10, $color1); ImageString ($im, 0, $x*34-13, $imageY-$h-10, round(($arr[$x-1] * 100 / $vizit),1).'%', $color1); } imagePng($im); imageDestroy($im);
Вложения
Гистограмма.jpg 26kb {549x373} [загрузок: 864]
Отредактировано despod (2015.07.19 13:01)
#1087. Gemorroj Off (107)
Administrator
2015.07.19 13:01
поправленный вариант:
Код:
span style="color: #0000BB"><?php$arr = array('20','55','7','189','102','27','200','76','300','210');$arrX = array('Q','W','E','R','T','Y','U','I','O','P');$visit = 700;//header("Content-type: image/png");$imageY = 150;$im = imagecreate(370, $imageY); //300x120$colors = imagecolorallocate($im, 0, 0, 0);$color1 = imagecolorallocate($im, 0, 110, 240);for ($x = 1; $x <= 10; $x++) { $h = round(($arr[$x - 1] * $imageY) / $visit); $xImageLeft = $x * 34 - 13; $xImageRight = $x * 34 + 13; $yImageLeft = $imageY - $h - 10; $yImageRight = $imageY - 10; $yImageRightPercent = $yImageLeft - 10; $percentString = round(($arr[$x - 1] * 100 / $visit), 1) . '%'; imagefilledrectangle($im, $xImageLeft, $yImageLeft, $xImageRight, $yImageRight, $color1); imagestring($im, 0, $xImageLeft, $yImageRightPercent, $percentString, $color1);}imagepng($im, '/test.png');imagedestroy($im);
Получалось что если колонка размером меньше 10 пикселей (твой отступ), то ломалась логика прорисовки y координат. Сделал отступ по 10 пикселей с обеих y координат.
И еще все функции в php должны быть в нижнем регистре. Не рекомендуется писать как попало используя регистронезависимость некоторых частей php.
#1088. despod Off (0)
Участник
2015.07.19 14:02
спасибо грамадное!
на будущее запомню!
#1089. koji Off (3)
Участник
2015.08.08 17:05
хранить видео в нескольких форматах (как mp4, 3gp, flv) слишком объемно, позволит ли ffmpeg конвертировать несколько видео в секунду, при явном запросе на требуемый формат, не пожирая все ресурсы? т.е. что дешевле обойдется память на жд или оператив.
Отредактировано koji (2015.08.08 17:05)
#1090. Gemorroj Off (107)
Administrator
2015.08.09 08:08
нет. так не получится. придется хранить сконвертированное видео. конвертирование может занимать довольно продолжительное время, а главное оно очень трудоемкое в плане процессорного времени.
#1091. koji Off (3)
Участник
2015.08.10 22:10
Добавляя файл на сайте пользователь может выбрать для него метки
<input type="checkbox" name="labels[]" value="' . $key . '">
<!-- $key - это ID метки в БД -->

При отправке формы проверяю данные

if (isset ($_POST['labels']))
{
       Теперь нужно проверить массив $_POST['labels'] на наличие существования меток, то есть не передали ли хрен пойми что

загнал все метки с базы в массив $labels[$row[0]] = $row[1]; а как теперь сделать проверку не знаю. Нужно как-то перебрать ключи с переданного массива формой и проверить есть ли все они в массиве со всеми метками $labels

как бы проверить?
Отредактировано koji (2015.08.10 22:10)
#1092. Gemorroj Off (107)
Administrator
2015.08.11 12:12
Код:
span style="color: #0000BB"><?phpforeach ($_POST['labels'] as $postLabel) { if (!in_array($postLabel, $labels)) { throw new Exception('Неизвестная метка "' . $postLabel . '".'); }}
если я правильно понял задачу
#1093. tipsun Off (19)
Moderator
2015.08.11 17:05
А можно свой вариант предложить?
Вроде работает.
Код:
span style="color: #0000BB"><?php$getTags = array( 'груша', 'яблоко', //'банан', //'арбуз',);$sysTags = array( 'клубника', 'апельсин', 'груша', 'яблоко',);$wrongTags = array();if (($wrongTags = array_diff($getTags, $sysTags))) { echo 'false<br/>'; print_r($wrongTags);} else { echo 'true<br/>'; print_r($wrongTags);}
#1094. Gemorroj Off (107)
Administrator
2015.08.11 18:06
tipsun, ну да, твой вариант лучше)
#1095. koji Off (3)
Участник
2015.08.12 00:12
tipsun, супер smile
#1096. despod Off (0)
Участник
2015.08.18 09:09
Всем привет подскажите какой нибуть норм форум поставить! хочу от этого форума основной сайт построить
#1097. despod Off (0)
Участник
2015.08.19 18:06
Gemorroj, для чего нужно вот это
Код:
if(!defined('PUN')){
exit;
}
что то типо защиты?
#1098. Gemorroj Off (107)
Administrator
2015.08.19 19:07
despod написал:
что то типо защиты?
да. чтобы небыло возможности открыть страницу, если не определена константа.
вообще это очень старый код, и перенимать из него что-либо не стоит.
#1099. despod Off (0)
Участник
2015.08.19 21:09
я хочу этот форум поставить ты мне давал давно его !
стоит его ставить?
или уже какой то обнавленный есть?
Отредактировано despod (2015.08.19 21:09)
#1100. Gemorroj Off (107)
Administrator
2015.08.20 07:07
despod написал:
я хочу этот форум поставить ты мне давал давно его !
стоит его ставить?
или уже какой то обнавленный есть?
http://forum.wapinet.ru/viewtopic.php?id=69 смотри 1 пост
#1101. despod Off (0)
Участник
2015.09.02 08:08
Привет!
есть кусочек кода
Код:
$a = array('q','w','e','r','t','y','u','i','o','p','a','s','d','f');
 
for($i=0;$i<=sizeof($a);$i++){
echo '<tr>';
if($i%4!=0){$n='';}else{$n='<br/>';}
echo $a[$i].$n;
}
выводит он масив так
q
wert
yuio
pasd
f
а нужно
qwer
tyui
opas
df
что тут не правильно?
#1102. Gemorroj Off (107)
Administrator
2015.09.02 09:09
собери в строку и разбей по 4 символа.
Код:
span style="color: #0000BB"><?php$a = array('q','w','e','r','t','y','u','i','o','p','a','s','d','f');$str = implode('', $a);$arr4 = str_split($str, $str);foreach ($arr4 as $val) { echo $val;}
#1103. despod Off (0)
Участник
2015.09.08 08:08
Cпасибо!
но такой вопрос я вывожу с бд названия
и хочу чтобы шли в 2 колонки  вот и пытаюсь что то организовать
#1104. tipsun Off (19)
Moderator
2015.09.08 13:01
despod, В 2 колонки, это тебе надо html вертеть или я не правильно это представил.
#1105. koji Off (3)
Участник
2015.09.09 11:11
Что можно добавить в пароль чтобы и его безопасность повысить и БД не навредить?

~ ! @ # $ % ^ & * ) ( _ - + = } { | ? > <

В регулярку просто вписываются символы как preg_match('/^[0-9a-z~!@#$%^&*)(_-+=}{|?><]{6,30}$/iD', $_POST['password']) или требуется как-то извращаться?
#1106. Gemorroj Off (107)
Administrator
2015.09.09 12:12
зачем такие проверки? пусть пользователи вводят что хотят.
проверять стоит только длину пароля и его сложность (тут уже можно просто проверить чтобы пароль не был 123456 и т.п. или писать функцию подсчета сложности пароля).
#1107. koji Off (3)
Участник
2015.09.09 16:04
Gemorroj, если разрешить вводить все компрометация не получится?
#1108. tipsun Off (19)
Moderator
2015.09.10 06:06
koji, пароль пользователя все равно оборачивается в md5(). Ну там + "соль". И при проверке он так же будет проверяться, через md5(). Если пользователь забудет пароль, то предоставляется форма, где он может ввести новый пароль.
Можно реализовать функцию генерирования сложного пароля. Как вариант к своему паролю, на выбор в общем.
#1109. Gemorroj Off (107)
Administrator
2015.09.10 12:12
koji написал:
Gemorroj, если разрешить вводить все компрометация не получится?
что ты компрометировать собрался? если ты ограничиваешь символы в пароле, то скорее ты этим снижаешь его устойчивость, а не увеличиваешь.
#1110. despod Off (0)
Участник
2015.09.24 17:05
Подскажите кто нибуть для чего например делают в папке с фотками файл index.php - пустой.
Или в папках с другими какими то файлами
#1111. Gemorroj Off (107)
Administrator
2015.09.25 10:10
mercurial вроде до сих пор не поддерживает добавление пустой папки. т.е. для vcs. еще для web-серверов не настроенных, чтобы не выдало список файлов в директории.
#1112. despod Off (0)
Участник
2015.09.25 12:12
Все понял спасибо!
#1113. tipsun Off (19)
Moderator
2015.09.25 12:12
Как установить Symfony 2.7.4? На главной только ссылка на файл symfony.phar
#1114. Gemorroj Off (107)
Administrator
2015.09.25 13:01
tipsun написал:
Как установить Symfony 2.7.4? На главной только ссылка на файл symfony.phar
это инсталлятор. запускаешь его так примерно:
Код:
php symfony.phar new my_project
php - путь к твоему php
symfony.phar - путь к инсталлятору симфони
new - команда создать новый проект
my_project - название проекта (создаст папку с таким именем)
#1115. tipsun Off (19)
Moderator
2015.09.25 13:01
Gemorroj написал:
tipsun написал:
Как установить Symfony 2.7.4? На главной только ссылка на файл symfony.phar
это инсталлятор. запускаешь его так примерно:
Код:
php symfony.phar new my_project
php - путь к твоему php
symfony.phar - путь к инсталлятору симфони
new - команда создать новый проект
my_project - название проекта (создаст папку с таким именем)
Понял, спасибо. Установил вроде smile
#1116. despod Off (0)
Участник
2015.09.28 08:08
Приветствую !
есть такой вопрос
есть $_FILES["file"]["tmp_name"]
если я буду с помощью GD перегонять изображения
это мне поможет защетить от шелов и всякую дребедень чтобы не  закинули?
#1117. Gemorroj Off (107)
Administrator
2015.09.28 09:09
despod, не раскрыто что именно ты будешь делать.
#1118. despod Off (0)
Участник
2015.09.28 12:12
Пользователи будут загружать  изображения,  jpg,  GIF, PNG,
Ведь если графикой не будет       imagecopyresampled  сам по себе выдаст ошибку,
Отредактировано despod (2015.09.28 12:12)
#1119. Gemorroj Off (107)
Administrator
2015.09.28 13:01
у тебя ошибка должна быть еще до imagecopyresampled. на этапе создания ресурса изображения.
#1120. despod Off (0)
Участник
2015.09.28 14:02
Может какой еще способ защиты есть? Еще лучше?
#1121. Gemorroj Off (107)
Administrator
2015.09.28 15:03
нужно конкретную реализацию смотреть. в целом, хватит ошибки при создании ресурса.
#1122. despod Off (0)
Участник
2015.09.28 18:06
Ясно,и такой вопрос картинки лучше скриптом отдавать? Или примыми ссылками?
#1123. Gemorroj Off (107)
Administrator
2015.09.28 18:06
смотри как тебе лучше.. прямые ссылки быстрее, скриптом можно дополнительно проверять доступ и проч вещи перед выдачей...
#1124. despod Off (0)
Участник
2015.09.29 11:11
Что то не сображу если честно как прямую ссылку  проверить?  Я просто хотел с помощью хетачеса доступ в папку закрыть и скриптом выдовать,  хотя это не лучший вариант хочется хоть что то свое сделать толковое чтобы не говном было
#1125. Gemorroj Off (107)
Administrator
2015.09.29 13:01
толковое - используй фреймворки)
например в симфони BinaryFileResponse из компонента HttpFoundation http://symfony.com/doc/current/componen … ction.html
писать такие низкоуровневые вещи стоит только ради изучения или если нет возможности использовать готовые решения.
а вопроса не понятл твоего. прямая ссылка на то и прямая, что ее содержимое отдаст веб-сервер минуя php.
#1126. despod Off (0)
Участник
2015.09.29 14:02
Не разу не пробывал с фремворками работать! Вот бы на русском что нибуть найти!  Сегодня почитаю спасибо
#1127. Gemorroj Off (107)
Administrator
2015.09.29 16:04
попробуй yii2
#1128. despod Off (0)
Участник
2015.09.30 10:10
Оо почилал влегкую о yii,  там получается с помощью команд создаются классы,  практически писать ни чего не надо,  как я понял
#1129. Gemorroj Off (107)
Administrator
2015.09.30 13:01
да, у них веб интерфейс даже есть вроде gii называется. но оно создает структуру только, логику все равно тебе писать придется.
#1130. despod Off (0)
Участник
2015.09.30 14:02
что то не могу установить делал все по этому  Уроку
Вложения
Безимени-1.jpg 343kb {1274x664} [загрузок: 826]
Отредактировано despod (2015.09.30 14:02)
#1131. Gemorroj Off (107)
Administrator
2015.09.30 15:03
подозреваю, что php не настроен должным образом
Добавлено спустя    51 секунду:
и ты устанавливаешь yii1, а надо yii2. и устанавливается он через composer
#1132. despod Off (0)
Участник
2015.09.30 15:03
я с оф сайта качнул yii где там второй? http://www.yiiframework.com/download#yii2
ссыль откуда качал! я на денвер пытаюсь поставить
#1133. Gemorroj Off (107)
Administrator
2015.09.30 19:07
ну таи там тебе про composer и говорят
#1134. despod Off (0)
Участник
2015.09.30 21:09
а все разобрался теперь ток опенсервер поставить нид чего не особо хочу делать но ковырнуть охото
#1135. Gemorroj Off (107)
Administrator
2015.09.30 23:11
денвер давно умер. его место занял оупен сервер. так что ставь не раздумывая.
#1136. despod Off (0)
Участник
2015.10.01 13:01
Спасибо, привык так к денверу,  других не видел, 
Вот еще вопрос есть класс пдо подключения к бд,  как его унаследовать?
#1137. Gemorroj Off (107)
Administrator
2015.10.01 15:03
как и любой другой класс
#1138. despod Off (0)
Участник
2015.10.03 23:11
Вот есть класс
Код:
class DB {
private $instance;
public function run() {
 
try {
$this -> instance = new PDO('mysql:host=localhost;dbname=win', 'win', '123456');
$this -> instance = exec('SET CHARACTER SET utf8');
$this -> instance = exec('SET NAMES utf8');
}
catch (PDOException $e) {
exit('Connection failed: '.$e -> getMessage());
}
return $this -> instance;
}
 
public function __destruct() {
$this -> instance = null;
}
 
}
и еще 1
Код:
class a {
private $inst;
public function __construct() {
$this -> inst = new DB();
$this -> inst = $this -> inst -> run();
}
function queryFetch($sql) {
$st = $this -> inst -> query($sql);
return $st -> fetch();
}
}
пытаюсь вывести
Код:
$z = new a();
var_dump($z->queryFetch("SELECT * FROM `users` WHERE `id`=1"));
Вылазеет ошибка незнаю что за х,
Fatal error: Call to a member function query() on a non-object in Z:\home\test.td\www\include\iniSet.php on line 56
что не так сделал?
Отредактировано despod (2015.10.04 01:01)
#1139. Gemorroj Off (107)
Administrator
2015.10.04 10:10
$this -> instance = exec('SET CHARACTER SET utf8');
        $this -> instance = exec('SET NAMES utf8');
вот в этом проблема.
#1140. despod Off (0)
Участник
2015.10.04 12:12
спасибо решил проблему так
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'");
$this -> instance = new PDO('mysql:host=localhost;dbname=person', 'person', '123456',$this->options);
заработало
вобще такое решение с классами как сделал я это нормально? не каких косяков нет в нних?
#1141. Gemorroj Off (107)
Administrator
2015.10.04 12:12
кодировку можно (и нужно) указывать в dsn.
Код:
mysql:host=localhost;dbname=person;charset=UTF8
#1142. despod Off (0)
Участник
2015.10.04 13:01
в моем случае
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'");
$this -> instance = new PDO('mysql:host=localhost;dbname=person;charset=UTF8', 'person', '123456',$this->options);
$options тогда можно убрать совсем?
#1143. koji Off (3)
Участник
2015.10.04 14:02
Подскажите, чем можно отыскать хотя бы одно совпадение из списка:
['яблоко', 'солнце', 'воду']
в переменной
$str = 'Жираф пил воду';
т.е. нужно пропустить все значения массива.
#1144. despod Off (0)
Участник
2015.10.04 15:03
вот может пригодиться
Код:
$arr = array('яблоко','солнце','воду');
$str = 'Жираф пил воду';
$i = array();
 
foreach($arr as $v){
if(strpos($str,$v)!=false){
$i[0]=count($v);
}
}
 
echo 'Совпадений ['.$i[0].']';
хотя совподение только одно будет
Отредактировано despod (2015.10.04 15:03)
#1145. Gemorroj Off (107)
Administrator
2015.10.04 19:07
koji написал:
Подскажите, чем можно отыскать хотя бы одно совпадение из списка.
http://php.net/in_array
#1146. tipsun Off (19)
Moderator
2015.10.05 08:08
Как лучше сделать?
Сгруппировать характеристики товара (группы с подгруппами и т.д.)
Или
Создать метки и под определенную категорию товара "рисовать" шаблон отображения выстраивая нужные группы и т.п. самому, вручную
#1147. Gemorroj Off (107)
Administrator
2015.10.05 10:10
2 вариант не понял
#1148. tipsun Off (19)
Moderator
2015.10.05 11:11
Что-то типа такого, что-ли, не знаю. Сам пока норм не надумал.
Показать скрытый текст
#1149. Gemorroj Off (107)
Administrator
2015.10.05 12:12
аа, ну 2 вариант наверное более человекопонятный, если сделать хорошо, но более трудоемкий)
хотя я по юзеринтерфейсу ничего не смыслю.
#1150. tipsun Off (19)
Moderator
2015.10.07 20:08
Как победить date.timezone?
Вроде везде указано: date.timezone = "Europe/Moscow". Sf2 ругается.
Использую OpenServer.
#1151. Gemorroj Off (107)
Administrator
2015.10.07 20:08
Не везде скорее всего. Там в 2 местах нужно указывать. В меню открывающемся по правому клику на иконке в трее оупен сервера, нахожишь конфиг php. Там указываешь. Это для web сервера. И в консольном php, который в стандартном php.ini . В папке modules кажется он.
#1152. tipsun Off (19)
Moderator
2015.10.07 21:09
Вот в чем дело! Ой позорище..
Оказывается я дебил, в OpenServer есть ведь командная строка PHP..
А я через обычную cmd.exe..
#1153. koji Off (3)
Участник
2015.11.24 17:05
Нашел ругулярку для проверки названия файла, то есть file_mus-ic.mp3

if (preg_match('/^[a-z_-]+\.[0-9a-z]{3}$/iD', $file))
    echo 'все ОК';

С "i" понятно, он пускает Заглавные буквы. А что "D" делает?
в мануале пишут "любой символ, кроме десятичной цифры" но пишу десятичную и пускает, видимо потому что есть "0-9a-z", может он вообще тогда там не нужен?
#1154. Gemorroj Off (107)
Administrator
2015.11.25 11:11
http://php.net/manual/ru/reference.pcre … ifiers.php
#1155. koji Off (3)
Участник
2015.12.08 20:08
Подскажите, как получить продолжительность видео и его разрешение с помощью ffmpeg через функцию exec() в php?
#1156. Gemorroj Off (107)
Administrator
2015.12.08 23:11
посмотри этот репозиторий https://github.com/PHP-FFMpeg/PHP-FFMpeg
#1157. koji Off (3)
Участник
2015.12.13 14:02
Duration: 00:07:00.46, start: 0.000000, bitrate: 2049 kb/s"
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1983 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc"

Как в инфе о видео можно вырезать ?
00:07:00     —   время
h264           —   кодек
1280x720    —   разрешение
#1158. Gemorroj Off (107)
Administrator
2015.12.13 14:02
это ты консолью воспользовался? как ты этот вывод получил? указанный репозиторий предоставляет хорошую обертку над ffmpeg и есть готовые методы для получения нормальных данных.
#1159. koji Off (3)
Участник
2015.12.13 15:03
Gemorroj, да командой, у меня выхода нет, все равно приходится разбивать ролик на кадры чтобы сделать предпросмотр к видео
Код:
span style="color: #0000BB"><?php// $videoPath - путь к видео// $tmpPath - путь сохранения кадров видео $output = shell_exec('/usr/bin/ffmpeg -i ' . $videoPath . ' -an -y ' . $tmpPath . '/%d.jpg 2>&1');// одна строка разбивает видео и извлекает инфу
готовый класс будет излишним, я больше ничего не делаю
данные в $output
мне кажется, их можно вытащить одной регуляркой, ведь все в одной строке, но для меня это очень сложно
Отредактировано koji (2015.12.13 15:03)
#1160. Gemorroj Off (107)
Administrator
2015.12.13 16:04
не будет излишним, тем более что все что тебе надо он уже умеет)
а так... регулярками вытаскивать данные.
#1161. koji Off (3)
Участник
2015.12.13 17:05
он может создавать предпросмотр к видео?
#1162. Gemorroj Off (107)
Administrator
2015.12.13 19:07
да, можно отрезать кусок и сконвертировать в нужный формат
#1163. koji Off (3)
Участник
2015.12.28 22:10
Шаблон 12:15:11; повторяется 4 раза, но в конце отсутствует ;

preg_match('/^\d{2}:\d{2}:\d{2};\d{2}:\d{2}:\d{2};\d{2}:\d{2}:\d{2};\d{2}:\d{2}:\d{2}$/D', $_POST['time'])

Становится непонятно.

Можно записать единожды \d{2}:\d{2}:\d{2}; указать количество повторений 4 и отсутствие ; в конце ?
#1164. Gemorroj Off (107)
Administrator
2015.12.29 09:09
я бы оставил как есть
#1165. despod Off (0)
Участник
2016.02.28 15:03
Здравствуйте ребята!
возник небольшой вопрос точнее не могу алгоритм понять
есть цыкл
for(Что то тут){
вывод чего то
но в этом цыкле хочу еще и аватарки выводить
но в голову приходит ток 1 вариант
mysql_query(..............);
это же не есть хорошо в цыкле такие вопросы выполнять?



}
если кто то знает как реализовать аватарки пользователей
поделитесь пожалуйста
#1166. Gemorroj Off (107)
Administrator
2016.02.28 20:08
во первых не нужно вообще использовать расширение mysql, нужно использовать 1 - pdo, 2 - mysqli.
можно, например, подготовить запрос вне цикла, а выполнять в цикле, можно выполнить 1 sql запрос вне цикла с перечнем id через условие IN, и в цикле доставать их.
#1167. despod Off (0)
Участник
2016.02.28 23:11
попробую завтро покажу что вышло
#1168. despod Off (0)
Участник
2016.03.01 09:09
Что то ни чего не выходит sad
Есть мной написанный кривой класс

есть две таблицы юзер и комната ! это чатик
Код:
class pg{
private $myConect;
private $total;
private $page;
private $postrow=array();
private $result;
public $num;
public $posts;
private $dir;
private $Url;
private $avatar;
private $linkId;
private $av;
 
function setPage($conect,$param,$param2,$urlPage){
$this->Url=$urlPage;
$this->myConect=$conect;
$this->result=$result;
//$this->sql=$param;
$this->num = 5;
// Извлекаем из URL текущую страницу
$this->page = $_GET['page'];
// Определяем общее число сообщений в базе данных
//$this->result = mysql_query($param,$this->myConect);
//$this->posts = mysql_result($this->result, 0);
// Находим общее число страниц
$this->total = intval(($param - 1) / $this->num) + 1;
// Определяем начало сообщений для текущей страницы
$this->page = intval($this->page );
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($this->page ) or $this->page < 0) $this->page = 1;
if($this->page > $this->total) $this->page = $this->total;
// Вычисляем начиная к какого номера
// следует выводить сообщения
$start = $this->page * $this->num - $this->num;
// Выбираем $num сообщений начиная с номера $start
$this->result = mysql_query("".$param2." LIMIT $start, ".$this->num."",$this->myConect);
// В цикле переносим результаты запроса в массив $postrow
while ( $this->postrow[] = mysql_fetch_array($this->result));
}
 
function getMessage(){
echo "<table border='0' width='100%'>";
for($i = 0; $i < $this->num; $i++)
{
if($this->postrow[$i]['aid']!=0){
if( $this->postrow[$i]['aid'] == '2' ) { $topic_bot = '<img src="'.DIR.'/template/img/vunderkind.gif" alt="" border="0">';}
elseif( $this->postrow[$i]['aid'] == '3' ) { $topic_bot = '<img src="'.DIR.'/template/img/traxtenberg.gif" alt="" border="0">';}
elseif( $this->postrow[$i]['aid'] == '4' ) { $topic_bot = '<img src="'.DIR.'/template/img/mazafaka.gif" alt="" border="0">';}
 
[color=red] Вот тут нудно выыести Аватарку юзера[/color]
else { $topic_bot = ''; }
echo "<tr>
<td width='7%' style='padding:2px 5px 2px 8px;border:1px solid #CCCCCC'>".$topic_bot."
<br/><a href=\"addto.php".$this->Url."&amp;nocache=$nocache&amp;uid=".$this->postrow[$i]['aid']."\">".$this->postrow[$i]['nickname']."</a>
<br/>".$this->postrow[$i]['time']."</td>
<td style='padding:2px 5px 2px 8px;border:1px solid #CCCCCC'>".$this->postrow[$i]['msg']."</td>
</tr>";
}
}
echo "</table>";
}
function getPage(){
if ($this->page != 1) $pervpage = '<a href= '.($this->Url).'&page=1><<</a>
<a href= '.($this->Url).'&page='. ($this->page - 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($this->page != $this->total) $nextpage = ' <a href= '.($this->Url).'&page='. ($this->page + 1) .'>></a>
<a href= '.($this->Url).'&page=' .$this->total. '>>></a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($this->page - 2 > 0) $page2left = ' <a href= '.($this->Url).'&page='. ($this->page - 2) .'>'. ($this->page - 2) .'</a> | ';
if($this->page - 1 > 0) $page1left = '<a href= '.($this->Url).'&page='. ($this->page - 1) .'>'. ($this->page - 1) .'</a> | ';
if($this->page + 2 <= $this->total) $page2right = ' | <a href= '.($this->Url).'&page='. ($this->page + 2) .'>'. ($this->page + 2) .'</a>';
if($this->page + 1 <= $this->total) $page1right = ' | <a href= '.($this->Url).'&page='. ($this->page + 1) .'>'. ($this->page + 1) .'</a>';
 
// Вывод меню
return '<span style="background:#CCCCCC;padding:4px;margin:12px 10px 19px 10px">
'.$pervpage.$page2left.$page1left.'<b>'.$this->page.'</b>'.$page1right.$page2right.$nextpage.'</span><br/>';
}
 
}
вобщем как применить до цикла так и не получилосьsad
#1169. TLENS Off (14)
Moderator
2016.03.01 14:02
despod смотри перебираешь нужных пользователей и пишешь их id в масив. После делаешь выборку с базы всех этих пользователей одним запросом
Код:
span style="color: #0000BB"><?php$usersIdStr = implode(', ', $usersId);$query = "SELECT `id`, `avatarka` FROM `TABLE_NAME` WHERE `id` IN ($usersIdStr)";
далее уже дело за простым. А вообще можно хранить иконку аватарки в папке и в имени картинки вставить id юзера. Протом просто подставляешь в url
Код:
<img src="/img/avatarki/<?= $userId ?>.png" alt="" />
#1170. unanidaRa Off (0)
Участник
2023.12.27 10:10
Как можно создать предпросмотр к видео, и вопрос к Gemorroj: Как правильно реализовать вывод аватарок пользователей в цикле без использования расширения mysql?
smile
#1171. Gemorroj Off (107)
Administrator
2023.12.27 11:11
можно использовать ffmpeg с php оберткой https://github.com/PHP-FFMpeg/PHP-FFMpeg
про mysql + цикл не понял. В бд ты хранишь название аватарки, в файловой системе саму аватарку.
#1172. WapStyle Off (3)
Участник
2024.01.06 22:10
unanidaRa написал:
вот даже я них не понял, вывод аватарок без mysql,а где данные о юзерах хранятся?
Страниц: 1116 117 118 Все
Главная
WEB
PunBB Mod v0.6.2
0.691 s