#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’]»