Коллеги,
ломаю голову над правилом создания человеческой ссылки в строке браузера. Сам в регулярных выражениях не особо силен, и прошу откликнутся не равнодушным.
Возникла сложность в получении ключей элементов массива, выводимых в цикле - начинает выводить со второго элемента: первому присваивает ключ второго, второму - ключ третьего и т.д. (последний выводит пустым значением).
Пробовал использовать функции next(), reset(), prev(), но ничего путного не получилось.
Суть задачи:
Есть массив товаров и параметрами. Сформирован он корректно и имеет следующий вид:
Нужно получить ключи элемента-массива [color_size]. Как вы понимаете первая цифра в ключах есть id цвета, вторая - id размера. Оба id-шника "уйдут" в качестве параметров в функцию удаления товара с такими характеристиками.
1. вот такой жёсткий get сейчас используется редко, делают ЧПУ. А get-параметры такой же обычный элемент урла как хост и путь.
2. нормально понимает. Есть ссылка - переходит по ссылке и ему пофиг, как она составлена. Впрочем в ранжировании выдачи на ЧПУ небольшой приоритет даётся.
3. называется ЧПУ. Для ориентации на SEO - сделано быть должно, а не при необходимости, поэтому материала в поиске хватает. Кратко суть - адрес в урле не имеет ровным счётом никакого отношения к файлам на диске, в нормальном все запросы заворачиваются на один фронт-контроллер.
example.ru/?view=details&product_id=7
example.ru/?view=details&product_id=7&r=2
example.ru/?view=details&product_id=7&f=3
example.ru/?view=details&product_id=8
example.ru/index.php?view=details&product_id=7
Я перечислил 5 абсолютно разных страниц с точки зрения стандарта и поисковой системы. При этом - если параметры r и f, взятые мной просто для примера, у вас не влияют на контент - 4 из этих ссылок являются дублями, что весьма плохо.
Можно пару вопросов на этот счет:
1. Т.е. реализация выдачи всех старниц сайта с помощью GETa это нормально?
2. Как поисковик понимает значения тех или иных параметров строки, и соответственно товаров?
3. Как все-таки - при необходимости - организовать структуру типа: www[dot]site[dot]ru/каталог/категория1/товар_категории1 ? Файл index.php у меня же лежит в корневой папке...?
Не так давно начал изучать веб-технологии и возник такой вопрос: как организовать индексируемые страницы товаров различных категорий, и собственно, самих товаров?
До этого вопроса все было реализовано с помощью метода GET: кликая по ссылке категории или товара, передавался id и из базы в соответствующий блок на странице index.php все выводилось.
Правильно ли я понимаю что в поисковой выдаче у меня будет только эта главная страница? Если это так - как это исправить?
В корневой папке я создал папки категорий. Нужно теперь в них создавать свой index.php (если да что там прописывать - дублировать "главный индекс")? Или как?
Пожалуйста, подскажите как быть. Заранее благодарен!
Я добавляю в корзину товар по id. Когда добавляю следующий, проверяю есть ли такой id в корзине: если есть - увеличиваю количество на 1, если нет - просто добавляю новый. Здесь все хорошо - работает.
Проблемы начинаются когда у меня параметр размера товара - size_id. Я также начинаю делать проверку: если есть товар с таким id - проверяю такого он размера или нет. Если такого - увеличиваю количество на 1, а вот если размер другой, мне нужно дублировать элемент (он я является массивом). Причем нужно чтобы его ключ был таким же - так как товар один и тот же.
Друзья, подскажите с помощью чего можно реализовать следующую вещь:
В момент регистрации пользователь вводит часть своих данных - Имя, Фамилию, e-mail. Необходимо что-бы они автоматически отображались в input-ах в момент оформления заказа.
Т.е получается следующее:
1. Пользователь регистрируется (сессия идет как авторизованного пользователя).
2. Добавляет товары в корзину.
3. Переходит в корзину и видит форму в которой заполнено часть полей (так как он авторизован).
Проблема не там где вы указали, а в самом начале функции save_order. Проверьте $customer_id. Возможно он приходит пустой, и получается запрос формата ( , NOW(), 2, 4) - а это как ни как ошибка.
Может просто не так customer_id возвращаю. Пока очень не силен в синтаксисе... (Добавление)
RickMan пишет:
Проблема не там где вы указали, а в самом начале функции save_order. Проверьте $customer_id. Возможно он приходит пустой, и получается запрос формата ( , NOW(), 2, 4) - а это как ни как ошибка.
Самое интересное, что если бы он был пустой, у меня бы и у не авторизованного пользователя заказ не проходил. А он отрабатывается как положено. Почему-то проблема только когда я заказываю авторизованным пользователем. (Добавление)
Дело было не в бабине...
Занимаюсь php не так давно, и вот уже 2 дня пытаюсь понять причину ошибки при оформлении заказа.
Суть такая:
В магазине, как и положено, есть форма авторизации и регистрации.
При регистрации пользователь заполняет следующие поля:
<имя>
<фамилия>
<отчество>
<email>
<пароль>
Каждое отдельным инпутом. Все это дело заносится в соответствующую таблицу БД.
Авторизация проходит по 2-м параметрам:
<email> и <пароль>.
Обе процедуры проходят на ура, и с этим проблем нет.
При оформлении заказа посетитель должен заполнить след. поля:
<имя>
<фамилия>
<отчество>
<email>
<телефон>
<индекс>
<город>
<улица, дом>
Все они находятся в одной таблице БД.
Т.е. если у меня пользователь авторизован, то я должен до внести последние 4 поля. Пишу соответствующую функцию:
При отработке на этой функции никаких ошибок не выдает, но и данные не добавляет.
Ошибку выдает при отработке функции оформления заказа:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' NOW(), 2, '5')' at line 2
- как я понял из-за работы с вставкой времени с помощью NOW(). Вопрос почему? Когда я оформляю заказ как не авторизованный пользователь, все проходит отлично - такой ошибки не выдает.
Для тех кто не равнодушен напишу весь код добавления заказа: