Jump to content
perfectraider99

Não consigo conectar meu sistema de upload de imagens ao servidor

Recommended Posts

Galera bom dia, recentemente me pediram pra fazer um sistema de postagem para um site de carros . 

pesquisei formas de fazer e encontrei um projeto de upload de imagens 

fiz tudo certinho no local host e funcionou perfeitamente mas quando fui colocar no servidor nada funcionou, nem enviava o formulario nem amostrava os produtos.

por favor galerinha estou a muito tempo tentando resolver esse problema . 

aqui tá o meu codigo 

 

index

 

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style>
    body{
        font-family: arial;
    }
    section{
        background-color: rgb(123,104,238,.4);
        width: 70%;
        margin: auto;
    }
    input, label, textarea{
        display: block;
        width: 100%;
        height: 30px;
    }
    label{
        line-height: 30px;
        margin-top: 10px;
    }
    textarea{
        height: 150px;
    }
    form{
        
        width: 60%;
        margin: auto;
        box-sizing: border-box;
        padding: 20px;
    }
    #botao{
        margin-bottom: 10px;
        width: 50%;
        background-color: rgba(0,0,0,.8);
        color: white;
        height: 40px;
        cursor: pointer;
        border: none;
        font-size: 15pt;
    }
    h1{
        text-align: center;
    }
    #foto{
        margin-top: 20px;
        margin-bottom: 20px;
    }

    a{
        background-color: rgb(0,255,127);
        display: block;
        width: 220px;
        height: 50px;
        color: black;
        text-decoration: none;
        float: right;
        text-align: center;
        line-height: 50px;
        margin: 20px;
        border: 1px solid rgba(0,0,0,.2);
    }
    </style>
</head>
<body>
    <section>
    <a href="produtos.php">Ver todos os produtos</a>
    <form method="POST" enctype="multipart/form-data">
        <h1>ENVIO DE IMGS</h1>
        <label for="nome">Nome do Produto</label>
        <input type="text" name="nome" id="nome">
        <label for="des">Descrição</label>
        <textarea name="desc" id="desc"></textarea><br>

        

        <input type="file" name="foto[]" multiple id="foto">
        <input type="submit" id="botao">
    </form>
    </section>
</body>
</html>


produtos : 


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style type="text/css">
    section{
        width: 70%;
        margin: auto;
        font-family: arial;
    }
    div{
        width: 15%;
        float: left;
        padding: 1%;
        background-color: rgb(123,104,238,.4);
        margin: 10px;
    }
    img{
        width: 100%;
        height: 150px;
    }

    h2{
        font-size: 12pt;
        color: white;
        text-align: center;
        background-color: rgba(0,0,0,.5);
        padding: 10px 0px;
        font-weight: normal;
    }
    p{
        font-size: 10pt;
    }
    </style>
</head>
<body>
    <section>

    <?php 
require 'classes/Produto_class.php';
$p = new Produto_class('formulario_produtos','infinityfree.net','root', '99583460');  <- aqui ta a parte do banco de dados
$dadosProduto = $p->buscarProdutos();


if (empty($dadosProduto)) 

{


echo 'Ainda não há produtos aqui';
    
}else
{

foreach ($dadosProduto as $value)

 {
        ?>

        <a href="exibir_produto.php">
            <div>
                <img src="imagens/<?php echo $value['foto_capa']   ?>">            
                <h2><?php echo $value['nome_produto']   ?></h2>
            </div>
        </a>
    <?php
}


}


    ?>
        
    </section>
</body>
</html>


e aqui tá a parte do banco de dados 


: 



<?php

class Produto_class{

private $pdo;
public function __construct($dbname, $host, $user, $senha)

{
    try 
    {
       $this->pdo = new PDO("mysql:dbname=".$dbname.";host=".$host,$user, $senha);        
        } catch (PDOException $e) {

            echo 'erro com banco de dados :'.$e->getMessage();

        } catch (Exception $e) {

            echo 'erro Generico :'.$e->getMessage();
        }
    }
    public function enviarProduto($nome, $descricao, $fotos = array())
{

    //INSERIR PRODUTO  ( TABELA DO PRODUTO )

$cmd = $this->pdo->prepare('INSERT INTO produtos(nome_produto, descricao) values (:n, :d)');
$cmd->bindValue(':n', $nome);
$cmd->bindValue(':d', $descricao);

$cmd->execute();
  $id_produto = $this->pdo->LastInsertId();


 //INSERIR AS IMAGENS DO PRODUTO (TABELA DE IMAGENS)
    if(count($fotos) > 0 )// Se veio imagens
        
        {

                for ($i=0; $i < count($fotos); $i++) 

                { 
                    $nome_foto = $fotos[$i];

        $cmd = $this->pdo->prepare('INSERT INTO imagens (nome_imagem, fk_id_produto) values (:n, :fk)');
        $cmd->bindValue(':n', $nome_foto );
        $cmd->bindValue(':fk', $id_produto);
        $cmd->execute();

                }


     

        
        }     
}

     public function buscarProdutos()//TODOS

{ 
 
 $cmd = $this->pdo->query('SELECT *,
    (SELECT nome_imagem from imagens where fk_id_produto = produtos.id_produto LIMIT 1) as foto_capa FROM produtos');


 if($cmd->rowCount() > 0)

 {
           $dados = $cmd->fetchAll(PDO::FETCH_ASSOC);
 }else
 {

     $dados = array();
 }
     return $dados;
}

   

     public function buscarPrdutoPorId($id)

     {


     }


     public function buscarImagensPorId($id)

     {

         
     }

}


 

Já troquei a variavel $p = new Produto_class no arquivo que eu mandei pro servidor ..

Share this post


Link to post
Share on other sites

Prováveis erros:

 

1 - Erro de autenticação (nome do banco, host usuário e senha).

'formulario_produtos' é nome do banco mesmo? Parece ser de tabela.

 

2 - Não ativado a extensão PDO.

Para verificar, crie um arquivo PHP e suba na raiz e depois acesse pela URL com o código abaixo:

<?php

print_r(PDO::getAvailableDrivers());

Irá retornar um array com os drivers suportados.

 

3 - Seu formulário de inserção de fotos está sem o ACTION, que é pra onde você está enviando as informações do seu POST. Geralmente chama um arquivo.php que valida e depois chamar a classe para fazer o INSERT.

Share this post


Link to post
Share on other sites
Em 19/06/2019 at 12:20, marcosmarcolin disse:

olhei aqui e apareceu isso . 

Array ( [0] => mysql [1] => sqlite )

Coloquei um arquivo zippado com todas as pastas nesse link www.planetaveiculosba.com.br/projeto.zip

po man grato pela ajuda .

 

 

Share this post


Link to post
Share on other sites

olhei aqui e apareceu isso . 

Array ( [0] => mysql [1] => sqlite )

Coloquei um arquivo zippado com todas as pastas nesse link www.planetaveiculosba.com.br/projeto.zip

po man grato pela ajuda .

Share this post


Link to post
Share on other sites

Olá, boa noite!

 

No começo do arquivo ative os erros do php e poste o resultado que está aparecendo no seu servidor de produção e localhost.

 

<?php

	error_reporting(E_ALL);
	ini_set('display_errors', 'On');
?>
<!DOCTYPE html>  
<html>  
  ... seu código

 

Share this post


Link to post
Share on other sites

Quando eu tento preencher o formulario dá isso . 

 


Warning: require(classes/Produto_class.php): failed to open stream: No such file or directory in /storage/ssd4/628/9862628/public_html/system/index.php on line 124

Warning: require(classes/Produto_class.php): failed to open stream: No such file or directory in /storage/ssd4/628/9862628/public_html/system/index.php on line 124

Fatal error: require(): Failed opening required 'classes/Produto_class.php' (include_path='.:/usr/share/pear:/usr/share/php') in /storage/ssd4/628/9862628/public_html/system/index.php on line 124

 

 

quando eu abro a página de produtos dá isso :

 

Warning: require(classes/Produto_class.php): failed to open stream: No such file or directory in /storage/ssd4/628/9862628/public_html/system/produtos.php on line 49

Warning: require(classes/Produto_class.php): failed to open stream: No such file or directory in /storage/ssd4/628/9862628/public_html/system/produtos.php on line 49

Fatal error: require(): Failed opening required 'classes/Produto_class.php' (include_path='.:/usr/share/pear:/usr/share/php') in /storage/ssd4/628/9862628/public_html/system/produtos.php on line 49

 

Desde já, muito obrigado irmão .

Share this post


Link to post
Share on other sites

O problema é no require abaixo, verifica as pastas corretamente e altere o diretório, não está encontrando o arquivo 'Produto_class.php'.

require 'classes/Produto_class.php';

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By gabrielslessa
      Olá amigos, sou novato no PDO e estou quebrando cabeça para fazer uma consulta e somar os valores da coluna da tabela de itens com um parametro predefinido ('id' e 'pedido_min') onde id é o id do produto e pedido_min está no bd mysql como (ENUM) Y ou N, onde Y quer dizer que esse produto não entra na soma do pedido minimo da compra e N entra na soma do pedido minimo. Estou fazendo isso para que produtos como exemplo de cigarros não entrem na conta do pedido minimo. 
       
      Tenho um FOREACH que lista os produtos que estao na SESSION php, dentro ou fora desse FOREACH eu preciso somar os produtos que possuem o parametro Y na coluna 'pedido_min' do bd, para diminuir da soma total  do carrinho de compras e checar se o cliente atingiu o valor minimo de compra (15,00), caso tenha atingido o valor minimo entao libera o botao para fechar o pedido.
       
      meu código está abaixo:
       
      <div class="card-body"> <?php //buscando no bd o valor do pedido minimo $config = app('db')->select("SELECT as_configura.* FROM as_configura"); $config = $config[0]; //montando cart dos produtos sa session $cart_box = '<ul class="cart-products-loaded">'; $total = 0; $total_acresc = 0; foreach ($_SESSION["products"] as $product) : $product_name = $product["product_name"]; $product_price = $product["product_price"]; $product_acresc = $product["product_acresc"]; $id = $product["id"]; $product_qty = $product["product_qty"]; //somando o subtotal de cada item do carrinho $subtotal = ($product_price * $product_qty); //total de todos o s itens $total = ($total + $subtotal); // checa se tem itens que nao entram na soma do pedido minimo $result = app('db')->select("SELECT as_produtos.preco FROM as_produtos WHERE id = $id AND as_produtos.pedido_min = 'Y'"); //soma o valor total dos itens que nao entram na soma do pedido minimo $total_cigarro = app('db')->query("SELECT SUM(preco) AS total FROM as_produtos WHERE pedido_min = 'Y' AND id = $id ")->fetchColumn(); $checaCigarro = $total - $total_cigarro; //checa de atingiu o pedido minimo if ($total < $config['ped_minimo']) { echo "O pedido mínimo é de R$ ".$config['ped_minimo'].",00"; //se tem itens que nao entram na soma do pedido minimo e soma } else if (count($result) >= 1) { if ($checaCigarro < $config['ped_minimo']) { echo "Cigarros não entram na soma de R$ ".$config['ped_minimo'].",00 do pedido mínimo."; } ?> <!-- PRODUCT --> AQUI ENTRAM AS INFORMACOES DE CADA ITEM <!-- END PRODUCT --> <?php endforeach; ?>  
    • By fabioamorais
      Ola pessoal, sou novo aqui no fórum e também no mundo da programação. 

      Estou criando um sistema de cadastro de clientes em PHP 7 e mysql
      para meu serviço para fins de organização, tenho ja pronto o sistema de cadastro e edição do cliente, tenho login por usuário e senha.
      preciso colocar nesse sistema uma forma que registre a ação e o usuário que fez a ação quando houver uma alteração no cadastro.
      exemplo;
      O usuario (jose) alterou o status de analise para concluído .
      o usuario (pedro) alterou a localização de mesa para armario.
      e que fosse exibido como um tipo de histórico de eventos no próprio cadastro do cliente.
      e nesse campo se ainda tiver como add cometários.
      Usuario (jose): Precisa entrar em contato com o cliente francisco. 
      Usuario (pedro): cliente foi avisado e está sabendo.
       
      quem souber uma forma de fazer isso, ficaria muito grato.

    • By proflupin
      Estou com a seguinte dificuldade, possuo um <a> que busca uma id numa tabela do banco de dados, conforme abaixo:
       
      <a href="self_service.php?id=<?php echo $row_produto['id_categoria_chamado']?>" class="btn btn-primary"data-toggle="collapse" data-target="#subcategoria" aria-expanded="false" aria-controls="collapseExample">Visitar</a> A consulta é realizada, pois vejo que um novo link é mostrado no rodapé da página:

       
      Esta página self_service.php mostrada acima, é minha página principal, onde tudo é trabalhado. Se por exemplo eu mudar para outro arquivo php, teste.php por exemplo, uma nova página é aberta e consigo exibir os resultados normalmente.
       
      O problema é: quero abrir este ID na mesma página, dentro de um collapse. Exemplo:
       
      Cliquei em visitar na categoria Totvs...
       
       
      Um collapse abre-se logo abaixo:

       
      O que não consigo fazer é resgatar o ID passado pelo botão VISITAR em meu collapse, se eu tenter o $_GET['id'], não vai retornar nenhum valor, pois a URL não muda quando trabalhamos com collapse.
    • By drx
      Olá Avançados em PHP! 

      Existe algum IDE em PHP para facilitar a vida do desenvolvedor, ou o negócio é na unha mesmo? 

      Aguardo.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.