Ir para conteúdo

POWERED BY:

Arquivado

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

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 ..

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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 .

 

 

Compartilhar este post


Link para o post
Compartilhar em outros 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

 

Compartilhar este post


Link para o post
Compartilhar em outros 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 .

Compartilhar este post


Link para o post
Compartilhar em outros 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';

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por daemon
      Boa tarde,
       
      Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites.

      Eu consigo pegar o tópico e a descrição, e mostrar a imagem que esta na pagina do link.
      Para isso utilizo esta função:
      function getPreviewImage($url) { // Obter o conteúdo da página $html = file_get_contents($url); // Criar um novo objeto DOMDocument $doc = new DOMDocument(); @$doc->loadHTML($html); // Procurar pela tag meta og:image $tags = $doc->getElementsByTagName('meta'); foreach ($tags as $tag) { if ($tag->getAttribute('property') == 'og:image') { return $tag->getAttribute('content'); } } // Se não encontrar og:image, procurar pela primeira imagem na página $tags = $doc->getElementsByTagName('img'); if ($tags->length > 0) { return $tags->item(0)->getAttribute('src'); } // Se não encontrar nenhuma imagem, retornar null return null; } // Uso: $url = "https://example.com/article"; $imageUrl = getPreviewImage($url); if ($imageUrl) { echo "<img src='$imageUrl' alt='Preview'>"; } else { echo "Nenhuma imagem encontrada"; }  
      Mas estou com um problema, esta funcão funciona quando coloco em uma pagina de teste.php. Preciso mostrar em uma página inicial diversas fotos de todos os links. (No caso acima só funciona 1).
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
×

Informação importante

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