PHP - DEFINE数组,结尾有字符串

时间:2017-07-07 18:09:08

标签: php

我正在为用户级别创建一个数组,并希望通过在数组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
));

我打算对其进行哈希/检查用户级别以使其更安全,然后在每个页面中稍后使用某些内容检查哈希值。

2 个答案:

答案 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));

https://eval.in/829457

答案 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()