-
Total de itens
386 -
Registro em
-
Última visita
Reputação
2 ComumSobre ShadowDLL
- Data de Nascimento 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
-
Skype
DZ_MTv
- Github
Últimos Visitantes
4910 visualizações
-
ShadowDLL começou a seguir Onde estou errando? colocar variavel no php/mysql, Como fazer relatorio, Cadastro de usuário + validação e e 5 outros
-
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
-
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.
-
[ Resolvido ] Falha ao retornar dados com PDO
ShadowDLL respondeu ao tópico de Matheus B. Siqueira em PHP
# RESOLVIDO -
[ Resolvido ] Falha ao retornar dados com PDO
ShadowDLL respondeu ao tópico de Matheus B. Siqueira em PHP
Vamos lá, Primeiro, antes de lhe mostrar um exemplo, poderia enviar o código onde você seleciona o item que deseja fazer o download? -
[ Resolvido ] Falha ao retornar dados com PDO
ShadowDLL respondeu ao tópico de Matheus B. Siqueira em PHP
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... -
Tem como fazer upload sem alterar o campo no banco se existir algum valor?
ShadowDLL respondeu ao tópico de unset em PHP
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(); } -
Tem como fazer upload sem alterar o campo no banco se existir algum valor?
ShadowDLL respondeu ao tópico de unset em PHP
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']); } -
[ Resolvido ] Falha ao retornar dados com PDO
ShadowDLL respondeu ao tópico de Matheus B. Siqueira em PHP
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!"; } } -
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>
-
Listar registros através de páginas em PHP
ShadowDLL respondeu ao tópico de Alberto Nascimento em PHP
Segue link que pode ser útil: LINK: https://www.gigasystems.com.br/artigo/12/paginacao-de-resultados-com-php-pdo-e-mysql -
Disponível ;)
-
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>"; } ?>
-
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/
-
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.
-
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