2016-05-30 1 views
1

を挿入した場合、私はケースのユーザーの種類いくつかのチャット中の単語が、そのは動作していないにms_data['text']にスイッチを追加しようとしている応答を取得し、テキストが

誰かが私はそれを解決するのに役立つことはできますか?あなたが持っているので

function RegisterMessage($ms_data = array()) { 
    global $wo, $sqlConnect; 
    if ($wo['loggedin'] == false) { 
     return false; 
    } 
    if (empty($ms_data)) { 
     return false; 
    } 
    if (empty($ms_data['text']) || !isset($ms_data['text']) || strlen($ms_data['text']) < 0) { 
     if (empty($ms_data['media']) || !isset($ms_data['media']) || strlen($ms_data['media']) < 0) { 
      return false; 
     } 
    } 

    if (isset($ms_data['text'])) { 
    switch ($ms_data['text']]) { 
     case '1': 
      echo "one"; 
      break; 
     case '2': 
      echo "two"; 
      break; 
     case '3': 
      echo "three"; 
      break; 
     } 
    } 

    $fields = '`' . implode('`, `', array_keys($ms_data)) . '`'; 
    $data = '\'' . implode('\', \'', $ms_data) . '\''; 
    $query = mysqli_query($sqlConnect, " INSERT INTO " . T_MESSAGES . " ({$fields}) VALUES ({$data})"); 
    if ($query) { 
     $message_id = mysqli_insert_id($sqlConnect); 
     return $message_id; 
    } else { 
     return false; 
    } 
} 
+0

がある少なくとも二つの悪い問題あなたのコード:1)グローバルを使用しています(これらのグローバルのいくつかがすでに使用されているかどうかはわかりません。関数に変数を渡す必要があります。あなたはあなたのデータベースへのアクセスをいくつかのクラスにカプセル化し、生のmysqli *クエリはカプセル化しないでください。 3) 'strlen($ ms_data ['text'])<0)'何ですか?何かのstrlenは<0 4)何かをデバッグするためにvar_dump($変数)を使用することを学ぶ – strangeqargo

+0

@strangeqargo私はコードの一部を削除しました、チャットのコード上のすべてがうまくいきます、私はちょうど追加したい"ケース"ので、例えば、ユーザーが書く場合、彼はエコーを受信します。 – filipe

+0

置き換えたい単語をエコーし​​ないでください。例: '$ ms_data = preg_replace( '/ 1 \ b/i'、 'one'、$ ms_data);' – DarkBee

答えて

1

あなたのスイッチが動作していない余分な ']':

置き換える:

switch ($ms_data['text']]) { 

によって:と

switch ($ms_data['text']) {