- 1
- 2
- 3
- 4
foreach ($account->lists as $list) {
print "LIST Name: " . $list->name; echo ' '; echo ' '; echo ' '; print "LIST Id: " . $list->id;
echo "<br>";
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+157
foreach ($account->lists as $list) {
print "LIST Name: " . $list->name; echo ' '; echo ' '; echo ' '; print "LIST Id: " . $list->id;
echo "<br>";
}
Не говоря о том, что особой разницы между print и echo в ПХП нет, стоит отметить, что после «nbsp» пропущены точки с запятыми и всё тело этого фора можно было бы вывести одной строчкой.
+158
<?php
/* В настройках кабинета необходимо указать "Проверять md5 на ссылках",
чтобы нельзя было заплатить сумму отличную от заданной в переменной $summa */
$summa=50; //Стоимость доступа к платному разделу, в рублях
$period=60*60*24*2; //Время доступа, в секундах (60 секунд * 60 минут * 24 часа * 2 суток = 172800 секунд). Исчисляется от времени поступления оплаты за код доступа.
$login='demo1'; //Ваше "Имя пользователя" (логин) в системе Onpay.ru
$key='a2su3ig8y'; //Ваш "Секретный пароль для API IN" в системе Onpay.ru
/* Для того, чтобы закрыть доступ к папке, данный код необходимо размещать в индексном файле (index.php) */
$path='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; //Путь к файлу с этим кодом (определяется автоматически), например: http://onpay.ru/dir/index.php
$access=0; //Запрещаем доступ, по умолчанию (0 = доступ закрыт, 1 = доступ открыт)
$code='';
$error='';
//Функция округления для md5
function to_float($sum) {
if (strpos($sum, ".")) {$sum=round($sum,2);}
else {$sum=$sum.".0";}
return $sum;
}
/* Подключаемся к базе данных, если нажали на кнопку оплатить или ввели код доступа */
if(isset($_POST['pay']) || isset($_POST['code'])) {
$db_host='localhost'; //Хост сервера базы данных (домен или IP-адрес)
$db_user='root'; //Имя пользователя БД
$db_pass=''; //Пароль БД
$db_name='pays'; //Название базы данных
$db_tabl='payments'; //Название таблицы в которой будут храниться платежи
if(!mysql_connect($db_host, $db_user, $db_pass)) {echo 'Невозможно подключиться к серверу баз данных';exit;} //Подключение к серверу баз данных
if(!mysql_select_db($db_name)) {echo 'Не получилось выбрать базу данных '.$db_name;exit;} //Выбор базы данных
}
/* Разбираем данные, отправленные через форму*/
if(isset($_POST['pay'])) { //Если нажали на кнопку покупки кода, то генерируем код, сохраняем его в базу данных и выводим форму оплаты:
if(is_numeric($summa)) { //Если сумма введена корректно
$sql = "INSERT INTO $db_tabl SET ".
"path='$path',".
"sum='$summa',".
"payed=0,".
"date=".time().",".
"ip='".$_SERVER['REMOTE_ADDR']."';"; //Запрос в базу данных на создание новой записи
$result=mysql_query($sql); //Добавляем новую строку в базу данных
if($result) { //Если сохранено в базу данных без ошибок
$id=mysql_insert_id(); //Получаем id записи
$code=$id.substr(time(),-7); //Создаем секретный код - соединяем уникальный номер строки в базе данных (id) и последние 7 знаков текущего времени в секундах (коды доступа не должны повторяться)
$sql = "UPDATE $db_tabl SET code='$code' WHERE id='$id';"; //Запрос в базу данных, для добавления кода доступа
$result=mysql_query($sql); //Сохраняем код в базу данных
if($result) { //Если сохранено в базу данных без ошибок
$sum_for_md5=to_float($summa);
$md5check=md5("fix;$sum_for_md5;RUR;$code;yes;$key"); //Создаем проверочную строку, которая защищает платежную ссылку от изменений
$url="http://secure.onpay.ru/pay/$login?pay_mode=fix&pay_for=$code&price=$summa¤cy=RUR&convert=yes&md5=$md5check&url_success=".$path; //Формируем платежную ссылку
/*Выводим код*/
?><p style="font-size:14pt;color:blue;">Ваш код доступа: <b><?=$code; //Выводим код ?></b> (сохраните его в надежном месте)<?php
/*Выводим форму оплаты*/
?><h1><a target="_blank" href="<?=$url; //Выводим платежную ссылку ?>">Оплатить код доступа:</a></h1>
<iframe src="<?=$url; //Выводим платежную ссылку ?>" width="195" height="600" frameborder=no scrolling=no></iframe><?php
} else unset($_POST['pay']); //Удаляем элемент массива (чтобы выводилась кнопка покупки кода)
} else unset($_POST['pay']);
} else unset($_POST['pay']); //Конец условия if(is_numeric($summa)) { //Если сумма введена корректно
} elseif(isset($_POST['code'])) { //Если ввели код, то проверяем его в базе данных и если верный, то сохраняем в COOKIE
$code=intval($_POST['code']); //Код должен быть целым числом
$sql = "SELECT * FROM $db_tabl WHERE code='$code' AND path='$path' AND payed>=sum AND date>=".time().";"; //Проверка кода
$result=mysql_query($sql); //Сохраняем код в базу данных
if($result) { //Если сохранено в базу данных без ошибок
if($row=mysql_fetch_assoc($result)) { //Если в базе данных найдена строка с введенным кодом для данной директории и он не просрочен, то сохраняем код
$access=1; //Разрешаем доступ
} else $error='Введен неправильный код доступа.';
}
} //
if($access == 0) { //Если доступ запрещен, то выводим форму для покупки или ввода оплаченного кода
?><p style="font-size:14pt;font-weight:bold;">Доступ закрыт.<?php
?><p style="font-size:14pt;font-weight:bold;color:red;"><?=$error; //Выводим ошибки?><?php
if(!isset($_POST['pay'])) { //Если не выведена форма оплаты
?><form method="POST" action="<?=$path; //Выводим путь на который будет отправлена форма (на текущую страницу) ?>">
<input style="font-size:16pt;font-weight:bold;color:red;" type="submit" name="pay" value="Купить доступ до <?=date('H:i:s d.m.Y',time()+$period); //Выводим дату ?> всего за <?=$summa; //Выводим сумму ?> руб.">
</form><?php
}
?><p><form method="POST" action="<?=$path; //Выводим путь на который будет отправлена форма (на текущую страницу) ?>">
<input style="font-size:14pt;" type="text" name="code" value="<?=$code; //Выводим текущий код доступа, при его наличии ?>">
<input style="font-size:14pt;" type="submit" value="Ввести оплаченный код доступа">
</form><?php
exit; //Прекращаем выполнение скрипта и выходим
/*Все, что расположено ниже этой строки - не выводится без верного кода доступа. */
} //Конец условия if($access == 0) { if(isset($_POST['pay'])) {
?>
<h1>Доступ по коду <u><?=$row['code'];?></u> разрешен до <?=date('H:i:s d.m.Y',$row['date']);?></h1>
<p>Получено: <?=$row['payed'];?> руб.
<p>Цена продления: <?=$row['sum'];?> руб.
<p>onpay_id: <?=$row['onpay_id'];?>
<p><a href=" <?=$row['path'];?>">Секретная ссылка</a>
Автор задал на тостере вопрос: "я читал про куки но ничего не понял, дайте готовое решение что бы использовать с моим кодом"
+160
if (isset($_GET['page'])) {
include "pages/index.php";
}
if (isset($_GET['accounts'])) {
include "pages/allacc.php";
}
if (isset($_GET['gold'])) {
include "pages/gold.php";
}
if (isset($_GET['send'])) {
include "pages/send.php";
}
if (isset($_GET['gm'])) {
include "pages/gm.php";
}
if (isset($_GET['ban'])) {
include "pages/ban.php";
}
if (isset($_GET['chat'])) {
include "pages/chat.php";
}
if (isset($_GET['tw'])) {
include "pages/tw.php";
}
if (isset($_GET['server'])) {
include "pages/server.php";
}
if (isset($_GET['logs'])) {
include "pages/logs.php";
}
if (isset($_GET['live_chat'])) {
include "pages/live_chat.php";
}
if (isset($_GET['chars'])) {
include "pages/chars.php";
}
//Functions
if (isset($_GET['Acc_Change'])) {
if (isset($_POST['SaveChange'])) {
$iwp->SaveUserToMysql(strtolower($_POST['name']), strtolower($_POST['pass']), strtolower($_POST['email']), $_POST['PassType']);
}
if (isset($_POST['DeleteAcc'])) {
echo "<script>alert('Вы точно хотите удалить этот аккаунт?');location.href='index.php?Acc_Change&DeleteYes=$_POST[AccID]';</script>";
}
if (isset($_GET['DeleteYes'])) {
mysql_query("DELETE FROM users WHERE ID=$_GET[DeleteYes]");
echo "<script>alert('Аккаунт успешно удален');location.href='index.php?accounts';</script>";
}
include "pages/acc_change.php";
}
if (isset($_GET['Give_Gold'])) {
if(isset($_POST['GiveGold'])) {
$iwp->GiveGold($_POST['GoldID'], $_POST['GoldNum'], "user");
}
if(isset($_POST['GoldWhoOnline'])) {
$iwp->GiveGold(null, $_POST['AllGold'], "online");
}
if(isset($_POST['GoldAll'])) {
$iwp->GiveGold(null, $_POST['AllGolds'], "all");
}
}
http://kn1fe-zone.ru/index.php?threads/iwp-veb-panel-upravlenija-serverom.10/#post-1554
Автор называет это ООП.
Полный архив — https://www.dropbox.com/s/gpdge94t0jv9hl9/IWP%2806.08.2014%29pre.rar?dl=0
Можно просматривать для успокоения души своей перед сном.
+155
list($usec, $sec) = explode(' ', microtime());
$s2_start = ((float)$usec + (float)$sec);
О первом параметре функции microtime не слыхали?
http://s2cms.ru/trac/browser/trunk/index.php#L11
Интересное замечание: hook'и копипастом подключаются
($hook = s2_hook('idx_pre_redirect')) ? eval($hook) : null;
// …
($hook = s2_hook('idx_pre_rss')) ? eval($hook) : null;
// …
$return = ($hook = s2_hook('idx_get_content')) ? eval($hook) : null;
// и так еще 4 раза
Функцию надо.
+157
if (!isset($_SERVER['DOCUMENT_ROOT'])) {
if (isset($_SERVER['SCRIPT_FILENAME'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace('\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0 - strlen($_SERVER['PHP_SELF'])));
}
}
Никогда не слышали о '&&' или 'and'?
https://github.com/opencart/opencart/blob/master/upload/system/startup.php#L15-L19
Интересное замечание: классы Controller и Model в OpenCart имеет один и тот же код.
+154
$this->template_model = BaseCommunicationType::model()->findByAttributes(array('template' => $this->template));
if(!$this->template_model === NULL) {
throw new Exception("Template name is wrong", 1);
}
Угадайте, что будет из исключением?
+163
$result = $db->query("update `" . $table_prefix . "options` set `option_value`='a:2:{i:0;b:0;s:8:" . '"auto_add"' . ";a:0:{}}' where `option_name`='nav_menu_options';");
unserialize "глазами на лету" - ЛЕГКО!!!!
+161
/**
* Деструктор
*/
public function __destruct(){
Публичная функция деструктор - пиши подробнее!
+156
// где то:
$_SESSION['type_school'] = $db->query("SELECT * FROM ou_type ",array(),'kassoc');
// а потом:
$smarty->assign('type_school',$_SESSION['type_school']);
//и в шаблоне:
<td>{$type_school[$v.base_type].type_name}</td>
$v.base_type - тоже результат запроса. Left/Right/Inner Join - не, не слышал...
А потом: чёта проект тормозит...
Я так подозреваю кто то таким методом оптимизацию и кеширование сделал, ну чтобы бд лишний раз не грузить.. Не, ну, а чё, зачем каждый раз базу данных мучить при открытии одной! странички со списком *****, давайте одну таблицу-справочник из бд откопируем каждому пользователю в его сессию отдельно и будем читать его при каждом session_start даже если на текущей странице нам этот справочник не нужен.
+156
<?php
class view {
protected $dir; //templates directory
protected $lang; //language
protected $authorized;
protected $user;
protected function getCache($template) {
//return false; //uncomment for developing
if (!isset($_SESSION['cache_' . $template])) return false;
return $_SESSION['cache_' . $template];
}
protected function addCache($template, $content) {
$_SESSION['cache_' . $template] = $content;
}
public function __construct($dir, localization $lang, user $user) {
$this->dir = $dir;
$this->authorized = (bool) $user->authorized;
$this->user = $user;
$this->lang = $lang;
}
public function invoke($template, $params = [], $return = false, $quests = []) { //can be called w/o params
$filename = ROOT . '/' . $this->dir . '/tpl/' . $template . '.tpl';
$lang = $this->lang->getData();
$content = $this->getCache($template);
if (!$content) {
$f = fopen($filename, 'a+');
$content = fread($f, (filesize($filename) > 0 ? filesize($filename) : 1));
$this->addCache($template, $content);
}
foreach ($params as $key => $value) {
$content = str_ireplace('{{' . $key . '}}', $value, $content);
}
preg_match_all("@{{:([a-z0-9_]+?)}}@sui", $content, $localization);
$localization = $localization[1];
foreach ($localization as $value) {
$content = str_ireplace('{{:' . $value . '}}', $lang[$value], $content);
} //applying lang
foreach ($quests as $key => $value) {
preg_match_all("@{\?$key=$value\?}(((?!{\?.+\?}).)*?){\?\?}@sui", $content, $matches);
while (!empty($matches[0])) {
$content = str_replace($matches[0][0], $matches[1][0], $content);
preg_match_all("@{\?$key=$value\?}(((?!{\?.+\?}).)*?){\?\?}@sui", $content, $matches);
}
preg_match_all("@{\?$key=((?!$value).+?)\?}(((?!{\?.+\?}).)*?){\?\?}@sui", $content, $matches);
while (!empty($matches[0])) {
$content = str_replace($matches[0][0], "", $content);
preg_match_all("@{\?$key=((?!$value).+?)\?}(((?!{\?.+\?}).)*?){\?\?}@sui", $content, $matches);
}
}
preg_match_all("@{\?access=([a-z0-9]+?)\?}(((?!{\?.+\?}).)*?){\?\?}@sui", $content, $perms);
while (!empty($perms[0])) {
foreach ($perms[1] as $value) {
if ($this->user->canAccess($value))
$content = preg_replace("@{\?access=$value\?}(((?!{\?.+\?}).)*?){\?\?}@sui", "$1", $content);
else $content = preg_replace("@{\?access=$value\?}(((?!{\?.+\?}).)*?){\?\?}@sui", "", $content);
}
preg_match_all("@{\?access=([a-z0-9]+?)\?}(((?!{\?.+\?}).)*?){\?\?}@sui", $content, $perms);
}
$content = preg_replace("@{\?authorized=((?!" . (int) $this->authorized . ").+?)\?}(.+?){\?\?}@sui", "", $content);
$content = preg_replace("@{\?authorized=" . (int) $this->authorized . "\?}(.+?){\?\?}@sui", "$1", $content);
$content = preg_replace("@{\?(.+?)\?}(.+?){\?\?}@sui", "", $content);
$content = str_ireplace('{{DIR}}', '/' . $this->dir, $content); //replacing DIR param
$content = str_ireplace('{{URI}}', urlencode(other::filter($_SERVER['REQUEST_URI'])), $content); //replacing URI param
$content = str_ireplace('{{HTTP_HOST}}', $_SERVER['HTTP_HOST'], $content); //replacing HTTP_HOST param
$content = preg_replace("@{\?((.+?)|(.+?){0})\?}@sui", "", $content);
if (!$return) echo $content;
return $content;
}
}
?>
Мой шаблонизатор. Детям и беременным женщинам не смотреть.