За последние 24 часа нас посетили 17532 программиста и 1721 робот. Сейчас ищут 1888 программистов ...

Хочу критику

Тема в разделе "PHP для новичков", создана пользователем Enjoy, 25 ноя 2015.

  1. Enjoy

    Enjoy Активный пользователь

    С нами с:
    10 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Народ, привет всем. Чуть освоив язык, написал некое чудное подобие форума.

    Можете подсказать на ошибки скрипта?
    Дизайна нет ))))

    http://destworld.xyz

    Добавлено спустя 1 минуту 32 секунды:
    Регистрации нет... в БД пишется пользователь с ником 1
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
  3. Enjoy

    Enjoy Активный пользователь

    С нами с:
    10 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Прикольно ))) да, фильтрации в форме нет ))) Еще? )
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Ты молодец, что сделал хотя бы то что сделал. Двигайся дальше.
     
  5. Enjoy

    Enjoy Активный пользователь

    С нами с:
    10 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Спасибо.... я это делал два месяца :) жесть да? учитывая что сначала процедурным, а теперь ООП+MVC
    Чеки потом, щас регу прилеплю и ЧПУ хочу...

    А потом все выверну в ММОРПГ :)))
     
  6. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    не один я такой инвалид оказывается.
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  8. Enjoy

    Enjoy Активный пользователь

    С нами с:
    10 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Прилепил авторизацию :)
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    От инъекций защитился?
     
  10. Enjoy

    Enjoy Активный пользователь

    С нами с:
    10 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Нет еще....
    Это след шаг
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
  13. Enjoy

    Enjoy Активный пользователь

    С нами с:
    10 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Исправил, спасибо )
     
  14. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Как исправил? Корявочка получилась! Ты striptags() чтоли используешь? Допустим мне надо написать товарищу пример с кодом HTML, а ты все теги вырезаешь!

    Используй htmlspecialchars() или htmlentities(). И делай это при выводе текста, а не при сохранении в базу. Тогда пользователь будет видеть то, что он вводил, а на самом деле в коде все < и > будут заменены на &lt; и &gt;

    Добавлено спустя 5 минут 25 секунд:
    Далее: ты используешь тег <pre> чтобы переводы строк работали? Зря! Форумы так не делают. <pre> нужен только при выводе кода (обработка ббкода [code]). А для простого текста делается nl2br() чтобы заменить "\n" на <br>
     
  15. Enjoy

    Enjoy Активный пользователь

    С нами с:
    10 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    хороший совет, спасибо!!!
    Еще юзаю Mysqli_real_escape_string()
     
  16. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Вот когда пишешь код в любимой ИДЕ и нажимаешь enter, в текст автоматически вставляется \n, но она не отображается ? Я правильно понимаю ?
     
  17. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    вставляется дефолтная для оси последовательность конца строки, если явно не указано что именно использовать. в винде - \r\n, в маках (старых, сейчас вроде как и все никсы стали) - \r, в никсах - \n
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    В IDE есть настройка для этого дела.
     
  19. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    nl2br() достаточно умён чтобы делать так:
    "x\ry" => "x<br/>y"
    "x\ny" => "x<br/>y"
    "x\r\ny" => "x<br/>y"
    "x\r\n\r\ny" => "x<br/><br/>y"

    Добавлено спустя 2 минуты 36 секунд:
    в HTML перевод строки отображается как пробел. любая последовательность "пробельных" символов выводится как один пробел.
     
  20. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Ganzal, т.е. если текстовый файл писали на линуксе или маке, то при просмотре в винде форматирование текста полетит ? И почему в пхп мане написано что \r - это перевод каретки в начало строки ? Он разве переводит чтото ?

    artoodetoo, нет, мне интересно в php файле(да или в любом другом текст. файле) последовательность символов перевода на нов. строку, она по идее ведь должна присутствовать в файле(в тексте), но не отображается в редакторе ?
     
  21. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ничего не "полетит" если умная программа. я вот часто открываю в виндовом блокноте файлики созданные мною под никсами и вижу одну бесконечную строку. а нотпад++ всё понимает. и иде понимают. и браузеры кое-как понимают.

    возврат каретки перегоняет каретку к началу строки. как на старой печатной машинке движение рукой слева-направо. или на матричном принтере. или на плоттере. или на перфокартах. короче этот термин стар как говно мамонта. но после перевода каретки она фактически находится над тем же текстом что уже напечатала. поэтому делается протяжка линии - продвигается носитель на нужную дистанцию позиции следующей печатной линии. то есть правильно про новую строку делают как раз в винде - перегнал головку, протянул бумажку. но это речь о печати. в интернетах же это всё нафиг не нужно - есть перевод строки значит курсор переходит на офсет ноль следующей строки. и тут возникает разница. никсы говорят что для этого достаточно последовательности "новая линия" что в старой терминологии лишь подтягивала бумажку на пару миллиметров, а в яблочной продукции считают что "возврат каретки" сразу и линию переводит. но я думаю к ним можно было бы прислушиваться с учетом того что они не мало издательского софта и технологий выпустили. но и они мне так кажется перешли на перевод строки символом "новая линия".

    о да и еще как переводит. но это видно на консольный приложениях - например вывод счетчика и/или прогресса если делать через echo "\r", $cnt то строка будет одна и та же на экране и меняться будет только значение. а по \n ты как раз и начнешь новую строку с нулевой позиции. удобно. но для веба - роли вообще не играет так как браузер рендерит хтмл-разметку а она мало завязана на то какие в ней переводы строк.
     
  22. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Спасибо за столь развёрнутый ответ. Теперь я всё понял. Я просто, наверно как и все остальные неосведомлённые, думал, что \n это тоже самое что enter. А на примере машинки стало всё понятно.
     
  23. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    собственно если ты на печатной машинке нажмешь энтер то вал прогонит бумагу на следующую строку но позиция каретки останется той же и для её возврата в крайнее левое положение тебе нужно будет совершить звонкое действие рукой. то есть \n и enter в данном случае - печатной машинки - фактически тождественны и ты думал правильно. но в современных железяках это тождество уже утрачивается.
     
  24. Enjoy

    Enjoy Активный пользователь

    С нами с:
    10 июл 2015
    Сообщения:
    62
    Симпатии:
    0
    Вроде учел замечания
    Переехал на другой хостинг, и домен взял нормальный

    кому интересно поломать, ломайте, только потом напишите что делали
    http://destworld.xyz
     
  25. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    обычно сырой продукт разрабатывается в рамках 0.х ветки. потом идет стадия 1.0-пререлизов (типа альфа1, альфа2, бета1, бета2, бета3, релизкандидат1, релизкандидат2, арси8) и потом наступает релиз 1.0.0
    тестовая версия 1.2.2 просто разрывает любую логику версирования.
    кстати, мне еще очень нравится система нумерации в перле - все четные миноры являются продакшном (1.0, 1.2, 2.4.1) а все нечетные - девелоперскими (0.9, 1.1, 2.5.99)
    то есть у тебя сейчас может быть 0.9.55 но никак не 1.2.2