- 1
- 2
$query = "SELECT * FROM archivo_mhora WHERE id_aparato=" . $aparatos_row->id;
$query .= " && DATE_FORMAT(fecha, '%Y.%m.%d')='" . date('Y.m.d', $cur_fecha) . "' ORDER BY energy";
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Этот поиск практически ничего не может найти! Но вы всё-таки попытайтесь, вдруг повезет.
Найдено: 384
−1
$query = "SELECT * FROM archivo_mhora WHERE id_aparato=" . $aparatos_row->id;
$query .= " && DATE_FORMAT(fecha, '%Y.%m.%d')='" . date('Y.m.d', $cur_fecha) . "' ORDER BY energy";
Я не знаю, к какой секции следует отнести этот высер:
1) Автор решил учить испанский. Таблицы имеют имена `aparatos`, `abonandos`, etc
2) Само собой, SQL injection
3) Порнография при работе с датой
0
<!-- todo: put this in a different file!!! -->
<script>
function authenticateUser(username, password) {
var accounts = apiService.sql(
"SELECT * FROM users"
);
for (var i = 0; i < accounts.length; i++) {
var account = accounts[i];
if (account.username === username &&
account.password === password)
{
return true;
}
}
if ("true" === "true") {
return false;
}
}
$('#login').click(function() {
var username = $("#username").val();
var password = $("#password").val();
var authenticated = authenticateUser(username, password);
if (authenticated === true) {
$.cookie('loggedin', 'yes', { expires: 1});
} else if (authenticated === false) {
$("#error_message").show();
}
});
</script>
This JavaScript code powers a 1,500 user intranet application
−1
<?php include "init.php"; ?>
<?php
if(trim($_GET['mode'])=='ajax'){
header('Content-Type: application/json; charset=utf-8');
if(trim($_POST['action'])==htmlspecialchars(trim($_GET['script']))){
$result=array();
$result['errors']=array();
if(trim($_POST['email'])==''){
$result['errors']['email']=l('login_error_email_empty');
} else {
$check=mysql_query("SELECT * FROM `users` WHERE `email`='"._F($_POST['email'])."' OR (`phone`!='' AND `phone`='"._F(preg_replace('/\D/', '', $_POST['email']))."');");
if(mysql_num_rows($check)){
$user=mysql_fetch_assoc($check);
} else {
$result['errors']['email']=l('login_error_email_inexists');
}
}
if(trim($_POST['password'])==''){
$result['errors']['password']=l('login_error_password_empty');
} elseif(mysql_num_rows($check) && $user['password']!=md5(trim($_POST['password']))){
$result['errors']['password']=l('login_error_password_incorrect');
} elseif($user['active']=='0'){
$result['errors']['form']=l('login_error_account_inactive');
} elseif($user['active']=='2'){
$result['errors']['form']=l('login_error_account_removed');
} elseif($user['active']=='3'){
$result['errors']['form']=l('login_error_account_banned');
}
if(count($result['errors'])==0){
$_SESSION['userid']=$user['userid'];
mysql_query("UPDATE `users` SET `login_time`='".$time."' WHERE `userid`='".$_SESSION['userid']."';");
$result['status']='success';
} else {
$result['status']='error';
}
echo json_encode($result);
}
exit;
}
?>
<?php
$pagetitle=l('login_title')." • ".$config['sitename'];
$pagedesc=$config['description'];
?>
<?php
if($m){ include "m-login.php"; exit; }
?>
<?php include "inc/header.php"; ?>
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-6">
<h3 class="special-title"><?php echo l('login_title'); ?></h3>
<div class="auth-box">
<form action="/<?php echo htmlspecialchars(trim($_GET['script'])); ?>/" method="POST" autocomplete="off" class="ajax-form" data-callback="loginCallBack">
<input type="hidden" name="action" value="<?php echo htmlspecialchars(trim($_GET['script'])); ?>">
<div class="form-group">
<label><?php echo l('login_type_email'); ?></label>
<div>
<input type="text" autocomplete="off" class="form-control" name="email" placeholder="<?php echo l('login_email'); ?>" autofocus>
</div>
</div>
<div class="form-group">
<label><?php echo l('login_type_password'); ?></label>
<div>
<input type="password" autocomplete="off" class="form-control" name="password" placeholder="<?php echo l('login_password'); ?>">
</div>
</div>
<button type="submit" class="btn btn-primary"><?php echo l('login_submit'); ?></button>
<div class="cannot-login">
<a href="<?php echo $locPrefix; ?>/restore/" class="pull-left"><?php echo l('login_cant_login'); ?></a>
<a href="<?php echo $locPrefix; ?>/register/" class="pull-right"><?php echo l('login_to_register'); ?></a>
<div class="clear"></div>
</div>
</form>
</div>
</div>
<div class="col-md-3"></div>
</div>
<div class="social-login-title">
<?php echo l('login_via_social_network'); ?>
</div>
<div class="social-login"><a href="/social/vk/<?php if(isset($_GET['ref'])){ ?>?ref=<?php echo urlencode($_GET['ref']); ?><?php } ?>" class="vkontakte"><i class="fa fa-vk"></i></a><a href="/social/ok/<?php if(isset($_GET['ref'])){ ?>?ref=<?php echo urlencode($_GET['ref']); ?><?php } ?>" class="odnoklassniki"><i class="fa fa-odnoklassniki"></i></a><a href="/social/fb/<?php if(isset($_GET['ref'])){ ?>?ref=<?php echo urlencode($_GET['ref']); ?><?php } ?>" class="facebook"><i class="fa fa-facebook"></i></a><a href="/social/gl/<?php if(isset($_GET['ref'])){ ?>?ref=<?php echo urlencode($_GET['ref']); ?><?php } ?>" class="google"><i class="fa fa-google"></i></a></div>
<?php include "inc/footer.php"; ?>
В среде "PHP"-разработчиков часто слышатся возбуждающие аппетит к ветчине повизгивания о том, что, дескать, без фреймворков не жизнь, чистый "PHP" - говно, и что без "Laravel" охуенный проект не создать. Но взгляните на вышеприведённый код страницы авторизации в одном из разработанных мною движков и задайте себе вопрос: зачем делить один ладненький, компактненький скриптик на контроллеры, модели, шаблоны, интерфейсы, и, как следствие, конское количество директорий, когда и "HTML"-представление, и "AJAX"-обработчик можно впихнуть в один файл на, в данном случае, полтора-два экрана? Чем обусловлена массовая течка по "MVC" и смежным архитектурам (к слову, не только лишь в "PHP", но и, слышно, в "Ruby" и "NodeJS")?
−1
if (isset($_GET['org'])) {
$org=htmlspecialchars($_GET["org"]);
}
else $org=1;
if ($num_resultsdop) {
$sql = "SELECT * FROM `baza`, `sankomerc`, `sandop` WHERE baza.id='$org' and sankomerc.id='$org' and sandop.id='$org'";
}
else {
$sql = "SELECT * FROM `baza`, `sankomerc` WHERE baza.id='$org' and sankomerc.id='$org'";
}
$row = mysql_fetch_array($result);
$chotz=$row['chotz'];
$nazvanie=$row['nazvanie'];
$nazvaniech=$row['nazvanie'];
//типографим название
$typograph->set_text($nazvanie);
$nazvanie = $typograph->apply();
$nazvanienotags = strip_tags($nazvanie);
SEO: #nazvanienotags
SemaReal, помнишь, я тебе говорил, что летом скорее всего перейду на другую работу или восстановлюсь в универе?
Тогда моя претензия была в том, что используют устаревающий Yii2, что нет CI, нет тестов…
После импровизированного отпуска я пришёл, и получил проект, пример реального кода из которого ты видишь.
0
def sql_select_filter(sql, flt, order=None, limit=None, offset=None, group_by=None, lock=None, withSelectWrapper=True):
if withSelectWrapper and group_by is None:
if re.search(r'^\s*select\s+', sql, flags=re.IGNORECASE | re.MULTILINE):
sql = "SELECT * FROM ( " + sql + " ) as z99 "
else:
sql = "SELECT * FROM " + sql + " "
sql = sql.replace("%", '%%')
where, vals = _make_where_conditions(flt)
if where is not None:
sql += " WHERE " + where
if group_by is not None and len(group_by):
sql += " GROUP BY " + ",".join(group_by)
if order is not None and len(order):
order_fields = []
for field, direction in order.items():
order_fields.append(field + " " + direction)
sql += " ORDER BY " + ",".join(order_fields)
if limit is not None:
sql += " LIMIT %s"
vals.append(limit)
if offset is not None:
sql += " OFFSET %s"
vals.append(offset)
if lock is not None:
sql += " FOR " + lock
return sql, vals
Конструктор SQL запроосов, все очень секурно!
−3
https://habrahabr.ru/company/mailru/blog/344696/
Долбоёбы из "Mail.Ru", приобрётшие авторитет только благодаря тому, что их сайтик случайно стал одним из самых популярных, учат жизни:
>>> НЕ ДЕЛАЙТЕ ТАК:
>>>
>>> /* Небезопасный код: */
>>> $query = $pdo->query("SELECT * FROM users WHERE username = '" . $_GET['username'] . "'");
>>>
>>> Делайте так:
>>>
>>> /* Защищено от SQL-внедрений: */
>>> $results = $easydb->row("SELECT * FROM users WHERE username = ?", $_GET['username']);
Будто переменную в первом варианте запроса нельзя пропустить через "mysql_real_escape_string" или иную экранирующую функцию.
Зато в итоге запрос остаётся очевидным, без даунских высчитываний вида "каким по счёту является значение поля и какой по счёту вопросительный знак ему соответствует". Тьфу, блядь...
+1
$probabilities=array();
$get_items=mysql_query("SELECT * FROM `items` WHERE `iid` IN(".mysql_real_escape_string($case['items']).") AND `status`='1' AND `count`>'0' ORDER BY `probability` DESC;");
while($item=mysql_fetch_assoc($get_items)){
$probabilities[$item['probability']]=0;
}
$dices=$probabilities;
for($pi=100;$pi>=0;$pi--){
foreach($probabilities as $probability=>$pstate){
if(rand(1, 2)==2){
if($pi<=$probability){
$dices[$probability]=$dices[$probability]+1;
}
}
}
}
arsort($dices, SORT_NUMERIC);
$probability=reset(array_keys($dices));
$get_prize=mysql_query("SELECT * FROM `items` WHERE `iid` IN(".mysql_real_escape_string($case['items']).") AND `status`='1' AND `count`>'0' AND `probability`='".$probability."' ORDER BY RAND() LIMIT 1;");
Написал с нуля на заказ движок для очередного детского говноказино (розыгрыш пикселей для игр в "Steam").
Заказчик умолял сделать возможность управления вероятностью выпадения того или иного предмета (в процентах), что я и сделал. Вышеприведённый алгоритм как раз отвечает за выбор приза в соответствии с прописанными в настройках вероятностями. Сейчас кажется, что решение не самое "изящное".
Есть, что заметить по поводу алгоритма?
+1
include 'db.php';
$login = $_POST['login'];
$pass = $_POST['pass']);
$check = mysql_query("SELECT * FROM `users` WHERE login = '" .$login. "'");
$dbarr = mysql_fetch_array($check);
if($dbarr['pass'] != $pass) {
setcookie("wrongpass", 'yes', time() + 4, "/");
header("Location: /index.php");
return;
}
Интересный способ вывода оповещения о не верном пароле, в index.php обрабатывается cookie wrongpass, и если он есть выводится оповещение.
+3
<?php
$page = $_GET['page'];
$do = $_GET['do'];
$todo = $_GET['todo'];
//sponsor
$s = $_GET['s'];
//stupen
$st = $_GET['st'];
//sponsor
$u = $_GET['u'];
$email = $_POST['email'];
$password = $_POST['password'];
$name = $_POST['name'];
$message = $_POST['message'];
$surname = $_POST['surname'];
$username = $_POST['username'];
$passrepeat = $_POST['passrepeat'];
$sponsor = $_POST['sponsor'];
$skype = $_POST['skype'];
$perfectmoney = $_POST['perfectmoney'];
$payeer = $_POST['payeer'];
$advcash = $_POST['advcash'];
$bitcoin = $_POST['bitcoin'];
$status = $_POST['status'];
$uac = $_GET['uac'];
$nowis = time();
if ($do == 'login') {
//id name email username password
$querylogin = "SELECT * FROM `users`";
$datalogin = mysql_query($querylogin);
while ($rowlogin = mysql_fetch_array($datalogin)) {
$usercheck_id = $rowlogin['id'];
$usercheck_mail = $rowlogin['email'];
$usercheck_pass = $rowlogin['password'];
$usercheck_name = $rowlogin['name'];
$usercheck_username = $rowlogin['username'];
if ($usercheck_username == $username) {
if ($usercheck_pass == $password) {
$_SESSION['user'] = $usercheck_id;
$inmsg = 'Привет ' . $usercheck_name . '!';
$page = 'cabinet';
} else {
$err_msg = 'Неправильные пароль или аккаунт!';
}
} else {
$err_msg = 'Неправильные пароль или аккаунт!';
}
}
}
Такого дилетанского кода я еще не видел
0
SELECT * FROM order WHERE coalesce(cancelation_date,\'7777-07-07\'::DATE) >= :tdDate