1

これは少し思いがけないことで、ほとんどが好奇心です。時間とスペースの無駄にならないことを願っています。リンクを使用してアカウントを検証するための小さなスクリプトを作成していたので、php スクリプトへのリンクを記載したメールを送信することにしました。リンクには、_GET 配列で取得する 2 つの変数を入れます。鍵とメール。次に、その電子メールとキーでデータベースを検索し、アクティブ化されたステータスをtrueに変更します...問題ありません。それほどエレガントではないかもしれませんが、十分に簡単です..

サイトの他の場所で新しいパスワードを生成するために使用したキーを生成するためのスクリプトを使用しました (たとえば、パスワードをリセットするため)。 )私のパスワード生成関数が引き出した配列はこれでした:

'0123456789_!@#$%&*()-=+abcdfghjkmnpqrstvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

したがって、当然、URLの変数を区切るために使用される&文字を削除しました...次に、別の試みで、電子メールのリンクが完全に認識されず、「#」文字の後に停止したことに気付きました。 HTMLの参照に使用されていたので、それも削除しました。結局、念のために英数字だけを残すことにしましたが、気になります。_GET を使用して URL に「有効」ではない文字が他にもありますか? とにかくそれらの文字を使用する方法はありますか (おそらく ulr エンコードまたは somwething)

4

3 に答える 3

2

無効な文字がたくさんあります。urlencodeそれらを URL セーフ エンコーディングに変換するために使用します。( URL に挿入するデータに対して常にその関数を実行します)。

于 2012-08-07T12:49:28.027 に答える
0

urlencode()に値を送信する前に使用する必要があります$_GET

于 2012-08-07T12:49:47.237 に答える
0

url_encodeandを使用することもできますurl_decodeが、& # ?これらは通常の URL 文字ではありません。

また、パスワードに関しては、アルゴリズムについて強調しsha1 cryptないでsaltください。これらのアルゴリズムは、自作のアルゴリズムよりもはるかに強力です。

于 2012-08-07T12:50:22.723 に答える