2011-10-17 9 views
1

は私が緩ん概要:) に開始javascriptのPHPのmysqlの私は、Ajaxのrequetsの多くを持っているし、これまでのような適切なファイル 要求するために:「newbill.phpを」、 "newcustomer.php "というようなことを言います。リファクタリングwebproject:私のプロジェクトはますます大きくなっているので

私の質問です:何とかこれを回避する方法はありますか? 私が考えたのは、Ajax のPOST内の関数の名前をPHP内の適切な関数を呼び出すことです。 しかし、私はどういうわけかそれはどちらも快適ではないと感じていますか?ここ

サンプル(ジャバスクリプト)

// Kundendaten updaten 
$("a#updateKunde").click(function(evt){ 

    formSerial2 = $('#baseForm').serialize(); 
    evt.preventDefault(); 
     $.ajax({ 
      type: "POST", 
      **url: "ajax/updatecustomer.php"**, 
      data: formSerial2, 
      success: function(msg){     
       $(".alert").html(msg) 
          .css("color","#66b451") 
          .hide() 
          .show('slow') 
          .fadeOut(2000) 
          .hide('slow'); 

      } 
     });   
}); 

PHPファイル(updatecostumer.php)

<?php 

    include_once("../_class/queries.php"); 

     $kn = $_POST['selKunden']; 

     $vn = $_POST['ivname']; 
     $na = $_POST['iname']; 
     $st = $_POST['istrasse']; 
     $pl = $_POST['iplz']; 
     $or = $_POST['iort']; 
     $em = $_POST['iemail']; 

     connect::getQuery("UPDATE Kunde SET vname = '".$vn."', 
          name = '".$na."', 
          adresse = '".$st."', 
          plz = '".$pl."', 
          ort = '".$or."', 
          email = '".$em."' 
          WHERE Kunde.ID =".$kn."");       


     echo(" Kunde Nr: ".$kn." wurde upgedated"); 

?> 
+4

すべての入力をクエリで使用する前に、**それらの入力をサニタイズする必要があります。あなたはSQLインジェクションを広く公開しています! – Polynomial

+2

9つの質問、7つの回答、1つも受け入れられていない..この回答を得る確率はあまりありません。 –

+0

あなたはこの質問をプログラマーに移すことを提案します。 –

答えて

1

ので、いくつかのコメント..

まず、これまで、これまでの直接入力やプッシュを取ることはありませんあなたのDBに。常にSQLインジェクションを避けるために、ユーザーからの入力をエスケープ:第二に

$st = mysql_real_escape_string($_POST['istrasse']); 

。あなたはajax.phpのようなファイルへの投稿にアクション句を入れることができます。これにより、あなたは異なる行動を扱うことができます。関数名を渡すことはお勧めしませんが、必要なクラスに導くアクションのリストを作成してください。あなたがさまざまなアクションのための共通のポストパラメータを持っている場合は、同じエスケープ/クエリーを行っている他の複数のページがあるのではなく、Ajaxページでコードを取得して再利用できます。

+0

"action clause"とは何ですか?私はlike:?action = functionname "をajax.phpに送り、ajax.phpの中で" swicth {..mysql stuff ..} "をしますか? – Don

関連する問題