Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Помогите составить условие
elseif(isset($_SESSION['user_id']) AND $id==$_SESSION['user_id']){
profile();
}
snikers987
Отправлено: 31 Октября, 2011 - 10:41:13
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Эээ.. а зачем тулить id еще в URL если он уже есть в сессии?
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
etoYA
Отправлено: 31 Октября, 2011 - 10:46:25
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
Вы не поняли, если пользователь зашел по site.ru/profile.php - то это его профиль, если сессии не существует, то он не авторизован, но если существует гет запрос, то открыть профиль как чужого пользователя (только просмотр). Если пользователь авторизирован и зашел через айди, к примеру нашел себя в поиске, то это его профиль. Но у меня реально уже кипят мозги, как сделать так, чтобы:
Пользователь зашел в site.ru/profile.php не авторизированый, то сказать ему, вы не авторизированы...... А то сейчас показывает
if(isset($_SESSION['user_id']) AND $_SESSION['user_id']==$row['id']){
profile();
}
// Если айди гет запроса совпадает с айди сессии, то это профиль авторизованого пользователя
elseif(isset($_SESSION['user_id']) AND $id==$_SESSION['user_id']){
profile();
}
}
else{
echo'Такого пользователя не сущесвтует';
}
// Функция редактирования персонального профила
function profile(){
echo'<br/> Personal profile';
}
?>
Самогонщик
Отправлено: 31 Октября, 2011 - 10:59:11
Посетитель
Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011
Помог: 8 раз(а)
etoYA пишет:
// Если пользователь с таким айди существует, то вывести его профиль
Тебе надо, чтобы авторизованный пользователь на странице профиля, если не указан ид в гет видел свой профиль, а не авторизованный получал "Вы не авторизованы."?
Если так, то просто нужно добавить ещё одно внешние условие, до всяких запросов к бд.
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Тогда предлагаю просто сесть и подумать. И расписать все случаи:
- Если пользователь не авторизован, то ...
- Если есть $_GET['id'], то ...
- Если нет $_GET['id'], то ...
- Если пользователь авторизован, то ...
- Если нет $_GET['id'], то ...
- Если есть $_GET['id'], то ...
- Если $_GET['id'] равно $_SESSION['user_id'], то ...
- Если $_GET['id'] не равно $_SESSION['user_id'], то ...
Ну и добавьте внутрь этого дерева условий свои БД-проверки (Если пользователь найден по id в БД, то ... иначе ...)
- сначала продумывайте алгоритм и уже только потом садитесь и реализуйте это в код.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
etoYA
Отправлено: 31 Октября, 2011 - 11:04:34
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
Самогонщик, спасибо! Дня 3 себе мозг выносил ), а тут оказывается все так просто)). Куда я только не тыкал это условие, но до выборки не тыкал).
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.