ACC SHELL

Path : /srv/www/vhosts/bubbagump/classes/
File Upload :
Current File : //srv/www/vhosts/bubbagump/classes/poptavka.class.php

<?php
  class poptavka {
  	var $komuEmail;
  	var $odEmail;
  	var $polozka;
  	var $nazevPolozka;
  	var $popisPolozka;
  	var $typPolozka; //text, int, float, soubor
  	var $delkaPolozka; //pouze pro text(varchar do 255, delsi text)
  	var $regPolozka; //pouze pro text(varchar do 255, delsi text)
  	var $chybaPolozka;
  	var $polozek = 0;
  	var $prilohy;
  	var $jazyk;
  	var $slova;
  	var $stavOdeslani = false;
  	//var $ECONF["REGULAR_CESKY_M"] = "áäéëěíóöôúůüýčďňřšťžĺľŕ";
    //var $ECONF["REGULAR_CESKY_V"] = "ÁÄÉËĚÍÓÖÔÚŮÜÝČĎŇŘŠŤŽĹĽŔ";
    //var $ECONF["REGULAR_CESKY"] = "áäéëěíóöôúůüýčďňřšťžĺľŕÁÄÉËĚÍÓÖÔÚŮÜÝČĎŇŘŠŤŽĹĽŔ";
    //konstruktor
  	function poptavka($j="cz") {
    	$this->nazevPolozka = array();
    	$this->popisPolozka = array();
    	$this->typPolozka = array();
    	$this->povinnaPolozka = array();
    	$this->delkaPolozka = array();
    	$this->regPolozka = array();
    	$this->polozka = array();
    	$this->chybaPolozka = array();
    	$this->jazyk = strtolower($j);
    	$this->slova["cz"]["odeslat"] = "Odeslat";
      $this->slova["en"]["odeslat"] = "Send";
    	$this->slova["de"]["odeslat"] = "Senden";
    	$this->slova["cz"]["reset"] = "Vymazat";
      $this->slova["en"]["reset"] = "Clear";
    	$this->slova["de"]["reset"] = "Löschen";
    	$this->slova["cz"]["odeslano"] = "Dotaz byl úspěšně odeslán.";
      $this->slova["en"]["odeslano"] = "Inquiry has been successfully sent.";
    	$this->slova["de"]["odeslano"] = "Die Nachfrage wurde erfolgreich versendet.";
    	$this->slova["cz"]["neodeslano"] = "Dotaz se nepodařilo odeslat. Zkuste to prosím znovu.";
      $this->slova["en"]["neodeslano"] = "Your question could not be sent. Please try again.";
    	$this->slova["de"]["neodeslano"] = "Anfrage konnte nicht gesendet werden. Bitte versuchen Sie es erneut.";
  	}
    function nastavKomu($e=""){
      $this->komuEmail = $e;
    }
    function nastavOd($e=""){
      $this->odEmail = $e;
    }
    function pridejPolozku($n="",$p="",$t="",$d=0,$h="",$pov=0,$r=".*",$ch=""){
    	$this->nazevPolozka[$this->polozek] = $n;
    	$this->popisPolozka[$this->polozek] = $p;
    	$this->typPolozka[$this->polozek] = $t;
    	$this->povinnaPolozka[$this->polozek] = $pov;
    	$this->delkaPolozka[$this->polozek] = $d;
    	if($p==1 && $r==".*") $r=".+";
    	$this->regPolozka[$this->polozek] = $r;
    	$this->polozka[$this->polozek] = $h;
    	$this->chybaPolozka[$this->polozek] = $ch;
      $this->polozek++;
    }
    function odesliPoptavku($predmet){
      $prilohy = array();
      $priloha = "";
      $retezec = "";
    	$boundary = StrToUpper (MD5 (UniqID ("boundary")));
    	$hlavickyUser = "From: " . $this->komuEmail . "\n";
    	$hlavickyUser .= "MIME-Version: 1.0\n";
    	$hlavickyUser .= "X-Mailer: PHP\n";
    	$hlavickyUser .= "X-Priority: 3\n";
    	$hlavickyUser .= "Return-Path: " . $this->komuEmail . "\n";
    	$hlavickyUser .= "Reply-To: " . $this->komuEmail . "\n";
    	$hlavickyUser .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\n\n";
    	$hlavickyUser .= "This is a multi-part message in MIME format.\n\n";
    	$hlavickyUser .= "--" . $boundary . "\n";
    	$hlavickyUser .= "Content-Type: text/" . "plain" . "; charset=\"utf-8\"\n";
    	$hlavickyUser .= "Content-Transfer-Encoding: base64\n\n";
      $hlavickyAdmin = "From: " . $this->odEmail . "\n";
    	$hlavickyAdmin .= "MIME-Version: 1.0\n";
    	$hlavickyAdmin .= "X-Mailer: PHP\n";
    	$hlavickyAdmin .= "X-Priority: 3\n";
    	$hlavickyAdmin .= "Return-Path: " . $this->odEmail . "\n";
    	$hlavickyAdmin .= "Reply-To: " . $this->odEmail . "\n";
    	$hlavickyAdmin .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\n\n";
    	$hlavickyAdmin .= "This is a multi-part message in MIME format.\n\n";
    	$hlavickyAdmin .= "--" . $boundary . "\n";
    	$hlavickyAdmin .= "Content-Type: text/" . "plain" . "; charset=\"utf-8\"\n";
    	$hlavickyAdmin .= "Content-Transfer-Encoding: base64\n\n";
      $telo = $predmet . "\n";
      $telo .= "--------------------------------------\n\n";
      foreach ($this->nazevPolozka as $k=>$v) {
      	if($this->typPolozka[$k] != "soubor") {
      	  if($this->typPolozka[$k]=="radio") {
      	    $pop = $this->popisPolozka[$k];
      			if($v!="" && $_POST[$pop]!="") $telo .= $v . ": " . $_POST[$pop] . "\n";
					}
          elseif($this->typPolozka[$k]=="checkbox") {
      	    if($this->polozka[$k]=="on") $pop = "ano";
            else $pop = "ne";
      			if($v!="") $telo .= $v . ": " . $pop . "\n";
					}
      	  elseif($this->polozka[$k]!="") $telo .= $v . ": " . $this->polozka[$k] . "\n";
				}
      }
    	$hlavicky .= Chunk_split (base64_encode ($telo)) . "\n\n";
      foreach ($this->typPolozka as $k=>$v) {
        if($v == "soubor") $this->prilohy[] = $k;
      }


      if($this->prilohy)
      foreach ($this->prilohy as $val) {
        foreach($_FILES[$this->popisPolozka[$val]]["size"] as $f_key => $f_size) {
      		if ($f_size>0) {
      			$fd = fopen ($_FILES[$this->popisPolozka[$val]]["tmp_name"][$f_key], "r");
      			$retezec = fread ($fd, FileSize ($_FILES[$this->popisPolozka[$val]]["tmp_name"][$f_key]));
      			fclose ($fd);
      			$priloha = Chunk_split (base64_encode ($retezec));
      			$prilohaname = $_FILES[$this->popisPolozka[$val]]["name"][$f_key];
      			$hlavicky .= "--" . $boundary . "\n";
      			$hlavicky .= "Content-Type: application/octet-stream\n";
      			$hlavicky .= "Content-Transfer-Encoding: base64\n";
      			$hlavicky .= "Content-Disposition: attachment; filename=\"" . $prilohaname . "\"\n\n";
      			$hlavicky .= $priloha . "\n\n";
          }
        }
      }
    	$hlavicky .= "--" . $boundary . "--";
    	$predmet = Chunk_split (base64_encode ($predmet));
    	$predmet = "=?utf-8?B?$predmet?=";
    	//Mail - komu, předmět, zpráva, hlavičky
    	
    	if (Mail ($this->komuEmail, $predmet, "", $hlavickyAdmin.$hlavicky) && Mail ($this->odEmail, $predmet, "", $hlavickyUser.$hlavicky)) {
    	  $this->stav = true;
				return $this->slova[$this->jazyk]["odeslano"];
			}
      else {
    	  $this->stav = false;
				return $this->slova[$this->jazyk]["neodeslano"];
			}
    }
    function kontrolaPoptavky(){
      foreach ($this->nazevPolozka as $k=>$v) {
        if($this->povinnaPolozka[$k]) {
          if($this->typPolozka[$k]=="soubor") {
            if($this->polozka[$k]["size"][0]==0) $chyba[]=$this->chybaPolozka[$k];
          }
          else {
          	if($this->polozka[$k]=="" || !preg_match("/^" . $this->regPolozka[$k] . "$/", $this->polozka[$k])) $chyba[]=$this->chybaPolozka[$k];
          }
        }
        else {
        	if($this->typPolozka[$k]!="soubor") {
          	if(!preg_match("/^" . $this->regPolozka[$k] . "$/", $this->polozka[$k]) && $this->polozka[$k]!="") $chyba[]=$this->chybaPolozka[$k];
          }
        }
      }
      if(count($chyba)>0) return $chyba;
      return true;
    }
    function vypisPole($typ,$nazev,$hodnota="",$delka=100){
      if($delka<=10) $cls = "maly";//82px
      else $cls = "velky";
      if($typ=="soubor"){
        return '<script type="text/javascript">
          var pocet_souboru = 1;
          function dalsi(){
           if(pocet_souboru<10){
            $("#dalsi_soubory").html($("#dalsi_soubory").html()+"<br /><input type=\"file\" name=\"'.$nazev.'[]\" value=\"\" />");
                    pocet_souboru++;
           }else alert(\'Bohužel, maximálně lze vložit 10 souborů\');
          }
        </script>'."
        <input type=\"file\" name=\"".$nazev."[]\" value=\"$hodnota\" /> <a href=\"javascript:;\" onclick=\"dalsi()\">Přidat další</a><br /><div id=\"dalsi_soubory\" style=\"margin-top: -15px\"></div>";
      }
      elseif($typ=="varchar"){
        return "<input type=\"text\" name=\"".$nazev."\" class=\"$cls\" value=\"$hodnota\" />";
      }
      elseif($typ=="checkbox"){
        if($hodnota!="") $checked = " checked=\"checked\"";
        else $checked = "";
        return "<input type=\"checkbox\" name=\"$nazev\" class=\"$cls\"$checked />";
      }
      elseif($typ=="radio"){
        global $$nazev;
        if($hodnota==$$nazev) $checked = " checked=\"checked\"";
        else $checked = "";
        return "<input type=\"radio\" name=\"$nazev\" value=\"$hodnota\"$checked />$hodnota";
      }
      elseif ($typ=="text") {
      	return "<textarea name=\"$nazev\" class=\"$cls\">$hodnota</textarea>";
      }
      return;
    }
    function vypisPoptavku($cil="",$kam=''){
      echo "<div class=\"poptavka\">";
      echo "<form action=\"$cil\" method=\"post\" enctype=\"multipart/form-data\">";
      if(strlen(trim($kam))>0) echo "<input type=\"hidden\" value=\"".$kam."\" name=\"kam\">";
      echo "<table border='0'>";
      foreach ($this->nazevPolozka as $k=>$v) {
        if($this->nazevPolozka[$k]!="") $vyssi = " class=\"vyssi\"";
        else $vyssi = "";
        echo "<tr><td$vyssi>".$this->nazevPolozka[$k];
        if($this->povinnaPolozka[$k]) echo " <span style=\"color: #c00;\">*</span> ";
        echo "</td><td$vyssi>";
        echo $this->vypisPole($this->typPolozka[$k],$this->popisPolozka[$k],$this->polozka[$k],$this->delkaPolozka[$k]);
        echo "</td></tr>";
      }
	  echo "<tr>
	  	<td colspan=\"2\">&nbsp;</td>
	  </tr>";
      echo "<tr><td>&nbsp;</td><td style=\"padding-top: 10px; text-align: center;\"><input type=\"submit\" value=\"" . $this->slova["cz"]["odeslat"] . "\">&nbsp;&nbsp;&nbsp;<input type=\"reset\" value=\"" . $this->slova["cz"]["reset"] . "\"></tr>";
      echo "</table>";
      echo "</form>";
      echo "</div>";
    }
  }
?>

ACC SHELL 2018