Ir para conteúdo
Augusto Medeiros

Erro no envio de imagem para Avatar do Wordpress

Recommended Posts

Crie um fomulário de cadastro de usuário e um controllercadastro para inserir dados na tabelas wp_usermeta
wp_posts e wp_postmeta no entanto quando tento mover a imagem do avatar ela aparece enviada para a midia do wordpress mas quando vou no perfil ela aparece como link quebrado e a imagem não é adicionada no cadastro segue o form e o arquivo php. 

 

page-cadastro.php

<?php /* Template Name: Cadastro */  ?>

<?php get_header(); ?>

<body class='cadastro_page'>
    <form name="FormCadastro" id="FormCadastro" action="<?php echo site_url().'/controllercadastro' ?>" method="post"
        enctype="multipart/form-data">
        <div class="CadastroFormulario">
            <input type="text" name="Nome" id="Nome" placeholder="Nome" required>
        </div>
        <div class="CadastroFormulario">
            <input type="text" name="Sobrenome" id="Sobrenome" placeholder="Sobrenome" required>
        </div>
        <div class="CadastroFormulario">
            <input type="email" name="Email" id="Email" placeholder="Email" required>
        </div>
        <div class="CadastroFormulario">
            <input type="text" name="Site" id="Site" placeholder="Rede Social">
        </div>
        <div class="CadastroFormulario">
            <input type="text" name="Usuario" id="Usuario" placeholder="Usuário" required>
        </div>
        <div class="CadastroFormulario">
            <input type="password" name="Senha" id="Senha" placeholder="Senha" required>
        </div>
        <div class="CadastroFormulario">
            <input type="password" name="ConfSenha" id="ConfSenha" placeholder="Confirmar a Senha" required>
        </div>
        <div class="CadastroFormulario">
            Foto do perfil <input type="file" name="Imagem[]" id="Imagem"><input type="submit" value="Cadastrar">
        </div>
    </form>

    <?php get_footer(); ?>

controllercadastro.php

<?php /* Template Name: Controller Cadastro */  ?>
<?php
$Id=0;
$Nome=filter_input(INPUT_POST,'Nome',FILTER_SANITIZE_SPECIAL_CHARS);
$Sobrenome=filter_input(INPUT_POST,'Sobrenome',FILTER_SANITIZE_SPECIAL_CHARS);
$Email=filter_input(INPUT_POST,'Email',FILTER_SANITIZE_SPECIAL_CHARS);
$Site=filter_input(INPUT_POST,'Site',FILTER_SANITIZE_SPECIAL_CHARS);
$Usuario=filter_input(INPUT_POST,'Usuario',FILTER_SANITIZE_SPECIAL_CHARS);
$Senha=filter_input(INPUT_POST,'Senha',FILTER_SANITIZE_SPECIAL_CHARS);
$ConfSenha=filter_input(INPUT_POST,'ConfSenha',FILTER_SANITIZE_SPECIAL_CHARS);
$Imagem=$_FILES['Imagem']['tmp_name'];
$Imagem2=$_FILES['Imagem']['name'];
$TesteUsuario=$wpdb->get_results("select * from wp_users where user_login='$Usuario' or user_email='$Email'");
$NomeCompleto=$Nome.' '.$Sobrenome;
$Data=date('Y-m-d g:i:s');
$hash = wp_hash_password($Senha);
$rand=rand(0,1000000);

if($Senha != $ConfSenha){
	echo "Senha diferente de confirmação de senha";
}elseif(count($TesteUsuario) > 0){
	echo "Usuário já existe";
}else {
	$wpdb->get_results("insert into wp_users values(
    '$Id',
    '$Usuario',
    '$hash',
    '$Usuario',
    '$Email',
    '$Site',
    '$Data',
    '',
    '0',
    '$Usuario'
    )"
	);
}

$IDUsuario=$wpdb->get_results("select * from wp_users where user_login = '$Usuario'");
foreach($IDUsuario as $IDUsuarios){
    $IDFinal=$IDUsuarios->ID;
}
$IDUltimoPost=$wpdb->get_results("select * from wp_posts order by ID desc limit 1");
foreach($IDUltimoPost as $IDUltimoPosts){
    $IDPostFinal=$IDUltimoPosts->ID + 1;
}              
/*    INSERT WP_USERMETA      */

$wpdb->get_results("insert into wp_usermeta values( '$Id', '$IDFinal', 'wp_capabilities', 'a:1:{s:13:\"administrator\";b:1;}' )");
$wpdb->get_results("insert into wp_usermeta values( '$Id', '$IDFinal', 'wp_user_level', '10' )");
$wpdb->get_results("insert into wp_usermeta values( '$Id', '$IDFinal', 'nickname', '$Usuario' )");
$wpdb->get_results("insert into wp_usermeta values( '$Id', '$IDFinal', 'first_name', '$Nome' )");
$wpdb->get_results("insert into wp_usermeta values( '$Id', '$IDFinal', 'last_name', '$Sobrenome' )");
$wpdb->get_results("insert into wp_usermeta values( '$Id', '$IDFinal', 'locale', 'pt_BR' )");
$wpdb->get_results("insert into wp_usermeta values( '$Id', '$IDFinal', 'wp_user_avatar', '$IDPostFinal' )");

/*    INSERT WP_posts         */

$wpdb->get_results("insert into wp_posts values ('$IDPostFinal', '$IDFinal', '$Data', '$Data', '', '$rand-$Imagem2[0]', '', 'inherit', 'open', 'closed', '', '$rand-$Imagem2[0]', '', '', '$Data', '$Data', '', '0', '$_SERVER[DOCUMENT_ROOT]/wp-content/uploads/Perfil/', '0', 'attachment', 'image/jpeg', '0')");

/*    INSERT WP_POSTMETA     */

$wpdb->get_results("insert into wp_postmeta values( '$Id', '$IDPostFinal', '_wp_attachment_wp_user_avatar', '$IDFinal' )");
$wpdb->get_results("insert into wp_postmeta values( '$Id', '$IDPostFinal', '_wp_attached_file', 'Perfil/$rand-$Imagem2[0]' )");
$wpdb->get_results("insert into wp_postmeta values( '$Id', '$IDPostFinal', '_wp_attachment_metadata', 'a:5:{s:5:\"width\";i:1024;s:6:\"height\";i:768;s:4:\"file\";s:20:\"Perfil/$rand-$Imagem2[0]\";s:5:\"sizes\";a:4:{s:9:\"thumbnail\";a:4:{s:4:\"file\";s:20:\"2019/07/$rand-$Imagem2[0]\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:6:\"medium\";a:4:{s:4:\"file\";s:20:\"2019/07/$rand-$Imagem2[0]\";s:5:\"width\";i:300;s:6:\"height\";i:225;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:12:\"medium_large\";a:4:{s:4:\"file\";s:20:\"2019/07/$rand-$Imagem2[0]\";s:5:\"width\";i:768;s:6:\"height\";i:576;s:9:\"mime-type\";s:10:\"image/jpeg\";}s:5:\"large\";a:4:{s:4:\"file\";s:21:\"2019/07/$rand-$Imagem2[0]\";s:5:\"width\";i:1024;s:6:\"height\";i:768;s:9:\"mime-type\";s:10:\"image/jpeg\";}}s:10:\"image_meta\";a:12:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:6:\"Corbis\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:10:\"1203311251\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}}}' )"); 
   
/** mover arquivo para pasta PERFIL */

move_uploaded_file($Imagem[0],$_SERVER['DOCUMENT_ROOT']."/wp-content/uploads/Perfil/$rand-$Imagem2[0]");
   echo "Usuário cadastrado com sucesso!";

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Leonardo Geja
      Olá galera, resolvi criar um canal para postar vídeos sobre WordPress.
      Tudo que aprendi estarei colocando lá então para quem quiser dar uma olhada e se inscrever link a baixo.
      Peguem leve, canal novo então tenham paciência .
      Canal youtube (Clique aqui)
    • Por Sérgio R. Junior
      Bom dia pessoal, preciso de um help!
      Tenho um cliente que tem hospedado o site no Digital Ocean (vpn), foi passado para mim o login e senha para acessar o FTP do servidor onde o site ta hospedado, mais o que acontece é o seguinte:

       
      O de cima é o meu acesso (mesma autenticação login e senha e sftp) só que não consigo logar enquanto o de baixo (cliente consegue)
      Alguém sabe o porque e como resolver?
    • Por petelekko
      Olá galera,
       
      Não consigo encontrar o erro no código abaixo. Vejam que no erro gerado aparece a mensagem de arquivo enviado. Mas não é removido para a pasta! Grato pela ajuda!!!
       
      HTML
       
      <form action="upload.php" method="post" enctype="multipart/form-data">
         Escolha o arquivo para envio (pdf):<input type="file" value="Selecionar arquivo" name="arquivo">
         <input type="submit" value="Enviar arquivo" name="enviar">
      </form>
       
      PHP
       
      <?php
         $diretorio = 'arquivos/';
         $arquivo = $diretorio . basename($_FILES['arquivo']['name']);
         $envio = 1;
         $imagemArquivo = pathinfo($arquivo,PATHINFO_EXTENSION);
         // Verifica se o arquivo é um pdf
         if(isset($_POST['arquivo'])) {
            $check = getimagesize($_FILES['arquivo']['tmp_name']);
            if($check !== false) {
              echo "Arquivo eh um pdf!" . $check['mime'] . ".";
              $envio = 1;
            } else {
              echo "Arquivo nao eh um pdf!";
              $envio = 0;
            }
            return;
         }
         // Verifica se o arquivo já existe
         if (file_exists($arquivo)) {
            echo "Desculpe, o arquivo ja foi enviado!";
            $envio = 0;
            return;
         }
         // Verifica o tamanho do arquivo
         if ($_FILES['arquivo']['size'] > 2000000) {
            echo "Desculpe, o tamanho maximo de envio eh 2 MegaBytes!";
            $envio = 0;
            return;
         }
         // Permitir apenas pdf
         if($imagemArquivo != 'pdf') {
            echo "Desculpe, somente pdf eh permitido!";
            $envio = 0;
            return;
         }
        //Envio do arquivo
         if ($envio == 1) {
            move_uploaded_file($_FILES['arquivo']['tmp_name'], $arquivo);
            echo "O arquivo". $_FILES['arquivo']['name']. "foi enviado!";
         }else{
               echo "Desculpe, houve um erro ao enviar seu arquivo!";
         }
         return;
      ?>
       
      ERRO GERADO AO TENTAR ENVIAR UM PDF
       
      Warning: move_uploaded_file(arquivos/PSAD_2017_1.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/storage/d/0e/7c/siezonasul1/public_html/php/upload.php on line 44

      Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/home/storage/d/0e/7c/siezonasul1/tmp/phpadTaOn' to 'arquivos/PSAD_2017_1.pdf' in /home/storage/d/0e/7c/siezonasul1/public_html/php/upload.php on line 44
      O arquivo PSAD_2017_1.pdf foi enviado!
       
       
       
    • Por Csilvestre
      Oi Galera,
      Eu estou desenvolvendo um site para um novo projeto meu e queria colocar um efeito de fade-in em algumas partes dele para carregar conforme o usuário for descendo o site, eu nunca fiz isso em um site e até vi uns tutoriais na internet e tentei aplica-lós no site, o problema é que ele é em wordpress dai tentei ir editando pelo editor e não funcionou e acabou bugando muita coisa no site, por sorte eu tinha backup.
      O Site é http://improvecuritiba.com.br/ e eu queria colocar fade nessas partes:


       
      Já tentei diversas vezes e de diversos modos mas sem sucesso, alguém já fez isso em site wordpress e se sim como?
      Obrigado desde já!
    • Por Rodolfo Andrade
      Galera, estou trabalhando em um projeto que possui uma funcionalidade de upload e download de arquivos.
      Porém, estou com um probleminha e não consigo resolver mesmo depois de várias pesquisas.
      O upload do arquivo está sendo feito e cadastrando as informações no banco normalmente. Mas se for feito o upload do arquivo com o mesmo nome, o arquivo que já existe é sobrescrito.
      Tentei criar uma condição pra que o arquivo seja renomeado caso já exista através do file_exists(), mas não funciona de jeito nenhum.
      Gostaria da ajuda de vocês quanto a isso!
      <?php require ("conectfile.php"); require ("zipar.class.php"); $msg = false; //mensagem de erro. if (isset($_POST['enviar'])) { $arq = $_FILES['arquivo']['name']; $arq = str_replace(" ","_",$arq);// o método "str_replace" faz substituição de caracteres. $arq = str_replace("á","a",$arq); $arq = str_replace("à","a",$arq); $arq = str_replace("ã","a",$arq); $arq = str_replace("â","a",$arq); $arq = str_replace("é","e",$arq); $arq = str_replace("ê","e",$arq); $arq = str_replace("í","i",$arq); $arq = str_replace("ô","o",$arq); $arq = str_replace("õ","o",$arq); $arq = str_replace("ó","o",$arq); $arq = str_replace("ú","u",$arq); $arq = str_replace("ü","u",$arq); $arq = str_replace("ç","c",$arq); $arq = strtolower($arq);//o método "strtolower" converte as letras para minúsculo $drct = "C:/xampp/htdocs/testes/up_down/"; $a = 1; $insrt = $cnct_arq -> prepare("INSERT INTO arq_teste (id, arquivo, data_arq) VALUES (null, '$arq.zip', NOW())"); $insrt -> execute(); if ($insrt->rowCount()>0 && file_exists($drct.$arq))/*verifica se o arquivo existe*/{ //condição de verificação de duplicidade do nome do arquivo. rename($arq, "(".$a.")".$aqr);//renomeia o arquivo "rename(nome_antigo, nome_novo)" while(file_exists($drct."(".$a.")".$aqr)){ $a++; } echo "Arquivo renomeado!"; move_uploaded_file($_FILES['arquivo']['tmp_name'],$drct.$arq); $zip = new zipar(); $zip->ziparArq($arq, $arq.".zip", $drct); unlink($drct.$arq);//exclui o arquivo original. $msg = "Arquivo enviado com sucesso!"; }elseif ($insrt->rowCount()>0){ move_uploaded_file($_FILES['arquivo']['tmp_name'],$drct.$arq); $zip = new zipar(); $zip->ziparArq($arq, $arq.".zip", $drct); unlink($drct.$arq);//exclui o arquivo original. $msg = "Arquivo enviado com sucesso!"; }else{ $msg = "Falha ao enviar o arquivo."; } } ?> <form method="post" action="formuploadfile.php" enctype="multipart/form-data"> <h2>Envio de arquivos</h2> <label>Selecionar arquivo: </label> <input type="file" name="arquivo" /> <input type="submit" name="enviar" value="Enviar" /> <?php if ($msg != false){ echo "<p> $msg </p>"; } ?> </form> <table cellpadding="3" cellspacing="0" border="0"> <thead> <tr> <td width="200">NOME DO ARQUIVO</td> <td width="250">DATA DE MODIFICAÇÃO</td> <td width="200">DOWNLOAD</td> </tr> </thead> <tbody> <?php $sqlShow = "SELECT * FROM arq_teste"; try{ $show = $cnct_arq -> prepare($sqlShow); $show -> execute(); }catch(PDOException $e){ echo $e->getMessage(); } while($showfield = $show->fetch(PDO::FETCH_ASSOC)){ ?> <tr> <td><?php echo $showfield["arquivo"] ?></td> <td><?php echo $showfield["data_arq"] ?></td> <td><a href="up_down/<?php echo $showfield["arquivo"] ?>">Download</a></td> </tr> <?php } ?> </tbody> </table>  
×

Informação importante

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