2

多言語サイトには、php 定数を含む 2 つの php ファイルがあります。

お気に入り

define('メール', '電子メール');
define('性別', '性別'); . .

.

フォームのテキストエリアを使用して、管理者側からこれらのファイルを編集できます。ファイル全体をテキストエリアに出力します。管理者がファイルを更新すると、リダイレクトの問題が発生します。これは、このファイルの header() 関数を含めると、上記の非空白文字の報告に失敗したことを意味します。

編集後にphpファイルを確認したところ、次のように各phpステートメントの間に余分なスペースがたくさん含まれています。

define('メール', '電子メール');

define('性別', '性別');

define('名前', '名前');

また、長い 1 行が複数の行に分割されます。

define('SENTENCE', 'これは、私が指摘したように、テキスト領域の幅に応じて多くの行に分割される長い文です');

したがって、これも1行である必要があるため、エラーに寄与します

これらの余分なスペースと改行がすべての問題の原因であると確信しています。テキストエリア間の印刷にこのコードを使用しています:

<textarea  style="width: 664px; height: 353px;" id="edit_file" name="edit_file"><?php
$file = fopen("../en.php", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while(!feof($file))
  {
echo fgets($file);
  }
fclose($file);
?> </textarea>

ファイルを保存する場合:

if(isset($_POST['btn']) && $_SERVER['REQUEST_METHOD']=='POST' && !empty($_POST['btn'])){
if (get_magic_quotes_gpc()) {
$filedata = stripslashes($_POST['edit_file']);
}
$filedata=str_replace(array("<br />'",'\n'),array("",''),$filedata);
$size=strlen($filedata);
$file = fopen("../en.php", "w") or exit("Unable to open file!");
fwrite($file,"$filedata",$size);
fclose($file);
}
4

1 に答える 1

3

予期しない引用符が 1 つあり、\n を単純な引用符で囲むことはできません:

$filedata=str_replace(array("<br />'",'\n'),array("",''),$filedata);

で置き換えます:

$filedata=str_replace(array("<br />","\n"),array("",''),$filedata);
于 2012-10-02T06:02:54.907 に答える