Jump to content

ShadowDLL

Members
  • Content count

    386
  • Joined

  • Last visited

Community Reputation

2 Comum

5 Followers

About ShadowDLL

  • Birthday 11/02/1998

Informações Pessoais

  • Sexo
    Masculino
  • Interesses
    PHP, JavaScript, OOP, Padrões de Arquiteturas e de Projeto, Engenharia de Software, S.E.O, Design Gráfico, Marketing de Conteúdo.

Contato

Recent Profile Visitors

3287 profile views
  1. ShadowDLL

    Como fazer relatorio

    Vamos lá! Sendo breve. Sim!, existe forma mais fácil do que ficar fazendo um "jogo" de combinações... SEGUE EXEMPLO: <?php // VARIÁVEIS PARA TESTE $idexame = 30; $convenio = 20; $data_inicio = "2020-10-20"; $data_termino = "2020-11-20"; // VARIÁVEL QUE ARMAZENARÁ O FRAGMENTO SQL DOS FILTROS $sqlFiltros = ""; // ARRAY COM AS VARIÁVEIS QUE SERÃO VERIFICADAS, E // SUAS RESPECTIVAS COLUNAS NO DB $filtros = [ // VARIÁVEL // COLUNA // OPERADOR 'convenio' => ['convenio', '='], 'posto' => ['posto', '='], 'status' => ['status', '='], 'data_inicio' => ['DATE(data_registro)', '>='], 'data_termino' => ['DATE(data_registro)', '<='] ]; // VERIFICA FILTROS foreach ($filtros as $variavel => $comparativo) { if (isset(${$variavel}) && ${$variavel}) { $sqlFiltros .= "{$comparativo[0]} {$comparativo[1]} '${$variavel}' AND "; } } // O IDEXAME É O UNICO QUE PROVAVELMENTE SEMPRE // VIRÁ COM VALOR EM SEU CÓDIGO $sql = " SELECT * FROM registropacientesexames WHERE %s codigo_exame = '$idexame' ORDER BY codigo_registro DESC "; // CONSTROI A SQL FINAL echo sprintf($sql, $sqlFiltros); RESULTADO: SELECT * FROM registropacientesexames WHERE convenio = '20' AND DATE(data_registro) >= '2020-10-20' AND DATE(data_registro) <= '2020-11-20' AND codigo_exame = '30' ORDER BY codigo_registro DESC
  2. ShadowDLL

    Cadastro de usuário + validação

    Sendo simplista, você não precisa passar pela primeira validação, pois você já o cadastrou e não foi retornado nenhum erro, então, agora, basta você obter e salvar o usuário que foi inserido em uma $_SESSION, e assim, fazer o redirecionamento para a página Principal, onde você irá obter os dados cadastrados e etc... Segue exemplo, abaixo: CÓDIGO [ CADASTRO ] <?php session_start(); include_once "connection/conecta.php"; if(isset($_POST['cadastrar'])){ @$usuario= trim(strip_tags($_POST['usuario'])); @$senha= trim(strip_tags($_POST['senha'])); @$nivel_acesso = trim(strip_tags($_POST['nivel_acesso'])); $insert = "INSERT INTO cad_usuario (usuario, senha, nivel_acesso) VALUES (:usuario, :senha, :nivel_acesso)"; try{ $result = $conexao->prepare($insert); $result->bindParam(':usuario',$usuario, PDO::PARAM_STR); $result->bindParam(':senha',$senha, PDO::PARAM_STR); $result->bindParam(':nivel_acesso', $nivel_acesso, PDO::PARAM_STR); $result->execute(); $contar = $result->rowCount(); if($contar>0){ echo '<div class="alert alert-success"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>Sucesso!</strong> O Usuario foi Cadastrado!</div>'; $_SESSION['usuario'] = $usuario; $_SESSION['autenticado'] = true; header('Location: principal.php'); }else{ echo '<div class="alert alert-danger"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>Erro ao cadastrar!</strong> Não foi possível cadastrar o Usuario.</div>'; } }catch(PDOException $e){ echo $e; } } CÓDIGO [ PRINCIPAL ] <?php require_once("connection/conecta.php"); ob_start(); session_start(); if (@!$_SESSION['autenticado']) { include_once "index.php"; exit("<div class='alert alert-danger col-sm-12'>Para acessar o sistema você deve efetuar login</div>"); } $logado = $_SESSION['usuario']; $sql = "SELECT * from cad_usuario WHERE usuario = '$logado' and situacao = 'A'"; try{ $result = $conexao->prepare($sql); $result->execute(); $contar = $result->rowCount(); if($contar = 1){ $loop = $result->fetchAll(); foreach ($loop as $show){ // USAR SESSAO PARA PODER "TRANSITAR" // OS DADOS RELEVANTES NO SISTEMA... // // A SENHA FOI REMOVIDA POR SEGURANÇA // // COMO JÁ TEMOS O USUARIO GUARDADO // EM SESSAO, NÃO TEMOS MOTIVO PARA // SETA-LO NOVAMENTE... $_SESSION['nivel'] = $show['nivel_acesso']; } print_r($_SESSION); } }catch (PDOWException $erro){ echo $erro; } ?> RECOMENDAÇÕES: 1 - Você poderia, no cadastro, fazer uma verificação para ver se o usuário já está sendo utilizado; 2 - Armazenar o ID do usuário em uma Sessão, pois pode ser de grande utilidade para você no futuro, principalmente caso queira obter dados relacionados a ele.
  3. ShadowDLL

    [ Resolvido ] Falha ao retornar dados com PDO

    # RESOLVIDO
  4. ShadowDLL

    [ Resolvido ] Falha ao retornar dados com PDO

    Vamos lá, Primeiro, antes de lhe mostrar um exemplo, poderia enviar o código onde você seleciona o item que deseja fazer o download?
  5. ShadowDLL

    [ Resolvido ] Falha ao retornar dados com PDO

    Este erro ira ocorrer porque, muito provavelmente, você está tentando fazer o Download do Arquivo via Ajax, e até onde sei, isso é impossível... Não seria mais fácil você apenas "redirecionar o usuário" passando o ID do conteúdo como um parâmetro GET? Segue exemplo para melhor compreensão: CÓDIGO [ INDEX.PHP ] <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title> TESTE </title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" /> </head> <body> <div class="container"> <table class="table"> <thead> <tr> <th># ID</th> <th># FILE</th> <th>#</th> </tr> </thead> <tbody> <?php $conn = new PDO ('mysql:host=localhost;dbname=onteach', 'root', 'root'); $conteudo = $conn->prepare("SELECT * FROM conteudo"); $conteudo->execute(); while ($key = $conteudo->fetch(PDO::FETCH_OBJ)):?> <tr> <td><?= $key->idConteudo ?></td> <td><?= $key->arquivo ?></td> <td> <a href="download.php?id=<?= $key->conteudo_video ?>" class="btn btn-danger"> DOWNLOAD </a> </td> </tr> <?php endwhile; ?> </tbody> </table> </div> </body> </html> CÓDIGO [ DOWNLOAD.PHP ] <?php //se não tiver o parametro, mata a aplicação. if (isset($_GET['id'])) { $codigo_video = $_GET['id']; } //Aqui está um exemplo simples de como fazer uma conexão PDO $host = 'localhost'; $db = 'onteach'; $user = 'root'; $pass = 'root'; $charset = 'utf8mb4'; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; try { $pdo = new PDO($dsn, $user, $pass); } catch (PDOException $e) { throw new PDOException($e->getMessage(), (int)$e->getCode()); } //$pdoQuery = $pdo->query("SELECT conteudo.arquivo FROM conteudo WHERE conteudo.conteudo_video = '{$codigo_video}'"); try { $ready = $pdo->prepare("SELECT conteudo.arquivo FROM conteudo WHERE conteudo.conteudo_video = :codigo_video"); $ready->bindParam(':codigo_video', $codigo_video); $ready->execute(); } catch(PDOException $e) { echo $e->getMessage(); } while ($rs = $ready->fetch(PDO::FETCH_ASSOC)) { $local = 'upload/'; $local_arquivo = $local.$rs['arquivo']; if (file_exists($local_arquivo)) { header('Content-type: octet/stream'); // Indica o nome do arquivo como será "baixado". Você pode modificar e colocar qualquer nome de arquivo header('Content-disposition: attachment; filename="'.$rs['arquivo'].'";'); // Indica ao navegador qual é o tamanho do arquivo header('Content-Length: '.filesize($local_arquivo)); // Busca todo o arquivo e joga o seu conteúdo para que possa ser baixado readfile($local_arquivo); } else { echo "Arquivo nao existe!"; } } Vale a pena ressaltar que os códigos acima são apenas exemplos, sendo assim, podendo existir abordagens melhores que as utilizadas...
  6. Desculpe-me pelo inconveniente, tente agora: CÓDIGO: public function update($dados) { if (trim($dados['capa']) === "") { $dados['capa'] = null; } $update = $conn->prepare("UPDATE posts SET capa = IF(capa IS NULL, :capa, capa), titulo = :titulo, texto = :texto WHERE id = :id"); $update->bindValue(":id", $dados['id']); $update->bindValue(":capa", $dados['capa']); $update->bindValue(":titulo", $dados['titulo']); $update->bindValue(":texto", $dados['texto']); $update->execute(); }
  7. Segue solução, abaixo: CÓDIGO: public function update($dados) { $this->db->query("UPDATE posts SET capa = :capa, titulo = :titulo, texto = :texto WHERE id = :id AND capa IS NULL"); $this->db->bind(":id", $dados['id']); $this->db->bind(":capa", $dados['capa']); $this->db->bind(":titulo", $dados['titulo']); $this->db->bind(":texto", $dados['texto']); }
  8. ShadowDLL

    [ Resolvido ] Falha ao retornar dados com PDO

    O "problema" foi um pouco mais "fundo", contudo, implementando as orientações de @André Severino, segue, abaixo, possível solução: CÓDIGO: <?php //se não tiver o parametro, mata a aplicação. if (isset($_POST['codigo_video'])) { $codigo_video = $_POST['codigo_video']; } //Aqui está um exemplo simples de como fazer uma conexão PDO $host = 'localhost'; $db = 'onteach'; $user = 'root'; $pass = 'root'; $charset = 'utf8mb4'; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; try { $pdo = new PDO($dsn, $user, $pass); } catch (PDOException $e) { throw new PDOException($e->getMessage(), (int)$e->getCode()); } //$pdoQuery = $pdo->query("SELECT conteudo.arquivo FROM conteudo WHERE conteudo.conteudo_video = '{$codigo_video}'"); try { $ready = $pdo->prepare("SELECT conteudo.arquivo FROM conteudo WHERE conteudo.conteudo_video = :codigo_video"); $ready->bindParam(':codigo_video', $codigo_video); $ready->execute(); } catch(PDOException $e) { echo $e->getMessage(); } while ($rs = $ready->fetch(PDO::FETCH_ASSOC)) { $local = 'upload/'; $local_arquivo = $local.$rs['arquivo']; if (file_exists($local_arquivo)) { header('Content-type: octet/stream'); // Indica o nome do arquivo como será "baixado". Você pode modificar e colocar qualquer nome de arquivo header('Content-disposition: attachment; filename="'.$rs['arquivo'].'";'); // Indica ao navegador qual é o tamanho do arquivo header('Content-Length: '.filesize($local_arquivo)); // Busca todo o arquivo e joga o seu conteúdo para que possa ser baixado readfile($local_arquivo); } else { echo "Arquivo nao existe!"; } }
  9. ShadowDLL

    Upload de arquivo de áudio

    Poderia me informar o tamanho do áudio que está tentando subir? Ambos os códigos aqui estão funcionando, então acredito eu que o tamanho do áudio que você está tentando subir passa o limite. Tente fazer o seguinte, abra o arquivo php.ini, e altere as linhas de acordo com os valores abaixo: memory_limit = 128M max_execution_time = 300 upload_max_filesize = 20M post_max_size = 24M TESTE: <?php if ($_POST) { if ( $_POST['titulo'] !== "" && $_POST['texto'] !== "" && $_POST['padre'] !== "" && $_POST['data'] !== "" && $_FILES['audio']['name'] !== "" && $_FILES['foto']['name'] !== "" ) { $titulo = $_POST['titulo']; $texto = $_POST['texto']; $padre = $_POST['padre']; $audio = $_FILES['audio']; $imagem = $_FILES['foto']; $data = date('Y-m-d', strtotime($_POST['data'])); if (preg_match("/^image\/(pjpeg|jpeg|png|jpg|gif|bmp)$/", $imagem['type'])) { if (preg_match("/^audio\/(mp3|MP3)$/", $audio['type'])) { preg_match ("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $imagem['name'], $ext); $dd = date('msdYiH'); $imagem_nome = $dd. "." . $ext[1]; $imagem_dir = "../am/" . $imagem_nome; preg_match ("/\.(mp3|MP3|wav|wma){1}$/i", $audio['name'], $ext); $dd = date('msdYiH'); $audio_nome = $dd. "." . $ext[1]; $audio_dir = "../am/" . $audio_nome; if ( @move_uploaded_file($imagem["tmp_name"], $imagem_dir) && @move_uploaded_file($audio["tmp_name"], $audio_dir) ) { $sql = utf8_decode("INSERT INTO palavra (titulo, foto, data, audio, texto, padre) VALUES ('$titulo','$imagem_nome','$data','$audio_nome', '$texto', '$padre')"); if ($conn->query($sql) === TRUE) { echo "<script>alert(\"Cadastro realizado com sucesso.\");</script>"; } else { echo "Erro: " . $sql . "<br />" .$conn->error; } } else { echo "<script>alert(\"Falha ao enviar arquivo.\");</script>"; } } else { echo "<script>alert('Arquivo em formato inválido! erro no upload do audio. Cadastro não foi realizado.');</script>"; } } else { echo "<script>alert(\"Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Cadastro não foi realizado.\");</script>"; } } else { echo "<script>alert(\"Preencha todos os campos.\");</script>"; } echo "<script>window.location=\"palavra.php\";</script>"; } ?> <form method="post" enctype="multipart/form-data"> <span>Texto</span><br> <input type="text" name="texto"><br> <span>Titulo</span><br> <input type="text" name="titulo"><br> <span>Padre</span><br> <input type="text" name="padre"><br> <span>Data</span><br> <input type="text" name="data" value="20/03/2020"><br> <span>Audio</span><br> <input type="file" name="audio"><br> <span>Foto</span><br> <input type="file" name="foto"><br><br> <button type="submit">Enviar</button> </form>
  10. ShadowDLL

    Listar registros através de páginas em PHP

    Segue link que pode ser útil: LINK: https://www.gigasystems.com.br/artigo/12/paginacao-de-resultados-com-php-pdo-e-mysql
  11. ShadowDLL

    Upload de arquivo de áudio

    Tente assim: CÓDIGO: <?php if ($_POST) { if ( $_POST['titulo'] !== "" && $_POST['texto'] !== "" && $_POST['padre'] !== "" && $_POST['data'] !== "" && $_FILES['audio']['name'] !== "" && $_FILES['foto']['name'] !== "" ) { $titulo = $_POST['titulo']; $texto = $_POST['texto']; $padre = $_POST['padre']; $audio = $_FILES['audio']; $imagem = $_FILES['foto']; $data = date('Y-m-d', strtotime($_POST['data'])); if (preg_match("/^image\/(pjpeg|jpeg|png|jpg|gif|bmp)$/", $imagem['type'])) { if (preg_match("/^audio\/(mp3|MP3)$/", $audio['type'])) { preg_match ("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $imagem['name'], $ext); $dd = date('msdYiH'); $imagem_nome = $dd. "." . $ext[1]; $imagem_dir = "../am/" . $imagem_nome; preg_match ("/\.(mp3|MP3|wav|wma){1}$/i", $audio['name'], $ext); $dd = date('msdYiH'); $audio_nome = $dd. "." . $ext[1]; $audio_dir = "../am/" . $audio_nome; if ( @move_uploaded_file($imagem["tmp_name"], $imagem_dir) && @move_uploaded_file($audio["tmp_name"], $audio_dir) ) { $sql = utf8_decode("INSERT INTO palavra (titulo, foto, data, audio, texto, padre) VALUES ('$titulo','$imagem_nome','$data','$audio_nome', '$texto', '$padre')"); if ($conn->query($sql) === TRUE) { echo "<script>alert(\"Cadastro realizado com sucesso.\");</script>"; } else { echo "Erro: " . $sql . "<br />" .$conn->error; } } else { echo "<script>alert(\"Falha ao enviar arquivo.\");</script>"; } } else { echo "<script>alert('Arquivo em formato inválido! erro no upload do audio. Cadastro não foi realizado.');</script>"; } } else { echo "<script>alert(\"Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Cadastro não foi realizado.\");</script>"; } } else { echo "<script>alert(\"Preencha todos os campos.\");</script>"; } echo "<script>window.location=\"palavra.php\";</script>"; } ?>
  12. ShadowDLL

    passar dados da pesquisa no banco para html

    Você poderia utilizar Ajax para realizar a busca, e após o mesmo, inserindo o resultado na página html utilizando a função append(). Segue links úteis: http://devfuria.com.br/javascript/ajax-php-jquery/ https://www.devmedia.com.br/ajax-com-jquery-trabalhando-com-requisicoes-assincronas/37141 https://api.jquery.com/append/
  13. ShadowDLL

    Upload de arquivo de áudio

    Provavelmente o erro está ocorrendo porque você está armazenando os dados vindos do formulário sem antes realizar qualquer tipo de "validação" nos mesmos... Tente fazer assim: <?php if ($_POST) { if ( $_POST['titulo'] !== "" && $_POST['texto'] !== "" && $_POST['padre'] !== "" && $_POST['data'] !== "" ) { $titulo = $_POST['titulo']; $texto = $_POST['texto']; $padre = $_POST['padre']; $data = date("Y-m-d", strtotime($_POST['data'])); $audio = ($_FILES['audio']['name'] !== "") ? $_FILES['audio'] : FALSE; $arquivo = ($_FILES['foto']['name'] !== "") ? $_FILES['foto'] : FALSE; if ($arquivo && $audio) { if (!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $arquivo["type"])) { echo utf8_encode("<script> alert ('Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Cadastro não foi realizado.');</script>"); } if (!preg_match("/^audio\/(mp3|MP3)$/", $audio["type"])) { echo utf8_encode("<script> alert ('Arquivo em formato inválido! erro no upload do audio. Cadastro não foi realizado.');</script>"); } else { preg_match ("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext); $dd = date("msdYiH"); $imagem_nome = $dd. "." . $ext[1]; $imagem_dir = "../am/" . $imagem_nome; preg_match ("/\.(mp3|MP3|wav|wma){1}$/i", $audio["name"], $ext); $dd = date("msdYiH"); $audio_nome = $dd. "." . $ext[1]; $audio_dir = "../am/" . $audio_nome; if ( @move_uploaded_file($arquivo["tmp_name"], $imagem_dir) && @move_uploaded_file($audio["tmp_name"], $audio_dir) ) { $sql = utf8_decode("INSERT INTO palavra (titulo, foto, data, audio, texto, padre) VALUES ('$titulo','$imagem_nome','$data','$audio_nome', '$texto', '$padre')"); if ($conn->query($sql) === TRUE) { echo utf8_encode("<script> alert (\"Cadastro realizado com sucesso.\");</script>"); } else { echo "Erro: " . $sql . "<br />" .$conn->error; } } else { echo utf8_encode("<script> alert (\"Falha ao enviar arquivo.\");</script>"); } } } else { echo utf8_encode("<script> alert ('Selecione os arquivos.');</script>"); } } else { echo utf8_encode("<script> alert (\"Cadastro realizado com sucesso.\");</script>"); } echo utf8_encode('<script>window.location="palavra.php";</script>'); } ?> Alias, organizei algumas coisas em teu código também, basta testar.
  14. ShadowDLL

    Onde estou errando? colocar variavel no php/mysql

    Provavelmente você está errando nas "instruções", pois você está confundindo INSERT com UPDATE. Para entender melhor, Recomendo a leitura dos artigos, abaixo: Comandos básicos do MySQL (Insert, Delete, Update e Select) MySQL Tutorial
×

Important Information

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