Jump to content

ShadowDLL

Members
  • Content count

    385
  • 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

2480 profile views
  1. 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.
  2. ShadowDLL

    [ Resolvido ] Falha ao retornar dados com PDO

    # RESOLVIDO
  3. 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?
  4. 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...
  5. 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(); }
  6. 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']); }
  7. 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!"; } }
  8. 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>
  9. 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
  10. 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>"; } ?>
  11. 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/
  12. 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.
  13. 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
  14. ShadowDLL

    Pegando valor de API

    Provavelmente o mesmo está ocorrendo porque você está tentando usar variáveis que só serão criadas caso o arquivo cointrade exista... Tente fazer algo assim então: CÓDIGO: <?php $cache_cointrade = 'cointrade'; if (file_exists($cache_cointrade)) { if (time() - filemtime($cache_cointrade) > $cachetime) { $cache = file_get_contents("https://api.cointradecx.com/public/ticker?market=BTC_BRL"); file_put_contents($cache_cointrade, $cache); $json_cointrade = file_get_contents($cache_cointrade); } else { $json_cointrade = file_get_contents($cache_cointrade); } $data_coin_trade = json_decode($json_cointrade, true); $cointrade_price = $data_coin_trade['result'][0]['last']; $cointrade_volume = $data_coin_trade['result'][0]['vol24h']; $varcointrade = $cointrade_price * $cointrade_volume; echo "<pre>"; var_dump($data_coin_trade); var_dump($cointrade_price); var_dump($cointrade_volume); var_dump($varcointrade); } else { echo "O arquivo não existe!"; }
×

Important Information

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