2009-08-09 10 views
0

私は単純なフォームを別のファイルに投稿しています。私が持っている問題はTEXTAREA分野です。フォームのTEXTAREAでPOSTに追加された文字

、私はこれを入力してください:PHPでエコーとき

<h1 class="padlock">Member Login</h1> 

と出力は他のページにあります:

<h1 class=\"padlock\">Member Login</h1> 

それは自動的に文字をエスケープています。出力を別のTEXTAREAボックスに表示しています。

どうすれば正確に同じにすることができますか?

答えて

1

Magic Quotesがオンです。

これはPHPの非推奨機能です。これは、入ってくるすべてのユーザーデータをエスケープするために使用されました。あなたは、元のデータを取得するためにstripslashes()を使用することができます。

if (get_magic_quotes_gpc()) { 
    $_POST['textareaname'] =stripslashes($_POST['textareaname']); 
} 

または全体の$ _POST配列にこれを適用する:

function stripslashes_recursive($data){ 
    if(is_array($data){ 
    $new_data = array(); 
    foreach($new_data as $key => $entry){ 
     $new_data[$key] = stripslashes_recursive($entry); 
    } 
    return $new_data; 
    } else { 
    return stripslashes($data); 
    } 
} 

if (get_magic_quotes_gpc()) { 
    $stripped_postdata = stripslashes_recursive($_POST); 
} 

注:再帰関数は、あなたのポストデータ内の配列をサポートするために使用されます。

0

アップ... stripslashes! $ _POST変数を受け入れるスクリプトの最上部に

0

使用この:

if (get_magic_quotes_gpc()){ 
    foreach ($_POST as $key=>$val){ 
    $_POST[$key] = stripslashes($val); 
    } 
} 

PHPのいくつかのバージョンが自動的に脱出し、それは本当の痛みです。将来のバージョンではそうではありません。

関連する問題