0

他の関数と連携する必要があるため、先頭のスペースに非常に敏感な入力、gameName を取得しようとしています。

入力欄に入力すると、スペースがありません。DBで確認すると、加工直後は前にスペースが入っています。DBから引っ張るとスペースがなく、(引っ張った後に)DBに再挿入するとスペースが削除されます。

ページの問題のあるコードは次のとおりです。

if (isset($_GET) && $_GET['page'] == 'addGame') {
    if (isset($_GET) && $_GET['page'] == 'addGame' && $_GET['action'] == 'success') {
?>
      <h2>Game added to database.</h2>
      <h4><a href='index.php?page=addGame'>Add another</a> or choose something new to do.</h4>
<?
    } else {
      include('./inc/addGameProc.php');
?>
      <fieldset>
      <legend><h2>Add game</h2></legend>

      <form name='addGame' id='addGame' method='POST'>
        <input type='text' name='gameName' placeholder='Game name' required /><br />
        <textarea name="gameDesc" class="span12" rows="10" placeholder='Game description' required></textarea><br />
        <input type='submit' name='submitNewGame' class='btn btn-primary' /><br />
      </form>
      </fieldset>
<?

    }
}

表示される追加ゲーム プロシージャは次のとおりです。

    <?
    if (isset($_POST['submitNewGame']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
        $database = new database('localhost','wwwander_sradmin','editedout','wwwander_srmain','mysqli');
        $database->openConnection();

            //save and escape entered material
            $gameName = ltrim($_POST['gameName']);
            $gameDesc = $database->escapeString($_POST['gameDesc']);

            //check that material not already in db
            $checkDB = $database->queryDB("SELECT * FROM mainSite_games WHERE gameName='$gameName' AND gameDesc='$gameDesc'");
            if ($database->dbNumRows($checkDB) == 1) {
                echo "Game already in database";
            } else {
                //add entered material into db
                $addToDB = $database->queryDB("INSERT INTO mainSite_games(gameName, gameDesc) VALUES(\" $gameName \", \" $gameDesc \")");
                if (!$addToDB) {
                    echo "An error occured.";
                } else {
                    header('Location: index.php?page=addGame&action=success');
                }
            }

        $database->closeConnection();
    }
?>

私の試行錯誤した ltrim をそこに見ることができます。

もちろん、SOはここでの最後の試みです。私が知っていることはすべてやった。何か案は?省略したリソースのうち、他に提供できるリソースはありますか?

編集 -

引っ張った後、スペースがあります。私が存在しないと言った理由は、私が通常それを引っ張る場所で、スペースが考慮されていないのでスペースが問題ではないと思う選択に入るからです? 私は知らないよ。

4

1 に答える 1

0

変化 :

VALUES(\" $gameName \" 

に :

VALUES(\"$gameName\"

あなたが見ているスペースは、引用符の直後のものだと思います

于 2013-04-28T06:47:44.220 に答える