1

私はそこで同様の質問をチェックしましたが、それらは役に立たないようです。

CodeIgniter で適切な関数にルーティングされ、データが関数に渡されてさらに処理されるような電子メール検証があります。

サンプル URL :

http://mysite.dev/verify/?id=emailaddress@gmail.com&hash=562828a975740ac6820e40f7f61b4407

現在のルート:

$route['verify/(:any)'] = 'formcontroller/verification/$1';

関数 :

public function verification($slug)
    {
        parse_str(parse_url($slug, PHP_URL_QUERY), $fileds);
        var_dump($fields);
    }

問題は、上記の URL を試すと 404 が返されることです。Message: Undefined variable: fields次のようなことをしようとすると得られますhttp://amazon.dev/verify/asdasdasd

誰かが私を正しい方向に向けることができますか?

?追加: URL にno がない場合は機能します。しかし、取得クエリの URL の標準については、これを解決する方法を知りたいです。

4

5 に答える 5

1

実際の問題は、クエリが/.

?実際には、URL はこのモデルのディレクトリ名の直後にあるはずです。

http://mysite.dev/verify/?id=emailaddress@gmail.com&hash=562828a975740ac6820e40f7f61b4407

ルートは

$route['verify'] = 'formcontroller/verification';

また、変数はgetのメソッドを使用して処理する必要がありCodeIgniterます。

$this->input->get('variablename');

urlencodedまた、構成ファイルで排他的に許可されていない文字が含まれている場合は、URL を指定する必要があります。

于 2015-05-22T13:20:41.443 に答える
0

?URI セグメントで許可されている文字ではありません。

/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| This lets you specify with a regular expression which characters are permitted
| within your URLs.  When someone tries to submit a URL with disallowed
| characters they will get a warning message.
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
| as few characters as possible.  By default only these are allowed: a-z 0-9~%.:_-
|
| Leave blank to allow all characters -- but only if you are insane.
|
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
*/

これは application/config/config.php にあります

$config['permitted_uri_chars'] = 'a-z 0-9~%.:&_\-'; 

? を追加できます リストへ

これはURLエンコードされた文字のリストです http://www.degraeve.com/reference/urlencoding.php

于 2015-05-21T20:38:56.473 に答える