php
  • mysql
  • 2017-07-08 4 views 0 likes 
    0

    とき、私のいずれかの形式は、(名前= QuestionTypeSelector値= AddingFractions)の記事、PHPの次のスニペットは、実行されるコードの一部です:JQuery変数を使用してMYSQL列を選択できますか?

    $QuestionTypeSelector = $_POST['QuestionTypeSelector']; 
    $db->query(" UPDATE answers SET QuestionType = '$QuestionTypeSelector' WHERE user_id=$id"); 
    

    $_POST['QuestionTypeSelector']が正常AddingFractionsを返し、これが成功した= AddingFractions$QuestionTypeSelectorを設定します。これは、QuestionTypeというタイトルの列をAddingFractionsに設定します。

    代わりにAddingFractionsScoreというタイトルの列を2に設定したいとします。私は次のコードを試しましたが、うまくいきません。

    $QuestionTypeSelector = $_POST['QuestionTypeSelector']; 
    $db->query(" UPDATE answers SET '$QuestionTypeSelector+Score' = '2' WHERE user_id=$id"); 
    

    つまり、JQuery変数を使用して列を選択しようとしています。アドバイスをいただければ幸いです。ありがとう!あなたは、SQLインジェクションの被害者であるかもしれないので、

    +1

    '「『{$ QuestionTypeSelector}スコア』=『2』のuser_id = $ ID SET UPDATE答え」 ; ' –

    +0

    ありがとう、@AlexTartan。あなたが回答として投稿した場合、私はそれを "受け入れる"ことができます。 – user3666954

    答えて

    0

    確か

    $col = $_POST['QuestionTypeSelector'] . 'Score'; 
    $db->query("UPDATE answers SET '$col' = '2' WHERE user_id=$id"); 
    
    0

    このプロセスは非常に危険です。 マッピング配列を使用して列を選択することをお勧めします。 Es。 jQueryが変数POSTに整数をポストします $ _POST ['column'] = 0; 次に、あなたのPHPページでは、あなたがポスト値を取得し、列名を取得するために、それを広告キーを使用し

    $availableColumns = array(
        'QuestionTypeSelector', 
        'QuestionTypeSelector1, 
    ); 
    
    +0

    アドバイス、@DavidGinanniありがとうございました。私は完全にコーディングに新しいので、SQLインジェクションに関しては精通していません。フォームにはラジオボタンしかありません。ユーザーがSQLコードを挿入できるテキスト入力はありません。私はまだ脆弱ですか? – user3666954

    +0

    はい、get/postリクエストからの変数をチェックせずに使用すると、あなたは常にvulnerabile.https://www.acunetix.com/websitesecurity/sql-injection/です。 –

    関連する問題