鍍金池/ 問答/ PHP問答
小曖昧 回答
  1. 輸出配置,也就是在Connection.php的292行,使用dump($config)
  2. 配置沒有問題,如果數(shù)據(jù)庫和PHP不在同一臺服務(wù)器,查看3306端口是否可以訪問,如果是阿里云的話,需要配置安全策略
墨小白 回答

問題已經(jīng)解決!
原因是我apache服務(wù)器的配置文件http.conf沒有配置正確
正確配置如下:
1:開啟LoadModule rewrite_module modules/mod_rewrite.so(去掉這段之前的#
2: 將DocumentRoot對應(yīng)的<Diretory>標簽下的AllowOverride None改為AllowOverride ALL(配置文件里面共有三處的AllowOverride,我是將yii文件夾放在了htdocs下 )

DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted 
</Directory>
黑與白 回答

我想的是三角形疊加一條藍線

問題在于你打算怎么實現(xiàn)這個“三角形”。如果是用 width: 0 + border 的辦法的話,有個限制,就是背景色的處理,這個三角形沒辦法真正地“透明”。

尐懶貓 回答

為了程序的簡單易用性。每個配置都有默認值吧 ?

安淺陌 回答

我的1.0的也是,后來直接刪了

別逞強 回答
  1. 在點擊按鈕后,給有權(quán)限的人分配一個Token,并將該Token 記錄到緩存中,設(shè)置為 1分鐘過期.
    操作:

    用戶點擊進入按鈕的時候, 判斷當(dāng)前擁有權(quán)限的人數(shù)是否達到閥值 (判斷Token的數(shù)量)
    達到閥值,然會403 Forbidden. 否則生成新的Token 分配給該用戶
    
  2. 將該Token 發(fā)送給前端, 后續(xù)有限制的操作都要求客戶端將 Token回傳給服務(wù)器. 交由服務(wù)器嚴重Token 的有效性, 有效才能訪問,否則不可以訪問.

大致邏輯應(yīng)該是這樣的.僅供參考.

這個代碼肯定是跑不起來的哦.不過思路應(yīng)該就這樣了

<?php

// 除了 Auth 可以匿名訪問(就是客戶端請求的時候,不帶Token的情況)之外. 其他的所有請求都必須攜帶Token上傳
// 這里的Token 可以放到 Header 中
$request = HttpRequest;
$response = HttpResponse();
// 請求資源不是Auth,且沒有攜帶Token的情況,直接返回403,或者跳轉(zhuǎn)頁面到獲取Token的地方(就是點擊進入頁面的那個按鈕的地方)
if ($request->getPath() !== 'auth' && !$request->getHeader('token')) {
    return $response->withHeader(403);
}

// 如果攜帶Token,但是Token已經(jīng)失效,那么不能訪問,或者跳轉(zhuǎn)到獲取Token頁面重新獲取Token
if ($token = $request->getHeader('token') && !(new Accessable($token))->isTokenAvaliable()) {
    return $response->withHeader(403); 
}

// 正常邏輯

/*****************************************************************************************/

class Accessable()
{
    protected $token;
    
    public function __construct($token)
    {
        $this->token = $token;
    }
    
    /**
     * 老用戶是否還有權(quán)限可以訪問,就是判斷他的Token是否還存在,畢竟1分鐘后,Token就會自動被刪除
     */
    public function isTokenAvaliable()
    {
        $redis = Redis();
        if ($redis->exists($token)) {
            return true;
        }
        
        return false;
    }
}

/**
 * 授權(quán)操作
 */
class Auth
{
    const EXPIRE_TIME = 60;
    const AUTH_TOKENS = 'auth_tokens';    // 用來保存所有的Token,方便Redis查詢
    
    public function POST()
    {
        if (!$this->isNewUserAvaliable()) {
            return 403; // 返回403 Forbidden
        }

        $token = $this->generateToken();
        
        return $token;
    }
        
    /**
     * 生成可以訪問的票據(jù)Token
     */
    protected function generateToken()
    {
        $redis = new Redis();
        $token = sprintf('Token:%s', uuid());
        $redis->set($token, 1);
        $redis->expire($token, self::EXPIRE_TIME);     // 設(shè)置為1分鐘自動過期
        $redis->sAdd(self::AUTH_TOKENS, $token);
        
        return $token;
    }
    
    /**
     * 對于新用戶是否可以訪問判斷(因為他沒有攜帶Token上來,那么就是新用戶)
     * 判斷方式,是查詢Redis中存在的Token數(shù)量是否達到閥值
     */
    protected function isNewUserAvaliable()
    {
        $redis = new Redis();
        $tokens = $redis->sMembers(self::AUTH_TOKENS);
        $counter = 0;
        foreach ($tokens as $token) {
            if ($redis->exists($token)) {
                ++$counter;
                continue;
            }
            
            $redis->sRem($token);
        }
        
        if ($counter >= self::MAX_USER_COUNT) {
            return false;
        }
        
        return true;
    }
}




款爺 回答

貼出你訪問的url
url_model=>0
訪問方式應(yīng)該是:

http://serverName/appName/?m=module&a=action&id=1,

你試試這種方式訪問 看看

溫衫 回答

你打印出來的是一個閉包的closure對象,因為你還沒用使用這個閉包對象,所以你即使寫了但是他還是沒有返回值。稍微改動下代碼這么寫 拿你這段代碼為例
clipboard.png
只需要再a中使用一下閉包函數(shù)就會得到你想要的結(jié)果,var_dump($param());就是這樣寫就ok了。因為1.本身閉包函數(shù)就是通過closure對象來實現(xiàn)的2。閉包函數(shù)他還是一個函數(shù),需要使用才能得到他的返回值。

哎呦喂 回答

同意樓上,建議樓主把blade部分也貼出來,瞎猜還是很浪費時間還不一定解決問題

喵小咪 回答

// 這個是小年糕公司的筆試題, 我做了這個題目獲得了面試資格.去公司面試也是筆試,筆試掛掉了。
// 然后到公司是做這3個題目,https://www.cnblogs.com/mingz...

// 不考慮字母
function s2i(s) {
    return s.split('').reduce(function(a, c) {
        var code = c.charCodeAt(0);
        if (48<=code && code < 58) {
            a.push(code-48);
        }
        return a;
    }, []).reduce(function(a, c) {
        return 10*a + c;
    }, 0);
}
 
function versionCmp(s1, s2) {
    var a = s1.split('.').map(function(s) {
        return s2i(s);
    });
    var b = s2.split('.').map(function(s) {
        return s2i(s);
    });
    var n = a.length < b.length ? a.length : b.length;
    for (var i = 0; i < n; i++) {
        if (a[i] < b[i]) {
            return -1;
        } else if (a[i] > b[i]) {
            return 1;
        }
    }
    if (a.length < b.length) return -1;
    if (a.length > b.length) return 1;
    var last1 = s1.charCodeAt(s1.length-1) | 0x20,
        last2 = s2.charCodeAt(s2.length-1) | 0x20;
    return last1 > last2 ? 1 : last1 < last2 ? -1 : 0;
}
北城荒 回答

var ws = new WebSocket("ws://127.0.0.1:8081?token={token}");

呆萌傻 回答

問題1,沒有保存密碼,驗證密碼的時候又重新生成了新密碼,所以永遠都是密碼錯誤

問題2,$data='{password:"' . $password. '"}';echo json_encode($data);重復(fù),json_encode就是生成json的

問題3,ajax使用dataType: "json"時,jquery會自動解析json字符串,不需要再一次data = eval("("+msg+")");

問題4,獲取密碼的點擊事件中,還沒有輸入密碼呢,干嘛還要提交密碼 data: {password: password}, //提交到password.php的數(shù)據(jù)

<?php
session_start();
function getRandPass()
{
    $chars    = ("0123456789abcdefghijklmnopqrstuvwxyz");
    $min      = 6;//最小字數(shù)
    $max      = 9;//最大字數(shù)
    $len      = mt_rand($min,$max);//隨機長度
    $password = '';
    $a_len    = strlen($chars);
    for($i = 0;$i < $len;$i++)
    {
        $password .= $chars[mt_rand(0,$a_len - 1)];//隨機取出一個字符
    }
    return $password;
}
if(isset($_POST['password']))
{
    if($_SESSION['password'] == $_POST['password'])//驗證密碼
    {
        $data['code'] = 1;
    }
    else
    {
        $data['code'] = 0;
    }
}
else
{
    $password = getRandPass();
    $_SESSION['password'] = $password;//保存密碼,以便下次驗證密碼
    $data['password'] = $password;
}
echo json_encode($data);//輸出json數(shù)據(jù)
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
    </head>
    <body>
        <input type="text" id="password">
        <button id="sub">
            獲取密碼
        </button>
        <button id="gopass">
            驗證密碼
        </button>
        <input type="text" id="text">
        <span id="texts">
        </span><!-- 用以顯示返回來的數(shù)據(jù),只刷新這部分地方 -->
        <script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js">
        </script>
        <script>
            $('#gopass').click(function()
                {
                    var password = $('#password').val();
                    if(password == '')
                    {
                        $('#texts').html('密碼不能為空!');
                        return false;
                    }
                    $.ajax(
                        {
                            url: 'password.php',
                            type: 'POST',
                            dataType: 'json',
                            data:
                            {
                                password: password
                            },
                            beforeSend: function()
                            {
                                $('#texts').html('驗證中!');//用于調(diào)試驗證過程
                            },
                            success: function(data)
                            {
                                if(data.code == 1)
                                {
                                    //驗證密碼
                                    $('#texts').html('驗證成功' );
                                }else
                                {
                                    $('#texts').html('密碼錯誤!');
                                }
                            }
                        });
                });
            $('#sub').click(function()
                {
                    var password = $('#password').val();
                    $.ajax(
                        {
                            type: "get",
                            url: "password.php",//提交到password.php的數(shù)據(jù)
                            dataType: "json", //回調(diào)函數(shù)接收數(shù)據(jù)的數(shù)據(jù)格式
                            success: function(data)
                            {
                                $('#text').empty(); //清空Text里面的所有內(nèi)容
                                $('#text').val(data.password); //密碼在#text中輸出
                                $('#texts').html('獲取成功!');
                                console.log(data); //控制臺輸出調(diào)試結(jié)果
                            },
                            error:function(msg)
                            {
                                console.log(msg);//控制臺輸出錯誤調(diào)試結(jié)果
                            }
                        });
                });
        </script>
    </body>
</html>
情未了 回答

錯誤提示的比較清楚了, 找不到指定的模塊。
請檢查 extension_dir 是否包含dll模塊。
官方下載 PHP7 windows包是具有這些模塊的,路徑相對于php.ini同級別的 ext 目錄下。

笨小蛋 回答

api/v1.Index/test這種鏈接? 用點做分隔符?

只愛你 回答

首先回答第一個問題

你要求的是 在 notice 表中存在,檢索的時候 排除notice表中有的數(shù)據(jù)

你可以這樣做,不需要模型關(guān)聯(lián)

首先,取出 notice 表中的數(shù)據(jù),只需要取出 user_id 字段的數(shù)據(jù)

public function getData(Notice $notic , User $user)
{

    $userIds = $notic->all()->pluck('user_id')->toArray();

    $users = $user->query()->whereNotIn('id' , $userIds)->get();

    dd( $users);
}
pluck 方法為給定鍵獲取所有集合值 , 在通過 查詢語句,使用 whereNotIn的 方式 查詢數(shù)據(jù)

第二個問題 查詢當(dāng)前用戶的通知列表

不是通過自增 id 來查詢,前 100 條數(shù)據(jù),

如果是使用 sql 語句查詢 , 則使用 limit 0,100

使用laravel的話,則有一個take方法, 例如take(100)

hasWhere laravel 中好像沒有這個方法噢
獨白 回答

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

墻頭草 回答

首先這種路由參數(shù)的正確姿勢應(yīng)該是:

public function show(Request $request,$id)
{
    //your code 
}

或者:

\request()->route('id');

其次:queryinput 的子集。

使用 input 方法可以從整個請求中獲取輸入數(shù)據(jù)(包括查詢字符串),而 query 方法可以只從查詢字符串中獲取

熟稔 回答
$html = '<p>文章內(nèi)容
<img src="/images/nerong.jpg">
<img src="http://www.xxx.com/images/nerong.jpg">
<img src="/images/pic/nerong.jpg">
<img src="/file/pic/nerong.jpg">
文章測試內(nèi)容</p>';
$html = str_replace('src="/','src="http://www.xxx.com/',$html);