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



 

Здравствуйте, гость ( Вход | Регистрация )

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


Участник
***

Группа: User
Сообщений: 136
Регистрация: 4.11.2011
Из: Гагра
Поблагодарили: 27 раз
Репутация:   3  


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

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

Сейчас сделал показ авторизованному пользователю только, не авторизованные не видят ссылку.
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


Завсегдатай
*****

Группа: Active User
Сообщений: 590
Регистрация: 24.6.2012
Поблагодарили: 103 раза
Репутация:   22  


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


--------------------
Ищите работника? Возможно я вам подойду. Отзывы можно прочесть тут.
Skype: wh1tefan
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
vitek_gagra
vitek_gagra
Topic Starter сообщение 20.2.2013, 22:47; Ответить: vitek_gagra
Сообщение #3


Участник
***

Группа: User
Сообщений: 136
Регистрация: 4.11.2011
Из: Гагра
Поблагодарили: 27 раз
Репутация:   3  


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


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


Участник
***

Группа: User
Сообщений: 207
Регистрация: 28.1.2013
Из: Москва
Поблагодарили: 110 раз
Репутация:   27  


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


Участник
***

Группа: User
Сообщений: 136
Регистрация: 4.11.2011
Из: Гагра
Поблагодарили: 27 раз
Репутация:   3  


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


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


Участник
***

Группа: User
Сообщений: 207
Регистрация: 28.1.2013
Из: Москва
Поблагодарили: 110 раз
Репутация:   27  


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


Участник
***

Группа: User
Сообщений: 136
Регистрация: 4.11.2011
Из: Гагра
Поблагодарили: 27 раз
Репутация:   3  


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


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


Участник
***

Группа: User
Сообщений: 207
Регистрация: 28.1.2013
Из: Москва
Поблагодарили: 110 раз
Репутация:   27  


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

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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Вечные ссылки с 300+ СДЛов, тиц до 750, ЯКи, DMOZ, от 1$/ссылка
вечные ссылки
209 SeoUaSales 70741 13.12.2017, 3:27
автор: Saitcena
Открытая тема (нет новых ответов) Не размещается не индексируемая ссылка
Не размещается ссылка миралинкс
2 makro_2007 464 30.11.2017, 15:37
автор: makro_2007
Открытая тема (нет новых ответов) Ссылка для слива трафика.
сливаем ваш траф сюда
9 seosite 1810 9.10.2017, 15:28
автор: kuprum
Открытая тема (нет новых ответов) Ссылка с главной, ТИЦ50, Воспитание детей
2 freeax 702 18.8.2017, 21:25
автор: arturios
Открытая тема (нет новых ответов) doFollow ссылки на ваш сайт. 1 ссылка=0.5 рубля
7 nazar03uk 824 5.6.2017, 11:42
автор: nazar03uk


 



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