0

嗨,我想看看是否有人知道我如何将 oCompany 变量保存在 cookie 或会话中以供重用

例如,使用此代码:

按下连接按钮连接但按下断开按钮不起作用,它不会断开连接,因为 oCompany 变量不再存在。

谢谢

    <html>
<head>
  <title>App SAP</title>
</head>
<body>
<h1>APP SAP DI API</h1>
    <form method="post" action ="indexLogin.php">
     Compañia: 
    <select name="DBCompany">
    <option value="0">Seleccione:</option>
    <?php
    $oCompany = new COM("SAPbobsCOM.Company")or die ("No connection");
        $oCompany->DBServerType = 7;
    $oCompany->Server = "Server";
    
    $oRecordSet = ("SAPbobsCOM.Recordset");
    $oRecordSet = $oCompany->GetCompanyList;
    
    if ($oCompany->GetLastErrorCode !==0 ) {
         $lErrCode=0;
         $sErrMsg="";
         $oCompany->GetLastError($lErrCode, $sErrMsg);
         echo '<option>'.$lErrCode." - ".$sErrMsg.'</option>';
    }
    Else{
        while(!$oRecordSet->EOF){
            echo '<option>'.$oRecordSet->Fields->Item(0)->Value.'</option>';
            $oRecordSet->MoveNext;
         }
        }
?></select><br><br>
    Usuario: <input type="text"name="User"><br><br>
    Clave: <input type="password"name="Pass"><br><br>
    <input type="submit" name="submit" value="Conectar a Sap">
  </form>
  <br>
<?php 
 
 if (isset($_POST['submit'])) 
 {
  set_time_limit(60);
   $oCompany->CompanyDB = $_REQUEST['DBCompany'];
   $oCompany->UserName = $_REQUEST['User'];
   $oCompany->Password = $_REQUEST['Pass'];
   $oCompany->language = 25;
   $oCompany->UseTrusted = False;
   
   $lRetCode = $oCompany->Connect();
if ($lRetCode != 0){
    $lErrCode=0;
    $sErrMsg="";
    $oCompany->GetLastError($lErrCode, $sErrMsg);
    echo "ERROR: (".$lErrCode.") ".$sErrMsg;
}else{
    echo "Conectado a: ".$oCompany->CompanyName." Version: ".$oCompany->Version;
    
}

 }
 echo '<br><br>';
 
    if (!$oCompany->Connected)
   {
     Echo "No hay conexión"; 
   }
   else 
   {
     //$oCompany->Disconnect();  
     Echo "Conectado";   
   }
?>
<form method="post" action ="indexLogin.php">
  <input type="submit" name="Desconectar" value="Desconectar">
</form>
<?php 

 if (isset($_POST['Desconectar']))
 {

    if (!$oCompany->Connected)
   {
     Echo "¡No hay conexión"; 
   }
   else 
   {
     $oCompany->Disconnect();  
     Echo "Desconectado";   
   }
  }
?>
</body>
</html
php
4

1 回答 1

0

对于与 SAP 业务的网站连接,您应该使用 DiServer 或服务层。

在这两个 API 中,您都使用用户/密码登录来获取令牌。此令牌是您必须存储在会话中的内容。然后任何调用都可以通过使用令牌来完成。


PS:我个人建议您在可用时使用服务层。

于 2021-09-11T14:51:25.703 回答