我已经阅读了很多与我要提出的问题非常相似的帖子,但我只是想确保没有更复杂的方法来做到这一点.任何反馈都非常感谢.
我想创建一种机制来检查登录用户是否可以访问当前正在调用的php脚本.如果是这样,脚本将继续; 如果没有,脚本就会失败,使用类似的东西die('you have no access').
我想出了两种方法来完成这个:
(请假设我的会话内容已编码/工作正常 - 即我调用session_start(),正确设置会话变量等)
首先定义一个全局变量,然后检查所需头文件中的全局变量.例如:
current_executing_script.php的内容:
// the role the logged in user must have to continue on
$roleNeedToAccessThisFile = 'r';
require 'checkRole.php''
Run Code Online (Sandbox Code Playgroud)
checkRole.php的内容:
if ($_SESSION['user_role'] != $roleNeedToAccessThisFile) die('no access for you');
Run Code Online (Sandbox Code Playgroud)在头文件中定义一个函数,并在包含/要求后立即调用该函数:
checkRole.php的内容:
function checkRole($roleTheUserNeedsToAccessTheFile) {
return ($_SESSION['user_role'] == $roleTheUserNeedsToAccessTheFile);
}Run Code Online (Sandbox Code Playgroud)
current_executing_script.php的内容:
require 'checkRole.php';
checkRole('r') or die('no access for you');Run Code Online (Sandbox Code Playgroud)我想知道是否有一种方法基本上只是将参数传递给checkRole.php作为include或require构造的一部分?
提前致谢.
我有一个奇怪的数据模型情况,所以也许我的整个方法是错误的.这是我正在做的事情:
我有一个名为Bird的类和一个名为Color的简单类.从概念上讲,每只鸟有两种与颜色相关的关联,一种用于男性颜色,一种用于女性颜色.我处理这个的方法是使用一个名为BirdColoration的连接模型,它属于一个鸟和一个颜色,并有一个额外的布尔字段来判断颜色是针对男性还是女性.因此,每只鸟实际上都与BirdColoration有着很好的关系,而且它通过BirdColoration与Color-toyman相关.如果这听起来合理,那么继续阅读.否则,停下来告诉我为什么这是错的!
我需要能够将鸟桌作为json转储.以前,当每只鸟只有一个与颜色有关联时,我可以使用:include来包含每个鸟的颜色在json转储中.现在,我将BirdColorations包括在转储中,但我仍然需要自己使用颜色模型.我可以单独包括每只鸟的颜色和颜色,然后在解析时匹配它们,但我更愿意直接包括每种颜色的颜色.就像是
format.json { render :json => @birds.to_json(:include => [{:bird_colorations => :color}, :seasons, :habitats, :image_holders]) }
Run Code Online (Sandbox Code Playgroud)
但是,上述方法不起作用.我认为这应该是可能的.任何人都可以指出我如何处理这个问题的正确方向?
现在,我将分别包括每只鸟的颜色和颜色,并在解析时匹配它们.至少我知道这会奏效.
谢谢!
我包括文件inner.php中outer.php,我有一个条件中inner.php上,我想停止执行inner.php,但不是全部的脚本,即我要跳到第一线outer.php列入后inner.php,我不想换所有的inner.phpif语句中的代码.
有没有办法这样做呢?
<\ include>标记和<\ ViewStub>标记之间有什么区别,在设计布局时哪一个是可取的.
谢谢,
venu
我的根站点上方的目录中包含多个子域,根目录中有一个assets文件夹.例如:
/
/assets/
/forums/
/blog/
Run Code Online (Sandbox Code Playgroud)
我正在尝试在根目录和子目录中的php页面上的require()文件,例如,assets/include/form.php在根目录中的index.php和index.php中都是required()论坛目录.但是,在form.php中,是另一个要求,试图获取include目录中包含的另一个文件.
我似乎无法找到一种方法来在这个form.php中要求一个文件,它可以在根目录的index.php和论坛目录的index.php上工作.
有没有什么办法可以明确要求从根目录开始的文件?
Pyinstaller的所有文档都讨论了包含单个文件.是否可以包含目录,还是应该编写一个函数来遍历我的include目录来创建include数组?
我想在文件中写一些东西(让我们调用它foo.cpp)并在编译时将它作为字符串包含到我的程序中,类似于#include它的方式.
现在我正在使用这个C预处理器#define:
#define toString(src) #src
Run Code Online (Sandbox Code Playgroud)
将一堆代码转换为字符串,如下例所示:
const char* str = toString(
int x;
void main(){}
);
Run Code Online (Sandbox Code Playgroud)
如果需要,您可以在那里阅读宏字符串化.
我想将该代码移动到外部文件,该文件将在编译时"链接". 我不希望文件必须与程序一起分发,如果我在运行时读取它就是这种情况.
我尝试使用#include如下所示的指令,但编译器拒绝了它:
const char* str = toString(
#include "foo.cpp"
);
Run Code Online (Sandbox Code Playgroud)
g++似乎完全困惑,但clang++给了我这个错误:
error: embedding a #include directive within macro arguments is not supported
Run Code Online (Sandbox Code Playgroud)
有谁知道是否/如何做到这一点?
注意:我正在使用它来编写我的GLSL着色器,尽管我怀疑这些信息是否有用.
PS:在你告诉我这是一个重复的问题之前,将我的代码放在一个巨大的字符串中,或者使用外部工具(例如xxd)来转储它的十六进制表示对我来说不是"解决方案",因为它们是不比我现在的方法更好(即更容易/更清洁).
几年后更新:
我刚刚意识到我从来没有回答过这个问题,因为它被重复关闭了.当我看到这个提交时,我找到了我正在寻找的答案,它本身基于对本文的评论,并且从那时起就一直在使用它.
简而言之,一个小的汇编文件包含您想要的文件NAME,并使用这三个变量在给定的文件下公开它们NAME_begin,NAME_end并NAME_len …
我想在使用Xcode时为所有项目添加〜/ include到我的包含路径,就像CPLUS_INCLUDE_PATH在Linux中设置环境变量一样.(有关相关的Linux问题,请参阅此处.)
这在Xcode中是否可行?我尝试设置上面的环境变量,但它似乎不起作用.(如果可能的话,我还想设置相关的路径,比如LIBRARY_PATH和LD_LIBRARY_PATH.)
您好我刚开始使用CodeIgniter框架.我目前的目录结构是
Demo(Project name)
+System
+Application
-Controllers
demo.php
+Model
-Views
view_demo.php
-Js
ajax.js
jquery.js
Run Code Online (Sandbox Code Playgroud)
请告诉我如何在view_demo.php中包含.js文件.
谢谢Raj
include ×10
php ×4
require ×2
android ×1
c ×1
c++ ×1
codeigniter ×1
directory ×1
installation ×1
javascript ×1
json ×1
macos ×1
packaging ×1
parameters ×1
pyinstaller ×1
python ×1
viewstub ×1
xcode ×1