2017-09-16 9 views
-3

誰かが私にとってforeachルーチンの上でそれを作る方法を知っているかどうか質問したいと思います。すべてのルーチン用私の例のためのより良いルーチンを作るためのルーチンのルーチン

if ($_POST['vorgang'] == 'aendern') { 
    pd_aendern ($_POST['db_eintrag'] , $db_id); 
} 

<form action="#" runat="server" method="POST" enctype="multipart/form-data"> 

    echo '<input type="text" placeholder="' . $vorname  . '"name="db_eintrag[pd_vorname]"><br>'; 
    echo '<input type="text" placeholder="' . $nachname  . '"name="db_eintrag[pd_nachname]"><br>'; 
    echo '<input type="text" placeholder="' . $geburtsjahr . '"name="db_eintrag[pd_geburtsjahr]"><br>'; 
    ... 
    .. 
    . 
</form> 

function pd_aendern ($db_eintrag , $db_id) { 
//////////////// 
//1st Routine.//    
//////////////// 
    if (!empty(isset($db_eintrag[pd_vorname]))) { 
     $sql = "UPDATE personaldaten SET pd_vorname='$db_eintrag[pd_vorname]' WHERE pd_id='$db_id'"; 
     $db_erg = mysql_query($sql); 
     if (! $db_erg) { 
      die("Ungültige Abfrage: $sql <hr>" . mysql_error()); 
     } 
    } 
/////////////// 
//2nd Routine// 
/////////////// 
    if (!empty(isset($db_eintrag[pd_nachname]))) { 
       ... 
    } else { 
     echo "aaaaa"; 
    } 
} 

どのように私はそれを処理することができますか?私はその部分を構築したい:

$sql = "UPDATE personaldaten SET 
      pd_vorname='$db_eintrag[pd_vorname], 
      2nd part, 
      3rd part, etc. 
     ' WHERE pd_id='$db_id'"; 

私のmysqlクエリのための部分を取得するためのルーチンです。私は2つの配列にその固定されたものを入れようとしましたが、私はそれのロジックを得ることができませんでした。私の悪い英語のためにどんな返信と叫びのためのthx。

$array = array("pd_vorname","pd_nachname", "pd_geburtsjahr"); 
$array2 = array("$db_eintrag[pd_vorname]","$db_eintrag[pd_nachname]", "$db_eintrag[pd_geburtsjahr]"); 
+0

?これを使用して新しいコードを書く必要はありません。あなたのコードは、パラメータ化されたクエリを使用できないことや、死んだコードベースを使用している可能性がある他のリスクのために、SQLインジェクション攻撃に対して脆弱です。私はできるだけ早く 'mysqli'や' PDO'に移行することを強くお勧めします。 – ADyson

+0

あなたの実際の質問に関しては、あなたが何を求めているのか本当に分かりません。私は英語があなたにとっては簡単ではないことを認識していますが、あなたの問題が何であるか、あなたが何を望んでいるのかを正確に知ることが難しいので、それをより明確にするために時間をかけてください。 – ADyson

+0

@ADyson:お願いです。私は新しいバージョンを知っていますが、私は古いバージョンですべてのものを書き始めましたので、変更する時間を見つけることができませんでした。シンタックスのようなものです。 thx @それを変更するために私に注意を払うすべての人が、質問のためのnessesaryではありません。サーバーをハッキングするのが簡単でない場合は、そのインジェクションをどのように行うことができるか教えてください。あなたが望むのであれば、ネットにhonypot Serverを置き、古いクエリ機能をハックするならば、それぞれの人が注意を喚起するでしょう。 –

答えて

0

マイソリューション:なぜあなたはまだセキュリティ上の問題のために何年も前に廃止予定とPHP7で削除されました `mysql_`ライブラリを使用している

$array = array(pd_vorname,"pd_nachname","pd_geburtsjahr","pd_telefonnummer","pd_staatsbuerger","pd_wohnort","pd_fb"); 
      $zahl = count($array); 

      for ($i = 0 ; $i < $zahl ; $i++) { 
      $etwas = $db_eintrag[$array[$i]]; 
      $ar = $array[$i]; 
        if (!empty($etwas)) { 
          $sql = "UPDATE personaldaten SET $ar='$etwas' WHERE pd_id='$db_id'"; 
          $db_erg = mysql_query($sql); 
            if (! $db_erg) { die("Ungültige Abfrage: $sql <hr>" . mysql_error()); } 
        } 
      } 
      for ($i = 1 ; $i < 12 ; $i++) { 
      $etwas = $db_eintrag["wb_wissensbereich_" . $i ]; 
        if (!empty($db_eintrag["wb_wissensbereich_" . $i ])) { 
          $sql = "UPDATE wissensbereiche SET wb_wissensbereich_$i='$etwas' WHERE wb_id_person='$db_id'"; 
          $db_erg = mysql_query($sql); 
            if (! $db_erg) { die("Ungültige Abfrage: $sql <hr>" . mysql_error()); } 
        } 
      } 
関連する問題