X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Ссылка на редактирование
vitek_gagra
vitek_gagra
Topic Starter сообщение 20.2.2013, 22:31; Ответить: vitek_gagra
Сообщение #1


Здравствуйте уважаемые форумчане, подскажите как реализовать такую вещь.

Нужно сделать что бы ссылка на редактирование объявления была видна и доступна только автору объявления?

Сейчас сделал показ авторизованному пользователю только, не авторизованные не видят ссылку.
if(isset($_SESSION['user']))
    {
        echo "<div id=\"buttons\">
                    <div id=\"edit\" class=\"button_gray\"><a href=\"/transport/uniq/".$res_u['mess_id']."/\">Редактировать объявление</a></div>
                    <div id=\"spec\" class=\"button_gray\"><a href=\"#\">Добавить в спецразмещение</a></div>
                    <div id=\"up\" class=\"button_gray\"><a href=\"#\">Поднять объявление</a></div>
            </div>";
    }
    else
        echo "";

У пользователя email он же логин. В объявление логин обязательный для заполнения стоит.
Думаю как вариант сравнивать эмайл авторизованного пользователя и эмайл в объявление.
Но не знаю как это правильно в коде написать.


--------------------
Отдых в Абхазии
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kev
kev
сообщение 20.2.2013, 22:38; Ответить: kev
Сообщение #2


А у вас самопис? Или какая-то CMS используется? Как вариант можно присваивать объявлению уникальный номер, который заносить и пользователю... ну и делать проверку на этот номер.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
vitek_gagra
vitek_gagra
Topic Starter сообщение 20.2.2013, 22:47; Ответить: vitek_gagra
Сообщение #3


kev, у меня самопис. А как тогда быть если пользователь несколько объявлений добавил?


--------------------
Отдых в Абхазии
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
tszyan
tszyan
сообщение 21.2.2013, 18:22; Ответить: tszyan
Сообщение #4


vitek_gagra,
Если Вас интересует как ПРАВИЛЬНО, то Вам необходимо нормализовать вашу БД. (Нормальная форма (вики))
В итоге в таблицу с объявлением будет писаться не e-mail, а идентификатор(целое положительное число) пользователя. Да и во всех других таблицах, где необходима связь с конкретным пользователем будет использоваться этот идентификатор.
Чуть подробнее:
Откуда берется этот идентификатор? Он должен быть в любой таблице вашей БД, т.е. каждой записи должен автоинкрементом присваиваться идентификатор. И когда вы работаете с несколькими таблицами, связь их должна происходить не через сравнение осмысленных данных, а через внутренние идентификаторы, которые должны храниться в соответствующих таблицах.
Пример:
CREATE TABLE `users` (
    `id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `username` VARCHAR(20) NOT NULL,
    `password` VARCHAR(40) NOT NULL,
    `email` VARCHAR(80) NOT NULL
) ENGINE InnoDB;

CREATE TABLE `advertisements` (
    `id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `title` VARCHAR(200) NOT NULL,
    `text` TEXT NOT NULL,
    `user_id` MEDIUMINT(8) UNSIGNED NOT NULL,
    FOREIGN KEY (user_id) REFERENCES user(id)
) ENGINE InnoDB;


Таким образом в поле user_id таблицы advertisements будет храниться идентификатор пользователя (поле id таблицы users). И Вы будите проверять совпадает ли user_id объявления с идентификатором аутентифицированного пользователя.

Если Вам нужно неправильно, но чтобы работало - сравнивайте email'ы (не забудьте привести регистр и обрезать пробелы - хотя зависит от того чем вы сравниваете и какая кодировка в базе). Более того, после редактирования, и получения новых значений от пользователя не забудьте перед внесением изменений в базу проверить еще раз - тот ли это пользователь.

Сообщение отредактировал tszyan - 21.2.2013, 18:26
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
vitek_gagra
vitek_gagra
Topic Starter сообщение 21.2.2013, 18:36; Ответить: vitek_gagra
Сообщение #5


tszyan, мне нужно что бы при добавление объявления (http://avtodvordv.commfort-board.com/add_auto/) пользователь ввел логин и пароль. Объявление добавилось и пользователь зарегистрировался. Это реализовал. Потом что бы зарегистрированный и авторизованный пользователь мог редактировать свое объявление без вводов всяких паролей и логинов. Просто нажав на свое объявление в личном кабинете редактировать.


--------------------
Отдых в Абхазии
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
tszyan
tszyan
сообщение 21.2.2013, 18:44; Ответить: tszyan
Сообщение #6


vitek_gagra,
И какие вопросы остались? Сессия у вас есть, значит можете в ней хранить идентификатор пользователя и по нему проверять его ли это объявление или нет и выводить соответствующую ссылку. Если надо еще в ЛК добавить редактирование собственных объявлений, то выводите их просто сделав выборку по тому же идентификатору пользователя.
SELECT * FROM `advertisements` WHERE `user_id`=?

В качестве параметра подставляете все тот же идентификатор аутентифицированного пользователя.

Если пользователь аутентифицировался 1 раз, зачем ему второй раз вводить логин и пароль. Но понятное дело 1 раз за сессию - придется.

Сообщение отредактировал tszyan - 21.2.2013, 18:53


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
vitek_gagra
vitek_gagra
Topic Starter сообщение 21.2.2013, 18:53; Ответить: vitek_gagra
Сообщение #7


tszyan, а как в mysql запрос сделать что бы при добавление объявления в запросе подставлялся эмайл и пароль из сессии авторизованного пользователя? Эмайл хранится в сессии здесь $_SESSION['user'] а пароль как сделать что бы подставлялся в запрос?


--------------------
Отдых в Абхазии
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
tszyan
tszyan
сообщение 21.2.2013, 19:13; Ответить: tszyan
Сообщение #8


Во-первых, Вам не нужно подставлять пароль, т.к. сессия храниться на стороне сервера и если в ней записано что пользователь аутентифицирован, то это факт. Берете мыло из сессии (если Вы решили не заморачиваться идентификаторами) и подставляете его в запрос с добавлением объявления.
Во-вторых, пароль должен храниться в виде хэша, т.е. расшифровать и подставить его куда-либо не должно быть возможным.

В-третьих, у меня такое ощущение, что Вы не можете ясно объяснить в чем у Вас проблема. Если это так - киньте в ЛС аську или скайп - продолжим.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Вечные ссылки с 300+ СДЛов, тиц до 750, ЯКи, DMOZ, от 1$/ссылка
вечные ссылки
259 SeoUaSales 129359 30.3.2024, 18:27
автор: Hillel_Silver
Открытая тема (нет новых ответов) Вечная статейная трастовая ссылка ИКС 20000 чектраст 100/2.5
22 inetuser 11051 2.1.2024, 17:18
автор: inetuser
Открытая тема (нет новых ответов) Одна вечная ссылка 5$ ИКС 24000
2 mylink1 5979 8.4.2020, 17:39
автор: mylink1
Открытая тема (нет новых ответов) Не дорогая ссылка
размещу ссылку дешего
1 Heavych 5761 14.10.2019, 8:59
автор: Silverspam
Открытая тема (нет новых ответов) Нужны вечные ссылки на adult сайты, до 500р ссылка
2 RMak 5264 23.2.2019, 16:26
автор: Trastik


 



RSS Текстовая версия Сейчас: 26.4.2024, 2:44
Дизайн