- function logSql($sql) {
- if (!$this->logfile) $this->logfile=fopen("import.sql","a");
- fputs($this->logfile,$sql."\n");
- }
- function myDB($usr) {
- // Datenbankparameter des ERP-Users benutzen.
- $tmp = file_get_contents("../users/$usr.conf");
- preg_match("/dbname => '(.+)'/",$tmp,$hits);
- $dbname=$hits[1];
- preg_match("/dbpasswd => '(.+)'/",$tmp,$hits);
- if ($hits[1]) {
- $dbpasswd=$this->uudecode($hits[1]);
- } else {
- $dbpasswd="";
- };
- preg_match("/dbuser => '(.+)'/",$tmp,$hits);
- $dbuser=$hits[1];
- preg_match("/dbhost => '(.+)'/",$tmp,$hits);
- $dbhost=$hits[1];
- if (!$dbhost) $dbhost="localhost";
- if ($dbpasswd) {
- $dns=$dbuser.":".$dbpasswd."@".$dbhost."/".$dbname;
- } else {
- $dns=$dbuser."@".$dbhost."/".$dbname;
- };
- $dns="pgsql://".$dns;
- $this->db=DB::connect($dns);
- if (!$this->db) DB::dbFehler("oh oh oh",$this->db->getDebugInfo());
- if (DB::isError($this->db)) {
- $this->dbFehler("Connect",$this->db->getDebugInfo());
- die ($this->db->getDebugInfo());
- }
- return $this->db;
- }
+function anmelden($login=false,$pwd=false) {
+ ini_set("gc_maxlifetime","3600");
+ if (file_exists("../config/lx_office.conf")) {
+ $lxo = fopen("../config/lx_office.conf","r");
+ } else if (file_exists("../config/lx_office.conf.default")) {
+ $lxo = fopen("../config/lx_office.conf.default","r");
+ } else {
+ return false;
+ }
+ $dbsec = false;
+ $tmp = fgets($lxo,512);
+ while (!feof($lxo)) {
+ if (preg_match("/^[\s]*#/",$tmp)) {
+ $tmp = fgets($lxo,512);
+ continue;
+ }
+ if ($dbsec) {
+ preg_match("/db[ ]*= (.+)/",$tmp,$hits);
+ if ($hits[1]) $dbname=$hits[1];
+ preg_match("/password[ ]*= (.+)/",$tmp,$hits);
+ if ($hits[1]) $dbpasswd=$hits[1];
+ preg_match("/user[ ]*= (.+)/",$tmp,$hits);
+ if ($hits[1]) $dbuser=$hits[1];
+ preg_match("/host[ ]*= (.+)/",$tmp,$hits);
+ if ($hits[1]) $dbhost=($hits[1])?$hits[1]:"localhost";
+ preg_match("/port[ ]*= (.+)/",$tmp,$hits);
+ if ($hits[1]) $dbport=($hits[1])?$hits[1]:"5432";
+ if (preg_match("/\[[a-z]+/",$tmp)) break;
+ $tmp = fgets($lxo,512);
+ continue;
+ }
+ preg_match("/[ ]*cookie_name[ ]*=[ ]*(.+)/",$tmp,$hits);
+ if ($hits[1]) $cookiename=$hits[1];
+ if (preg_match("!\[authentication/database\]!",$tmp)) $dbsec = true;
+ $tmp = fgets($lxo,512);
+ }
+ if (!$cookiename) $cookiename='lx_office_erp_session_id';
+ $cookie=$_COOKIE[$cookiename];
+ if ($login) {
+ $auth=authuser($dbhost,$dbport,$dbuser,$dbpasswd,$dbname,false,$login,$pwd);
+ } else {
+ $cookie=$_COOKIE[$cookiename];
+ if (!$cookie) header("location: ups.html");
+ $auth=authuser($dbhost,$dbport,$dbuser,$dbpasswd,$dbname,$cookie,false,false);
+ };
+ if (!$auth) { return false; };
+ $_SESSION["sessid"]=$cookie;
+ $_SESSION["cookie"]=$cookiename;
+ $_SESSION["employee"]=$auth["login"];
+ $_SESSION["mansel"]=$auth["dbname"];
+ $_SESSION["dbname"]=$auth["dbname"];
+ $_SESSION["dbhost"]=(!$auth["dbhost"])?"localhost":$auth["dbhost"];
+ $_SESSION["dbport"]=(!$auth["dbport"])?"5432":$auth["dbport"];
+ $_SESSION["dbuser"]=$auth["dbuser"];
+ $_SESSION["dbpasswd"]=$auth["dbpasswd"];
+ $_SESSION["db"]=new myDB($_SESSION["dbhost"],$_SESSION["dbuser"],$_SESSION["dbpasswd"],$_SESSION["dbname"],$_SESSION["dbport"],$showErr);
+ $_SESSION["authcookie"]=$authcookie;
+ $sql="select * from employee where login='".$auth["login"]."'";
+ $rs=$_SESSION["db"]->getAll($sql);
+ if(!$rs) {
+ return false;
+ } else {
+ if ($rs) {
+ $tmp=$rs[0];
+ $_SESSION["termbegin"]=(($tmp["termbegin"]>=0)?$tmp["termbegin"]:8);
+ $_SESSION["termend"]=($tmp["termend"])?$tmp["termend"]:19;
+ $_SESSION["Pre"]=$tmp["pre"];
+ $_SESSION["interv"]=($tmp["interv"]>0)?$tmp["interv"]:60;
+ $_SESSION["loginCRM"]=$tmp["id"];
+ $_SESSION["lang"]=$tmp["countrycode"]; //"de";
+ $_SESSION["kdview"]=$tmp["kdview"];
+ $sql="select * from defaults";
+ $rs=$_SESSION["db"]->getAll($sql);
+ $_SESSION["ERPver"]=$rs[0]["version"];
+ return true;$_SESSION;
+ } else {
+ return false;
+ }
+ }
+}