Кармометр

Тема в разделе "PHP программирование", создана пользователем 1ive, 21 дек 2010.

  1. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
    Хочу всех рассказать о своем новоизобретенном велосипеде)
    Даже не просто рассказать, а показать как все работает...

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

    Этот как прокачивать своего "эльфа 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();
     
  2. acorn

    acorn PHP Developer

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
    Не хочу Вас обидеть, но это называется говнокодом..
     
  3. 1ive

    1ive Well-Known Member
    Web Team

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


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

    :facepalm:
     
  4. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.469
    Симпатии:
    27
    У лайва партиное задание. Не отвлекай=) Он под моей опекой=)
     
  5. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    vital а как же карма? вдруг за код ее слегка подпортят, а? :facepalm:
     
  6. acorn

    acorn PHP Developer

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
    ну раз всё так серьезно :rolleyes:
     
  7. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Господа, сорри за офтоп, но у меня созрел лозунг: "Даешь больше говнокода по опекой у vital-а!"
     
  8. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    European меня вот тоже удивило - обычно vital как раз против подобного кода и очень жестко за это наезжает.
    Но там действительно серьезное партийное задание было =)
     
  9. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    кстати, а это так и задумано - такое цветовое решение для текста после добавления оценки? =)
    karm1.jpg
     
  10. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
    ПереписаЛ)
    Линчуйте...

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

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

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

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    ну, я ж не просила диз от лебедева :), просто белый текст на белесом фоне смотрится прикольно...
     
  12. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0

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

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.469
    Симпатии:
    27
    ненавижу процедурный подход и PHP4 style. ЧА посмотрю код внимательно.

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

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.469
    Симпатии:
    27
    совсем забыл. Иди нафиг=)
     
  15. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    vital под НГ решил подарок сделать - уроки хорошего тона на пхп? =)
     
  16. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0

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

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
    Не будем учитывать твою личную неприязнь к процедурам)
    Без global - не работает
    nl2br(); - не такое уж и серьезное изменение..

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

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    лучше снежками ;) вон сколько нам на лого тимов привалило снега. Надо и тебе чуток дать =)
     
  19. 1ive

    1ive Well-Known Member
    Web Team

    Регистрация:
    12 сен 2010
    Сообщения:
    694
    Симпатии:
    0
    Брр)
    Он холодный.. и мокрый, когда тает...
     
  20. acorn

    acorn PHP Developer

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
    форматирование страдает... а вообще, я бы любую книгу по PHP начинал с азов MVC
     

Поделиться этой страницей