2016-04-18 12 views
0

私はPHPで更新されたSQLテーブルを持っています。 editJobページでは、そのページに移動して、そのジョブ番号をSQLに挿入してエントリを作成するテキストボックスにジョブ番号を入力できます。その後、ジョブ番号に操作を追加できます。 しかし、私ができることをしたいのは、URLに入力されたPHP変数を持つページに移動し、URLからのジョブ番号でテキストボックスを自動入力します。 このPHP変数がjavascriptに存在するかどうかを調べる方法を理解できません。Javascript:php変数が定義されている場合、1つのことを行う関数

はここで、以下の関連ジャバスクリプトです:

<script type="text/javascript"> 
    function jobCheckCallback (data) { 

    if (data.includes("<td")) { 
    alert("Job already exists. Edit this job by clicking Edit on the job's overview page"); 
    document.getElementById("jobID").value = 0; 
    } else { 
    var njobID = document.getElementById("jobID").value; 
    if (njobID == "") njobID = 0; 
     else njobID= <?php echo $jobID; ?>; 
     sendAsync("editDatabase.php?sql=UPDATE+customerlist+SET+jobID="+njobID+" WHERE+jobID=" +jobID); 
     sendAsync("editDatabase.php?sql=UPDATE+operations+SET+jobID="+njobID+" WHERE+jobID="+jobID); 
     sendAsync("editDatabase.php?sql=UPDATE+jobfiles+SET+jobID="+njobID+" WHERE+jobID="+jobID); 
     sendAsync("editDatabase.php?sql=UPDATE+pallets+SET+jobID="+njobID+" WHERE+jobID="+jobID); 
     sendAsync("editDatabase.php?sql=UPDATE+jobs+SET+jobID="+njobID+" WHERE+jobID="+jobID,function(id){ 
     return function(){ 
       setjobID(id); 
     } 
    }(njobID)); 
    } 
} 
</script> 

私が取得エラーメッセージが「でSyntaxError:行方不明;文の前に」であるが、私はこのエラーの原因となって、別の問題を推測しています。

EDIT:$ jobIDはURLに入力できるPHP変数で、ページ上のテキストボックスに自動入力されます。

+0

あなたはいくつかの中括弧 '}'を失っていますが、もっと重要なのは**ユーザーが送信したSQLを実行しないでください!** Tjatは巨大な脆弱性です!誰かが 'DELETE FROM customerlist'を送ることを決めたと想像してください。それは悪くなるだろう。すべてのアクション(updateJobId.phpなどと呼ぶ)を実行するjobIDを送信するページがあるはずです – Terminus

+0

これらの行方不明の}中括弧はここに貼り付けられませんでしたが、今はそこにあります。 – Eksepshon

+1

そして、このシステムを使用する人はコンピュータに精通した人ではないので、私はこの脆弱性のリスクを抱いていますが、あなたの懸念に感謝します。 – Eksepshon

答えて

1

結果のページソースを確認しましたか?私はあなたがそう引用符でPHPの出力文をラップする必要が疑わ:ジョブIDが空の場合

else njobID= '<?php echo $jobID; ?>'; 

だから、無効なJSにはなりません。

+0

ありがとう、私は実際にそれを考えなかった。 – Eksepshon

関連する問題