2011-02-01 8 views
0

私の設定データを自動メール用に保存しようとしています。ファイル内に r nを入れないでください(投稿からテキストエリアに入ってくるデータ用)

データは$ _POSTのようにテキストエリアから来てこの関数に入ります。

私の保存機能は\ r \ n改行を保存していないので改行はしません。だから私は電子メールを送信するときに1つの大きな文字列に改行を入れないでください。

ファイルを開くと、1行にすべてではなくスペースで保存されます。

if ($_POST['gdwemail_obj']!="") { $gdwEConfig['gdwemail_obj'] = $_POST['gdwemail_obj']; } 
if ($_POST['gdwemail_mes']!="") { $gdwEConfig['gdwemail_mes'] = $_POST['gdwemail_mes']; } 
saveEConfig($gdwEConfig); 



function saveEConfig($post) { 
    $gdw_conffile = 'components'.DS.'com_gdwformulaire'.DS.'included'.DS.'econfig.gdw.php'; 
    $gdw_confopen = fopen($gdw_conffile,'w+'); 
    $gdw_cfgput = '<?php'; 
    $gdw_cfgput .= ' $gdwEconf = array(); '; 

    $gdw_cfgput .= ' $gdwEconf[\'gdwemail\'] = "'.$post['gdwemail'].'"; '; 
    $gdw_cfgput .= ' $gdwEconf[\'gdwemail_obj\'] = "'.$post['gdwemail_obj'].'"; '; 
    $gdw_cfgput .= ' $gdwEconf[\'gdwemail_mes\'] = "'.$post['gdwemail_mes'].'"; '; 

    $gdw_cfgput .= '?>'; 
    if (!fwrite($gdw_confopen, $gdw_cfgput)) { 
     echo "<script> alert('ERROR: Can't save configuration file, please verify CHMOD access on \'administrator/components/com_ai/\' for write access.'); window.history.go(-1); </script>\n"; 
     exit; 
    }  
    fclose($gdw_confopen); 
} 

出力は次のようになります。

<?php $gdwEconf = array(); $gdwEconf['gdwemail'] = "[email protected]"; $gdwEconf['gdwemail_obj'] = "Réservation pour le cours {courschoisi} a été reçus"; $gdwEconf['gdwemail_mes'] = "Cher {nomdemandeur}, 

Votre demande de réservation a été reçus avec succès. 

Information pour votre sélection: 
{courschoisi} 
{dateheurechoisi} 

Merci 
L'équipe de Belle vie de chien"; ?> 
+0

これを解決しましたか? –

+0

いいえ、私はそれに戻ってくる瞬間に問題を落としました... – StiGMaT

答えて

2

あなたが実際には含めていませんので、\ rを\ nはあなたの$ gdw_cfgput中= ...行。

+0

+1 14秒が速いために+1 –

1

お客様の$gdw_cfgput文字列に改行を入れないようにお願いします。

$gdw_cfgput = '<?php'; 
$gdw_cfgput .= "\r\n"; 
$gdw_cfgput .= ' $gdwEconf = array(); '; 

は改行として\r\nを解釈するためにPHPを伝える二重引用符を、注意してください。

+0

+1を示す例:D –

+0

nono the $ post ['gdwemail'] $ post ['gdwemail_obj' ] $ post ['gdwemail_mes']は、必要な改行がある内容のテキストエリアからの$ _POST値です。 – StiGMaT

+0

@StiGMaT:私が見ている唯一の$ _POST変数は、*おそらく*キー名に基づくテキスト領域です。出力から見ることができるgdwemail_mesです。ちょっとした改行が表示されます。しかし、それらの他のポスト値はおそらくテキストフィールドか何かのように見えますが、その前に改行が追加されていないハードコーディングされた行があります。 –

1

ファイルを指定していないため、ファイルに改行が含まれていません。 $ gdw_cfgputをアセンブルしますが、. "\r\n";は追加しません。追加したい場合は、. PHP_EOL;btwを使用できます。

出力ファイルを生成するのにvar_export()を使用した方がよいでしょう。 1つのコヒーレントな配列を持っているようですが、var_exportは出力を単純化します。

$config = var_export($_POST, true); 
fwrite($f, "<?php\n\n\$gdwEconf = $config;\n?>"); 
関連する問題