Ir para conteúdo

ExtremsX

Members
  • Total de itens

    766
  • Registro em

  • Última visita

  • Dias vencidos

    7

Posts postados por ExtremsX


  1. Cara, provavelmente o arquivo que está com a chamada (com o erro) não está dando include/require antes de usar o db_connect(), só isso.

     

    Faça o seguinte: coloque um var_dump(111111) no começo do arquivo functions.php e ontro var_dump(22222) antes de chamar a função db_connect(), e veja se vai sar no código da pagina os dois var_dump(), se não sair é pq você nao deu include/require, e se sair na ordem errada é pq você tem de dar o include/require antes


  2. Se você souber usar o React (lembre-se q ele tambem vai ficar grande) vá pra ele, pois assim, você consegue dividir a complexidade entre o que é visto (React) e quem o processa (PHP). Se não, é só mais uma cosia pra complicar sua vida.

     

    Sobre divisão, divida por modulos e submodulos, tanto os controllers, quanto views, models, etc:

    /src

     - /Administrador

     - - /Usuarios

     - - /Postagens

     - /Usuario

     - - /Perfil

     - /Fincanceiro

     

    Sobre as URLs, eu recomendo assim se for usar o React:

    www.dominio.com -> Frontend usando React

    api.dominio.com -> Backend usando PHP


  3. Primeiro, pelo o que entendi, ou é um ou é outro, nunca é os dois ao mesmo tempo, se esse for o caso, a escolha correta é um RADIOBOX e não um CHECKBOX, ou até mesmo um SELECT.

     

    Segundo, tente aprender sobre o jQuery, isso vai ajudar a manusear o HTML, é muito simples e fácil de se usar.

     

    Terceiro, sobre o seu problema, quando o usuário mudar entre um e outro, eu recomendaria, de uma forma bem facil, você redirecionar a pagina passando um parametro no GET (ex: page.php?escolhido=juridica ou page.php?escolhido=fisica), e no PHP você tem um IF/ELSE que diz qual query executar


  4. Não está completo, mas eu faria +/- assim (eu não testei):

     

    <?php
    $pdo = new PDO('mysql:dbname=teste;host=localhost', 'root', '');
    
    function user_insert($name, $age, $gender)
    {
        global $pdo;
        
        $pdo->prepare('INSERT INTO usuario (nome, idade, sexo) VALUES (?, ?, ?)')
            ->execute([
                $name,
                $age,
                $gender
            ]);
        
        // Retorna o ID do usuário
        return $pdo->lastInsertId();
    }
    
    function image_insert($user_id, $file_path)
    {
        global $pdo;
        
        $pdo->prepare('INSERT INTO imagem (usuario_id, arquivo, data) VALUES (?, ?, NOW())')
            ->execute([
                $user_id,
                $file_path
            ]);
            
        // Retorna o ID da imagem
        return $pdo->lastInsertId();
    }
    
    function image_is_valid($file_path, $file_type)
    {
        if (is_uploaded_file($file_path)) {
            throw new Exception('Este arquivo não foi enviado');
        } elseif (!in_array($file_type, ['image/jpg', 'image/jpeg', 'image/png'])) {
            throw new Exception('Este arquivo não é uma imagem aceita');
        }
        
        // Daqui pra frente, tenta verifica se o usuário não
        // pegou um arquivo imagem.exe|doc e renomeou para
        // imagem.jpg, só para enganar o sistema
        
        if (function_exists('exif_imagetype')) {
            $type = exif_imagetype($file_path);
            if (!in_array($type, [IMAGETYPE_JPEG, IMAGETYPE_PNG])) {
                throw new Exception('Este arquivo não é uma imagem aceita');
            }
        }
        
        if (function_exists('getimagesize')) {
            $size = @getimagesize($file_path);
            if ($size === false) {
                throw new Exception('Este arquivo não é uma imagem');
            }
        }
        
        return true;
    }
    
    function image_move($to_dir, $file_path)
    {
        $file_extension = pathinfo($file_path, PATHINFO_EXTENSION);
        $to_path = sprintf('%s/%s.%s', $to_dir, uniqid(), $file_extension);
        
        if (!move_uploaded_file($file_path, $to_path))
            throw new Exception('Não foi possivel processar o arquivo enviado');
        
        return $to_path;
    }
    
    function upload_valid($error)
    {
        switch ($error) {
            case UPLOAD_ERR_OK:
                return true;
            case UPLOAD_ERR_NO_FILE:
                throw new Exception('Arquivo não enviado');
            case UPLOAD_ERR_INI_SIZE:
            case UPLOAD_ERR_FORM_SIZE:
                throw new Exception('O tamanho do arquivo excedeu o limit aceitavel');
            default:
                throw new Exception('Erro desconhecido ao enviar o arquivo');
        }
    }
    
    
    function upload_organizer($files)
    {
        $uploads = [];
        
        if (is_array($files['name']) {
            foreach ($files['name'] as $i => $file) {
                $uploads[] = [
                    'name' => $files['name'][$i],
                    'type' => $files['type'][$i],
                    'size' => $files['size'][$i],
                    'tmp_name' => $files['tmp_name'][$i],
                    'error' => $files['error'][$i],
                ];
            }
        } else {
            $uploads[] = $files;
        }
        
        return $uploads;
    }
    
    if (isset($_FILES['arquivo'])) {
        // Lembre-se de fazer as validações para os campso vindo do $_POST
        
        try {
            $pdo->beginTransaction();
            
            // Insere o usuário, e retorna o id do usuário
            $user_id = user_insert($_POST['nome'], $_POST['idade'], $_POST['sexo']);
            // Organiza a array do upload
            $uploads = upload_organizer($_FILES['arquivo']);
            
            foreach ($uploads as $upload) {
                // Verifica se há erro no upload
                upload_valid($upload['error']);
                
                // Verifica se o arquivo enviado é uma imagem
                image_is_valid($upload['tmp_name'], $upload['type']);
                
                // Move o arquivo para pasta e da um nome aleatorio
                $image_path = image_move('upload', $upload['tmp_name']);
                
                // Insere a imagem no DB
                image_insert($user_id, $image_path);
            }
            
            echo "Upload feito com sucesso<br>";
            $pdo->commit();
        } catch (PDOException $e) {
            $pdo->rollBack();
            echo $e->getMessage();
        }
    }
    
    
    // Para obter todos as imagens do usuário
    $stmt = $pdo->prepare('SELECT * FROM imagem WHERE usuario_id=?');
    $stmt->execute([ $user_id ]); // ID inserido anteriormente do usuário
    $imagens = $stmt->fetchAll(); // Retornas todas as imagens do usuário

     


  5. Aqui está minha pequena contribuição:

     

    Bibliotecas:

    https://packagist.org/packages/schuppo/password-strength

    https://packagist.org/packages/rollerworks/password-strength-validator

    https://packagist.org/packages/rollerworks/password-strength-bundle

    https://packagist.org/packages/kartik-v/strength-meter

     

    Meu pequeno código:

     

    <?php
    
    function eh_sequencia($senha) {
    	$senha_ord = array_map('ord', str_split($senha));
    	$senha_chk = range($senha_ord[0], $senha_ord[strlen($senha) - 1]);
    	if ($senha_ord == $senha_chk)
    		return true;
    	
    	if (array_sum($senha_ord) == $senha_ord[0] * strlen($senha))
    		return true;
    	
    	return false;
    }
    
    var_dump(eh_sequencia('111111'));

     


  6. 16 horas atrás, Rebeca Julia Bronzatti disse:

    "Arquivo enviado com sucesso!"

     

    Aqui um exemplo bem basico de como inserir e consultor registros usando PDO. Qualquer dúvida, só falar

     

    Documentação do que foi usado:

    https://www.php.net/manual/pt_BR/pdo.construct.php
    https://www.php.net/manual/pt_BR/pdo.begintransaction.php

    https://www.php.net/manual/pt_BR/pdo.prepare.php

    https://www.php.net/manual/pt_BR/pdostatement.execute.php
    https://www.php.net/manual/pt_BR/pdo.commit.php

     

    https://www.php.net/manual/pt_BR/pdo.rollback.php

    https://www.php.net/manual/pt_BR/pdo.lastinsertid.php

    https://www.php.net/manual/pt_BR/pdostatement.fetch.php

     

    <?php
    
    // Como nunca usei MySQLi, então estou fazendo com PDO, que é o que eu recomendo
    $pdo = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'SeuUsuario', 'SuaSenha');
    
    // Para inserir, use o seguinte:
    try {
        // Inicia uma transação no banco de dados
        $pdo->beginTransaction();
    
        // Como eu não encontrei no se exemplo a tabela "imovel", usei um exemplo generico
        $pdo->prepare('INSERT INTO imovel (coluna1, coluna2) VALUES (?, ?)')
            ->execute([
                $valor_conluna_1,
                $valor_conluna_2
            ]);
        
        $pdo->prepare('INSERT INTO arquivoimagem (arquivo, data) VALUES (?, NOW())')
            ->execute([ $novo_nome ]);
        
        // Comita as alteração
        $pdo->commit();
    
    	// O método lastInsertId() retorna o ID do ultimo INSERT, logo, o registro 
    	// na tabel arquivoimagem deverá ser inserido por ultimo, e na tabela deve
    	// existir um campo com auto increment.
        $id_da_imagem = $pdo->lastInsertId(); 
        $msg = "Arquivo enviado com sucesso!";
    } catch (PDOException $e) {
      	// Se der erro, cancela os INSERTs
        $pdo->rollBack();
        $msg = "Falha ao enviar arquivo";
    }
    
    // Para obter o resultado:
    $stmt = $pdo->prepare('SELECT * FROM arquivoimagem WHERE id=?');
    $stmt->execute([ $id_da_imagem ]); // ID inserido anteriormente
    $dados_da_imagem = $stmt->fetch();

     

×

Informação importante

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