Бронирование происходит на стороннем ресурсе через апи ?
Как минимум нужно обработать ответ от этого апи, по идее оттуда придет ответ что бронь уже есть и вы должны корректно обработать эту ситуацию, сказать пользователю на сайте, что мол место уже занято
Ну либо пытаться делать пред бронь и потом в случае чего ее отменять, если не сложилось. Но это если АПИ поддерживает такой функционал
я бы попробовал вариант разбивать книгу на логические элементы, например главы/параграфы/предложения и для каждой единицы хранить объем. когда пользователь запрашивает книгу, ему выдаются от 1 до N элементов помещающихся в их буфер (страницу) и таким образом пагинация будет не классической, а подгружать элементы начиная с максимального который отображается на странице
значит так. идем в мануал и читаем внимательно описание функций и операторов print echo printf \ sprintf и тд
семейство функций printf предназначено для подстановки переменных с определенными типами в строки по плейсхолдеру
вместо слова друг может быть любая переменная и ее содержимое будет подставлено на место волшебного %s
этих плейсхолдеров может быть несколько, и для каждого плейсхолдера обязательно должен указываться аргумент, если в шаблоне (первый аргумент) будет плейсхолдеров больше чем вы зададите во втором и следующих аргументах, то вы получите ошибку описанную вами в первом посте
printf('Привет, %s. Я вчера видел %s, в городе %s','друг','Васю','баре');
ваша проблема заключается в том что вы в строку шаблона подставляете переменные и понятия не имеете какой паттерн генерируется из-за вхождений переменных.
предположительно в переменной $text имеются спец последовательности %s %d %f, поэтому функция ищет для них аргументы, которые вы не передаете
вывод: в вашем случае на лицо непонимание зачем нужна эта функция и неправильное ее использование.
2 сервере очевидно должны смотреть в разные ветки гита
dev-серввер (разработка dev branch)
prod-сервер (без ошибок и сырых непроверенных коммитов master branch)
почитайте про continuous integration и про системы деплоя
и еще настоятельно рекомендую вести разработку исключительно на локальном сервере (компьютере) и после всех проверок и завершения разработки - коммитить код в репо. а уже на серверах делать pull тем или иным способом
грубая цена такого сайта от 50к $. самый плохой старт хотябы 20к. вот и все расклады. амбиции хорошо - но для их реализации нужно много времени и сил (своих или чужих или денег за чужие силы)
подсказка: что будет если в одном из полей черного списка не будет данных, к примеру телефон3 будет пустым и на вход для проверки придет только один номер телефона а второй будет пустым
соответственно
искомый_телефон = ""
телефон из черного списка = ""
"" == "" => что будет?
первое и самое главное - не с того конца начал. не нужно ничего шифровать! какие хакеры? кому нужен этот сайт и тем более список имейлов большинство из которох все равно скорее всего есть в свободном доступе
второе: хранить адреса все же придется в открытом виде, иначе никак, все манипуляции с шифровкой и расшифровкой с минимальной вероятностью повысят защиту, а вот хлопот добавят как пить дать
третье: можно отправлять и с сайта и с мейлчимпа - это дело десятое и можно инкапсулировать в отдельном модуле. как именно отправлять - решать автору или заказчику, но вряд ли с этим могут возникнуть проблемы
ну и последнее: есть такая штука как крон, возможны другие варианты планировщиков, но крон самое простое и доступное. именно он должен дергать выполнение задач по расписанию, а что будет выполняться в этих задачах это уже другое дело. так что отделяйте мух от котлет и вперед с песней
dcc0 начал свой текст, как интеллигент, а закончил как школьник... значит еще не созрел
скорее всего таки от школы ты не далеко ушел.
но не страшно, все еще впереди!
по сабжу: ООП и только ООП!
если не собираешься писать на хаскеле с монадами и сепульками то на... зачем этот функциональный подход нужен?
вот отличный пример язык С. там на уровне поддержки языка возможно использовать только процедурный стиль и ничего больше нельзя, извращайся как хочешь. с другой стороны посмотрев на статистику использования языков, то основная масса всех разработчиков работает с объектно-ориентированными языками типа Джава, С++ да тот же пхп основную массу усилий прилагает чтобы развить именно ООП плюшки. так что холиварить безсмысленно ибо вывод очевиден.
ПыСы: и да, я не тим лид, и даже не синьор. но кое-что знаю
Panoptik, встречный вопрос: ты в цензурном комитете работаешь?
да, я тут представляю мнение общественности, и даю полезные советы по мере надобности
dcc0 пишет:
Тебе показать гениальный процедурный код паноптика?
http://forum.php.su/topic.php?forum=60&topic=6221&postid=1407243636#1407243636
по поводу моего кода не сильно понятно что тебя смущает в 5 строках.
в первую очередь ооп или функциональный подход это архитектурный подход к построению и взаимодействию кодовых масс
тех 10 строк просто демонстрируют алгоритм, а не архитектуру
так что дорогой dcc0 вы обосрались маленько
читай матчасть и думай прежде чем что-то сказать
тут выше описали корректные ответы на вопрос и я согласен с мнением отвечающих, поэтому не вижу смысла очередному выскочке рассусоливать то что написано в книжках и добыто на собственном опыте