LIME, у кого это - "у нас"? (Добавление)
На сколько я помню буферов много не бывает. Нужно каждый раз переносить содержимое в переменную, очищать буфер, заполнять заново и так каждый раз. Ну чем не костыль?
lamer6666, а в чем собственно проблема разобраться с такой мелочью как куки\сессии задолго до того, как в браузер что-либо полетит? Вообще конечно самый лучший вариант это отделение пхп от хтмл кода, но это вам так сразу осилить не выйдет.
Но буфера тоже выход, хотя скорей и костыль в данном случае. хз хз.
Полнейший бред конечно, типичный представитель "индусского кода", основателями которого собственно и являются хитрые индусы, которые в свое время быстро смекнули, что их зарплата прямо пропорциональна зависит от кол-ва строк кода... В те далекие времена когда только-только вышел ie 5.0(если мне память не изменяет) не было у рядовых граждан такого слова-паразита как "выйти в интернет" итп, в те времена в моде было словосочетание "Пойду, поброжу по Nescape Communicator", в этот момент Биллу и пришла в головы навязчивая идея сделать свой клиент(браузер) для работы в интернет, а самой главной фишкой было то, что он был "намертво" впаян в винду, в те времена знаете не так просто было с дискетками громандыми бегать Nescap'ы всякие таскать. Это сейчас люди на улице смотрят косо от такого форса, а тогда было просто лень, да я как сейчас помню как на 1.44 мортал комбаты таскали "из рук в руки" Примечательно что разработчиками IE 6, 7, 8 являются почти все поголовно индусы
Команда разработчиков IE7. Вглядитесь в эти лица.
И на количество пальцев, что показывает нижний-правый программист, их сумма явно не стакается с "7 версией осла" да и надпись на майке seven, для этих людей тоже пустой звук - это имхо!
В таком коде не редко можно встретить такие вещи как :
Сложно конечно воздержаться от высказывания, что твой код отчасти - говнокод, в традиции которого "на века" вбиты такие вещи как название функций\методов\классов\переменных русскими словами, но написанные на транслите. Сюда можно отнести и комменты на русском или вообще полное отсутствие комментов. - имхо дурной тон!
Ну что за $kod, $numCab, $spec, $hoursOne, $hoursTwo и $vidZach в названиях переменных, которые плавно берут истоки из аргумента функции. Я вот не пониманию, что такое $hoursOne/Two, $vidZach и думаю никто тут без "стакана" не разберет. Да и вообще зачем плодить кучу функций с огромным количеством аргументов? Хотяб добавь к ним $kod = 0, чтоб дефолты какие-то были, дабы меньше заморачиваться пытаясь в очередной раз освежить в памяти что там за аргументы нужны истерично пытаясь найти эту функции в громадном инклуде который лежит в папке libs и называется func.php - утрирую.
Конечно идеальным вариантом на мой взгляд будет передавать в аргумент массив. Конечно можно и некий модуль под это дело подогнать, но тут вопрос проф пригодности встает очень остро, к примеру я попробую в общих чертах показать что нам нужно от модели "teachers", очень поверхностно я ее рассмотрю :
'teacherID'=>0,// это бывшаая $kod, думаю теперь это будет ID
'teacherSpecialty'=>0,// это бывшая $spec, я перевел её как "специальность".
'teacherFirstname'=>'',// Имя преподавателя
'teacherSecondname'=>'',// Фамилия
// 'cutName' я к сожалению как ни бился перевести не смог, буду считать это вышеуказанной фамилией.
// 'hoursOne/Two' я так понимаю это время когда учитель заступил на свой пост и покинул смену, изходя из этого расчитывается общее кол-во часов ?
'teacherEmployment'=>array('begin'=>0,'end'=>0,'total'=>0),// Достаточно просто в абстрактном плане понимания на мой взгляд.
// прости но '$vidZach' - я хз как вообще можно перевести кроме как "вид зачета" )
'teacherTypeoffSet'=>0,// Допустим это сокращение от Teacher Type of offset ака vidZach
'teacherClassroom'=>0,// Слово кабинет на англ. выглядит именно так как ты сократил $cabNum - cabinet, хотя можно и schoolroom или auditorium
// Далее у тебя идут какие-то группы и специальности, смысла хранить их в базе я не вижу вообще, вот хоть убей меня!
// Нету смысла их так-же пихать сюда, вот зачем они тут?
// Хотя конечно список групп можно при желании засунуть в какую нибудь табличку базы, а можно сделать текстовое поле рядом с персональными данными учителя,
// и туда через implode пихать значения констант групп, потом так-же легко это все распарсится.
// Объявим константы, сделаем битовые маски! Да здравствует полнота очущений от полноценного языка!
);
// Собственно я уже выше писал, что можно можно объявить специальности как константы, особенно если их мало.
// Группы аналогично можно пихнуть куда нибудь в таблицу teachers, получится одна красивая табличка в которой будет в одной строке вся инфа!
if($teacher_group& TEACHER_GROUP_ONE){// Учитель состоит в группе один,
}
if($teacher_group& TEACHER_GROUP_THREE){// Учитель состоит в группе три,
}
// Исключать из группы или увольнять по проф непригодности тоже проще пареной репы, надо знать всего лишь константу той группы от которой надо избавить учителя
$teacher_group&= ~ TEACHER_GROUP_ONE;
// Теперь сохранить новое значение переменной в базу и все. Учитель больше не состоит в группе один.
- Ты обладатель типичного представителя индусского кода, вреда от него скорей больше, чем пользы даже если ты получишь по рублю за каждую строку.
При каждом выполнении скрипа у тебя может открыться и тут-же закрыться Nнндцать подключений к базе, что само-собою скажется на скорости работы приложения.
Решения давно есть, нужно смотреть в сторону ООП. Серьезных приложений в которых все больше и больше разных вещей нужно как-то хранить в пределах жизни скрипта и получать из любого места кода не бывает в процедурном стиле!
Нужно строго контролировать текущее подключение к базе данных и хранить ссылку на него как-нибудь экзотическим для процедурного стиля понимания способом, ну как вариант использовать паттерн Singleton, а вообще можно при желании и паттерн Registry под это дело приспособить.
Подключение к базе должно быть (*опционально) инициировано автоматически при первом обращении к методу класса который должен будет заниматься собственно связью с этой базой (это должен контролировать какой нибудь класс, опять-же синглтон вполне справляется, но можно некий класс-прослойку написать, исчезнут лишние строки Singleton::getInstance(); в каждом методе который как-то работает с базой, но с другой стороны не самая лучшая идея плодить классы ради класса. Риторический вопрос конечно. )
Нужно как-то ловить ошибки (конструкция : try - catch), а чтоб их ловить нужен класс который собственно будет плеваться этими самыми ошибками, в этом плане PDO прекрасно справляется, но опять же без синглтона никуда ! К тому-же нету необходимости заморачиваться со всякими mysql_real_escape_string, в PDO своя система которая зачищает некоторые запросы от sql-инъекций, шансов нет!)
Я? Да мог, легко вообще! Сейчас перепроверю и добавлю цитату если не ошибся !) (Добавление)
Нет, ошибки быть не могло! )
Внимание ! Вопрос форумчанина :
Symby пишет:
Хотелось узнать про альтернативный синтаксис конструкций php, то есть про
Такие подобные конструкции используются для чего? Как я понимаю они используются для упрощения редактирования и чтения html кода заключенный в php файл?
Далекий от истины ответ другого форумчанина, таким образом и появляются различные неверные убеждения в правильности или нет использования тех или иных вещей - Вы сплетники господа!)
incker пишет:
нет endif и endwhile. все сделано умнее. чтоб можно было делать условие внутри условия которое в еще одном условии (то же самое while)
(Добавление)
Ну а вообще пхп славиться большим количеством функций сам факт присутствия которых очень сложно объяснить. Например goto ?? Зачем?? Зачем его включили в пых 5.3 если не ошибаюсь
Ну а вообще такие вещи делают сам язык более универсальным. Вот ты писал всю жизнь на куБейсике, там как раз все эти begin, goto итд, а тут случилось так, что пых поддерживает такой изврат. Это и многое другое, например не строгая типизация данных и куча остальной фигни обеспечивает пыху очень низкий "входной порог", слишком уже малый багаж знаний нужен начинающему пых прогеру, чтобы с чистым сердцем и без угрызений совести начать говнокодить
u5go, в таком случае если вам нужен свой собственный шаблон, сделайте бэкап файлов текущего шаблона в какую нибудь дальнюю папку куда рука просто так не потянется, а затем открывайте файлы шаблона и меняйте там что душе угодно, синтаксиса CSS и HTML на чем и держаться эти шаблоны везде хватает
incker, endif; endwhile; endforeach - обычные синонимы тех самых фигурных скобок, но названы гордым именем альтернативного синтаксиса, ничем экзотическим они от своих собратьев не отличаются, кроме как зрительным восприятием, и это это только "может быть"
Очень печально, что вы путаете эти синонимы фигурных скобок с простейшими конструкциями языка которые могут останавливать вложенные циклы любого уровня!
break1;// Прерываем итерацию ближайшего цикла ($c > 0);
endif;
endwhile;
endwhile;
endwhile;
echo$a.'<br> '.$b.'<br> '.$c;
Собственно break; полностью прерывает все последующие итерации любого цикла и полностью останавливает его, условно говоря переходит сразу за предел цикла, в качестве необязательного аргумента принимает числовое значение, в котором указано кол-во циклов которые нужно прервать!
Важно не путать с continue; который в свою очередь призван прервать только текущую итерацию!
Стыдно товарищи! А еще боремся за почетное звание форума культуры и быта!)))) ™ "Иван Васильевич меняет профессию"
Спешу Вас огорчить пренеприятнейшим известием, но на тематических форумах где люди изучают сам язык днем с огнем не не найти джуумла-дрочеры с списком ресурсов аля "Всё для Joomla"
Тут интересуются языком как средством воплощения собственных идей, а не как ни одним из его в чем-то может даже и бездарных воплощений в виде этой CMS... Хотя это мое личное мнение и я не хотел вас как-то задеть или обидеть, это очень важно !
Кстати тему надо было создать в разделе Фрейворки, CMS и всё смежное.
Хтмл и CSS тут вообще никаким боком, если конечно вы не собрались сами написать новых шаблонов для джумлы ))
ЧПУ паразитирует у вас на сайте?
Ну, а в целом хотелось бы видеть код класса "noname" который и содержит эти самые методы options(array $array = array()) { .. и add_announce(array $array = array()) { ...
тут важно убедиться, что у метода номер один вообще реализован "текучий интерфейс" , все прикольно и метод возвращает $this; и вы правильно делаетe что пишете так (method_one()->method_two() .. ), а не :
Да и вообще лично у меня сомнения по поводу массива в качестве аргумента второго метода, да еще и с явным значением вместо указания ключа(default key 0 ? ). Методы в студию! (Добавление)
Кстати это ваше "строковое условие" с подобной конструкцией = ( TRUE ) ? TRUE : FALSE; - называется "тернарный оператор"
Crew1251, Yii - фреймворк это набор функций которые чаще всего использует программист для написания приложения с нуля, благодаря фреймворку эта рутина отпадает, дело за малым - выкурить маны по фреймворку и начать что-то делать, всякие там шаблончики страничек рисовать да условия в них тыкать разные. "Значит так : повеливаю тут модуль авторизации подключить, да чтоб каптча глаза простому люду не резала!", "По щучему велению : хочу тут опрос, а там гостевуху, да что уж там, гулять так гулять! Хочу разные шаблоны для каждой из страниц!", но модуль авторизации конечно придется самому ручками сделать, зато сам решаешь логин или мыло, а в джумле все за тебя предусмотрено, плохая гибкость CMS это конечно минус, и плюс к фреймворкам.
Joomla - CMS, это уже полностью написанное приложение, со своими наборами функций для рутинных задач, со своими решениями и подходом к проблемам. Там все сведено не к фантазии программиста который на основе каких-то базовых методов может сделать из фреймворка практически всё что угодно ограничиваясь лишь своими знаниями и фантазией. Там сведено все к тыканью галочки "включить опросы тут, еще тут и вон там, пожалуйста!"
Эти вещи в принципе не совместимы... Хотя... Чем черт не шутит... Нет, всё-же они никак не совместимы. У них все разное, вплоть до архитектуры приложения, не представляю даже как можно наклеить готовую вещь, на "заводскую деталь" которая только готовится впоследствии стать "готовой вещью".
Green, мое мнение - плохие примеры кода еще больше подталкивают новичков к стилю кода "говнокод" или "индусский код" тут еще важно учитывать склад ума новичка по скольку оба эти стиля совершенно разные, и зависят не столько от задачи приложения, а от количества строк в нем или несуразных решений простых задач, но ничего хорошего в них обоих нету.
В том время как красивые и в тоже время простые примеры без лишних плясок с бубном мотивируют новичков на совершенствование навыков! - имхо! (Добавление)
Немного дополнил свой код проверкой состояния сессий (Добавление)
И <? echo $_SERVER['PHP_SELF']; ?> легко можно заменить на <?=$_SERVER['php_self']?>, конечно это функция требует включенной директивы в пхп.ини (short_open_tag но могу ошибаться), обычно она включена если всякие денверы стоят. (Добавление)
И вообще пока не пришла ТС и не занялась обыденным копи-пастом я заменил :
form action="<?=$_SERVER['php_self']?>"
на : так наверное будет самое лучшее решение, но необходимо всё-же тестить, у меня не установлены сейчас ни апач ни модуль пхп ессно к нему, пишу на холстах так сказать
form action="<?='http://' . $_SERVER['HTTP_HOST'] . '/' . current(explode('?', $_SERVER['PHP_SELF']))?>"
Ну я тебе написал, на той самой странице где необходимо с завидной регулярностью обновлять твои данные необходимо подключить js library : jQuery,
далее, где нибудь в конце хтмл скелета твой страницы написать что-то типо :
Я религиозный фанатик, меня редко обламывает скоротать вечерок за парой строчек кода, это только в последнее время я стал подкреплять мотивацию такого времяпрепровождения баночками пива, что часто пропорциональны строчечкам кода , раньше такого я себе позволить не могу, а сейчас ..... бей посуду! - я плачу!!!.
Каролина ! Я те все волосы повыдергаю если ты мне спасибо не нажмешь!!!! ))) И всем остальным тоже кто проявлял внимание к твоим непонятным кусочкам полу-кода бл....ь!!!