こんばんは。お世話になっております。
タイトルにあるように、ブラウザ上でサーバー内にアップされているファイルを修正するため、アップされているファイルを呼び出し、テキストフォーム内に書き出されたファイル内容を修正して保存。という仕組みを作ったのですが、ローカル上では何ら問題なかったものの、レンタルサーバーへアップして、それを行ってみたところ、ファイル内に記述のあるダブルコーテーションの前に、円マークが保存実行を行う度に、倍々で増えていく現象が起きています。
こんな感じ。
$test="テスト"; → $test=\"テスト\" → $test=\\"テスト\\"
修正を行い、ファイルの上書きをするソースは
$addfname = "../index.html";
$editfile = $_POST["editfile"];
$addstr = file_get_contents($addfname);
$fp=@fopen("$addfname","w");
fputs($fp,$editfile);
fclose($fp);
となっています。
以上、ローカル上では何ら問題なかったことなので、何処が不適切なのか分からずにおります。お忙しい中恐縮ですがアドバイスいただけたら幸いです。宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
そのサーバの設定で、magic_quotes_gpcがONになっているのでしょうね。
考えようによっては大きなお世話機能ですが、DBを使う場合のセキュリティ対策が自動でされているようなものです。
以下のように、その設定がONになっているサーバではstripslashes関数を使用して、\\→\と変換します。Offの場合はそのままの文字列を使用します。
if (get_magic_quotes_gpc()) {
$editfile = stripslashes($_POST["editfile"]);
}else{
$editfile = $_POST["editfile"];
}
関数化してもいいですね。
function ConvertArgumentString($str){
if (get_magic_quotes_gpc()) {
return stripslashes($str);
}else{
return $str;
}
}
$editfile = ConvertArgumentString($_POST["editfile"]);
BellBellさんへ
こんばんは。前回に引き続き、早速のアドバイスをありがとう御座います。
ソースも含め、その意味までお教えいただき、とても有難く感謝いたします。
ありがとう御座いました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- HTML・CSS エクセルのファイルのダウンロード 前にアップしたファイルがダウンロードされる 1 2022/11/13 13:02
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ブラウザからエクセルを開く方法
-
Ajaxが動きません~『status=0』?
-
jsでルートディレクトリより上...
-
Illustrator でjavascriptによ...
-
ジャバスクリプトがポップアッ...
-
php -> javascript 変数渡し
-
ローカルのtest.txtを1行ずつ...
-
html組込み時のカレントフォル...
-
ローカル環境で動作しないJavaS...
-
VB.NET2003 テキストボックスに...
-
JSPの処理の途中で、JavaScript...
-
htmlのfileタグに自動で値を入...
-
ハイフンだけ置換したい。
-
「終了していない文字列型の定...
-
csvファイルを読み込み、該当項...
-
d3.jsを使っての折れ線グラフと...
-
javascript:void(0)とは何でし...
-
JavaScriptでショートカットキ...
-
正整数の半角数字かどうか判定する
-
一定時間ごとの実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ブラウザからエクセルを開く方法
-
JavaScriptでテキス...
-
jsでルートディレクトリより上...
-
ローカルのtest.txtを1行ずつ...
-
Ajaxが動きません~『status=0』?
-
JavaScriptによる....
-
javascriptでのmdb接続について
-
ActiveXObjectについて
-
ブラウザ上でjavascriptを編集...
-
ASP上からサーバサイドのVBScr...
-
JavaScriptでファイルの保存
-
javascriptでテキストファイル...
-
Illustrator でjavascriptによ...
-
ブックマークレットが動かない。
-
WEBブラウザから任意フォルダを...
-
星型評価スターレーティングの...
-
html組込み時のカレントフォル...
-
php -> javascript 変数渡し
-
node.jsでmysqlをローカル環境...
-
XMLHttpRequestオブジェクトに...
おすすめ情報