1. Всем пользователям необходимо проверить работоспособность своего электронного почтового адреса. Для этого на, указанный в вашем профиле электронный адрес, в период с 14 по 18 июня, отправлено письмо. Вам необходимо проверить свою почту, возможно папку "спам". Если там есть письмо от нас, то можете не беспокоиться, в противном случае необходимо либо изменить адрес электронной почты в настройках профиля , либо если у вас электронная почта от компании "Интерсвязь" (@is74.ru) вы им долго не пользовались и хотите им пользоваться, позвоните в СТП по телефону 247-9-555 для активации вашего адреса электронной почты.
    Скрыть объявление

Кодинг на PHP

Тема в разделе "Вебстроительство", создана пользователем ansis, 13 июн 2006.

  1. ansis

    ansis

    Репутация:
    695
    ansis, 13 июн 2006
    Эта тема предназначена для обсуждения и решения любых проблем, связанных с программированием на языке скриптов PHP, обмена секретами, опытом и помощи другим пользователям.
     
    #1
  2. XoD

    XoD Самец :)

    Репутация:
    6.194.200
    XoD, 23 янв 2013
    А, не правильно тебя понял, извини.

    Да! Но я лично его прекрасно понимаю. Когда и времени уже нет, и знаний нет, да и в первую очередь не стоит овччинка выделки. Там, скорее всего, всем глубоко плевать, какого качества у тебя код, да и вообще как он написан. Важно что бы было красиво, работало и соответствовало теме твоей ВКР. Во всяком случае у меня так было, не знаю, как у автор вопроса. У меня в комиссии не было ни одного человека, кто бы хоть немного разбирался в программировании. Они увидели, что все выглядит красиво (ну у меня-то понятно, кто решил защищаться с использованием "сайта" даже дизайн был жуткий, но оценивали их все равно не ниже четверки), работает (причем на явные баги и недочеты иной раз тоже не обращали внимания), теме соответствует - все! Половина отличной оценки есть. Остальное зависит от выступающего (насколько уверенно держится, насколько хорошо и грамотно говорит, и в конце концов что говорит - качество текста для защиты) и от правильности твоей ВКР (нет ли явных ошибок в структуре, оформлении, и т.п.). Ничего не нашли, выступление понравилось, вопросов не возникло. Все. "Спасибо, отлично.". Мне профессия не позволила сделать криво и с плохим кодом, это было делом принципа, но в подобной ситуации разве стоит на это тратить море драгоценного времени человеку, который в программировании не разбирается и забудет об этом PHP на следующий день после защиты диплома? По-моему, совсем не стоит. Лучше уделить больше времени второй половине.
     
  3. MIDAS

    MIDAS Ословед

    Репутация:
    2.100.393
    MIDAS, 23 янв 2013
    Вы меня прям заинтриговали.
    Есть где почитать про все эти нюансы кодинга? только в доступно понятной форме в стиле: делай так, вот так не делай. Без тучи лишнего текста рассуждений почему надо бы делать так, а не так.
     
  4. XoD

    XoD Самец :)

    Репутация:
    6.194.200
    XoD, 23 янв 2013
    В интернете все есть, в частности на хабре. Ищи гуглом интересующие тебя вопросы и читай, выбирая то, что посчитаешь достаточно понятным. На русском есть полезный материал, но как обычно в нашей сфере, большинство отличных источников на английском (это я указал даже болше к тому, что запрос гуглу иной раз эффективнее будет составить на английском, а не на русском). Нюансов, правил и стандартов очень много, чтобы вот так взять и дать на все ссылку или впихнуть в одну статью. Это все постигается и приходит с опытом.
     
  5. sinisha

    sinisha Ословед

    Репутация:
    1.130
    sinisha, 24 янв 2013
    ох как "профи" щеки понадували, человек про ошибку спросил, его учить оформлению кода начали
    прийдет время - всему научится

    эта ошибка из другого места
    в указанном вами запросе нет поля LifeGame в запросе
    вообще функция должна выводить строку в скрипте, где ошибка произошла
     
  6. XoD

    XoD Самец :)

    Репутация:
    6.194.200
    XoD, 24 янв 2013
    Решил он проблему уже. Причем просто заключением переменной $TileID в кавычки, т.к. в ней текст. + еще оно место в коде было с аналогичной ошибкой.
     
  7. Serge

    Serge Ословед

    Репутация:
    13.474.289
    Serge, 24 янв 2013
    в комментариях к разделам справочника функций PHP есть очень много полезных примеров решения тех или иных задач, например выше я привел ссылку на функции mysql.

    практически официальные рекомендации по PHP
    http://pear.php.net/manual/ru/standards.php

    доступно про оформление кода на примере стандартов CMS Drupal
    http://drupal.org/coding-standards

    про проектирование веб-приложения
    http://www.odi.ch/prog/design/php/guide.php

    Очень качественно оформлены такие проекты как например Drupal, Yii Framework - можно просто смотреть исходники и изучать - как нужно решать те или иные задачи.
     
  8. slui

    slui

    Репутация:
    7.109
    slui, 20 мар 2013
    Забудьте вы все про include как про страшный сон! Давно уже есть
    spl_autoload_register!

    Например, примерно такого содержания:
    PHP:
    spl_autoload_register( function ( $class ){    include SOME_PATH 'classes/' $class '.php';} );

    Тогда при попытке вызвать статический метод, или создать экземпляр класса, например так:
    PHP:
    $some_class = new MyClass();
    Пыха сначала сходит в директорию classes и попробует заинклудить файл соме_паф . 'classes/MyClass.php' а потом уже попытается создать его экземпляр.

    И, что характерно, он попытается сходить только в том случае, если файл еще не заинклужен был ранее...
    То есть, если будет так:
    PHP:
    $some_class1 = new MyClass();
    $some_class2 = new MyClass();
    То пыха только один раз сходит за файлом.

    И будем вам счастье! =) Во всем проекте ТОЛЬКО ОДИН инклуд! =))) И никогда не будет двойных инклудов, потерянных часов дебага, и прочего.
     
  9. Serge

    Serge Ословед

    Репутация:
    13.474.289
    Serge, 21 мар 2013
    дык он только классы подгружает.
     
  10. XoD

    XoD Самец :)

    Репутация:
    6.194.200
    XoD, 21 мар 2013
    Есть такие люди, кто принципиально вообще ВСЕ пихает в классы, пуст в них будет даже просто набор public static методов, т.е. просто изолированное хранилище обычных функций, и считает, что так оно правильней и лучше. Для них возможно spl и будет удобнее, хотя опять же от ситуации и целей зависит. require и include(_once) никто не отменял. Функции необходимые.
     
  11. slui

    slui

    Репутация:
    7.109
    slui, 22 мар 2013
    Функциональное программирование - для школоты.
    Более-ли менее нормальный проект сделать нереально через функции.

    Да и накрайняй, что, религия не позволяет запихать функции для работы с текстом в Lib_Text::, для работы с изображением Lib_Images::, для работы с урлами по RFC Lib_Url::
    И так далее. Тогда достаточно будет В ЛЮБОЙ ИДЕ набрать Lib_Text:: - и вывалится полный список всех функций. И не надо запоминать что инклудить, какое имя функции и так далее.

    Скорость разработки раз в 10 увеличивается, багов - нет, профайлить код - одно удовольствие=)
     
  12. slui

    slui

    Репутация:
    7.109
    slui, 22 мар 2013
    Но хочу отметить, что я лично КРАЙНЕ против статичного программирования. Это похоже на тот-же функциональный стиль.

    Все классы должны инкапсулировать данные в себе. Например, $url = new Lib_Url($string); if ($url->isValid()) echo('Это ссылка: ' . $url); else throw new Exception('Дебажим');

    Для этого достаточно в Lib_Url определить метод __toString(). Наглядно, дебажно, быстро, удобно, автокомплит, но инклуде, всё ООП-но.

    Потом, в будущем можно добавить по необходимости туда метод getHost() или getDomain() по вкусу, и получать домен по урлу. Опять-же ООП-но.
    Потом еще добавить разложение урла на части в массив, по принципу:
    $arr = explode('/', $string_url) -это лошарски
    $url = new Lib_Url($string_url);
    if ($url->isValid())
    {
    $arr = $url->asArray(); - это достойно уважения.
    }
    else
    {
    throw new Exception();
    }
     
  13. Mountlander77

    Mountlander77

    Репутация:
    0
    Mountlander77, 4 апр 2013
    скрипт, хранилище файлов

    День добрый!
    Есть скрипт, хранилище файлов. Дописан был и переделан под себя давно (профессионально не связан с программированием просто для себя писал). Недавно хотел переписать - не пошло. Нужно добавить капчу в момент скачивания файлов и ограничить загрузку файлов 1 файл - один пользователь, один поток.
    Буду рад увидеть бескорыстную помощь и предложения в личке.
     
  14. XoD

    XoD Самец :)

    Репутация:
    6.194.200
    XoD, 4 апр 2013
    Зачем дублировать пост во все разделы? Это нарушение правил ВГ вообще-то. На каком языке написан ваш скрипт? Я предполагаю, что PHP. Если JS и используется, то совсем незначительно. Если так, то пост из раздела HTML/JS стоит убрать.
     
  15. MIDAS

    MIDAS Ословед

    Репутация:
    2.100.393
    MIDAS, 6 апр 2013
    И снова я)
    В базе есть табличка пользователей. Там два поля: юзер и пароль.
    Мне сказали что храню я там пароли зря и надо использовать какую-то соль и md5
    Гуглю я гуглю, нашёл какую-то функцию crypt() но ничего понять не могу.

    Как мне сейчас перегнать существующих юзеров в новый формат? Чтобы без отрыва от производства люди и дальше логинились. А то ведь если я сейчас удалю существующих юзеров регистрацию всем проходить по новой придётся.
    Да и как вообще, если на пальцах, работать с этим md5 и солью?
    ЗЫ. Колонку "соль" в базе создал. На этом мой успех закончился.
     
  16. Serge

    Serge Ословед

    Репутация:
    13.474.289
    Serge, 6 апр 2013
    md5 - алгоритм шифрования. Хорошей практикой является хранения паролей в зашифрованом виде, в виде т.н. хэшей. Соль - это ключ для уникальности шифрования. Материалов на эту тему вагон, ибо азы азов...
     
  17. slui

    slui

    Репутация:
    7.109
    slui, 6 апр 2013
    Пример команды на конвертацию:
    mysql_query("UPDATE `users` SET `password` = MD5(`password`)");

    Как проверять:
    $res = mysql_query("SELECT * FROM `users` WHERE `login` = '".addslashes($_POST['login'])."' AND `passwod` = '".addslashes(md5($_POST['password']))."');
    $user = mysql_fetch_assoc($res);

    Всё. По поводу соли - это не обязательно. Соль делается для усложнения хеша. Что-бы нельзя было взломать по словарям.
     
  18. Mountlander77

    Mountlander77

    Репутация:
    0
    Mountlander77, 8 апр 2013
    Ну вообще то в разных разделах идет речь о разных скриптах. Один на java script написан, второй на PHP. ;) Назначение тоже разное.
     
  19. i Maks

    i Maks

    Репутация:
    167.105
    i Maks, 10 апр 2013
    Скажите, есть ли ZEN-Coding для PHP? Или что-нибудь подобное для этого языка.
     
  20. XoD

    XoD Самец :)

    Репутация:
    6.194.200
    XoD, 10 апр 2013
    http://code.google.com/p/zen-php/

    Но, на мой взгляд, это все бесполезные излишества.
     
  21. MIDAS

    MIDAS Ословед

    Репутация:
    2.100.393
    MIDAS, 7 май 2013
    Что не так с этим скриптом?

    Есть скрипт
    Код:
    chdir("img");
    	if(!(is_dir($Author))) {
    		mkdir($Author, 0700);
    	}
    	chdir($Author);
    	if(!(is_dir($id))) {
    		mkdir($id, 0700);
    	}
    
    При условии что скрипт лежит в root (корень сайта).
    По моей логике в итоге должен получиться каталог:
    root/img/Author/id

    Соответственно если существует уже такой Author или у Author'а есть уже такой id, то соответствующая папка создаваться не должна.


    А получается так, что создаётся и
    root/img/Author/id
    и
    root/img/id
     
Загрузка...