这应该有用,所以我真的很困惑为什么它不起作用.
我正在检查用户是否使用每个管理页面顶部的$ session类方法登录.但是,我想根据用户是否登录以及用户具有的角色级别动态调整头文件.
所以我检查$session->is_logged_in()然后我继续并定义了一个名为的变量$logged = true; 以后再用 然后我使用一个$user->find_by_id($session->id)方法来创建一个新的User对象并存储$user->role_level在一个新的var中,$role_level以便于使用.
这一切都发生在页面顶部附近.在页面的下方经过表格处理等,是include("../_layouts/header.php")命令.然后,在header.php文件中,我使用了很少的检查if(!$logged) { ... } else { ... }.然而...
我收到以下错误:
Notice: Undefined variable: logged in /home/hips/html/_layouts/header.php on line 119
Notice: Undefined variable: logged in /home/hips/html/_layouts/header.php on line 131
Notice: Undefined variable: logged in /home/hips/html/_layouts/header.php on line 138
Run Code Online (Sandbox Code Playgroud)
怎么会这样?在我包含header.php之前,我在文件中定义变量!不应该那样吗?
仅供参考,一切正常,直到我尝试$logged在header.php文件中使用.
这是查询:
INSERT INTO jobemails (jobid, to, subject, message, headers, datesent) VALUES ('340', 'jrhodes@jhu.edu', 'We\'ve received your request for a photo shoot called \'another\'.', 'message', 'headers', '2010-04-22 15:55:06')
Run Code Online (Sandbox Code Playgroud)
数据类型都是正确的,它总是在主题上失败,所以它必须是我如何逃避值,我假设.
我相信你们中的一个人会马上看到我的白痴错误.一点帮助?
我想搜索我的twitter状态对象的text属性并换出@username <a href="http:/twitter.com/username">@username</a>.到目前为止我尝试过的是这样的:
$pattern = '/([@]{1})([a-zA-Z0-9\_]+)/';
$replace = '<a href="http://twitter.com/\2">\1\2</a>';
$new_string = preg_replace($pattern, $replace, $text);
Run Code Online (Sandbox Code Playgroud)
但它没有做任何替换.我知道我的reg exp错了,但我无法确切地知道在哪里/为什么.救命?
**编辑:...按要求提供样本数据?
$text = '@janesmith I like that, but my friend @johndoe said it better.';
Run Code Online (Sandbox Code Playgroud)
期望的输出:
@janesmith我喜欢这样,但我的朋友@johndoe说得更好.
***** MY FULL FUNCTION *****
function linkify($string, $twitter=false) {
// reg exp pattern
$pattern = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
// convert string URLs to active links
$new_string = preg_replace($pattern, "<a href=\"\\0\">\\0</a>", $string);
if ($twitter) {
$pattern = '/@([a-zA-Z0-9_]+)/';
$replace = '<a href="http://twitter.com/\1">@\1</a>';
$new_string = preg_replace($pattern, $replace, …Run Code Online (Sandbox Code Playgroud) 我们正在写一堆.jsx脚本,每一个我都要模拟一些函数,所以我可以使用像Array.map()和String.trim()这样的东西,但我不想要包含那些代码在每个脚本的顶部.
有没有办法在.jsx脚本文件中"包含"其他.jsx脚本?
我有一个处理发送确认电子邮件的PHP文件.我还有一个日历,我使用AJAX进行各种更新.当AJAX调用更新文件时,它会使用新信息更新数据库,并且我希望发送确认电子邮件.
所以从AJAX调用的php文件里面,我想我应该include("email-sender.php?stage=confirm2a&job={$slot->job_id}调用电子邮件php页面,用$ _GET变量告诉它发送哪些电子邮件和谁.
但由于某些原因,当你使用?key=value附加到字符串的$ _GET对时,我无法使include工作.PHP.net告诉我你可以在include中使用$ _GET变量,但是当我设置一个简单的测试时,它似乎不起作用.
我的测试页面有一个链接,单击时会向页面提交ajax调用以及包含一个变量"farm"的数据,该变量等于"animal"值.像这样:
$("a.testlink").click(function() {
var mydata = "farm=animal";
$.ajax({
url: "ajaxPHP.php",
data: mydata,
success: function(rt) {
alert(rt);
}
});
Run Code Online (Sandbox Code Playgroud)
所以ajaxPHP.php说:
if($_GET['farm']) {
$var = $_GET['farm'];
echo $var;
}
Run Code Online (Sandbox Code Playgroud)
此时,成功警报会在单击链接时显示"动物".那就对了.
但是,如果我将ajaxPHP.php更改为:
if($_GET['farm']) {
$var = $_GET['farm'];
include("ajaxInclude.php?farm={$var}");
}
Run Code Online (Sandbox Code Playgroud)
并有一个名为ajaxInclude.php的文件说:
if($_GET['farm']) {
$var = $_GET['farm'];
echo $var;
}
Run Code Online (Sandbox Code Playgroud)
然后当我点击链接时,我得到一个空警报.因此include不适用于附加到末尾的查询字符串.
有帮助吗?
加成
所以现在我有以下内容:
$stage = "confirm2a";
include("email-sender.php");
$stage = "confirm2b";
include("email-sender.php");
Run Code Online (Sandbox Code Playgroud)
然后在email-sender.php中,显然有很多代码如:
if($stage == "confirm2a") {
email Person 1 etc...
}
if($stage == "confirm2b") …Run Code Online (Sandbox Code Playgroud) 我有一个网站有两个指向它的域名,让我们称之为:
work.mysite.com
play.mysite.com
Run Code Online (Sandbox Code Playgroud)
这是不好的做法,所以我想选择work.mysite.com并将其作为规范URL,永久重定向play.mysite.com到它.
我在这两个域的根目录中,在.htaccess文件中,撞到水泥地板上,并希望我不在这里.这是我目前正在尝试的.告诉我我是多么的错,拜托?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?play\.mysite\.com [NC]
RewriteRule ^/?(.*)?$ http://work.mysite.com/$1 [R=301]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
这让我得到了一个非常漂亮的500内部服务器错误.我有多远?
我正在使用这里找到的jQuery循环插件:http://jquery.malsup.com/cycle/
它运作良好.我的客户想要一个<div>包含图像和文本等的s 列表在首页上水平滑动.但她也希望我使用上一个和下一个选项在两侧都有箭头来控制滑动面板.
这是我正在使用的jQuery插件调用:
$('#slidingpanelscontent').cycle({
fx: 'scrollLeft',
next: "#sliding_next",
prev: "#sliding_prev",
timeout: 6000,
speed: 800
});
Run Code Online (Sandbox Code Playgroud)
它在很大程度上起作用.单击右箭头(#sliding_next)时,当前面板向左滚动以显示下一个面板.但是,当您单击向左箭头(#sliding_prev)时,当前面板仍会向左滚动以显示上一个图像.
换句话说,显示正确的图像,但动画是反直觉的,并且会引导用户相信正在显示NEXT面板,而不是移回到前一个面板.
任何人都知道使用这个插件克服这个问题的方法吗?
我正在使用jQuery动态地将表单元素添加到Web表单中.用户可以通过单击按钮/链接在其请求表单中"添加时间段".单击时,我使用.after()将另外两行添加到表单表格,以及标签和字段.
附加代码中的最后一列是一个显示"删除"的链接.
$(document).ready(function() {
var i=2;
$("#add_time_slot").click(function() {
$("#time_slot_table tr:last").after('<tr"><td ... etc ... </tr><tr> ... etc ...<td><a class="removeslot" href="#">Remove</a></td></tr>');
i++;
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
那里有很多HTML代码,所以我把常规的东西拉出去以保持干净.什么......等等......没什么太奇怪的.
到现在为止还挺好.它很棒.但后来我写这段代码作为点击"删除"链接时我将使用的开头:
$("a.removeslot").click(function() {
alert("It worked!");
return false;
});
Run Code Online (Sandbox Code Playgroud)
它不会起作用.如果相反,我把$("#header a")相同的代码放在相同的代码中,代替$("a.removeslot")它,它工作正常,当我点击标题中的任何链接时,它返回false并运行警报.但是当它是a.removeslot时,它总是转到"#"URL(不返回false)并且它永远不会运行警报.
这看起来很基本,它让我肚子痛.代码有什么问题?
谢谢.
我以前也有这个问题之前,没有真正解决.它再次发生,所以我希望你的专家可以提供帮助.
我根据$ _GET数组在index.php上设置了一个变量.所以我使用这段代码:
$admin = isset($_GET['admin']) ? $_GET['admin'] : "dashboard";
Run Code Online (Sandbox Code Playgroud)
在下面,我使用一个函数来包含我的布局:
include_layout("admin_header.php");
Run Code Online (Sandbox Code Playgroud)
调用此函数:
function include_layout($template="") {
include(SITE_ROOT.DS.'layouts'.DS.$template);
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这么好,一切正常.但是,如果我尝试从admin_header.php文件中回显$ admin变量,我什么也得不到.就好像它没有设置一样.我甚至echo $admin;在我包含头文件之前使用它来测试它,并且它在那里输出,但它不是从admin_header.php文件的角度设置的.
为什么会这样?是否与使用函数包含而不是直接包含它有关?如果是这样,那为什么会这么重要?