Jump to content

ExtremsX

Members
  • Content count

    766
  • Joined

  • Last visited

  • Days Won

    7

ExtremsX last won the day on November 20 2014

ExtremsX had the most liked content!

Community Reputation

58 Bom

About ExtremsX

  • Birthday 05/08/1991

Informações Pessoais

  • Sexo
    Masculino

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. ExtremsX

    Como saber o percentual?

    Use a função do PHP chamada GLOB (https://www.php.net/manual/pt_BR/function.glob.php) para retornar a lista a partir de um filtro. Depois a porcentagem é calculada assim: $percent = $encontradas * 100 / $total;
  2. ExtremsX

    Consulta palavra dentro de vários arquivos em PDF

    Não existe, leitura em arquivos sempre será lenta. Se voce precisar fazer, existem duas maneiras: 1. É converter o arquivo para TXT e pesquisar no texto (ex: https://www.pdfparser.org/) 2. É jogar o conteudo do PDF em uma DB usando DB proprias pra isso (ex: https://lucene.apache.org/) Referencia: https://en.wikipedia.org/wiki/Full-text_search
  3. 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
  4. 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
  5. Pelo o que entendi, você não está imprimindo (usando ECHO) o valor, só isso. Se estiver, acredito q você esteja imprimindo algo q não existe
  6. ExtremsX

    Como trocar o filtro do select mysql apos um click no checkbox

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

    [RESOLVIDO] Erro ao conectar o banco de dados em consulta

    Esse erro se deve ao fato que no php.ini a extenção mysql não está habilitada. Aproveitando, recomendo usar o PDO MySQL. Como instalar ambos: https://www.php.net/manual/pt_BR/mysql.installation.php (para o seu problema) https://www.php.net/manual/en/pdo.installation.php (minha recomendação)
  8. Algumas maneiras, espero ter respondido: <?php // No PHP echo sprintf('<a href="http://www.meusite.com.br/app/%s">Link aqui</a>', $rows_cursos['novonome']); ?> <!-- No HTML --> <a href="http://www.meusite.com.br/app/<?php echo $rows_cursos['novonome']; ?>">Link aqui</a>
  9. ExtremsX

    Duas tabelas no mesmo formulario

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

    modelo de checagem de sequencia de senha

    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'));
  11. Você poderia falar sobre qual ferramenta de AD você está usando?
  12. ExtremsX

    Duas tabelas no mesmo formulario

    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();
  13. ExtremsX

    Padrão Singleton

    Por que vc não grava apenas os itens do carrinho na sessão no lugar de gravar a classe?
  14. ExtremsX

    Deprecated: preg_replace() [ERRO]

    Isso que você está tentando fazer não vai funcionar, para uma melhor segurança use a função do seu próprio SGBD, recomendo usar PDO para se proteger disso automaticamente. Para o XSS use htmlentities()
  15. ExtremsX

    Conectar em um BD ONLINE via local

    Lembre-se que se está o computador está internet, não existe um servidor remoto e local pois tudo é relativamente remoto. Em outras palavras, não ser que a aplicação bloqueie isso, tudo pode se conectar a tudo pela internet. Isso que dizer que não importa se o servidor APACHE ou ORACLE está em sua maquina, em um VPS, em um servidor remoto, cloud, etc. tudo pode se conectar a tudo basta você configurar para tal. Lembre: Um servidor não sabe que sua maquina é LOCAL, ela só sabe que é uma maquina tentando se conectar a ela.
×

Important Information

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