2017-03-01 12 views
0

调用PHP的情况下唯一安全的ID从数据库中收集它们被呈现到客户端之前。如何我一直在使用一个公式从另一个PHP的情况下

然而,正如我的代码长大复杂,我掉进这个陷阱:我有两个独立的情况下返回JSON需要使用相同的ID。因为我的安全功能在每个执行过程中产生一个唯一的散列和密钥,所以从一个案例收集的散列ID不能在需要使用它的另一个中加密。因此,作为一个解决方案,我认为发送哈希ID从第一种情况下收集回第一种情况下再次,解密那里,然后以某种方式把它传递给其他情况下没有客户端永远不会有机会一睹真实身份。

所有的代码做工精细,我的问题是匹配的是在这种情况下破门,这是一个简单的客户端触发循环之前也发回数据的第二情况下使用第一种情况下得出的ID。我提供代码,以防你会问。问题只是在两个单独的php情况下将相同的id与不同的唯一散列值进行匹配。对不起,如果我把它比它应该更复杂。

  • 这是我用来填充下拉选择的第一种情况。

     case "tutorRefresh": 
    
         $tutorSelectSql = "SELECT id, tname, tsurname FROM tutors"; 
         $tutorSelectQry = pg_query($tutorSelectSql); 
    
         while($row = pg_fetch_array($tutorSelectQry)){ 
    
          $id = lockPandoraBox($row['id']);//encrypt the id 
          $response[] = array("id" => $id, 
               "tname" => $row['tname'], 
               "tsurname" => $row['tsurname']); 
    
         }; 
    
        if(isset($response)){ 
    
        echo json_encode($response); 
    
        } else { 
    
        $response = array("val" => 0); 
        echo json_encode($response); 
    
        } 
    
        break; 
    
  • 这是由更新表数据的第二情况下使用的功能,因为实在是太漫长而复杂的一个问题,它张贴在这里的所有,我只是共享代码的相关部分。我必须将上面代码中加密的id与此处加密的id相匹配,因为此代码填充表格,而上面的代码只是填充下拉选择。

    $crypted = lockPandoraBox($row["appid"]); 
        $tutorID = lockPandoraBox($row["tutorid"]);//encrypting id 
        $clientID = lockPandoraBox($row["clientid"]);//same method for another id, ignore this. 
    
        $fApp["hours"][] = array("recId" => $crypted, 
              "hour" => $row["hour"], 
              "tutor" => $tutorArr["tname"]." ".$tutorArr["tsurname"], 
              "tutorId" => $tutorID,// id that I need to use 
              "client" => $clientArr["cname"]." ".$clientArr["csurname"], 
              "clientId" => $clientID, 
              "department" => $dept, 
              "degree" => $deg, 
              "purpose" => $purposeArr["pname"], 
              "purposeId" => $row["purpose"], 
              "contact" => $clientArr["cgsm"], 
              "email" => $clientArr["cemail"], 
              "tutorAbsCheck" => $tutorAbsArray["id"], 
              "tutorAbsReason" => $tutorAbsArray["reason"], 
              "clientAbsCheck" => $clientAbsArray["id"], 
              "clientAbsReason" => $clientAbsArray["reason"] 
              ); 
        /* */ 
    } 
    
    
    return json_encode($fApp); 
    } 
    
  • 最后,这是我的主要页面的代码这触发我需要的情况下点击事件功能工作。它只是改变匹配点击记录的选择框的选择。它从表格中选择id并尝试将其与选择框中的id相匹配。提前致谢。 (“#tutorEdit”)。val(dayData [“hours”] [$(el.currentTarget).attr(“key”)]。tutorId).trigger(“change”);

+1

我已阅读刚刚开头两段,并认为 - 也许你正在寻找会话变量? –

+0

会,我根本不知道他们。我会检查出来的。 – Ahmet

+0

可能重复:http://stackoverflow.com/questions/4015729/php-session-start –

回答

0

我认为最好将结构稍微改变一点,以便将两种情况结合起来以达到我的目标。我想知道我是否可以解决它。

相关问题