根据登录名显示用户名

Posted

技术标签:

【中文标题】根据登录名显示用户名【英文标题】:Show username depending on login 【发布时间】:2015-01-20 00:59:20 【问题描述】:

这适用于构建 wordpress 评论系统的人。此代码确定点击“回复”后的帖子。

目标是获取在“作者”表单中输入的姓名或用户身份(通过 php),具体取决于此人是否已登录。

success: function(data, textStatus)
  if(data=="success")
    var avatar = "<?php echo get_avatar($id_or_email, 48,'/Avatar.png' ); ?>";
    var author =  "<?php if ( is_user_logged_in() ) : ?><?php echo $user_identity; ?><?php else :?>"jQuery('#author').val()  ;
    var authorurl = "<?php the_author_meta( 'user_url'); ?>";
    var timestamp = "<?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?>";
    var commenttext =  jQuery('#comment').val();

    jQuery('<li class="new-post">'+'<div class="comment-author vcard">'+avatar+
    '<div class="comment-meta">'+'<b>'+'<a href="authorurl">'+author+'</b>'+'</a>'+
    '<div class="comment-time-stamp">'+timestamp+'</div>'+'</div>'+'</div>'+
    '<div class="comment-text">'+'<p>'+'<pre class="new-post-pre">'+commenttext+'</pre>'+'</p>'+'</div>'+'</li>').insertBefore(respond);
        statusdiv.html('<p class="ajax-success" ></p>');

这就是问题所在:

 var author =  "<?php if ( is_user_logged_in() ) : ?><?php echo $user_identity; ?><?php else :?>"jQuery('#author').val()  ;

【问题讨论】:

这是一个问题还是某种代码补丁?无论哪种方式,如果没有更多上下文,完全不清楚问题是什么 不是补丁。它只是 ajax 注释列表的 jQuery 部分。完整代码在这里:pastebin.com/UHnPgf4J 我突出显示的部分,因为问题决定了用户在发布时的名称。如果他们已登录,则需要使用 php,如果未登录,则需要使用 jQuery。我想知道如何使它工作。为什么是负面代表? 可能是因为(正如@charlietfl 所说)你只是抛出了一堆代码并且没有很好地解释它 - 你没有准确地解释你想要发生的事情,你没有提及发生了什么,并没有提及您尝试过的事情。 明白了。那不是我的本意。我以后会更彻底的。 【参考方案1】:

您的 PHP 代码中缺少 endif 并且在错误的位置使用双引号(如果我很好理解这个问题的话):

var author =  <? if ( is_user_logged_in() ) : echo '"'.$user_identity.'"'; else: ?> jQuery('#author').val()  <? endif; ?>;

【讨论】:

非常感谢。我现在明白了。 'php' 标签是多余的。缺少“endif”是有道理的。如果我可以投票,我会的! 哦。哈哈。完毕。谢谢!

以上是关于根据登录名显示用户名的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 Windows 登录名使用 VBA 获取电子邮件地址?

logname - 显示用户登录名

lastlog命令

c#做winform时用户登陆系统后怎么在状态栏上显示当前用户的姓名

如何获取其他系统登录的用户信息

who - 显示已经登录的用户