• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Кармометр

  • Автор темы 1ive
  • Дата начала
1

1ive

Хочу всех рассказать о своем новоизобретенном велосипеде)
Даже не просто рассказать, а показать как все работает...

Итак, сегодня мы я расскажу как сделать "кармометр"
Зачем? хм...
Каждый человек любит подниматься в глазах других.
Среди них есть и такие, кому нужно подниматься и в своих глазах..

Этот как прокачивать своего "эльфа 80г уровня", только более глобально). Ты прокачиваешь сам себя!
Да и каждому нужны какие-либо стимулы и награды в жизни..

Приступим?

Дело все будет работать на php + 2 таблицы в MySQL для хранения информации.
На главной - текущая карма (рейтинг), две кнопочки (+ и -) ну и, наверное, список тех, кто поставил оценку)


Не знаю, можно ли и это тоже называть говнокодом)
Если что - напишу еще раз)


PHP:
$dbName = "база данных"; 
mysql_connect("сервер","пользователь","пароль ");
mysql_select_db($dbName);
$query = "SELECT `karma` FROM `karma` LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_assoc($sql);
$karma = $row['karma'];
$ip = $_SERVER['REMOTE_ADDR'];
function update_karma()
{
global $karma;
$query = "UPDATE karma SET karma='$karma'";
mysql_query($query) or die (mysql_error());
}

function secure($value)
{ 
$value=htmlspecialchars($value);
$value=preg_replace("/\n/",'<br>',$value);return $value;
}

function add_mess($znak)
{
global $mess;
global $ip;
global $nick;
global $id; 
$query = "INSERT INTO why VALUES('$id','$znak','$mess', '$ip', '$nick')";
mysql_query($query) or die(mysql_error());
}
function done_pr()
{
die('Оценка добавлена.<a href="index.php">Вернуться на главную</a>');
}


function print_form($add_znak)
{ 
print('
<form action="index.php" method="post">
От
<input name="nick" value="Анонимуса"></input>
За
<textarea cols="40" rows="3" type="text" name="mess" value=""></textarea>
<input type="submit" name="'.$add_znak.'" value="Добавить"/>
</form>');
}
function print_why() 
{
$query = "SELECT * FROM why";
$res = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($res))
{
print('<span>'.$row['znak'].' от '.$row['nick'].' сообщение '.$row['text'].'</span><br/>');
}
}


if(isset($_POST['nick'])){$nick = secure($_POST['nick']);}
if(isset($_POST['mess'])){$mess = secure($_POST['mess']);}

if(isset($_POST['add_minus'])){print_form(minus);exit;}
if(isset($_POST['minus'])){$karma--; update_karma();add_mess('-');done_pr();}
if(isset($_POST['add_plus'])){print_form(plus);exit;}
if(isset($_POST['plus'])){$karma++; update_karma();add_mess('+');done_pr();}

print($karma);print('<form action="index.php" method="post"><input type="submit" value="+" name="add_plus"/><input type="submit" value="-" name="add_minus"/></form>');print_why();
 
A

acorn

Не хочу Вас обидеть, но это называется говнокодом..
 
1

1ive

да-да-да)
Именно говнокод.
Согласен..
Писал на скорою руку)) в неподходящей обстановке...не было времени оптимизировать)


Мне стыдно.
Исправлюсь.
Завтра.

:facepalm:
 
V

vital

У лайва партиное задание. Не отвлекай=) Он под моей опекой=)
 
H

hosm

vital а как же карма? вдруг за код ее слегка подпортят, а? :facepalm:
 
E

European

Господа, сорри за офтоп, но у меня созрел лозунг: "Даешь больше говнокода по опекой у vital-а!"
 
H

hosm

European меня вот тоже удивило - обычно vital как раз против подобного кода и очень жестко за это наезжает.
Но там действительно серьезное партийное задание было =)
 
H

hosm

кстати, а это так и задумано - такое цветовое решение для текста после добавления оценки? =)
karm1.jpg
 
1

1ive

ПереписаЛ)
Линчуйте...

Любой код можно оптимизировать до бесконечности..

Насчет цветогого решения...Опять же) Не очень хотелось подбирать что-то оригинальное.. Просто взял за основу три цвета.
(#fff, #f9f9f9,#444)

На 1ive.ru/karma - пример работы(совсем без дизайна)
 
1

1ive


Новый слоган: "дизайны без контрастов" :)
 
V

vital

ненавижу процедурный подход и PHP4 style. ЧА посмотрю код внимательно.

Добавлено: посмотрел.
Ты что, по Попову учился? Переписывать еще раз.
global забудь.
вместо этого preg_replace("/\n/",'<br>',$value);
юзай nl2br();
Это типа маленькие подсказки. + логику немного стоит пересмотреть.
И сделай это классом(очень желательно).
 
H

hosm

vital под НГ решил подарок сделать - уроки хорошего тона на пхп? =)
 
1

1ive


"по Попову учился?"
Самоучка.. Учусь только на практике)
 
1

1ive

Не будем учитывать твою личную неприязнь к процедурам)
Без global - не работает
nl2br(); - не такое уж и серьезное изменение..

И вообще я не вижу смысла в каких-либо изменениях.
Можете закидать меня тапками
 
1

1ive

Брр)
Он холодный.. и мокрый, когда тает...
 
A

acorn

форматирование страдает... а вообще, я бы любую книгу по PHP начинал с азов MVC
 
Мы в соцсетях:

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