問題タブ [magic-quotes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - TinyMCEditor を移動した後
ModX を新しい場所に移動しました。ModX の中には TinyMCEditor があります。
移動後、html を貼り付けると、TinyMCEditor はすべてのコンテンツを奇妙な単語とバックスラッシュに置き換えます。
古い TinyMCEditor で機能していた古いコンテンツ:
貼り付け後:
そのため、実際の画像が削除されるだけでなく"、そこにそれらの仕事人も投げ込まれます。
アップデート
ここに反映されているように、この問題は PHP のマジック クォートと関係があると推測しました。
しかし、これは共有サーバーであり、PHP.ini ファイルがどこにもありません。このオプションを編集することはまだ可能ですか?
php - .htaccess または php.ini ファイルなしでマジック クォートをオフにすることは可能ですか?
私のクライアントの 1 つは、freeservers.com (絶対に避けるべきホスト) でサイトをホストしています。
ホストは .htaccess ファイルを許可しておらず、編集するサーバー上に編集可能な php.ini ファイルがありません。
しかし、magic_quotes がオンになっています。これは私のすべての POST リクエストを破壊しています。
これをオフにするには、どのようなオプションが必要ですか?
php - JSONオブジェクトをクエリ文字列に変換してから、オブジェクトに戻します
これは何度か聞かれたことは知っていますが、ご容赦ください。
かなり複雑な(さまざまなノードや座標などを含む)Googleマップオブジェクトがあり、クエリ文字列として渡そうとしています。
Play javascript/jQueryソリューションが必要です。
jQueryエラーが発生する.paramメソッドを試しました。唯一機能するのは「stringify」メソッドです。このメソッドは、URLとして表示されるときに次のように見える文字列を作成します。%7B%5C "shape_1%5C"%3A%7B%5C "color%5C"%3A %5C "%237F0000%5C"%2C%5C "data%5C"%3A%7B%5C "b%5C"%3A%5B%7B%5C "Na%5C"%3A51.56727431757122%2C%5C " Oa%5C "%3A-0.10462402858888709%7D%2C...。
phpはそれを次のように変換します:{\\ "shape_1 \\":{\\ "color \\":\\ "#7F0000 \\"、\\ "data \\":{\\ "b \\":[ {\\ "Na \\":51.56727431757122、\\ "Oa \\":-0.10462402858888709}、.. ..
しかし、私はPHPを使いたくないと言ったので、stringifyがオブジェクトに対して何をしたかを確認するのに役立つ場合に備えて、PHPが何をするかを示しています。
Javascriptでエスケープを解除すると、次のようになります。
{\" shape_1 \ ":{\" color \ ":\"#7F0000 \ "、\" data \ ":{\" b \ ":[{\" Na \ ":51.56727431757122、\" Oa \ ": -0.10462402858888709}、..
ご覧のとおり、エスケープされていないシーケンスには、これらのスラッシュがいたるところにあります。それをJSONオブジェクトに評価しようとすると、「Illegaltoken」が表示されます。解析メソッドも失敗します。この文字列を元の複雑なJSONオブジェクトに戻す方法が見つかりません。私はさまざまな提案をオンラインで探しましたが、失敗します。また、stringifyが、単に存在してはならないこれらすべてのスラッシュを挿入する理由もわかりません。誰かがそのオブジェクトを取得する方法を知っている場合は、それをクエリ文字列に入れてから、解析して戻すと非常にありがたいです。
ニック
更新:答えはこれです:
そして、受信側で:
またはすべてを1行に
ニック
php - PDO を使用する場合、マジック クォートを無効にする必要がありますか
簡単な質問と私は簡単な答えが欲しい. PDO プリペアド ステートメントを使用して、データが安全にデータベースに処理されるようにしています。しかし、私は混乱しています。magic_quotes が有効になっている場合、マジック クォートを無効にするか、変数にストリップスラッシュを使用する必要がありますか? その後、PDO にセキュリティ ジョブを任せますか?
php - エスケープクォート、PHPに問題がある
各質問の横にテキスト領域がある一連の質問を実行する for ループがあります。ただし、質問または回答にアポストロフィが含まれている場合 (誰かが質問で「しない」または「できない」と質問した場合のように)、それはデータベースに挿入されません。スラッシュを削除してスラッシュを追加して問題を解決しようとしましたが、役に立ちませんでした。
これは私がこれまでに得たものです。
スラッシュなしでユーザーに質問を表示するための for ループ。
および POST セットアップ:
php - php マジック クォートと mysql_real_escape_string の組み合わせを元に戻すスクリプト
過去 4 年間、私はサイトを誤って両方の魔法の引用符をmysql_real_escape_string同時に使用して運営してきました。
これにより、さまざまな形式の文字列が保存され、ほとんどの場合、引用符が二重にエスケープされ、データベースから選択されたときに正しく表示されなくなりました。
両方をオンにするのは正しくなく、php6 で魔法の引用符を削除すると、すぐにオフになることがわかりました。
主な質問は、データベース内の文字列内に誤って格納された値の一部を回復するために存在する既存のスクリプト/関数があるかどうかです。
その後、すべての「テキスト」列をループして、何千もの行を手動で処理しなくても、これらの出現箇所を正しいものに置き換えることができます。
魔法の引用符のサポートが近い将来廃止され、ユーザーが別のユーザーに切り替えるときにそのようなスクリプトが必要になる可能性があると想像できますか?
php - 魔法の引用符は、名前に「-」を含む配列要素にどのようにアクセスしますか?
マニュアルを読んでいて、「配列要素が単語の区切り文字として「-」で使用されている場合、配列の要素は魔法の引用符でアクセスできます」というステートメントを見つけましたが、説明はありませんでした。誰かがこれの背後にある理由を説明できますか?
php - サーバー側でプラス記号が消えますか?
現在、mysqlテーブルを見ることができません...しかし、「+」がテーブルに組み込まれているとは思いません。
確認magic_guotesしたところ、電源が入っています。ただし、magic_quotesは、データベースが使用する文字のエスケープにのみ関連するため、「+」記号には何もしません。
regular expressionsまた、クライアントとサーバー(javascriptとphp)をチェックしましたが、「+」記号を削除するものはありません。
私も使用htmlentites()していますが、+がhtmlエンティティであるとは信じていません。たとえそうであったとしても、これは文字ではなくエンティティにする必要があります。
これjson_encodeは残りますが、エンコードする前に文字をクライアントにエコーバックすることができ、それでも「+」記号がないことがわかりました。
5つの場所すべてを確認しましたが、+記号がどこに行くのか判断できません...mysqlデータベースが+記号があるはずのスペースを返しているようです。
Ajaxシリアル化
Ajaxツイート
php - magic_quotes_qpc がオンのときに、PHP コードを格納するポータブル パスワードを作成することは可能ですか?
私は最初のウェブサイトを開発しています。私の共有ホスティング プロバイダーは、magic_quotes_qpc をオンにしており、それを変更したくありません。私が理解しているように、パスワードの保存には次の問題があります。 1. ユーザーが「strong'password」のような値を登録フォームに入力します。2. Php は値 "strong/'password" を DB (またはそれに基づくハッシュ) に書き込みます。3. ユーザーがログインする場合、パスワードとして「strong'password」と入力します。4. Php はそれを「strong/'password」に変換します。これは DB と同じ値であるため、ユーザーは正常に入力されます。
そして、magic_quotes_qpc をオンにせずに、ホスティング プロバイダーを別のプロバイダーに変更するまで、問題なく動作します。そのようなアカウントはすべて壊れます。ストリップスラッシュを使用すると、「strong/password」が不安定になります。パスワードでの使用を禁止するシングルクォートとダブルクォートを作成する必要があるようです。
マジック クォート アルゴリズムを正しく理解できましたか? はいの場合、この問題について何か考えはありますか?
php - magic_quotes off-コードを壊すことができますか?
コードを記述していない環境でmagic_quotesをオフにした場合、問題が発生する可能性があるかどうかを確認するにはどうすればよいですか?何を確認する必要がありますか?どの機能が機能しなくなる可能性がありますか?