PageRenderTime 42ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/soapserver/singleinsert.php

https://github.com/nielsrune/saldi
PHP | 116 lines | 61 code | 6 blank | 49 comment | 10 complexity | 5c0fcf80683f1af3421d26b4ab861473 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. // // #----------------- soapserver/singleinsert.php -----ver 3.2.8---- 2014.01.06 ----------
  3. // LICENS
  4. //
  5. // Dette program er fri software. Du kan gendistribuere det og / eller
  6. // modificere det under betingelserne i GNU General Public License (GPL)
  7. // som er udgivet af The Free Software Foundation; enten i version 2
  8. // af denne licens eller en senere version efter eget valg.
  9. // Fra og med version 3.2.2 dog under iagttagelse af følgende:
  10. //
  11. // Programmet må ikke uden forudgående skriftlig aftale anvendes
  12. // i konkurrence med DANOSOFT ApS eller anden rettighedshaver til programmet.
  13. //
  14. // Programmet er udgivet med haab om at det vil vaere til gavn,
  15. // men UDEN NOGEN FORM FOR REKLAMATIONSRET ELLER GARANTI. Se
  16. // GNU General Public Licensen for flere detaljer.
  17. //
  18. // En dansk oversaettelse af licensen kan laeses her:
  19. // http://www.fundanemt.com/gpl_da.html
  20. //
  21. // Copyright (c) 2004-2011 DANOSOFT ApS
  22. // ----------------------------------------------------------------------
  23. // 2014.01.06 Fejl hvis paranteser i variabel. Søg 20140106
  24. ini_set("soap.wsdl_cache_enabled", "1");
  25. function singleinsert($string) {
  26. $webservice='1';
  27. global $webservice;
  28. list($s_id,$tmp)=explode(chr(9),$string);
  29. if (!$s_id) return('1'.chr(9)."Missing session ID");
  30. # include("../includes/select.php");
  31. include ("../includes/connect.php");
  32. include ("../includes/online.php");
  33. $linje=NULL;
  34. $fp=fopen("../temp/soap.log","a");
  35. $tabels=array('ordrer','shop_ordrer','ordrelinjer','varer','shop_varer','vare_lev','adresser','ansatte','shop_adresser','kladdeliste','kassekladde','grupper');
  36. $singleinsert=str_replace($s_id,"",$string);
  37. $singleinsert=str_replace(chr(9),"",$singleinsert);
  38. $singleinsert=str_replace(chr(10),"",$singleinsert);
  39. $singleinsert=str_replace(chr(13),"",$singleinsert);
  40. # $singleinsert=str_replace(" ","",$singleinsert);
  41. list($table,$tmp)=explode("(",$singleinsert,2);
  42. $table=trim($table);
  43. #if ($table!='adresser') return('1'.chr(9).$table);
  44. if (!in_array($table,$tabels)) return ('1'.chr(9).'Inserting into '.$table.' is not accepted');
  45. $singleinsert=str_replace("values","VALUES",$singleinsert);
  46. list($part1,$part2)=explode("VALUES",$singleinsert);
  47. list($part1,$tmp)=explode(")",$part1);
  48. list($tmp,$part1)=explode("(",$part1);
  49. # $part1=str_replace(" ","",$part1);
  50. fwrite($fp,"Part 1:".$part1."\n");
  51. $fields=explode(",",$part1);
  52. # list($tmp,$part2)=explode("(",$part2); #20140106 + næste 3 linjer
  53. # list($part2,$tmp)=explode(")",$part2);
  54. $part2=trim($part2);
  55. $part2=substr($part2,1,strlen($part2)-2);
  56. fwrite($fp,$part2."\n");
  57. $part2=str_replace("<TAB>",chr(9),$part2);
  58. fwrite($fp,$part2."\n");
  59. $part2=str_replace("','","'',''",$part2);
  60. $values=explode("','",$part2);
  61. fwrite($fp,$part2."\n");
  62. if (!$fields || !$values) return('1'.chr(9)."Missing fields or values");
  63. /*
  64. if ($table=='adresser') {
  65. for ($x=0;$x<count($fields);$x++) {
  66. if ($fields[$x]=='kontonr') {
  67. $values[$x]=str_replace(" ","",$values[$x]);
  68. $values[$x]*=1;
  69. if (!$values[$x]) {
  70. $y=0;
  71. $q=db_select("select kontonr from adresser",__FILE__ . " linje " . __LINE__);
  72. while ($r=db_fetch_array($q)) {
  73. $kontonr[$y]=$r['kontonr'];
  74. $y++;
  75. }
  76. $tmp=1000;
  77. while (in_array($tmp,$kontonr)) $tmp++;
  78. $values[$x]=$tmp;
  79. }
  80. }
  81. }
  82. }
  83. */
  84. $singleinsert=str_replace("<TAB>",chr(9),$singleinsert);
  85. $singleinsert="insert into ".$singleinsert;
  86. fwrite($fp,$singleinsert."\n");
  87. transaktion('begin');
  88. $svar=(db_modify("$singleinsert",__FILE__ . " linje " . __LINE__));
  89. list($fejl,$svar)=explode(chr(9),$svar);
  90. fwrite($fp,"Fejl".$fejl.":".$svar."\n");
  91. if ($fejl) return($fejl.chr(9).$svar);
  92. else {
  93. $select="select max(id) as id from $table where ";
  94. for ($i=0;$i<count($fields);$i++) {
  95. if ($i>0) $select.=" and ";
  96. $select.= $fields[$i]."=".$values[$i];
  97. }
  98. fwrite($fp,$select."\n");
  99. fclose($fp);
  100. $r=db_fetch_array(db_select($select,__FILE__ . " linje " . __LINE__));
  101. $id=$r['id'];
  102. if (!$id) return('1'.chr(9)."Insert failed\n".$select."\n".$singleinsert);
  103. transaktion('commit');
  104. if ($id) return('0'.chr(9).$id);
  105. }
  106. }
  107. $server = new SoapServer("singleinsert.wsdl");
  108. $server->addFunction("singleinsert");
  109. $server->handle();
  110. ?>