Попытка отобразить имя пользователя участника в личном кабинете профиля

#php #mysql

#php #mysql

Вопрос:

Я пытаюсь отобразить очень простое имя пользователя на странице участника. Я искал здесь, в stackoverflow, но использование того, что я нашел, не сработало.

Я использую очень распространенный сценарий регистрации / входа в систему из HTML Form Guide, который использует fg_membersite.php и некоторые другие файлы. (login.php , register.php и так далее).

Когда пользователь регистрируется, он выбирает имя пользователя, свое полное имя, адрес электронной почты и пароль.

пока я пытаюсь отобразить полное имя (FullUserName) и адрес электронной почты пользователя (userEmail), он отлично работает. Я использую это:

 <?= $fgmembersite->UserEmail(); ?>
<?= $fgmembersite->UserFullName(); ?>
 

Но когда я пытаюсь отобразить имя пользователя (имя пользователя), это ничего не дает. (страница отображается, но я в основном получаю Welcome ! , вместо Welcome {UserName}

Я попытался добавить это в fg_membersite.php файл:

 function UserName()
    {
        return isset($_SESSION['name_of_user'])?$_SESSION['username_of_user']:'';
    }
 

и это:

 $row = mysql_fetch_assoc($result);
       $_SESSION['username_of_user']  = $row['username'];
 

Эти два уже были в файле:

 $_SESSION['name_of_user']  = $row['name'];
$_SESSION['email_of_user'] = $row['email'];
 

В то время как для страницы участника я пытаюсь с:

 <?= $fgmembersite->UserName(); ?>
<? echo $_SESSION[ "username"]; ?>
<? var_dump($_SESSION[ "username"]); ?>
 

Мой вопрос в том, есть ли решение для этого?

Вот как это у меня есть на странице участника:

 <?PHP
require_once("./include/membersite_config.php");

if(!$fgmembersite->CheckLogin())
{
    $fgmembersite->RedirectToURL("login.php");
    exit;
}

?>


 <li>Welcome <? echo $_SESSION['username_of_user']; ?>!
  <li class="active"><span class="pull-right"><a href='change-pwd.php'>Change password</a></span></li>
</ol>
 <span class="text-primary"><b></b></span>
 

РЕШАЕМАЯ:

Мне просто нужно было добавить «имя пользователя» к этому:

  $qry = "Select name, email from $this->tablename where username='$username' and password='$pwdmd5' and confirmcode='y'";
 

Вот так:

 $qry = "Select username, name, email from $this->tablename where username='$username' and password='$pwdmd5' and confirmcode='y'";
 

Спасибо всем!!!

Комментарии:

1. не могли бы вы показать код по порядку, пожалуйста? Как у вас есть в файле ?

2. Есть ли что-нибудь в $row[‘username’] ??

3. Затем необходимо проверить весь ваш скрипт, так как ваш сеанс не устанавливается.

4. Вы можете проверить весь код здесь: pastebin.com/h7zJeZfL

Ответ №1:

Не должно ли это быть так:

 function UserName()
    {
        return isset($_SESSION['username_of_user'])?$_SESSION['username_of_user']:'';
    }
 

…и если он по-прежнему ничего не возвращает, переменная сеанса не установлена (вы session_start()?), выгрузите весь массив для проверки с помощью:

 echo "<pre>".print_r($_SESSION,true)."</pre>";
 

Вот ваша проблема:

 $qry = "Select name, email from $this->tablename where username='$username' and password='$pwdmd5' and confirmcode='y'";
 

Вы не выбираете имя пользователя из базы данных!

Или попробуйте это (строка 381 из pastebin):

 $_SESSION['username_of_user']  = $username;
 

Комментарии:

1. Это дает мне следующее:Array ( [username_of_user] => [name_of_user] => John [email_of_user] => …….@gmail.com [usr_87601d2e30] => ID2504 )

2. таким образом, ваша переменная сеанса username действительно не установлена, график сгущается… Я думаю, нам действительно нужно увидеть весь сценарий целиком.

3. хранилище находится в $_SESSION[‘username_of_user’], в то время как функция, опубликованная изначально, проверяет $ _SESSION[‘name_of_user’]

4. я полагаю, есть разница между полным именем: Именем, фамилией и Именем пользователя

5. не работает с $_SESSION[‘username_of_user’] = $username; :/

Ответ №2:

Это должно быть похоже??:-

 $row = mysql_fetch_assoc($result);
       $_SESSION['username_of_user']  = $row['username'];

function UserName()
    {
        return isset($_SESSION['name_of_user'])?$_SESSION['username_of_user']:'';
    }
 

Ответ №3:

Похоже на опечатку в вашем коде:

 function UserName()
{
    return isset($_SESSION['name_of_user'])?$_SESSION['name_of_user']:'';
}
 

Комментарии:

1. это код операционной системы — «isset($_SESSION[‘name_of_user’])?$_SESSION[‘username_of_user’]»