首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对未登录的用户隐藏php功能

如何对未登录的用户隐藏php功能
EN

Stack Overflow用户
提问于 2016-05-22 19:45:31
回答 5查看 1.5K关注 0票数 0

我正在创建一个网站,我遇到了一个问题,在搜索了一段时间后,我发现很难在网上找到解决方案。

所以我的网站是使用bootstrap框架制作的,有许多页面可以显示数据库中的记录,然后编辑或删除,并将新记录添加到数据库中。现在我显然不想让任何人来我的网站上删除或编辑我的任何记录,这就是为什么我创建了一个登录和注册系统,它工作得很好。

但问题是,在用户登录之前,我如何对用户隐藏添加、编辑和删除按钮?或者我必须创建另一个页面来显示数据?

例如,我的新闻页面包含以下文件: config.php;index.php;add_news.php;edit_news;delete_news.php;read_more.php。现在我想对未登录的用户隐藏add_news.php、edit_news.php和delete_news.php。我真的卡住了,请帮帮忙。

代码语言:javascript
运行
复制
<!-- Page Content -->
<?php

// load the configuration file.
include("config.php");
    //load news from the database and then ORDER them by newsid
    //you will notice that newlly added news will appeare first.
    //also you can OREDER by (dtime) instaed of (news id)
    $result = mysql_query("SELECT * FROM news ORDER BY newsid DESC",$connect);
    //lets make a loop and get all news from the database
    while($myrow = mysql_fetch_array($result))
         {//begin of loop
           //now print the results:
           echo "<b>Title: ";
           echo $myrow['title'];
           echo "</b><br>On: <i>";
           echo $myrow['dtime'];
           echo "</i><hr align=left width=160>";
           echo $myrow['text1'];
           // Now print the options to (Read ,Edit or Delete the news article)
           echo "<br><a href=\"read_more.php?newsid=$myrow[newsid]\">Read More...</a>
           if(isset($_SESSION['userid'])) {
               <div> 
            || <a href=\"edit_news.php?newsid=$myrow[newsid]\">Edit</a>
             || <a href=\"delete_news.php?newsid=$myrow[newsid]\">Delete</a><br><hr>";
               </div>
         }//end of loop
?>
EN

回答 5

Stack Overflow用户

发布于 2016-05-22 19:54:53

使用会话。您可以存储登录的用户信息(用户、管理员等),然后相应地管理您的视图和访问控制。

这是手册:http://php.net/manual/en/book.session.php

以下是来自php.net的一些示例:http://php.net/manual/en/session.examples.php

票数 0
EN

Stack Overflow用户

发布于 2016-05-22 19:56:52

你可以在你想要隐藏的if元素之前放置一个php html条件来检查用户会话是否存在,如下所示:

代码语言:javascript
运行
复制
    <?   if(isset($_SESSION['userid'])) { ?>
         <div>your html here </div>
    <?  } ?> 

最简单的选择是检查用户是否已登录,如果未登录,则将其重定向到登录页面。

根据编辑后添加的代码,php作用域中的代码应该是:

代码语言:javascript
运行
复制
     if(isset($_SESSION['userid']))
     {
       echo "<div>||
     <a href=\"edit_news.php?newsid=$myrow[newsid]\">Edit</a>
     || <a href=\"delete_news.php?newsid=$myrow[newsid]\">Delete</a>
     <br><hr>
     </div>";
     }
票数 0
EN

Stack Overflow用户

发布于 2016-05-22 19:58:05

您应该使用php sessions。在显示删除/更新按钮之前,请检查用户是否已登录。并且应该将其存储为会话变量。更重要的是,你应该做一个额外的保护层,以便当有人试图更新某些东西时,检查他们是否可以。

无论如何,我建议您在构建web应用程序时使用框架。一旦你掌握了它的诀窍,它会让你的生活变得容易得多。更重要的是,大多数框架都有不同的包/插件/扩展,具有可以在应用程序中使用的功能。

因为很多应用程序都有身份验证系统,所以只需安装身份验证和用户系统即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37373909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档