Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Magago

Notice: Undefined index:

Recommended Posts

Boa noite, estava revendo uma página que criei a algum tempo usando alguns códigos colhidos na internet. A página em questão, pede que o usuário faça o upload de uma foto, onde o script trata de sobrepor uma mascara (.png / marca d'água). Quando instalei o xampp e fui testar, fui surpreendido por esta mensagem e não estou conseguindo encontrar uma solução para o problema.

 

Segue abaixo, o código da página:

 

<!DOCTYPE html>
<html lang="pt-br">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">
    <title>Avatarizador 3.0</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="css/ie10-viewport-bug-workaround.css" rel="stylesheet">
    <link href="starter-template.css" rel="stylesheet">
    <!--[if lt IE 9]><script src="js/ie8-responsive-file-warning.js"></script><![endif]-->
    <script src="js/js/ie-emulation-modes-warning.js"></script>
    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>

<body>
<?PHP

    
    
switch($_POST['cor']){
    case 'preto' : 
        $image_path = "avatares/preto.png";
        break;
    case 'branco':
        $image_path = "avatares/branco.png";
        break;
    case 'colorido':
        $image_path = "avatares/colorido.png";
        break;
    default:
        break;
}


function watermark_image($oldimage_name, $new_image_name){
    global $image_path;
    list($owidth,$oheight) = getimagesize($oldimage_name);
    $width  = 800;
    $height = 800;    
    $im = imagecreatetruecolor($width, $height);
    $img_src = imagecreatefromjpeg($oldimage_name);
    imagecopyresampled($im, $img_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
    $watermark = imagecreatefrompng($image_path);
    list($w_width, $w_height) = getimagesize($image_path);        
    $pos_x = $width - $w_width; 
    $pos_y = $height - $w_height;
    imagecopy($im, $watermark, $pos_x, $pos_y, 0, 0, $w_width, $w_height);
    imagejpeg($im, $new_image_name, 100);
    imagedestroy($im);
    unlink($oldimage_name);
    return true;
}

$demo_image= "";
if(isset($_POST['createmark']) and $_POST['createmark'] == "Criar Avatar"){
    $path = "uploads/";
    $valid_formats = array("jpg","bmp","jpeg");
	$name = $_FILES['imgfile']['name'];
	if(strlen($name))
{
   list($txt, $ext) = explode(".", $name);
   if(in_array($ext,$valid_formats)&& $_FILES['imgfile']['size'] <= 10*256*1024)
	{
    $upload_status = move_uploaded_file($_FILES['imgfile']['tmp_name'], $path.$_FILES['imgfile']['name']);
    if($upload_status){
        $new_name = $path.time().".jpg";
        if(watermark_image($path.$_FILES['imgfile']['name'], $new_name))
                $demo_image = $new_name;
                
    }
	}
	else
    $msg = "A foto tem que ter menos que 2,5mb.";
	}
}

    # Conta quantos arquivos existem na pasta de upload
    $diretorio = scandir("uploads/");
    $qtd = count($diretorio) - 2;

?>
    <div class="container">
        <div class="starter-template">
            <h1>Avatarizador 3.0</h1>
            <h6>Já foram criadas <strong><?PHP echo ("$qtd"); ?></strong> fotos com o avatar do EREA Salvador.</h6>
            <form name="imageUpload" id="imageUpload" enctype="multipart/form-data" method="post">
                <div class="form-group">
                    <p class="help-block">Escolha uma foto de tamanho <b>QUADRADO</b></p>
                    <br>
                    <center>
                        <input type="file" name="imgfile" id="imgfile">
                        <br>
                        <select name="cor">
                        <option value="preto">Preto</option>
                        <option value="branco">Branco</option>
                        <option value="colorido">Colorido</option>
                        </select>
                    </center>
                </div>
                <input type="submit" class="btn btn-default" name="createmark" id="createmark" value="Criar Avatar" />
                <?php
                    if(!empty($demo_image)){
                        echo '
                            <center>
                                <br>
                                <b>Click na imagem para fazer o download</b>
                                <br><br>
                                <a href="'.$demo_image.'" download>
                                <img width="45%" id="avatar" src="'.$demo_image.'" />
                                </a>
                            </center>
                            ';
                        
                        $arquivo = "rastro.txt";
                        date_default_timezone_set('America/Bahia');
                        $data = date('d/m/Y H:i:s', time());
                        $ip = $_SERVER['REMOTE_ADDR'];    
                        $browser = $_SERVER['HTTP_USER_AGENT']; 
                        $fp = fopen($arquivo, "a+");   
                        fwrite($fp,"Arquivo: $new_name | Data: $data | IP: $ip | Navegador: $browser \n\r");   
                        fclose($fp);

                    }
                ?>
            </form>
        </div>
    </div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
        window.jQuery || document.write('<script src="js/vendor/jquery.min.js"><\/script>')
    </script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/ie10-viewport-bug-workaround.js"></script>
</body>

</html>

 

Além disso tudo, gostaria do auxílio dos companheiros para bolar uma forma mais efetiva de funcionamento do código, como sobrepor mais de um .png na imagem final, o que possibilitaria ao usuário da página personalizar a imagem final com várias marcas d'água

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por notax
      Pessoal, boa tarde.
       
      Seguinte:
      Tenho um form e no mesmo form dois buttons... Esses buttons chamam uma função... Cada um deles dá um submit pra um pagina especifica... Assim:

       
      <script language="JavaScript"> function Gerar() { if (valida_campo()){ document.form.action="file1.php"; document.forms.form.submit(); } } function Calcular() { if (valida_campo()){ document.form.action="file2.php"; document.forms.form.submit(); } } </script>  
      Como eu faço para:
      1) abrir file2.php em um popup?
      2) tenho como abrir file2.php em um fancybox? Considerando que os dados são enviados por POST?

      Valeu!
       
       
       
       
       
    • Por joaolepaus
      Boa tarde pessoal, não tenho muito conhecimento de PHP, mas estou tentando receber os dados via POST de um array, porem quando recebo esse array vem todos os dados referenete a todos os ids, mas na verdade eu quero receber somente os dados que estão com o id selecionado por checkbox.
      O código que estou usando para receber o POST é esse:
       
      $id = $_POST['idplano']; $operadora = $_POST['operadora']; $total = $_POST['total']; $img = $_POST['img']; $plano = $_POST['plano']; $acomodacao = $_POST['acomodacao']; $abrangencia = $_POST['abrangencia']; $segmento = $_POST['segmento']; $participacao = $_POST['participacao']; $valorFaixa = $_POST['valorFaixa']; for($i = 0; $i < count($id); $i++) { echo "| $id[$i] | $operadora[$i] | $total[$i] | $img[$i] | $plano[$i] | $acomodacao[$i] | $abrangencia[$i] | $segmento[$i] | $participacao[$i] | $valorFaixa[$i] |<br>"; } Os meus inputs estão nomeados assim: idplano[], operadora[] e assim vai.
       
      fiz o var_dump no post, notem que só tem 3 ids checked mas chega os dados de todos os ids. 
       
      array(12) { ["teste"]=> string(0) "" ["checked"]=> array(3) { [0]=> string(2) "34" [1]=> string(2) "30" [2]=> string(2) "38" } ["img"]=> array(25) { [0]=> string(17) "5efb353cd0df4.jpg" [1]=> string(17) "5efb353cd0df4.jpg" [2]=> string(17) "5efb353cd0df4.jpg" [3]=> string(17) "5efb353cd0df4.jpg" [4]=> string(17) "5efb353cd0df4.jpg" [5]=> string(17) "5efb353cd0df4.jpg" [6]=> string(17) "5efb353cd0df4.jpg" [7]=> string(17) "5efb353cd0df4.jpg" [8]=> string(17) "5efb353cd0df4.jpg" [9]=> string(17) "5efb353cd0df4.jpg" [10]=> string(17) "5efb353cd0df4.jpg" [11]=> string(17) "5efb332233b92.jpg" [12]=> string(17) "5efb332233b92.jpg" [13]=> string(17) "5efb332233b92.jpg" [14]=> string(17) "5efb332233b92.jpg" [15]=> string(17) "5efdd26866510.jpg" [16]=> string(17) "5efdd26866510.jpg" [17]=> string(17) "5efdd26866510.jpg" [18]=> string(17) "5efdd26866510.jpg" [19]=> string(17) "5efdd26866510.jpg" [20]=> string(17) "5efdd26866510.jpg" [21]=> string(17) "5efdd26866510.jpg" [22]=> string(17) "5efdd26866510.jpg" [23]=> string(17) "5efdd26866510.jpg" [24]=> string(17) "5efdd26866510.jpg" } ["total"]=> array(25) { [0]=> string(5) "74.78" [1]=> string(6) "143.23" [2]=> string(5) "186.2" [3]=> string(6) "159.14" [4]=> string(6) "206.89" [5]=> string(6) "118.23" [6]=> string(5) "153.7" [7]=> string(6) "131.36" [8]=> string(6) "183.91" [9]=> string(6) "117.98" [10]=> string(6) "144.82" [11]=> string(5) "179.6" [12]=> string(6) "207.38" [13]=> string(6) "235.12" [14]=> string(6) "283.91" [15]=> string(6) "202.17" [16]=> string(6) "242.62" [17]=> string(6) "252.54" [18]=> string(6) "303.05" [19]=> string(6) "220.68" [20]=> string(6) "264.76" [21]=> string(6) "303.72" [22]=> string(6) "364.53" [23]=> string(6) "494.16" [24]=> string(6) "593.03" } ["idplano"]=> array(25) { [0]=> string(2) "34" [1]=> string(2) "35" [2]=> string(2) "36" [3]=> string(2) "47" [4]=> string(2) "48" [5]=> string(2) "49" [6]=> string(2) "50" [7]=> string(2) "51" [8]=> string(2) "52" [9]=> string(2) "53" [10]=> string(2) "54" [11]=> string(2) "30" [12]=> string(2) "31" [13]=> string(2) "32" [14]=> string(2) "33" [15]=> string(2) "37" [16]=> string(2) "38" [17]=> string(2) "39" [18]=> string(2) "40" [19]=> string(2) "41" [20]=> string(2) "42" [21]=> string(2) "43" [22]=> string(2) "44" [23]=> string(2) "45" [24]=> string(2) "46" } ["operadora"]=> array(25) { [0]=> string(14) "Premium Saúde" [1]=> string(14) "Premium Saúde" [2]=> string(14) "Premium Saúde" [3]=> string(14) "Premium Saúde" [4]=> string(14) "Premium Saúde" [5]=> string(14) "Premium Saúde" [6]=> string(14) "Premium Saúde" [7]=> string(14) "Premium Saúde" [8]=> string(14) "Premium Saúde" [9]=> string(14) "Premium Saúde" [10]=> string(14) "Premium Saúde" [11]=> string(4) "Samp" [12]=> string(4) "Samp" [13]=> string(4) "Samp" [14]=> string(4) "Samp" [15]=> string(15) "Unimed Vitória" [16]=> string(15) "Unimed Vitória" [17]=> string(15) "Unimed Vitória" [18]=> string(15) "Unimed Vitória" [19]=> string(15) "Unimed Vitória" [20]=> string(15) "Unimed Vitória" [21]=> string(15) "Unimed Vitória" [22]=> string(15) "Unimed Vitória" [23]=> string(15) "Unimed Vitória" [24]=> string(15) "Unimed Vitória" } ["plano"]=> array(25) { [0]=> string(6) "Bronze" [1]=> string(17) "Infinity (TIPO 1)" [2]=> string(17) "Infinity (TIPO 1)" [3]=> string(17) "Infinity (TIPO 2)" [4]=> string(17) "Infinity (TIPO 2)" [5]=> string(22) "Personnalité (TIPO 1)" [6]=> string(22) "Personnalité (TIPO 1)" [7]=> string(22) "Personnalité (TIPO 2)" [8]=> string(22) "Personnalité (TIPO 2)" [9]=> string(6) "Bronze" [10]=> string(7) "Platina" [11]=> string(17) "Essencial (Prata)" [12]=> string(13) "Basico (Azul)" [13]=> string(22) "Personalizado (Branco)" [14]=> string(18) "Executivo (Branco)" [15]=> string(18) "Fácil Perfil (G2)" [16]=> string(18) "Fácil Perfil (G2)" [17]=> string(13) "Personal (G2)" [18]=> string(13) "Personal (G2)" [19]=> string(27) "Participativo Estadual (G2)" [20]=> string(27) "Participativo Estadual (G2)" [21]=> string(21) "Premium Nacional (G2)" [22]=> string(21) "Premium Nacional (G2)" [23]=> string(15) "VitoriaMed (G2)" [24]=> string(15) "VitoriaMed (G2)" } ["acomodacao"]=> array(25) { [0]=> string(12) "Ambulatorial" [1]=> string(10) "Enfermaria" [2]=> string(11) "Apartamento" [3]=> string(10) "Enfermaria" [4]=> string(11) "Apartamento" [5]=> string(10) "Enfermaria" [6]=> string(11) "Apartamento" [7]=> string(10) "Enfermaria" [8]=> string(11) "Apartamento" [9]=> string(12) "Ambulatorial" [10]=> string(12) "Ambulatorial" [11]=> string(10) "Enfermaria" [12]=> string(10) "Enfermaria" [13]=> string(10) "Enfermaria" [14]=> string(11) "Apartamento" [15]=> string(10) "Enfermaria" [16]=> string(11) "Apartamento" [17]=> string(10) "Enfermaria" [18]=> string(11) "Apartamento" [19]=> string(10) "Enfermaria" [20]=> string(11) "Apartamento" [21]=> string(10) "Enfermaria" [22]=> string(11) "Apartamento" [23]=> string(10) "Enfermaria" [24]=> string(11) "Apartamento" } ["abrangencia"]=> array(25) { [0]=> string(8) "Estadual" [1]=> string(8) "Estadual" [2]=> string(8) "Estadual" [3]=> string(8) "Estadual" [4]=> string(8) "Estadual" [5]=> string(8) "Estadual" [6]=> string(8) "Estadual" [7]=> string(8) "Estadual" [8]=> string(8) "Estadual" [9]=> string(8) "Estadual" [10]=> string(8) "Estadual" [11]=> string(20) "Grupo de Municípios" [12]=> string(20) "Grupo de Municípios" [13]=> string(8) "Estadual" [14]=> string(8) "Estadual" [15]=> string(20) "Grupo de Municípios" [16]=> string(20) "Grupo de Municípios" [17]=> string(20) "Grupo de Municípios" [18]=> string(20) "Grupo de Municípios" [19]=> string(8) "Estadual" [20]=> string(8) "Estadual" [21]=> string(8) "Nacional" [22]=> string(8) "Nacional" [23]=> string(8) "Nacional" [24]=> string(8) "Nacional" } ["segmento"]=> array(25) { [0]=> string(11) "Empresarial" [1]=> string(11) "Empresarial" [2]=> string(11) "Empresarial" [3]=> string(11) "Empresarial" [4]=> string(11) "Empresarial" [5]=> string(11) "Empresarial" [6]=> string(11) "Empresarial" [7]=> string(11) "Empresarial" [8]=> string(11) "Empresarial" [9]=> string(14) "Pessoa Física" [10]=> string(14) "Pessoa Física" [11]=> string(20) "Coletivo por Adesão" [12]=> string(20) "Coletivo por Adesão" [13]=> string(20) "Coletivo por Adesão" [14]=> string(20) "Coletivo por Adesão" [15]=> string(20) "Coletivo por Adesão" [16]=> string(20) "Coletivo por Adesão" [17]=> string(20) "Coletivo por Adesão" [18]=> string(20) "Coletivo por Adesão" [19]=> string(20) "Coletivo por Adesão" [20]=> string(20) "Coletivo por Adesão" [21]=> string(20) "Coletivo por Adesão" [22]=> string(20) "Coletivo por Adesão" [23]=> string(20) "Coletivo por Adesão" [24]=> string(20) "Coletivo por Adesão" } ["participacao"]=> array(25) { [0]=> string(45) "Integral (Sem cobrança de coparticipações)" [1]=> string(19) "Consulte o corretor" [2]=> string(19) "Consulte o corretor" [3]=> string(60) "Coparticipações nas consultas eletivas e de pronto socorro" [4]=> string(42) "Nas consultas eletivas e de pronto socorro" [5]=> string(19) "Consulte o corretor" [6]=> string(19) "Consulte o corretor" [7]=> string(22) "Nas consultas e exames" [8]=> string(22) "Nas consultas e exames" [9]=> string(22) "Nas consultas e exames" [10]=> string(22) "Nas consultas e exames" [11]=> string(42) "Nas consultas eletivas e de pronto socorro" [12]=> string(42) "Nas consultas eletivas e de pronto socorro" [13]=> string(42) "Nas consultas eletivas e de pronto socorro" [14]=> string(42) "Nas consultas eletivas e de pronto socorro" [15]=> string(22) "Nas consultas e exames" [16]=> string(22) "Nas consultas e exames" [17]=> string(25) "Somente em pronto socorro" [18]=> string(25) "Somente em pronto socorro" [19]=> string(22) "Nas consultas e exames" [20]=> string(22) "Nas consultas e exames" [21]=> string(22) "Nas consultas e exames" [22]=> string(22) "Nas consultas e exames" [23]=> string(45) "Integral (Sem cobrança de coparticipações)" [24]=> string(45) "Integral (Sem cobrança de coparticipações)" } ["valorFaixa"]=> array(25) { [0]=> string(26) "De 0 a 18 anos R$74.78 " [1]=> string(27) "De 0 a 18 anos R$143.23 " [2]=> string(27) "De 0 a 18 anos R$186.20 " [3]=> string(27) "De 0 a 18 anos R$159.14 " [4]=> string(27) "De 0 a 18 anos R$206.89 " [5]=> string(27) "De 0 a 18 anos R$118.23 " [6]=> string(27) "De 0 a 18 anos R$153.70 " [7]=> string(27) "De 0 a 18 anos R$131.36 " [8]=> string(27) "De 0 a 18 anos R$183.91 " [9]=> string(27) "De 0 a 18 anos R$117.98 " [10]=> string(27) "De 0 a 18 anos R$144.82 " [11]=> string(27) "De 0 a 18 anos R$179.60 " [12]=> string(27) "De 0 a 18 anos R$207.38 " [13]=> string(27) "De 0 a 18 anos R$235.12 " [14]=> string(27) "De 0 a 18 anos R$283.91 " [15]=> string(27) "De 0 a 18 anos R$202.17 " [16]=> string(27) "De 0 a 18 anos R$242.62 " [17]=> string(27) "De 0 a 18 anos R$252.54 " [18]=> string(27) "De 0 a 18 anos R$303.05 " [19]=> string(27) "De 0 a 18 anos R$220.68 " [20]=> string(27) "De 0 a 18 anos R$264.76 " [21]=> string(27) "De 0 a 18 anos R$303.72 " [22]=> string(27) "De 0 a 18 anos R$364.53 " [23]=> string(27) "De 0 a 18 anos R$494.16 " [24]=> string(27) "De 0 a 18 anos R$593.03 " } } Como que eu faria para pegar somente os dados referente aos ids selecionados no checkebox ? 
       
    • Por Rzorr
      Bom dia,
              eu tenho um  site de imóveis, sou corretor, ele está com alguns problemas na URL, comprei esse script e venho fazendo algumas alterações nele, sei o básico, cadastrar, deletar, buscar, update, mas o que acontece esse site foi construido com MVC e confesso parei de estudar PHP faz muito tempo, e não entendo nada de MVC, abaixo o código da busca e como forma o link é montado.
          No site o link fica assim: /imoveis/lista/referencia/referencia/categoria/comprar/tipo/tipo/cidade/Camboriú/bairro/bairro#busca nesse exemplo fiz uma busca pela cidade!
         Se clico no menu em vendas o link fica assim: /imoveis/lista/referencia/referencia/categoria/comprar/tipo/tipo/cidade/cidade/bairro/bairro#busca
      pessoal obrigado pela disposição em ajudar, eu to tentando resolver faz dias, mas não consigo entender a a forma como é construido.
       
      <?php class busca extends controller { public function init(){ } public function inicial(){ $referencia = $this->post('referencia'); $categoria = $this->post('categoria'); $tipo = $this->post('tipo'); $cidade = $this->post('cidade'); $bairro = $this->post('bairro'); if($referencia){ $cidade = "cidade"; $bairro = "bairro"; $tipo = "tipo"; $categoria = "categoria"; } else { $referencia = 'referencia'; if(!$categoria){ $categoria = "categoria"; } if(!$tipo){ $tipo = "tipo"; } if(!$cidade){ $cidade = "cidade"; } if(!$bairro){ $bairro = "bairro"; } } $endereco = DOMINIO."imoveis/lista/referencia/$referencia/categoria/$categoria/tipo/$tipo/cidade/$cidade/bairro/$bairro#busca"; $this->irpara("$endereco"); }  
    • Por Public2004
      Boas. Para fins de aprendizado, estou criando um tema personalizado e do zero, a ideia é não ter a dependência de nenhum plugin e entender como funciona os processos. Nesse caminho surgiu uma dúvida, explico:
      Vou cadastrar em uma determinada categoria alguns posts meio padrão tipo, titulo, corpo (texto) e escrever um resumo no campo específico.
      Só que no corpo de cada post eu vou ter um elemento específico, tipo um "embed" (apenas um em cada post).
      Tem como criar alguma função, filtro ou sei lá, que de alguma forma na listagem (loop) dos posts eu consiga capturar apenas esse elemento  específico do corpo?
      Resumindo, o que eu pretendo é criar uma página apenas dessa categoria e na listagem trazer o Título, o Resumo e esse elemento específico do corpo.
       
      Obrigado.
    • Por ilbett
      Boa noite prezados.
       
      Estou com um problema há alguns dias. Espero que um de vocês tenha uma luz para ele haha.
       
      Estou fazendo uma integração entre a loja de um cliente hospedada na NuvemShop e a automatizadora de marketing RD Station.
      Através do Postman eu faço um GET da NuvemShop e um POST dos dados pegos da NuvemShop para a RD Station.
      O Problema, nesse caso, é que eles nomeiam as strings de formas diferentes.
       
      Vocês conhecem algum intermediador que receba esse POST com os dados da NuvemShop e traduza, por exemplo, "costumer.name" para "name" e envie para a RD?
      Ou algum script que eu possa rodar no Postman para fazer essas "traduções" das strings?
       
      Desde já, muito obrigado!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.