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 Pellegrini3834
      Ola galera do IMasters!!!!!!
       
      Estou com uma duvida eu tenho um CRUD em php MVC e queria saber em que camada fica as mensagens depois de uma realização de um evento por exemplo:
      Cadastro de Pessoa, depois de cadastrada quero que ele emita uma mensagem dizendo que a "PESSOA FOI CADASTRADA COM SUCESSO!!!!" e eu queria saber  em que parte ela fica se é no Controle ou na View porque sabemos que no modelo fica a parte referente a manipulação de dados.
      Obrigado.
    • By Henrique Augusto Rohloff
      Olá! Sou iniciante e estou treinando para configurar uma página de buscas de produtos em um banco de dados.
      Os produtos já estão sendo encontrados quando a palavra bate com os itens do banco. A conexão com o banco de dados está funcionando corretamente. Porém, quando nada é encontrado, queria que aparecesse uma mensagem "Nenhum resultado, tente novamente." Já tentei com  else de tudo que é jeito mas não aparece corretamente... Qual é o jeito certo?
       
      Segue o código:
       
       
    • By maruoppolo
      Olá, tenho 2 tabelas:
       
      tb_dados: ID - MUSICA
       
      tb_votos: ID - VOTO - RADIO - MUSICA
       
      Preciso fazer uma query que traga as musicas da tb_dados porém ordenando pelo número de votos que ela teve na tb_votos.
       
      Então assim, existem 2 tipos de voto 1 = like e 2 = dislike, cada ver que um usuário vota eu pego qual radio que ele esta ouvindo e salvo no campo radio, o id da musica na tb_dados e salvo no campo musica da tb_votos e coloco o número 1 para like e 2 para dislike no campo voto.
       
      A query precisa contar quantos likes teve na tv_votos filtrando por radio e mostrando os resultados em ordem decrescente as musicas com mais likes.
       
      A ideia é trazer as 10 musicas com mais like de cada radio
       
      Alguma ideia de como fazer?? Estou enroscado nisso a dias.
    • By Chester1
      oi, eu to tentando mexer com servidores agora no PHP e esta dando um erro muito estranho que quando eu procuro em um programa que acha erros de sintaxe ele me diz que o erro esta no </HTML>    se alguem puder me dizer qual foi o erro que eu cometi eu agradeceria
       

       
      <HTML> <HEAD><TITLE>incluindo no banco de dados</TITLE></HEAD> <body> <BODY bgcolor="#d0d0d0"> <center> <h3>Lanchonete coma bem (voltada para o internauta)</h3> <h1>24horas</h1> <?php $login_digitado=$_POST['login']; $senha=$_POST['senha']; $nome=$_POST['nome']; $email=$_POST['email']; $telefone=$_POST['telefone']; $celular=$_POST['celular']; $endereco=$_POST['endereco']; $complemento=$_POST['complemento']; if ($login_digitado == "" || $senha == "" || $nome =="" || $email == "" || $telefone == "" || $endereco == "" || $complemento == "") { echo "existem(m) campos(s) de preenchimento obrigatorio em branco,<BR> infelizmente tera que voltar para preenche-lo(s)."; echo "<BR><a href=\"cadastro.php\">clique aqui para tentar novamente</a>"; } else { { $link=mysql_connect("localhost", "root", "") or die ("<h1>nao foi possivel conectar !!!</h1> ".mysql_error());  
      obs :estou trabalhando com formularios e servidores
         
         
         
         
      ?>
      </BODY>
      </HTML>
    • By DavidPin94
      Boa tarde, estou tentando criar uma validação para saber se o usuário já está cadastrado no meu banco de dados para meu sistema ficar mais organizado, porém quando realizo o teste cadastrando um usuário já cadastrado, o cadastro ocorre sendo que não era para ocorrer
      <?php require_once("conexao.php");?> <?php if (isset($_POST['usuario'])) { $nome = utf8_decode($_POST['usuario']); $senha = utf8_decode($_POST['senha']); $inserir = "INSERT INTO cadastro "; $inserir .= "(usuario, senha) "; $inserir .= "VALUES "; $inserir .= "('$nome', '$senha')"; $query = "SELECT usuario FROM cadastro WHERE usuario = '$usuario' LIMIT 1"; $consulta = mysqli_query($conecta, $query); $query = "SELECT usuario FROM clientes WHERE usuario = '$usuario' LIMIT 1"; $consulta = mysqli_query($conecta, $query); if (mysqli_num_rows($consulta) < 1) { $operacao_inserir = mysqli_query($conecta, $inserir); if (! $operacao_inserir) { die("Erro no banco"); }else header("location: login.php"); }else{ die("Usuário existente!"); } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Cadastrar novo usuário</title> <link rel="stylesheet" type="text/css" href="estilo.css"> </head> <body> <nav> <ul> <li><a href="inicial.php">PÁGINA INICIAL</a></li> <li><a href="quem_somos.php">QUEM SOMOS</a></li> </ul> </nav> <div id="cadastro"> <form method="post" action="cadastro.php"> <label>Digite seu nome de usuário</label> <input type="text" name="usuario" placeholder="Ex: Usuario123" required size="50" minlength="5" maxlength="20" autofocus><br> <label>Digite sua senha</label> <input type="password" name="senha" placeholder="Deve conter mais de 5 caracteres" required size="50" minlength="5" maxlength="20" autofocus><br> <input type="submit" value="Cadastrar" id="enviar" name="enviar"> </form> </div> </body> </html> ,  alguém poderia me ajudar?  Meu código:
×

Important Information

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