0

小さなスクリプト ビンのデータベースにソース コードを格納する際に問題が発生しています。問題は、データベースから表示するために使用される構文ハイライターの印刷されたコードに、改行があってはならない場所があることです。テキストが同じ方法で保存されているデータベースでも見ました。

最初はラップの問題だと思ったので、入力フォームでラップをハードに設定しました。次に、addslashes を追加しましたが、それは機能しませんでした。magic_quotes を試してみました。この場合、以下に示すように、mysql_real_escape_string を試しました。

何か不足していますか?ありがとう

以下のこのコードは db への挿入であり、関連する値は $content です

<?php
session_start();
$submit = $_POST['submit'];
$sniptitle = ($_POST['sniptitle']);


$date = date("Y-m-d H:i:s"); 
$user = $_SESSION['username'];
$lang = ($_POST['lang']);
$con=mysqli_connect("localhost","xxxx","xxxx","xxxx");


$content = mysql_real_escape_string($_POST['snipcontent']);
// ^^^HERE IS THE ISSUE ^^^                           



    if(isset($_POST['submit'])) { 


                                    // Check connection
                                if (mysqli_connect_errno()) 
                                  {
                                  echo "Failed to connect to MySQL: " . mysqli_connect_error();
                                  }





                                mysqli_query($con,"INSERT INTO code_lib ( snip_title , snip_content , posted_by , lang , datetime )
                                VALUES ('$sniptitle' , '$content' , '$user' , '$lang' , '$date' )");


                                mysqli_close($con);

                                header ("Location: xxx"); // Move back to a page
                                exit();
                                }


    ?> 
4

1 に答える 1

0
  1. mysql_real_escape_string は、決して mysqli では使用しないでください
  2. とはいえ、それも問題にはなりません
  3. ほとんどの場合、「ソリューション」はフェッチ時にストリップスラッシュとペアになっています
  4. したがって、正しい解決策は
    • 魔法の引用符をオフにする
    • および mysqli_real_escape_string の使用
于 2013-03-16T06:56:10.950 に答える