Сергей delphinpro, это одно и то же.
если getenv('REMOTE_ADDR') всегда возвращает 127.0.0.1, то надо или нанять админа с прямыми руками, чтобы пробрасывал IP адрес нормально, или у админа же узнать конкретный заголовок, в который кладется IP клиента.
А не перебирать все возможные НТТР заголовки, чтобы любой придурок мог вообще без труда подделать IP
Я не пойму, вы сами этот код писали, или это какой-то готовый, с которым вам приходится работать?
Если сами - то зачем?
Главная проблема этой функции в том, что сама по себе она не защищает от SQL инъекций, и зависит от кода, который пишется перед ней.
Через два дня этот скрипт достанется такому же, который "всего неделю-две суммарно", и который сообразит "оптимизировать" его, выкинув переменную $post, ведь $_POST и так уже массив с нужными данными.
Ну и как всегда, бессмысленная и вредная функция dbCheckError();
Ну, если вы и дальше собирались писать необдуманные ответы, и выдавать эмоциональные тирады в ответ на нейтральный комментарий - то, пожалуй, оно и к лучшему.
Надпись "Post created" выводит потому что неправильно сделана работа с ошибками.
Вот это try и catch с echo "Ошибка! никогда писать не надо.
А вот настроить ПДО чтобы он сам сообщал об ошибках надо обязательно.
поэтому при соединении после new PDO надо ниже написать
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
mayton2019, а как его переписать на in? А, главное - зачем?
Вот у нас новость под заголовом "В Марокко произошло землетрясение", мы вводим в быстрый поиск буквы "зем" и хотим чтобы нам её показало
Как это переписать на title in?
Ну или любой другой вариант поиска
Ну здесь опять же два подхода.
Самый простой - это на каждый цвет и размер завести свой артикул.
Подписка на 12 месяц это один товар, а подписка на 1 месяцев - другой.
Если, по вашим словам, количество опций, как и количество товаров, сильно ограничено, то можно обойтись одной таблицей.
Но в реальности обычно оказывается, что опции все равно добавляются и их надо хранить отдельно.
при небольшом количестве категорий можно обойтись и eav. Но JSON в этом случае городить будет неправильно
Как я писал выше, таблица опций id-название(цвет, размер, срок подписки), таблица вариантов опций id опции-значение(красный, XL), и таблица опция-вариант-товар-количество. В корзину можно класть либо как у вас, id товара+id варианта опции, либо id из этой последней таблицы.
Если же использовать json поле в таблице товаров, то в корзине точно так же сохранить json с опциями.
А в пользовании интернетом вы тоже новичок?
по запросу "питон нажать кнопку на сайте" вам поисковики вообще ничего не находят?
или вы даже не пытались?
если getenv('REMOTE_ADDR') всегда возвращает 127.0.0.1, то надо или нанять админа с прямыми руками, чтобы пробрасывал IP адрес нормально, или у админа же узнать конкретный заголовок, в который кладется IP клиента.
А не перебирать все возможные НТТР заголовки, чтобы любой придурок мог вообще без труда подделать IP