关于eval()功能的官方文档说:
除此之外,这对于将代码存储在数据库文本字段中以供稍后执行非常有用.
我对此非常困惑.PHP文档是否建议将PHP行存储到数据库中?什么?这不是一件令人不安的事吗?
如果我知道在数据库中有一个以PHP形式执行的字符串怎么办?这不是非常危险吗?我只需要一个Sql注入来做任何我想要的网站,无论我想要什么.我可以删除整个数据库,我可以从脚本中获取所有内容,我可以做任何事情.
这怎么会这么有用?
你能否提供一些关于如何eval()有用的例子?此外,我可能错过了一些东西,为什么我看到一些代码,如:
eval("if (is_int($int)) { return false }");
Run Code Online (Sandbox Code Playgroud)
而不仅仅是
if (is_int($int)) { return false }
Run Code Online (Sandbox Code Playgroud)
但是,正如我所说,我可能错过了一些东西:什么?
<? switch($data['type']) : ?>
<? case 'log': ?>
<? while ($row = $data['loop']->fetch()) : ?>
<table class="t-errors">
<tr>
<td>
<b>IP:</b> <? echo $row['LogShellIP']; ?>
<b>Command:</b> <? echo $row['LogShellCommand']; ?>
<b>Executed:</b> <? echo $row['LogShellReturn']; ?>
<b>Time:</b> <? echo format::time($row['LogShellTime']); ?>
</td>
</tr>
</table>
<? endwhile; ?>
<? break; ?>
<? case 'fatal': ?>
<? case 'warning': ?>
<? case 'notice': ?>
<? case 'unknown': ?>
<? while ($row = $data['loop']->fetch()) : ?>
<table class="t-errors">
<tr>
<td <? if ($row['LogErrorSeen'] == 0) …Run Code Online (Sandbox Code Playgroud) 我有这个代码(下面)..
$.ajax
({
type: "POST",
url: "../WebServices/Feedback.svc/sendfeedback",
dataType: 'json',
async: false,
data: '{"stars": "' + stars + '", "rating" : "' + rating + '", "note" : "' + encodeURIComponent(note) + '", "code" : "' + code + '", "permission" : "' + permission + '"}',
contentType: "application/json; charset=utf-8"
});
Run Code Online (Sandbox Code Playgroud)
我正在使用它将数据传递给Web服务,但问题是如果有任何字符在这里(,/?:@&= + $#).我已经放入了一个工作正常的encodeURIComponent,然后在Web服务中我再次将它们放回去.
我问的是,是否有更好的方法来实现这一目标?似乎有点疯狂,每次传递它之前我必须编码字符串..
谢谢
我正在尝试在Django 1.7中添加初始数据,并且我已经读过建议使用数据迁移.
我已正确创建了我的迁移文件,称为"0001_groups",我在其中创建了少量contrib.auth的组和权限.
问题是它在auth迁移运行之前运行.
我去了解应用程序的最后一次迁移auth的名称,并且它被称为0005_alter_user_last_login_null.py.所以我试过:
dependencies = [
('auth', '0005_alter_user_last_login_null'),
]
Run Code Online (Sandbox Code Playgroud)
但我得到:
KeyError:u"迁移appname.0001_groups依赖项引用不存在的父节点('auth','0005_alter_user_last_login_null')"
我用谷歌搜索了这个错误,它总是链接到11个月的Django修复错误.
如何正确指定auth应用依赖?
鉴于:
.layout {
display: flex;
flex-wrap: nowrap;
align-items: stretch;
}
.layout aside,
.layout main {
min-width: 100px;
}
.layout aside {
flex: 0 0 content;
background-color: red;
}
.layout main {
flex: 1 1 content;
background-color: green;
}Run Code Online (Sandbox Code Playgroud)
<div class="layout">
<aside>
<p>Line 1</p>
</aside>
<main>
<p>Line 1</p>
<p>Line 2</p>
<p>Line 3</p>
</main>
</div>Run Code Online (Sandbox Code Playgroud)
我的意图是:
但如果我运行该代码并使用Chrome检查它,我会在两个flex:语句中收到以下错误:
无效的属性值
此外,绿色框不会像它应该的那样在右侧扩展.我的Chrome版本在Mac OS X 10.11.5上为56.0.2924.87(64位).
我究竟做错了什么?
每个人都说在活动站点中"显示启用错误"是不好的(由于某些安全问题).
现在,我们要考虑2个案例:
现在,对于案例#1:
我们希望看到错误.怎么样?
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
Run Code Online (Sandbox Code Playgroud)
没有比这更简单的了.我们还可以为除Parse和Fatal之外的所有错误定制错误处理程序.
相反,如果案例是#2:
我们希望能够停用消息:
ini_set('error_reporting', 0);
ini_set('display_errors', 0);
Run Code Online (Sandbox Code Playgroud)
没关系.但是如何向用户展示一个友好的信息,比如"嘿嘿,有些东西真的很有用.我不保证你我们正在努力修复它,因为我们非常懒惰." 您应该再次启用错误并只使用该函数,set_error_handler()并希望不会发生解析或致命错误.但我的第一个问题是:
问题1:是否可以避免错误报告并在出现问题时加载自定义脱机页面?我的意思是,是有可能有
ini_set('error_reporting', 0);和ini_set('display_errors', 0);,仍然能够告诉PHP加载自定义错误页?
现在另一个:
问题2:我开发了一个类,它具有
set_error_handler()日志错误的功能,发生在数据库中.通过这种方式,我可以跟踪黑客企图和其他很酷的东西.(是的,我总是确定数据库是可访问的,因为如果我们无法连接到数据库,我的应用程序将关闭).这值得吗?
我正在尝试构建自己的简单的wordpress密码更改脚本(嗯,实际上是基于插件)-密码已成功更改-但更改完成后却注销了我!下面是使用的代码。谁能看到我被注销的地方以及如何防止它退出?谢谢!
$update = $wpdb->query($wpdb->prepare("UPDATE {$wpdb->users} SET `user_pass` = %s WHERE `ID` = %d",array(wp_hash_password($_POST['admin_pass1']),$user_ID)));
if(!is_wp_error($update))
{
wp_cache_delete($user_ID,'users');
wp_cache_delete($user->user_login,'userlogins');
wp_logout();
if (wp_signon(array('user_login'=>$user->user_login,'user_password'=>$_POST['admin_pass1']),false)):
wp_redirect(admin_url());
endif;
ob_start();
}
Run Code Online (Sandbox Code Playgroud) 如何将double价值转换为时间?例如,我有这个double值
val = 0.00295692867015203,我想返回4:15.
我做了很多研究,没有找到有效的解决方案!这是我尝试过的一个函数,但它返回00:00:00:
ConvertFromDecimalToDDHHMM(Convert.ToDecimal(val));
public string ConvertFromDecimalToDDHHMM(decimal dHours) {
try {
decimal hours = Math.Floor(dHours); //take integral part
decimal minutes = (dHours - hours) * 60.0M; //multiply fractional part with 60
int D = (int)Math.Floor(dHours / 24);
int H = (int)Math.Floor(hours - (D * 24));
int M = (int)Math.Floor(minutes);
//int S = (int)Math.Floor(seconds); //add if you want seconds
string timeFormat = String.Format("{0:00}:{1:00}:{2:00}", D, H, M);
return timeFormat;
}
catch …Run Code Online (Sandbox Code Playgroud) 正如我们所知,foreach循环将执行直到条件不会变为false.我只想执行一次.
$i=0;
foreach($html->find('img') as $element)
{
if($i!=0)
break;
$logo= $element->src . '<br>';
$i++;
}
Run Code Online (Sandbox Code Playgroud)
还有其他解决方案吗?喜欢foronce代替foreach?
我在windows密钥库中创建了RSA密钥对.
我成功加密了数据(对称密钥):
HCERTSTORE hstore = ::CertOpenSystemStore(NULL, L"TestStore");
PCCERT_CONTEXT pctxt = ::CertFindCertificateInStore(hstore, X509_ASN_ENCODING, NULL,
CERT_FIND_SUBJECT_STR, L"My Test Keys", NULL);
HCRYPTPROV hprovider = NULL;
if(!::CryptAcquireContext(&hprovider,
NULL,
MS_ENHANCED_PROV,
PROV_RSA_FULL,
NULL/*CRYPT_NEWKEYSET*/))
{
DWORD err = ::GetLastError();
return 0;
}
HCRYPTKEY hkey = NULL;
if(!::CryptImportPublicKeyInfo(hprovider,
X509_ASN_ENCODING,
&pctxt->pCertInfo->SubjectPublicKeyInfo,
&hkey
))
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在我使用CryptEncrypt()和HCRYPTKEY.
接下来我想用私钥解密数据,但它不可导出.我见过的所有例子都包括导入密钥.
如何在不导出密钥的情况下解密数据?