1

私は9年以上前にPHPスクリプトを使用しました。

PHPのバージョンを最新の安定したバージョン(PHP 5.4.1.1)に更新した後、スクリプトが機能しなくなりました。

問題のある領域を見つけました。この古いPHPコードを最新のPHP5.4.11に変換するのを手伝ってくれる人はいますか。

if ((strlen($user_name)<$nick_min_length) or (strlen($user_name)>$nick_max_length)) {
    $error_text ="$w_incorrect_nick<br><a href=\"index.php\">$w_try_again</a>";
    include($file_path."designes/".$design."/error_page.php");
    exit;
}
if (ereg("[^".$nick_available_chars."]", $user_name)) {
    $error_text ="$w_incorrect_nick<br><a href=\"index.php\">$w_try_again</a>";
    include($file_path."designes/".$design."/error_page.php");
    exit;
}
if (strtolower($user_name) == strtolower(strip_tags($w_rob_name))) {
    $error_text ="$w_incorrect_nick<br><a href=\"index.php\">$w_try_again</a>";
    include($file_path."designes/".$design."/error_page.php");
    exit;
}
4

2 に答える 2

5
if (ereg("[^".$nick_available_chars."]", $user_name)) {

する必要があります:

if (preg_match("/[^" . preg_quote($nick_available_chars) . "]/", $user_name)) {

ereg()は非推奨であり、使用しないでください。また、preg_match()を使用して、変数内の特殊文字が適切にエスケープされていることを確認して、preg_quote()を使用し、正規表現に区切り文字が必要になるように/します。この場合は、このようにします。

于 2013-01-25T06:21:01.113 に答える
1

問題は、ereg現在非推奨になっていることです。このバージョンでは削除される可能性があります。

preg_matchの代わりに使用ereg

于 2013-01-25T06:23:42.527 に答える