[ Index ]
 

Code source de vtiger CRM 5.0.2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/modules/Users/ -> add2db.php (source)

   1  <?php
   2  
   3  /*********************************************************************************
   4  ** The contents of this file are subject to the vtiger CRM Public License Version 1.0
   5   * ("License"); You may not use this file except in compliance with the License
   6   * The Original Code is:  vtiger CRM Open Source
   7   * The Initial Developer of the Original Code is vtiger.
   8   * Portions created by vtiger are Copyright (C) vtiger.
   9   * All Rights Reserved.
  10  * 
  11   ********************************************************************************/
  12  
  13  
  14  require_once ('include/database/PearDatabase.php');
  15  require_once ('include/utils/utils.php');
  16  
  17  $uploaddir = $root_directory ."/test/upload/" ;// set this to wherever
  18  // Arbitrary File Upload Vulnerability fix - Philip
  19  $binFile = $_FILES['binFile']['name'];
  20      $ext_pos = strrpos($binFile, ".");
  21  
  22          $ext = substr($binFile, $ext_pos + 1);
  23  
  24          if (in_array($ext, $upload_badext))
  25          {
  26                  $binFile .= ".txt";
  27          }
  28  $_FILES["binFile"]["name"] = $binFile;
  29  // Vulnerability fix ends
  30  
  31  if(move_uploaded_file($_FILES["binFile"]["tmp_name"],$uploaddir.$_FILES["binFile"]["name"])) 
  32  {
  33    $binFile = $_FILES['binFile']['name'];
  34    $filename = basename($binFile);
  35    $filetype= $_FILES['binFile']['type'];
  36    $filesize = $_FILES['binFile']['size'];
  37  
  38    $error_flag ="";
  39    $filetype_array = explode("/",$filetype);
  40  
  41    $file_type_value = strtolower($filetype_array[1]);
  42    
  43      if($filesize != 0)    
  44      {
  45          if($file_type_value == "msword" || $file_type_value == "doc" || $file_type_value == "document")
  46          {
  47              if($result!=false)
  48                  {
  49               $savefile="true";    
  50              }             
  51          }
  52          else
  53          {
  54              $savefile="false";
  55              $error_flag="1";
  56          }            
  57          
  58           $data = base64_encode(fread(fopen($uploaddir.$binFile, "r"), $filesize));
  59          //$data = addslashes(fread(fopen($uploaddir.$binFile, "r"), $filesize));
  60              $textDesc = $_REQUEST['txtDescription'];    
  61          $strDescription = addslashes($textDesc);
  62      //    $fileid = create_guid();
  63          $date_entered = date('YmdHis');
  64          //Retreiving the return module and setting the parent type
  65          $ret_module = $_REQUEST['return_module'];
  66          $parent_type;        
  67          if($_REQUEST['return_module'] == 'Leads')
  68          {
  69              $parent_type = 'Lead';
  70          }
  71          elseif($_REQUEST['return_module'] == 'Accounts')
  72          {
  73              $parent_type = 'Account';
  74          }
  75          elseif($_REQUEST['return_module'] == 'Contacts')
  76          {
  77              $parent_type = 'Contact';
  78          }
  79          elseif($_REQUEST['return_module'] == 'Potentials')
  80          {
  81              $parent_type = 'Potential';
  82          }
  83       
  84          $genQueryId = $adb->getUniqueID("vtiger_wordtemplates");
  85          if($genQueryId != '')
  86          {
  87              if($result!=false && $savefile=="true")
  88              {
  89              $module = $_REQUEST['target_module'];
  90              $sql = "INSERT INTO vtiger_wordtemplates ";
  91              $sql .= "(templateid,module,date_entered,parent_type,data,description,filename,filesize,filetype) ";
  92              $sql .= "VALUES (".$genQueryId.",'".$module."',".$adb->formatString('vtiger_wordtemplates','date_entered',$date_entered).",'$parent_type',".$adb->getEmptyBlob().",'$strDescription',";
  93              $sql .= "'$filename', '$filesize', '$filetype')";
  94  
  95              $result = $adb->query($sql);
  96                 $result = $adb->updateBlob('vtiger_wordtemplates','data'," filename='".$filename."'",$data);
  97                 deleteFile($uploaddir,$filename);
  98                     header("Location: index.php?action=listwordtemplates&module=Users&parenttab=Settings");    
  99              }
 100                    elseif($savefile=="false")
 101                         {
 102                     header("Location: index.php?action=upload&module=Users&parenttab=Settings&flag=".$error_flag);    
 103                     
 104                 }                 
 105              else
 106              {
 107                  include('themes/'.$theme.'/header.php');
 108                  $errormessage = "<font color='red'><B>Error Message<ul>
 109                  <li><font color='red'>Invalid file OR</font>
 110                  <li><font color='red'>File has no data</font>
 111                  </ul></B></font> <br>" ;
 112                  echo $errormessage;
 113                  deleteFile($uploaddir,$filename);
 114                  include  "upload.php";
 115              }
 116          }
 117      } 
 118  } 
 119  else 
 120  {
 121    $errorCode =  $_FILES['binFile']['error'];
 122      
 123    if($errorCode == 4)
 124    {
 125     include('themes/'.$theme.'/header.php');
 126      include  "upload.php";
 127     // $errormessage = "<B><font color='red'>Kindly give a valid file for upload!</font></B> <br>" ;
 128      echo "<script>alert('Please Specify a File to Merge')</script>";
 129    }
 130    else if($errorCode == 2)
 131    {
 132      include('themes/'.$theme.'/header.php');
 133      include  "upload.php";
 134      //$errormessage = "<B><font color='red'>Sorry, the uploaded file exceeds the maximum filesize limit. Please try a smaller file</font></B> <br>";
 135      echo "<script>alert('Sorry, the uploaded file exceeds the maximum filesize limit. Please try a smaller file')</script>";    
 136      //echo $errormessage;
 137      //echo $errorCode;
 138    }
 139    else if($errorCode == 3)
 140    {
 141     include('themes/'.$theme.'/header.php');
 142      include  "upload.php";
 143      echo "<script>alert('Problems in file upload. Please try again!')</script>";
 144      
 145    }
 146    
 147  }
 148  
 149  function deleteFile($dir,$filename)
 150  {
 151     unlink($dir.$filename);    
 152  }
 153  ?>


Généré le : Sun Feb 25 10:22:19 2007 par Balluche grâce à PHPXref 0.7