Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
52 / 35 / 16
Регистрация: 03.08.2019
Сообщений: 389

Профиль пользователя

30.08.2019, 10:12. Показов 1857. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!
Столкнулся с проблемой связанной с отображением профиля пользователя.
По порядку.
Файл buysell.php
Визуальное отображение на скрине.
Сам код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php  
                // выборка с БД, получаю id и Ник пользователя. Фильтр id с сессии 
        $stmt = $pdo->prepare("SELECT id, nickname FROM users WHERE id = :id");
        $stmt->bindParam(':id', $us_id, PDO::PARAM_INT);
        $stmt->execute();
        while ($result = $stmt->fetch()) {
            $GLOBALS['nickname'] = $result['nickname'];
            $GLOBALS['nickname_id'] = $result['id'];
        }
        ?>
        <?php 
                // выборка с таблицы buysell  и в ссылку передаю Ник пользователя и id в качестве GET параметра
        $stmt = $pdo->query("SELECT * FROM buysell");
        while ($result = $stmt->fetch()) :?>
            <?php
            $GLOBALS['bs_nick_id'] = $result['bs_nick_id'];
            $GLOBALS['bs_nick'] = $result['bs_nick'];
            $GLOBALS['msg'] = $result['message'];
            
            ?>
            <div class="post_comment">
                <a href="profile?id=<?= $bs_nick_id; ?>"><?= $bs_nick; ?></a><br>
                <p>
                    <?= $msg; ?>
                </p>
                <?php if ($role == 'admin') : ?>
                    <button id="ban" class="btn">бан</button>
                <?php endif; ?>
 
            </div>
        <?php endwhile; ?>
                        // в таблицу buysell отправляю данные полученные с формы и выборки с таблицы users
                        $message = htmlspecialchars($_POST['message']);
            $stmt = $pdo->prepare("INSERT INTO buysell SET 
                bs_nick_id = :id,
                bs_nick = :nick,
                message = :message");
            $stmt->bindParam(':id', $nickname_id, PDO::PARAM_INT);
            $stmt->bindParam(':nick', $nickname, PDO::PARAM_STR);
            $stmt->bindParam(':message', $message, PDO::PARAM_STR);
            $stmt->execute();
Файл profile.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
        $us_id = (int)htmlspecialchars($_GET['id']);
        $stmt = $pdo->prepare("SELECT id FROM users WHERE id = :id");
        $stmt->bindParam(':id', $us_id, PDO::PARAM_INT);
        $stmt->execute();
        while ($result = $stmt->fetch()) {
            $GLOBALS['res'] = $result['id'];
        }
        if ($us_id != $res || $us_id == 0 || $us_id == '') {
            header('Location: 404.php');
            die();
        }
        else {
            $stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
            $stmt->bindParam(':id', $us_id, PDO::PARAM_INT);
            $stmt->execute();
            while ($result = $stmt->fetch()) {
                $GLOBALS['id'] = $result['id'];
                $GLOBALS['nick'] = $result['nickname'];
                $GLOBALS['role'] = $result['role'];
                $GLOBALS['date'] = $result['reg_date'];
            }
        };
        ?>
                // вывод данных
<div class="profile">
            <p>
                <?= $nick; ?>
            </p>
            <button id="write_message" class="write_message">Написать сообщение</button>
            <p>
                ID: <?= $id; ?>
            </p>
            <p>
                Роль: <?php 
                if ($role == 'admin') {
                    echo '<span style="color: red;">Создатель сайта</span>';
                }
                if ($role == 'moderator') {
                    echo '<span style="color: green;">Модератор</span>';
                }
                if ($role == 'user') {
                    echo 'Пользователь';
                }
                ?>
            </p>
            <p>
                Дата регистрации: <?= $date; ?>
            </p>
        </div>
Проблема заключается в следующем:
если перейти по ссылке, то все работает.
но если открыть просто страницу профиля пользователя по ссылке <a href="profile.php">профиль</a> где должна отображаться информация о нем, то получаю 404
Пробовал решить вопрос так:
PHP
1
2
3
if ($_SERVER['REQUEST_URI'] == '/profile' || $_SERVER['REQUEST_URI'] == '/profile.php') {
    // показать результат выборки где фильтр id беру с сессии
}
Все равно получаю 404
Помогите, пожалуйста, решить эту беду!
Таких разделов будет несколько.
Гугл по этому вопросу молчит как партизан.
Миниатюры
Профиль пользователя  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.08.2019, 10:12
Ответы с готовыми решениями:

Профиль пользователя
Не понимаю почему профиль пользователя выводит на страницу сайта, пользователь должен войти на сайт чтобы увидить свой профиль ...

Профиль пользователя
Здравствуйте. Не могу разобраться. Пишет что операция по изменению профиля удачна. Но страница просто обновляется и данные не изменяются ...

Профиль пользователя
Здравствуйте. Не могу разобраться. Пишет что операция по изменению профиля удачна. Но страница просто обновляется и данные не изменяются ...

7
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,240
Записей в блоге: 15
30.08.2019, 10:55
Цитата Сообщение от Fantom1987 Посмотреть сообщение
если перейти по ссылке, то все работает.
так, допустим...

Цитата Сообщение от Fantom1987 Посмотреть сообщение
но если открыть просто страницу профиля пользователя по ссылке
А тут уже не работает.. в чем разница?
0
52 / 35 / 16
Регистрация: 03.08.2019
Сообщений: 389
30.08.2019, 11:26  [ТС]
Цитата Сообщение от long399 Посмотреть сообщение
А тут уже не работает.. в чем разница?
разница на скринах
Миниатюры
Профиль пользователя   Профиль пользователя  
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
30.08.2019, 11:56
Цитата Сообщение от Fantom1987 Посмотреть сообщение
разница на скринах
Ну тогда в чем проблема? Допишите ID в url или из сессии берите как хотели.
1
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,240
Записей в блоге: 15
30.08.2019, 12:17
Лучший ответ Сообщение было отмечено Fantom1987 как решение

Решение

Цитата Сообщение от Fantom1987 Посмотреть сообщение
<a href="profile?id=<?= $bs_nick_id; ?>"><?= $bs_nick; ?></a><br>
Вот как примерчик:
PHP/HTML
1
2
3
4
5
<?php 
        $bs_nick_id = 1;
        $bs_nick_name = 'Vasya';
        echo "<a href='profile?id=" . $bs_nick_id . "'>" . $bs_nick_name . "</a>";
?>
1
52 / 35 / 16
Регистрация: 03.08.2019
Сообщений: 389
30.08.2019, 13:09  [ТС]
Цитата Сообщение от long399 Посмотреть сообщение
Вот как примерчик:
PHP/HTMLВыделить код
<?php
* * * * $bs_nick_id = 1;
* * * * $bs_nick_name = 'Vasya';
* * * * echo "<a href='profile?id=" . $bs_nick_id . "'>" . $bs_nick_name . "</a>";
?>
позор
Благодарю
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
30.08.2019, 20:32
Цитата Сообщение от long399 Посмотреть сообщение
echo "<a href='profile?id=" . $bs_nick_id . "'>" . $bs_nick_name . "</a>";
long399, просто хочу заметить, что конкатенация тут избыточна.
PHP
1
echo "<a href='profile?id=$bs_nick_id'>$bs_nick_name</a>";
1
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,240
Записей в блоге: 15
31.08.2019, 11:52
Цитата Сообщение от Пифагор Посмотреть сообщение
конкатенация тут избыточна
Согласен, в двойных кавычках переменные норм распознаются ! подзабыл немного про этот факт
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.08.2019, 11:52
Помогаю со студенческими работами здесь

Профиль пользователя
Здравствуйте. Делая профиль для пользователя столкнулся с такими проблемами: 1) Дата выводиться задом на перёд 2) Хочу сделать загрузку...

Профиль пользователя на сайт
Здравствуйте, внезапно решил поинтересоваться как сделать чтобы после регистрации на мыло пришло активационное письмо?! Объясните...

Сделать ссылку на профиль пользователя
Обьясните пожалуйста, как сделать ссылки такого типа: mysite.ru/username. Я знаю, можно сделать типо того...

Короткая ссылка на профиль пользователя
У меня сейчас ссылка на профиль : site.ru/profile?id=1 А как сделать stie.ru/profile1 ? и после чего мне нужно получить номер профиля...

Авторизация и профиль
Здравствуйте как сделать так когда я со авторизирую и чтобы если я изменяю картинку в профиле чтобы меня не выкидивало с профиля ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru