小编bat*_*tad的帖子

PHP包含脚本中的exit(),退出父脚本?

在PHP中,如果我使用include()或require()函数开始在另一个脚本中运行代码,有没有办法从子内部终止父脚本?

所以说我在parent.php中有这个:
require('child.php');

这在child.php中:
exit();

这会终止child.php或parent.php吗?
有没有办法从child.php中终止parent.php,而不向parent.php添加任何进一步的代码?

这是PHP中一个精心设计的自定义404错误页面,它检测Apache是​​否使用ErrorDocument调用它,或者用户是否从我们的自定义CMS请求了一个不存在的页面.如果它是后者,那么我想要只需要我的404.php(子)和输出,而不是继续执行父.

任何人都知道是否可以从包含/必需的脚本中终止父PHP脚本?

php include exit

27
推荐指数
2
解决办法
2万
查看次数

PHP清理用户数据以在header()函数中使用

是否有任何需要对用户数据进行的转义例程才能在PHP的header()函数中使用它?
例如,对于MySQL,我在将数据发送到数据库之前对用户数据运行mysql_real_escape_string(),并在HTML中输出我运行htmlspecialchars()...两者都包含在我自己的自定义函数中,首先进行其他处理.

但是对于PHP的header()函数,需要做什么?我有什么危险的角色可以逃脱吗?

我正在尝试做这样的事情......将查询字符串附加到标题()重定向到不同的页面

if ( strlen($_SERVER['QUERY_STRING']) > 0) {
$query_string = '?'.$_SERVER['QUERY_STRING'];
}
header('Location: http://domain.com/activate.php'.$query_string);
exit();
Run Code Online (Sandbox Code Playgroud)

任何人都获得了有关header()函数需要转义的内容的任何信息?冒号和分号字符似乎对header()语句非常关键.我应该逃避吗?

php sanitization header http-headers

17
推荐指数
1
解决办法
4557
查看次数

PHP数组复制某些键,内置函数?嵌套循环性能?

我有一个PHP数组,我想复制,但只复制数组中的复制元素,其键出现在另一个数组中.

这是我的阵列:

$data[123] = 'aaa';
$data[423] = 'bbb';
$data[543] = 'ccc';
$data[231] = 'ddd';
$data[642] = 'eee';
$data[643] = 'fff';
$data[712] = 'ggg';
$data[777] = 'hhh';

$keys_to_copy[] = '123';
$keys_to_copy[] = '231';
$keys_to_copy[] = '643';
$keys_to_copy[] = '712';
$keys_to_copy[] = '777';

$copied_data[123] = 'aaa';
$copied_data[231] = 'ddd';
$copied_data[643] = 'fff';
$copied_data[712] = 'ggg';
$copied_data[777] = 'hhh';
Run Code Online (Sandbox Code Playgroud)

我可以像这样遍历数据数组:

foreach ($data as $key => $value) {
  if ( in_array($key, $keys_to_copy)) {
    $copied_data[$key] = $value;
  }
}
Run Code Online (Sandbox Code Playgroud)

但这将发生在从MySQL结果集中检索数据的循环中.所以它将是一个嵌套在MySQL数据循环中的循环.我通常会尝试避免嵌套循环,除非没有办法使用PHP的内置数组函数来获取我正在寻找的结果.但是我也厌倦了在MySQL数据循环中有一个嵌套循环,我不想让MySQL闲逛.

我可能不必要地担心嵌套循环性能,因为我永远不会这样做超过几百行数据和10个键.

但是我想知道是否有一种方法可以通过内置的PHP函数来实现.
我看了一下array_intesect_key()但是并没有这么做,因为我的 …

php arrays

14
推荐指数
1
解决办法
4529
查看次数

MySQL从特定的相关记录中获取所有数据

我正在寻找一种方法来输出MySQL中表中每条记录的选定相关记录.我会进一步解释......

我有2个表货币exchange_rates.这些表由currency_code字段连接,每个货币记录具有多个相关的汇率记录,每个汇率记录代表不同的一天.所以货币和exchange_rates之间存在1:很多关系.

我想从exchange_rates表中检索每种货币的完整记录,但能够定义关于选择哪个相关记录的特定标准.不仅是每种货币的最新交易额,也可能是每种货币的最新exchange_rates记录criteria_x=NULL.

很遗憾你不能LIMIT在派生表中使用,否则这样的东西将是一个整洁可读的解决方案......

SELECT `currencies`.`currency_code`, `currencies`.`country`, `exchange_rates`.`id`,
       FROM_UNIXTIME(`exchange_rates`.`datestamp`), `rate` 
FROM `currencies` 
INNER JOIN (
SELECT `id`, `currency_code`, `invoice_id`, `datestamp`, `rate` 
FROM `exchange_rates` 
WHERE `criteria_x`=NULL AND `criteria_y` LIKE 'A' 
ORDER BY `datestamp` DESC
LIMIT 0, 1
) AS `exchange_rates` ON `currencies`.`currency_code`=`exchange_rates`.`currency_code`
ORDER BY `currencies`.`country`
Run Code Online (Sandbox Code Playgroud)

LIMIT子句适用于父查询而不是派生表.

这是我发现这样做的唯一方法......

SELECT `currencies`.`currency_code`, `currencies`.`country`, 
FROM_UNIXTIME( SUBSTRING_INDEX( SUBSTRING_INDEX(`exchange_rates`.`concat`, '-', 1), '-', -1)) AS `datestamp`,
SUBSTRING_INDEX( SUBSTRING_INDEX(`exchange_rates`.`concat`, '-', 2), '-', -1) …
Run Code Online (Sandbox Code Playgroud)

mysql join

7
推荐指数
1
解决办法
1985
查看次数

Facebook评论适度,appid或facebook页面?

我希望将Facebook评论添加到我们网站的某些页面.
我知道我可以通过在这里使用生成器生成我想要评论的每个页面的代码来实现这一点... http://developers.facebook.com/docs/reference/plugins/comments/

但是为了启用评论的审核,我认为我需要在我的网站的head部分中执行以下任一操作: 并且还为标记添加一些命名空间.
<meta property="fb:admins" content="{YOUR_FACEBOOK_USER_ID}"/>
<meta property="fb:app_id" content="{YOUR_APPLICATION_ID}">

<html>

对于审核大量评论页面,应用程序ID方法似乎比用户ID更好.目前我有一个Facebook"页面",大约有1000个"喜欢".我没有Facebook应用程序.

所以这是我的问题:

除了我的页面,我还需要创建一个Facebook应用程序吗?
或者我可以使用Facebook页面ID而不是App ID吗?
应用程序的名称是否需要与我的Facebook页面的名称相匹配?
Facebook应用程序和页面之间是否创建了任何链接?
或者该应用程序纯粹是出于内部目的而无法被用户访问?

我不希望这是Javascript.iframe似乎是一个更好的解决方案,因此评论加载不对称.JS可以阻止页面加载.

干杯,B

facebook-social-plugins

6
推荐指数
1
解决办法
2573
查看次数

MySQL存储函数与嵌套IF ... END IF,语法错误,正确的语法使用''附近''

我有一个函数,我目前在PHP中使用它编写来自不同字段的邮件地址,但考虑到不同地区使用的不同格式.我试图将其复制为MySQL存储函数.我意识到在代码中而不是在数据库中执行此类操作通常会更快,但我们的Intranet可以让人们以只读方式输入原始MySQL SELECT命令,这样他们就可以构建高级搜索并保存查询.将使用此特定功能,以便用户可以将其高级搜索查询结果输出到标签布局.

当我尝试使用phpMyAdmin 3.4.9(最新稳定版)存储该函数时,我收到以下错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 51
Run Code Online (Sandbox Code Playgroud)

我还安装了最新的MySQL Workbench并得到了相同的错误,但它也突出显示了"END'附近的SQL语法错误",因此它不仅仅是phpMyAdmin中的一个错误(尽管它可能是phpMyAdmin和MySQL Workbench中的一个错误).

这是函数查询:

DELIMITER ;;
DROP FUNCTION IF EXISTS ADDRESS_BUILD;;
CREATE FUNCTION ADDRESS_BUILD(contact VARCHAR(50), company VARCHAR(100), add1 VARCHAR(255), add2 VARCHAR(255), add3 VARCHAR(255), town_city VARCHAR(50), county_state VARCHAR(50), postcode_zip VARCHAR(50), country VARCHAR(100), `separator` VARCHAR(10), type VARCHAR(10))
RETURNS TEXT
DETERMINISTIC
BEGIN
DECLARE address TEXT;
DECLARE line TEXT; …
Run Code Online (Sandbox Code Playgroud)

mysql create-function stored-functions mysql-error-1064

5
推荐指数
2
解决办法
3万
查看次数

jQuery div元素中的每个字母,悬停时数组中的随机颜色

我试图让div元素中的每个字母从一组颜色变为随机颜色.然后当鼠标离开div时重置.

这是我到目前为止所得到的.我觉得我很接近,除了它实际上没有用的事实.这是由本网站上的几个不同的片段构建的.

$(document).ready(function() {

    // COLOURS ARRAY
    var colours = Array("#ddd", "#333", "#999", "#bbb"), idx;

    $("DIV#header").hover(function(){

        $( $(this).text().split('')).each(function(index, character) {
            idx = Math.floor(Math.random() * colours.length);
            $(this).css("color", colours[idx]);
        });

    }, function() {
        $(this).css("color","#ddd");
    });

});
Run Code Online (Sandbox Code Playgroud)

它不会产生任何JS错误.悬停的第二个功能似乎有效但不是第一个.感谢任何帮助!

javascript each jquery

5
推荐指数
2
解决办法
4281
查看次数

htaccess文件全部拒绝,重定向到403.shtml上找不到的404,但没有定义自定义错误页面

我正在cPanel中的新插件域中设置一个快速内部项目.这个特定的安装了SSL证书.我正在构建我的.htaccess并添加了一个<Files config.php>指令,deny from all以便我的config.php文件无法访问.我意识到将它存储在Web根目录之外是理想的,但在这种情况下我不能.

通常情况下,我希望www.domain.com/config.php在浏览器中获得Apache的默认403 Forbidden页面.这是在同一服务器上的其他域上发生的情况.但在这种情况下,我得到404未找到错误,说明:

未找到
在此服务器上找不到请求的URL /403.shtml.
此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误.

如果我试图定义自定义错误文档,我通常会期待这个,但在这种情况下,我不是!
使该域与同一cPanel帐户中的所有其他域不同的唯一因素是它具有SSL证书.无论使用http还是https导航,此404错误都是相同的.我已经尝试清除缓存,仍然是相同的.

任何人都可以在我的.htaccess中看到任何可能导致此问题的内容吗?

DirectoryIndex /index.php

Options -Indexes +FollowSymLinks
ServerSignature Off

# PARSE PHP IN OTHER FILES
# AddType FOR PHP AS APACHE MODULE, AddHandler FOR CGI
AddType application/x-httpd-php .ics .xml

# ATTEMPT FORCE PDF DOWNLOAD
AddType application/octet-stream .pdf

# PREVENT ACCESS TO CONFIG
<Files config.php>
order allow,deny
deny from all
</Files>

# CACHING
# http://httpd.apache.org/docs/current/mod/mod_headers.html
<FilesMatch "\.(js|css|ico|png|gif|jpg)$">
Header set Cache-Control "max-age=172800, public, …
Run Code Online (Sandbox Code Playgroud)

apache .htaccess custom-error-pages

2
推荐指数
1
解决办法
1万
查看次数

密码存储,hash()与sha-512或crypt()与河豚(bcrypt)?

这是我目前在PHP/SQL项目中的密码哈希程序...

  • 从/ dev/urandom获取512位每用户盐,除了最终哈希之外,还存储在用户的DB记录中
  • 从/ dev/urandom中取出512位"pepper",它存储在文件系统中.这是每个应用程序的常量,并且对于每个用户都是相同的
  • 然后 hash('sha512', $password.$salt.$pepper, TRUE)

散列和盐在DB中以二进制形式存储,主要是出于习惯.我认为它在安全方面没有任何区别.如果有的话,它对SQL备份来说稍微不方便,并使PHP代码看起来稍微复杂一些.

hash()与SHA-256和SHA-512通常被认为已被bcrypt这些天superceeded?
我相信SHA-2(256/512)仍然被认为是加密安全的,我可能过度使用了熵位.与攻击者从数据库转储中反向设计SHA-2哈希相比,我的代码中的缺陷更有可能导致问题.

但是,我是否应该更新我的方法以继续使用crypt()CRYPT_BLOWFISH(我相信这被称为bcrypt,而blowfish在技术上是一种密码而不是哈希算法)?
即使只是作为未来的最佳实践?

我并不特别关心算法的计算费用(在合理范围内).这只是在您创建帐户,更改密码或在您进行哈希比较时登录时的一个因素.这些活动构成了一小部分页面浏览量.我想在某种程度上越慢越好,如果它使服务器更难以生成,那么它将使攻击者的工作更慢到暴力.

干杯,B

php hash sha bcrypt password-encryption

2
推荐指数
1
解决办法
5361
查看次数