我正在为用户级别创建一个数组,并希望通过在数组UserLevels中的每个用户级别的末尾添加一个秘密的10位数字符串来使其安全。我正在使用下面的代码,但在使用PHP术语定义时,我似乎无法在数组中添加字符串。
我的代码如下:
//Change the 10 digits of the $secret definition to a randomised string
$secret = '0000000000';
define('UserLevels', array(
'Owner'.$secret,
'Admin'.$secret,
'Staff'.$secret
));
我打算对其进行哈希/检查用户级别以使其更安全,然后在每个页面中稍后使用某些内容检查哈希值。
答案 0 :(得分:2)
检查您的PHP版本。
您用于定义数组常量的语法只能在PHP 7中使用。
// Works as of PHP 5.6.0
const ANIMALS = array('dog', 'cat', 'bird');
echo ANIMALS[1]; // outputs "cat"
http://php.net/manual/en/language.constants.syntax.php
您可以序列化数组以将常量存储为字符串,然后在需要访问值时使用unserialize将其返回到数组。
<?php
//Change the 10 digits of the $secret definition to a randomised string
$secret = '0000000000';
$user_levels = array(
'Owner'.$secret,
'Admin'.$secret,
'Staff'.$secret
);
define('UserLevels', serialize($user_levels));
var_dump(UserLevels);
var_dump(unserialize(UserLevels));
答案 1 :(得分:0)
如果你不使用PHP 7
from django.conf.urls import url, include
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
from django.views.static import serve
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^account/', include('account.urls')),
url(r'^music/', include('music.urls')),
url(r'^music/', include('audiotracks.urls')),
url(r'^(?P<username>[\w\._-]+)/music', include('audiotracks.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
if settings.DEBUG:
urlpatterns += [
url(r'^site_media/(?P<path>.*)$', serve, {
'document_root': settings.MEDIA_ROOT
})
]
urlpatterns += staticfiles_urlpatterns()