0


シンプルだが効果的なクラスのように見えるajaxCRUDで 遊び始めます。
次のようなテーブル users があります。

CREATE TABLE tbl_users (
  usr_id        INT NOT NULL AUTO_INCREMENT ,
  usr_name      VARCHAR( 64 ) NOT NULL DEFAULT '' ,
  usr_surname   VARCHAR( 64 ) NOT NULL DEFAULT '' ,
  usr_pwd       VARCHAR( 64 ) NOT NULL ,
  usr_level     INT( 1 ) NOT NULL DEFAULT 0,
  PRIMARY KEY ( usr_id )
) ENGINE = InnoDB;

私のPHPコードは次のとおりです。

<?php
  $tblUsers->omitPrimaryKey();

  $tblUsers->displayAs("usr_name", "Nome");
  $tblUsers->displayAs("usr_surname", "Cognome");
  $tblUsers->displayAs("usr_pwd", "Password");
  $tblUsers->displayAs("usr_level", "Livello");
  $tblUsers->omitField("usr_pwd");

  $tblUsers->modifyFieldWithClass("usr_pwd", "password");

  $allowable_vals = array(1 => "USER", 2 => "ADMIN", 3 => "SUPERUSER");

  $tblUsers->defineAllowableValues("usr_level", $allowable_vals);
  $tblUsers->formatFieldWithFunction('usr_level', 'make_usr_level');
  $tblUsers->onAddExecuteCallBackFunction("AddCallBack");

  $tblUsers->addButtonToRow("Dettagli", "UserDetails.php");
  $tblUsers->addButtonToRow("Collega case", "HousesList.php"); 

  $tblUsers->setLimit(30);

  #my self-defined functions used for formatFieldWithFunction
  function make_usr_level($val){
    return FAUser::LevelToString($val);
  }  

  function AddCallBack($array)
  { 
    //these indexes are the fields of the db
    $success = qr("INSERT INTO tbl_users 
                    ( usr_id, 
                      usr_name, 
                      usr_surname, 
                      usr_pwd, 
                      usr_level )
                   VALUES (NULL, 
                           '" . $array[usr_name] . "', 
                           '" . $array[usr_surname] . "', 
                           AES_ENCRYPT('" . $array[usr_pwd] . "', 
                                       SHA2('FonteAlma_2013', 512)), 
                           " . $array[usr_level] . ");");
  }

  #actually show to the table
  $tblUsers->showTable();

?>  

テーブルは正しく表示され、既に挿入されているユーザーが表示されますが、新しいユーザーを追加すると、次のようになります。

4 - TheGivenName - TheGivenSurname - [BLOB - 7 B] - 0

そのため、パスワードとユーザーレベルが適切に設定されていません。

また、レベル フィールドをテーブル (3 つのレベルを含むコンボ ボックス) に編集すると、選択した値が何であれ常に 0 になります。

どこが間違っていますか?

よろしく。

4

1 に答える 1