Pesquisar na Comunidade
Mostrando resultados para as tags ''pdo''.
Encontrado 48 registros
-
Venho a baixo depois de muitas pesquisas nos foruns, etc. juntando um script aqui outro ali, e fui montando o sistema que esta funcionando 100%, mas gostaria da ajuda dos senhores mais experientes com a melhoria do mesmo sendo assim decidi postar ele completo pra voces. para ver funcionando e testar.. USANDO PHP 7 e PDO e mysqli... obs. tem um sistema de login tb. pra proteger um pouco de curiosos.. Ola.. baixei a versao online limpei o banco de dados, e modifiquei os arquivos de conexao pra conexao local. usando o Xamp crie o banco de dados polo, carregue o arquivo polo.sql que ele vai criar as tabelas login: adm@adm.com senha: 123 qualquer alteração que fizer por favor poste aqui pra galera ok. novo link de download.. https://drive.google.com/drive/folders/1b4eWmDi1bw5YxUuQnEvIZqqOsj9Zbmvp?usp=sharing
-
Boa tarde, amigos. Estou criando um sisteminha simples de login. Consigo cadastrar o usuário, e tudo funciona salvando a senha crua no banco de dados. Mas quando tento usar hash para criptografar, ela salva criptografada no BD, mas na hora do login, dá senha inváilda. Alguém pode me ajudar com os códigos? Página inserir novo usuário: <?php include_once 'connect.php'; ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta name="viewport" content-"width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Cadastro de Usuário</title> <style> body{font-family: Arial, Helvetica, sans-serif} .content{display:flex;justify-content: center} .contato{width:100%; max-width: 500px;} .form{display: flex; flex-direction: column} .field{padding:10px; margin-bottom:15px; border:1px solid #DDD; border-radius: 5px; font-family: Arial, Helvetica, sans-serif; font-size: 16px} .field2{padding:10px; margin-bottom:15px; border:1px solid #ADD8E6; background-color:#ADD8E6; border-radius: 5px; font-family: Arial, Helvetica, sans-serif; font-size: 16px} .field2:hover{padding:10px; margin-bottom:15px; border:1px solid #87CEFA; background-color:#87CEFA; border-radius: 5px; font-family: Arial, Helvetica, sans-serif; font-size: 16px; font-weight:bold;} </style> <script> function confereSenha(){ const senha = document.querySelector('input[name=senha]'); const confirma_senha = document.querySelector('input[name=confirma_senha'); if (confirma_senha.value === senha.value) { confirma_senha.setCustomValidity(''); } else { confirma_senha.setCustomValidity('As senhas digitadas não conferem! Elas precisam ser iguais.'); } } </script> </head> <body> <section class="content"> <div class="contato"> <h2>Cadastro</h2> Por favor, preencha todos os dados para criar um novo usuário.<br><br> <?php $dados = filter_input_array(INPUT_POST, FILTER_DEFAULT); if (!empty($dados['CadUsuario'])) { var_dump($dados['senha']); $query_usuario = "INSERT INTO usuario (nome, email, senha, situacoe_id, niveis_acesso_id, created, modified) VALUES (:nome, :email, :senha, :situacoe_id, :niveis_acesso_id, :created, :modified)"; $cad_usuario = $conn->prepare($query_usuario); $cad_usuario->bindParam(':nome', $dados['nome'], PDO::PARAM_STR); $cad_usuario->bindParam(':email', $dados['email'], PDO::PARAM_STR); $cad_usuario->bindParam(':senha', password_hash($dados['senha'], PASSWORD_BCRYPT,['cost=>12'])); $cad_usuario->bindParam(':situacoe_id', $dados['situacoe_id'], PDO::PARAM_STR); $cad_usuario->bindParam(':niveis_acesso_id', $dados['niveis_acesso_id'], PDO::PARAM_STR); $cad_usuario->bindParam(':created', $dados['created'], PDO::PARAM_STR); $cad_usuario->bindParam(':modified', $dados['modified'], PDO::PARAM_STR); $cad_usuario->execute(); if($cad_usuario->rowCount()){ echo "<p style='color: green;'>Usuário cadastrado com sucesso!</p>"; }else{ echo "<p style='color: #ff0000;'>Erro ao cadastrar usuário!</p>"; }} ?> <form name="cad_usu" class="form" method="POST" action=""> <input class="field" name="nome" placeholder="Nome" required> <input class="field" type="email" name="email" placeholder="E-mail" required> <input class="field" type="password" name="senha" placeholder="Senha" required onchange='confereSenha();'> <input class="field" type="password" name="confirma_senha" placeholder="Confirmar Senha" required onchange='confereSenha();'> <input type="hidden" name="situacoe_id" value="1"> <input type="hidden" name="niveis_acesso_id" value="1"> <input type="hidden" name="created" value='<?php echo date("Y-m-d H:i:s"); ?>'> <input type="hidden" name="modified" value='<?php echo date("Y-m-d H:i:s"); ?>'> <input class="field2" type="submit" name="CadUsuario" value="Cadastrar Usuário"> <input class="field2" type="reset" value="Limpar Formulário"> </form> </div> </section> </div> </body> </html> Código de login: <?php session_start(); include_once 'connect.php'; ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta name="viewport" content-"width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Cadastro de Usuário</title> <style> body{font-family: Arial, Helvetica, sans-serif} .content{display:flex;justify-content: center} .contato{width:100%; max-width: 500px;} .form{display: flex; flex-direction: column} .field{padding:10px; margin-bottom:15px; border:1px solid #DDD; border-radius: 5px; font-family: Arial, Helvetica, sans-serif; font-size: 16px} .field2{padding:10px; margin-bottom:15px; border:1px solid #ADD8E6; background-color:#ADD8E6; border-radius: 5px; font-family: Arial, Helvetica, sans-serif; font-size: 16px} .field2:hover{padding:10px; margin-bottom:15px; border:1px solid #87CEFA; background-color:#87CEFA; border-radius: 5px; font-family: Arial, Helvetica, sans-serif; font-size: 16px; font-weight:bold;} </style> </head> <body> <section class="content"> <div class="contato"> <h2>Login</h2> Por favor, entre com o e-mail e a senha cadastrados.<br><br> <?php $dados = filter_input_array(INPUT_POST,FILTER_DEFAULT); if(!empty($dados['SendLogin'])){ $query_usuario = "SELECT id, nome, email, senha FROM usuario WHERE email =:email AND senha =:senha LIMIT 1"; $result_usuario = $conn->prepare($query_usuario); $result_usuario->bindParam(':email', $dados['email']); $result_usuario->bindParam(':senha', password_hash($dados['senha'], PASSWORD_BCRYPT,['cost=>12'])); $result_usuario->execute(); if(($result_usuario) AND ($result_usuario->rowCount() !=0)){ $row_usuario = $result_usuario->fetch(PDO::FETCH_ASSOC); if($dados['senha'] == $row_usuario['senha']) { $_SESSION['id'] = $row_usuario['id']; $_SESSION['nome'] = $row_usuario['nome']; header("Location: painel.php"); }else{ $_SESSION['msg'] = "<p style='color: red'>Erro: Usuário e/ou senha inválidos!</p>"; } }else{ $_SESSION['msg'] = "<p style='color: red'>Erro: Usuário e/ou senha inválidos!</p>"; } } if(isset($_SESSION['msg'])){ echo $_SESSION['msg']; unset($_SESSION['msg']); } ?> <form name="cad_usu" class="form" method="POST" action=""> <input class="field" type="email" name="email" placeholder="E-mail" required> <input class="field" type="password" name="senha" placeholder="Senha" required> <input class="field2" type="submit" name="SendLogin" value="Entrar no Sistema"> <input class="field2" type="reset" value="Limpar Formulário"> </form> </div> </section> </div> </body> </html>
-
Boa tarde! Sou novo aqui, gostaria de saber como faço para mostrar uma mensagem para o usuário enquanto os dados estiverem sendo salvos. Por exemplo, estou inserindo em uma tabela que faz cálculos e salvando 15000 dados diferente no banco, mas gostaria de mostrar para o usuário aguardar enquanto os dados estão sendo salvos, e logo após salvar os dados, que os mesmos foram salvos. Utilizo conexao com banco de dados em PDO. $db = "mysql"; $host = "localhost"; $user = "root"; $pass = ""; $dbname = "calculos"; $connect; try { $connect = new PDO($db . ':host=' . $host . ';dbname=' . $dbname, $user, $pass); } catch (Exception $ex) { die('Erro Não Há Conexão!'); } $query_numeros = "INSERT INTO calculos (um, dois, ...) VALUES ( :um, :dois, ...)"; $result_numeros = $connect->prepare($query_numeros); $result_numeros->bindParam(':um', $valor1, PDO::PARAM_INT); $result_numeros->bindParam(':dois', $valor2, PDO::PARAM_INT); ... $result_numeros->execute(); obrigado pela ajuda
-
Olá amigos, tenho uma página "usuarios" com uma tabela que me retorna todos os registros do banco de dados: ID - NOME - ENDEREÇO - TELEFONE - EMAIL - etc. na última coluna dessa tabela, coloquei dois links, um para "editar", outro para "excluir". E nos links fiz assim: <a href="usu_editar.php?<?php echo $row['id']?>">Editar</a><br> <a href="usu_excluir.php?<?php echo $row['id']?>">Excluir</a> Assim, quando clico, por exemplo, em "excluir" o registro com a id 5, ele chama o link "paginas/usu_delete.php?5 Agora estou criando a página usu_delete.php, que vai apagar esse registro. Pois bem, nessa página coloquei uma variável $id = ; E aqui está o meu problema. O que coloco depois da igualdade para que essa variável receba a id "5" lá da página "usuários", onde cliquei? Consegui, faltou pesquisar um pouco mais... fiz com $url = $_SERVER['QUERY_STRING']; Obrigado Consegui. Faltou pesquisar um pouco mais fiz com $url = $_SERVER['QUERY_STRING'];
-
Amigos, estou criando um sistema de login com PHP e PDO. Já revirei de ponta a ponta o código. Ele está lendo o BD, porque quando tento cadastrar um e-mail já cadastrado, ele retorna o echo "email já cadastrado". Então, tudo indica que está conectando, mas quando tento cadastrar um novo, ele retorna echo "cadastro realizado com sucesso", mas não grava nada. Vou no BD, e não está lá. Vou postar o código. Se alguém puder dar uma força para encontrar o erro... abraços e muito obrigado. Minha página de Cadastro: <?php require_once 'classes/usuarios.php'; $u = new Usuario; ?> <htm lang="pt-br"> <head> <meta charset="utf-8"> <title>SGI - CADASTRO DE USUÁRIO</title> <link rel="stylesheet" href="css/stilo.css"> <body> <div id="corpo-form"> <h2>SGI - CADASTRO DE USUÁRIO</h2> <form method="POST"> <input type="text" name="nome" placeholder="Nome Completo" maxlength="220"> <input type="email" name="email" placeholder="Usuário" maxlength="520"> <input type="password" name="senha" placeholder="Senha"maxlength="12"> <input type="password" name="confsenha" placeholder="Confirmar Senha"> <input type="submit" name="postar" value="INSERIR"> </form> </div> <?php if(isset($_POST['postar'])) { $nome = addslashes($_POST['nome']); $email = addslashes($_POST['email']); $senha = addslashes($_POST['senha']); $confsenha = addslashes($_POST['confsenha']); if(!empty($nome) && !empty($email) && !empty($senha) && !empty($confsenha)) { $u->conectar("nome_do_meu_BD","localhost","usuario_do_meu_BD","senha_do_meu_BD"); if($u->msgErro == "") { if($senha == $confsenha){ if($u->cadastrar($nome, $email, $senha)) { echo "Cadastro realizado com sucesso!"; } else { echo "Email já cadastrado no sistema!"; } } else { echo "Senhas digitadas não correspondem."; } } else { echo "Erro:" .$u->msgErro; } } else { echo "Por favor, preencha todos os campos."; } } ?> </body> </head> </html> Classes de Usuário: <?php Class Usuario { private $pdo; public $msgErro = ""; public function conectar($nome, $host, $usuario, $senha) { global $pdo; try { $dsn = 'mysql:host=' . $host . '; dbname=' . $nome; $options = [PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8']; $pdo = new PDO($dsn, $usuario, $senha, $options); } catch(PDOException $e) { $msgErro = $e->getMessage(); } } public function cadastrar($nome, $email, $senha, $situacoe_id, $niveis_acesso_id, $created, $modified) { global $pdo; $sql = $pdo->prepare("SELECT id FROM usuarios WHERE email = :e"); $sql->bindValue(":e",$email); $sql->execute(); if($sql->rowCount() > 0) { return false; } else { $created = date('d/m/y'); $modified = date('d/m/y'); $sql = $pdo->prepare("INSERT TO usuarios ($nome, $email, $senha, $situacoe_id, $niveis_acesso_id, $created, $modified) VALUES (:n, :a, :p, :s, :n, :c, :m)"); $sql->bindValue(":n",$nome); $sql->bindValue(":a",$email); $sql->bindValue(":p",md5($senha)); $sql->bindValue(":s",1); $sql->bindValue(":n",1); $sql->bindValue(":c",$created); $sql->bindValue(":m",$modified); $sql->execute(); return true; } } public function logar($email, $senha) { global $pdo; $sql = $pdo->prepare("SELECT id FROM usuarios WHERE email = :e AND senha = :p"); $sql->bindValue(":e",$email); $sql->bindValue(":p",md5($senha)); $sql->execute(); if($sql->rowCont() > 0) { $dado = $sql->fetch(); session_start(); $_SESSION["id"] = $dado["id"]; return true; } else { return false; } } } ?>
-
Olá pessoal, queria saber se alguém tem um exemplo de script em PHP de perfil de usuário que contenha a foto do perfil, o nome e uma descrição do usuário... preciso colocar tudo isso no banco de dados também. Eu não tenho noção nenhuma de como fazer isso e não achei nenhum tutorial na internet. Agradeço a ajuda
-
Olá, sou novo aqui, tipo acabei de criar uma conta. E já quero perguntar como posso fazer um sistema de UPDATE e de DELETE com esse script aqui que peguei de um tutorial gringo colocarei aqui em baixo o script completo + o script de conexão ao banco de dados. Em relação a formulário, ta tudo de boas eu crio, o dilema mesmo é o código de cadastrar que quero usar como base para o de editar e o deletar, se alguém poder pegar esse código e modificar, e depois colocar aqui mostrando como fica, eu agradeço muito. Código de validação(o que quero usar para fazer o sistema de UPDATE e de DELETE) <?php $data = $_POST; session_start(); if (empty($data['nome']) || empty($data['sobrenome']) || empty($data['email']) || empty($data['senha']) || empty($data['repetirsenha'])) { $_SESSION['messages'] [] = 'Por Favor preencha todos os campos!'; header('Location: /create_account'); exit; } if ($data['senha'] !== $data['repetirsenha']) { $_SESSION['messages'] [] = 'As senhas não estão iguais!'; header('Location: /create_account'); exit; } require_once 'config.php'; $statement = $connection->prepare('SELECT * FROM users WHERE nome = :nome OR email = :email'); if($statement){ $statement->execute([ ':nome' => $data['nome'], ':email' => $data['email'], ]); $result = $statement->fetchAll(PDO::FETCH_ASSOC); if(!empty($result)){ $_SESSION['messages'][] = 'Este email já está cadastrado!'; header('Location: /create_account'); exit; } } $statement = $connection->prepare('INSERT INTO users(nome, sobrenome, email, senha, repetirsenha) VALUES (:nome, :sobrenome, :email, :senha, :repetirsenha)'); if($statement){ $result = $statement->execute([ ':nome' => $data['nome'], ':sobrenome' => $data['sobrenome'], ':email' => $data['email'], ':senha' => $data['senha'], ':repetirsenha' => $data['repetirsenha'], ]); if($result){ $_SESSION['messages'] [] = 'Bem-Vindo Ao Aquinoflix, Agora você pode desfrutar de um vasto conteúdo de filmes e séries'; header('Location: /browser'); exit; } } ?> E aqui o que faz a conexão com o banco: <?php // Site link geral // connection with mysqli important! $dsn = 'mysql:dbname=install;host=localhost'; $user = 'root'; $password = ''; try{ $connection = new PDO($dsn, $user, $password); } catch(PDOException $exception){ $_SESSION['messages'] [] = 'Connection Failed: ' . $exception->getMessage(); header('Location: /index.php'); exit; } ?> Obrigado dede já quem poder ajudar
-
Olá, estou com uma dúvida já faz alguns dias e não conseguir resolver. Tenho Minhas URLamigável, e uma delas é para exibir o perfil dos usuário, mesmo que não esteja logado, outras pessoas conseguem acessar seu perfil igual o forum aqui! Exemplo Apenas quem está logado consegue acessar o /perfil/ www.meu-site.com.br/perfil/ Mesmo que não esteja logado consegue acessar o link abaixo e quem está logado também consiga acessar! www.meu-site.com.br/perfil/NickDoUsuario index.php <?php $url = (isset($_GET['url'])) ? $_GET['url'] : 'home'; $explode = array_filter(explode("/", $url)); $pags = 'pags/'; $verific_user = $pdo->prepare("SELECT * FROM users WHERE nickname_user = :nickname"); $verific_user->bindValue('nickname', $explode[0]); $verific_user->execute(); $perfil = false; if($verific_user->rowCount() == 1){ $perfil = true; $dados_perfil = $verific_user->fetchObject(); include_once "pags/perfil.php"; }elseif(file_exists($pags.$explode[0].'.php') && $explode[0] != 'perfil'){ include ($pags.$explode[0].'.php'); }else{ echo "<h2>Página Não encontrado!<h2>"; } ?> Na pasta 'pags' tenho o arquivo perfil.php, que vai exibi os dados do perfil que está logado! A forma (index.php) acima ela consegue fazer isso www.meu-site.com.br/NickDoUsuario Porém como faço para poder Exibi os resultados como mostrado acima? perfil.php <div class="perfil-container"> <div class="profile-perfil"> <div class="profile-user" style="background-image: url('https://images2.alphacoders.com/707/thumb-1920-707145.png') ;background-size: cover;"> <div class="perfil-content"> <div class="perfil-background"> <div class="perfil-photo"> <img src="images/profile-images/profile.jpg"> </div> <div class="profile-details"> <div class="profile-nickname"><span><!-- Nome do úsuario Aqui --></span></div> <div class="profile-descrition"><p><!-- Descrição aqui --></p></div> </div> </div> </div> </div> </div> </div> <div class="container"> <div class="container-perfil-content"> <div class="sidebar-profile"> <div class="profile-item"><a href="">Artigos Favoritos</a></div> <div class="profile-item"><a href="">Nóticia Favoritos</a></div> <div class="profile-item"><a href="">Recomendação</a></div> </div> <div class="main-profile"> <div class="favorite-profile"> <div class="favorite-content"> <a href=""> <div class="favorite-content-img"> <img src="images/ciencia.jpg"> <div class="rating-favorite"><span>14</span></div> <div class="favorite-details"> <div class="favorite-title-details"><span>ARTIGO 1</span></div> <div class="favorite-genero-details"><p>Gênero: Cientifico!</p></div> </div> </div> </a> </div> </div> </div> </div> </div>
- 1 resposta
-
- php
- url amigavel
-
(e %d mais)
Tags:
-
Olá! Gostaria de saber como passar essa parte que fiz em MySQLi para PDO, pois eu tenho pouco conhecimento sobre a temática. function selectAllPessoa(){ $banco = abrirBanco(); $sql = "SELECT * FROM tb_questoes WHERE disciplina_quest='$disciplina' AND etapa_quest='$etapa' AND capitulo_quest='$cap' ORDER BY RAND() LIMIT 20"; $resultado = $banco->query($sql); $banco->close(); while ($row = mysqli_fetch_array($resultado)) { $grupo[] = $row; } if (empty($grupo)) { echo ""; }else{ return $grupo; } }
-
Tenho um sistema de gerenciamento de conteúdo que utilizo no meu site de loja de carros, tem 3 tabelas que são dependentes, Loja, Carros e Carrosfotos. Quando cadastro uma Loja, adiciono um Carro e várias fotos desse carro, tudo em suas tabelas correspondentes, porém notei que o sistema não estava excluindo os registros em cascata, estavam ficando muito arquivos órfãos, ou seja, quando excluísse a loja, era pra excluir todos os carros daquela loja e todas as fotos dos carros, sendo assim fiquei com muito espaço perdido no servidor, então preciso excluir essas fotos. Pesquisei em alguns fóruns e não achei nada completo, somente fragmentos do que queria, então fui juntando as coisas e gostaria da opinião de vocês onde posso melhorar ou se estou fazendo de forma errada, segue o código: try{ //Caminho para pasta $path = "upload/imagens/carros/"; $diretorio = dir($path); //Faço uma leitura em toda pasta e adiciono cada arquivo no array $arquivos = array(); while ($file = $diretorio->read()) { if ($file != "." && $file != "..") { array_push($arquivos, $file); } } //Conexão com BD $conn = new PDO('mysql:host=localhost;dbname=minhaloja', 'user', 'senha'); //Seleciono todos os registros $stmt = $conn->prepare('SELECT `imagem` FROM `carrosfotos`'); $stmt->execute(array()); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); //Percorro o array e comparo com o BD se o arquivo encontrado está cadastrado foreach ($arquivos as $foto){ if (in_array($foto, array_column($result, 'imagem'))) { echo '<pre>'; echo 'A imagem'.$foto.' está cadastrada.'; echo '</pre>'; } else { unlink($path . $foto); } } } catch (PDOException $e) { echo 'ERRO: ' . $e->getMessage(); $diretorio->close(); }
-
Olá a todos, estou tendo um problema com os datatables aninhados, as child rows(detalhes), estão mostrando todos os dados, mas eu quero que cada informação permaneça em sua linha, alguém pode me ajudar? meu código abaixo e uma imagem pra ilustrar melhor ... link dos dois jsons que pego os dados jsonData.php: https://codebeautify.org/jsonvalidator/cb5bc515 jsonNota.php: https://codebeautify.org/jsonvalidator/cbd08a36 function format(table_id) { return '<hr/>' + '<table cellpadding="5" id="detalhes' + table_id + '" class="display" cellspacing="0" border="0" width="50%" style="padding-left:80px;">' + '<thead><tr><th>Cód. Nota:</th><th>Cód. Produto:</th><th>Descrição:</th><th>Quantidade:</th><th>R$ Unid.:</th><th>% IPI:</th><th>R$ IPI:</th><th>% Desc.:</th><th>R$ Desc.:</th><th>Desc. Unit.:</th><th>R$ Total:</th></tr></thead>' + '</table>' + '<hr/>'; } var iTableCounter = 1; var oInnerTable; $(document).ready(function() { TableHtml = $('#example').html(); var table = $('#example').DataTable({ "bProcessing": true, //"paging": false, //"searching": false, //"info": false, "rowId": 'NOTA', "ajax": { "url": 'forms/customer-details/jsonData.php', "type": 'POST', "data": { "idCustomer": <?php echo $idCustomer; ?> } }, "scrollX": true, "language": { "sUrl": "../plugins/datatables/Portuguese-Brasil.json" }, "aLengthMenu": [[10, 20, 30, 50, -1], [10, 20, 30, 50, "Todos"]], "aoColumns": [ { "class": 'details-control', "orderable": false, "data": null, "defaultContent": '' }, {"mData": "NOTA"}, {"mData": "NRO_NOTA"}, {"mData": "EMISSAO", render: function(data, type, row) { var dateSplit = data.split('-'); return type === "display" || type === "filter" ? dateSplit[1] + '/' + dateSplit[2] + '/' + dateSplit[0] : data; } }, {"mData": "QUANTIDADE1", render: $.fn.dataTable.render.number()}, {"mData": "BRUTO", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "VALOR_DESCONTO1", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "TOTAL1", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "VALOR_IPI1", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "VALOR_SUBST", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "TOTAL_NF", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "PRECO_MEDIO", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "REPRES_NOME"}, {"mData": "VENDEDOR_NOME"}, {"mData": "OP_NOME"}, {"mData": "FRANQUEADO_NOME"}, {"mData": "CARTEIRA"}, {"mData": "TRANSP_NOME"}, {"mData": "RASTREAMENTO_CORREIO"}, {"mData": "CONHECIMENTO"}, {"mData": "VALOR_FRETE", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "PERCENTUAL", render: $.fn.dataTable.render.number('.', ',', 2, '% ')}, {"mData": "DESCRICAO"}, {"mData": "DATA_OCORRENCIA"} ], "order": [[1, "desc"]] }); $('#example tbody').on('click', 'td.details-control', function() { var tr = $(this).closest('tr'); var row = table.row(tr); if (row.child.isShown()) { row.child.hide(); tr.removeClass('shown'); } else { row.child(format(iTableCounter)).show(); tr.addClass('shown'); oInnerTable = $('#detalhes' + iTableCounter).DataTable({ "bProcessing": true, "ajax": { "url": 'forms/customer-details/jsonNota.php', "type": 'POST', "data": { "idCustomer": <?php echo $idCustomer; ?> } }, "autoWidth": true, //"deferRender": true, "info": false, //"lengthChange": false, //"ordering": false, //"paging": false, //"scrollX": false, //scrollY": false, "searching": false, "language": { "sUrl": "../plugins/datatables/Portuguese-Brasil.json" }, "aLengthMenu": [[10, 20, 30, 50, -1], [10, 20, 30, 50, "Todos"]], "aoColumns": [ {"mData": "NOTA"}, {"mData": "COD_PRODUTO"}, {"mData": "DESC_PROD"}, {"mData": "QUANTIDADE", render: $.fn.dataTable.render.number()}, {"mData": "UNITARIO", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "PCT_IPI", render: $.fn.dataTable.render.number('.', ',', 2, '% ')}, {"mData": "VALOR_IPI", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "DESCONTO", render: $.fn.dataTable.render.number('.', ',', 2, '% ')}, {"mData": "VALOR_DESCONTO", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "DESC_UNITARIO", render: $.fn.dataTable.render.number('.', ',', 2)}, {"mData": "TOTAL", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')} ], "order": [[0, "desc"], [1, "asc"]] }); iTableCounter = iTableCounter + 1; } }); });
-
Olá a todos, estou tendo um problema com os datatables aninhados, as child rows(detalhes), estão mostrando todos os dados, mas eu quero que cada informação permaneça em sua linha, alguém pode me ajudar? meu código abaixo e uma imagem pra ilustrar melhor ... link dos dois jsons que pego os dados jsonData.php: https://codebeautify.org/jsonvalidator/cb5bc515 function format(table_id) { return '<hr/>' + '<table cellpadding="5" id="detalhes' + table_id + '" class="display" cellspacing="0" border="0" width="50%" style="padding-left:80px;">' + '<thead><tr><th>Cód. Nota:</th><th>Cód. Produto:</th><th>Descrição:</th><th>Quantidade:</th><th>R$ Unid.:</th><th>% IPI:</th><th>R$ IPI:</th><th>% Desc.:</th><th>R$ Desc.:</th><th>Desc. Unit.:</th><th>R$ Total:</th></tr></thead>' + '</table>' + '<hr/>'; } var iTableCounter = 1; var oInnerTable; $(document).ready(function() { TableHtml = $('#example').html(); var table = $('#example').DataTable({ "bProcessing": true, //"paging": false, //"searching": false, //"info": false, "rowId": 'NOTA', "ajax": { "url": 'forms/customer-details/jsonData.php', "type": 'POST', "data": { "idCustomer": <?php echo $idCustomer; ?> } }, "scrollX": true, "language": { "sUrl": "../plugins/datatables/Portuguese-Brasil.json" }, "aLengthMenu": [[10, 20, 30, 50, -1], [10, 20, 30, 50, "Todos"]], "aoColumns": [ { "class": 'details-control', "orderable": false, "data": null, "defaultContent": '' }, {"mData": "NOTA"}, {"mData": "NRO_NOTA"}, {"mData": "EMISSAO", render: function(data, type, row) { var dateSplit = data.split('-'); return type === "display" || type === "filter" ? dateSplit[1] + '/' + dateSplit[2] + '/' + dateSplit[0] : data; } }, {"mData": "QUANTIDADE1", render: $.fn.dataTable.render.number()}, {"mData": "BRUTO", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "VALOR_DESCONTO1", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "TOTAL1", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "VALOR_IPI1", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "VALOR_SUBST", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "TOTAL_NF", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "PRECO_MEDIO", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "REPRES_NOME"}, {"mData": "VENDEDOR_NOME"}, {"mData": "OP_NOME"}, {"mData": "FRANQUEADO_NOME"}, {"mData": "CARTEIRA"}, {"mData": "TRANSP_NOME"}, {"mData": "RASTREAMENTO_CORREIO"}, {"mData": "CONHECIMENTO"}, {"mData": "VALOR_FRETE", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "PERCENTUAL", render: $.fn.dataTable.render.number('.', ',', 2, '% ')}, {"mData": "DESCRICAO"}, {"mData": "DATA_OCORRENCIA"} ], "order": [[1, "desc"]] }); $('#example tbody').on('click', 'td.details-control', function() { var tr = $(this).closest('tr'); var row = table.row(tr); if (row.child.isShown()) { row.child.hide(); tr.removeClass('shown'); } else { row.child(format(iTableCounter)).show(); tr.addClass('shown'); oInnerTable = $('#detalhes' + iTableCounter).DataTable({ "bProcessing": true, "ajax": { "url": 'forms/customer-details/jsonNota.php', "type": 'POST', "data": { "idCustomer": <?php echo $idCustomer; ?> } }, "autoWidth": true, //"deferRender": true, "info": false, //"lengthChange": false, //"ordering": false, //"paging": false, //"scrollX": false, //scrollY": false, "searching": false, "language": { "sUrl": "../plugins/datatables/Portuguese-Brasil.json" }, "aLengthMenu": [[10, 20, 30, 50, -1], [10, 20, 30, 50, "Todos"]], "aoColumns": [ {"mData": "NOTA"}, {"mData": "COD_PRODUTO"}, {"mData": "DESC_PROD"}, {"mData": "QUANTIDADE", render: $.fn.dataTable.render.number()}, {"mData": "UNITARIO", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "PCT_IPI", render: $.fn.dataTable.render.number('.', ',', 2, '% ')}, {"mData": "VALOR_IPI", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "DESCONTO", render: $.fn.dataTable.render.number('.', ',', 2, '% ')}, {"mData": "VALOR_DESCONTO", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')}, {"mData": "DESC_UNITARIO", render: $.fn.dataTable.render.number('.', ',', 2)}, {"mData": "TOTAL", render: $.fn.dataTable.render.number('.', ',', 2, 'R$ ')} ], "order": [[0, "desc"], [1, "asc"]] }); iTableCounter = iTableCounter + 1; } }); }); jsonNota.php: https://codebeautify.org/jsonvalidator/cbd08a36
-
CODIGO PHP: <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <title>ICM Social</title> <link href="https://fonts.googleapis.com/css?family=Titillium+Web:300,400,700" rel="stylesheet"> <link rel="stylesheet" href="_css/normalize.css"> <link rel="stylesheet" href="_css/style-signup.css"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> </head> <body> <div class="login-area"> <section> <span class="logo-image"> <center> <img src="_img/icm-logo.png" alt="ICM Social Logo" class="logo-img"> </center> </span> <form action="#" method="post"> <center> <id class="login"> <span class="entrar"> Entrar </span> <br> <input type="text" placeholder="Nome" name="nome" id="nome"> <br> <input type="email" placeholder="Email" name="email" id="email"> <br> <?php if(isset($_POST['criar'])){ if($emailCount == 0){ echo "<span style='color: white;'>Insira um email válido</span><br>"; } } ?> <input type="date" name="data" id="data" min="8"> <br> <input type="password" placeholder="Senha" id="senha" name="senha"> <br> <input type="password" placeholder="Repita a senha" id="senha" name="repitaSenha"> <br> <?php if(isset($_POST['criar'])){ if($senha != $repitaSenha){ echo "<br><span style='color: white;'>As senhas não estão iguais</span><br>"; $igual = false; } } ?> <input type="submit" name="criar" value="Criar" id="entrar"> </id> <br> <br> Já possui uma conta? <br> <span class="crie"><a href="">Logue-se agora</a></span> </center> </form> </section> </div> </body> </html> PHP(CONEXÃO): <?php try{ $pdo = new PDO("mysql:dbname=icmsocial;host=localhost", "root", ""); }catch(PDOException $e){ echo "Erro: " . $e -> getMessage(); } ?> PHP(PDO): <?php include 'mysql/connect.php'; if(isset($_POST['criar'])){ $nome = addslashes($_POST['nome']); $email = addslashes($_POST['email']); $data = addslashes($_POST['data']); $senha = addslashes($_POST['senha']); $repitaSenha = addslashes($_POST['repitaSenha']); $igual = false; if(isset($_POST['criar'])){ if($senha == $repitaSenha){ $pdo -> query("INSERT INTO usuarios VALUES nome='$nome', email='$email', data='$data', senha='$senha'"); echo "Cadastrado"; } } } ?>
-
Preciso de Ajuda. Tenho nos meus projetos a conexão desta forma: $conexao = new PDO('mysql:host=localhost;dbname=meubanco','meuuser','minhasenha'); Funciona Normal. Porem peguei um projeto que usa a conexão dentro de uma classe da seguinte forma: Classe: dbconn.php <?php class dbconn { public $dblocal; public function __construct() { } public function initDBO() { $this->dblocal = new PDO("mysql:host=localhost;dbname=meubanco;charset=latin1","meuuser","minhasenha",array(PDO::ATTR_PERSISTENT => true)); $this->dblocal->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); } } ?> Também funciona. Mas a tenho uma de minhas páginas que fazia acesso ao select fazendo referencia à conexão com o banco usando a variável $conexaõ da seguinte forma: <?php if(isset($_POST['logar'])) { $usuario=trim(strip_tags($_POST['usuario'])); $senha=trim(strip_tags($_POST['senha'])); $select = "SELECT * from tab_usuarios WHERE email=:usuario AND senha=:senha"; try { $result = $conexao->prepare($select); //$conexão vem do arquivo conexao.php ---Aqui gera o erro. Qual erro? A variavel $conexão não existe. Claro. Já era de se esperar... $result->bindParam(':usuario',$usuario, PDO::PARAM_STR); $result->bindParam(':senha',$senha, PDO::PARAM_STR); $result->execute(); ... //continua ?> Meu problema: No arquivo de Conexao com o banco agora está dentro de uma classe e não usa mais a variável $conexão. Em seu lugar está a psedo-variável $this. Sei que não basta apenas trocar a variável $conexao pela $this... O que fazer? devo mexer só nesta linha? tem mais coisa, tipo instanciar .... Não sei o que devo alterar ra isso continuar funcionando. Estou estudando aqui PDO | POO, lendo muito, vendo videos ..., mas preciso de ajuda com isso... $result = $conexao->prepare($select); Grata.
-
Criei um formulário para inserir dados no banco porem quando rodo o mesmo ele não insere os dados e também não mostra nenhum erro... estou tentando resolver esse problema a 3 dias se puder me ajudar ficarei muito grato. obs: estou tentando criar um organizador de arquivos para meu pc. Segue abaixo os codigos: conexao.php <?php $servidor = "localhost"; $usuario = "lvmoreira99"; $senha = "lvmoreira99"; $baseDados= "inventario"; try{ $pdo = new PDO("mysql:host=".$servidor.";dbname=".$baseDados,$usuario,$senha); }catch(PDOException $e){ echo $e->getMessage(); } return $pdo; if($pdo ->connect_error){ die("falha ao conectar khfdue::".$pdo ->connect_error); } echo "conexao realizada jeijfe"; ?> validar.php <?php require 'conexao.php'; $acao=$_GET['acao']; if($acao=="enviar"){ $titulo = $_POST['ti']; $ano = $_POST['an']; $genero = $_POST['ge']; $duracao = $_POST['du']; $tamanho = $_POST['ta']; $formato = $_POST['fo']; $codec_audio = $_POST['co']; $sinopse = $_POST['si']; //envia dados para banco de dados $enviarb = "INSERT INTO filmes (titulo,ano,genero,duracao,tamanho_GB,formato,codec_audio,sinopse) VALUES('','$titulo', '$ano', '$genero', '$duracao', '$tamanho', '$formato', '$codec_audio', '$sinopse')"; } if($pdo->query($enviarb)){ echo "dados gravados efwf"; }else { echo "Falha ao gravar hejhfe"; } ?> formulario.php <!doctype html> <html> <head> <meta charset="utf-8"> <title> Conection</title> </head> <body> <form action="validar.php?acao=enviar" method="POST"> <table border="0" align="center"> <tr> <td>Titulo</td><td><input type="text" name="ti" required autofocus/></td> </tr> <tr> <td>Ano</td><td><input type="text" name="an" required /></td> </tr> <tr> <td>Visto</td> <td> <input value="S"type="radio" name="vi" required />SIM <input value="N" type="radio" name="vi" required />NÃO </td> </tr> <tr> <td>Genero</td><td><input type="text" name="ge"/></td> </tr> <tr> <td>Duração</td><td><input type="text" name="du"/></td> </tr> <tr> <td>Tamanho em GB</td><td><input type="text" name="ta"/></td> </tr> <tr> <td>Formato</td><td><input type="text" name="fo"/></td> </tr> <tr> <td>Codec de Audio</td><td><input type="text" name="co"/></td> </tr> <tr> <td>Sinopse</td><td><input type="text" name="si"/></td> </tr> <td><input type="submit" value="Enviar"/></td> </table> </form> </body> </html>
-
Criei um formulário para inserir dados no banco porem quando rodo o mesmo ele não insere os dados e também não mostra nenhum erro... estou tentando resolver esse problema a 3 dias se puder me ajudar ficarei muito grato. obs: estou tentando criar um organizador de arquivos para meu pc. Segue abaixo os codigos: conexao.php <?php $servidor = "localhost"; $usuario = "lvmoreira99"; $senha = "lvmoreira99"; $baseDados= "inventario"; try{ $pdo = new PDO("mysql:host=".$servidor.";dbname=".$baseDados,$usuario,$senha); }catch(PDOException $e){ echo $e->getMessage(); } return $pdo; if($pdo ->connect_error){ die("falha ao conectar khfdue::".$pdo ->connect_error); } echo "conexao realizada jeijfe"; ?> validar.php <?php require 'conexao.php'; $acao=$_GET['acao']; if($acao=="enviar"){ $titulo = $_POST['ti']; $ano = $_POST['an']; $genero = $_POST['ge']; $duracao = $_POST['du']; $tamanho = $_POST['ta']; $formato = $_POST['fo']; $codec_audio = $_POST['co']; $sinopse = $_POST['si']; //envia dados para banco de dados $enviarb = "INSERT INTO filmes (titulo,ano,genero,duracao,tamanho_GB,formato,codec_audio,sinopse) VALUES('','$titulo', '$ano', '$genero', '$duracao', '$tamanho', '$formato', '$codec_audio', '$sinopse')"; } if($pdo->query($enviarb)){ echo "dados gravados efwf"; }else { echo "Falha ao gravar hejhfe"; } ?> formulario.php <!doctype html> <html> <head> <meta charset="utf-8"> <title> Conection</title> </head> <body> <form action="validar.php?acao=enviar" method="POST"> <table border="0" align="center"> <tr> <td>Titulo</td><td><input type="text" name="ti" required autofocus/></td> </tr> <tr> <td>Ano</td><td><input type="text" name="an" required /></td> </tr> <tr> <td>Visto</td> <td> <input value="S"type="radio" name="vi" required />SIM <input value="N" type="radio" name="vi" required />NÃO </td> </tr> <tr> <td>Genero</td><td><input type="text" name="ge"/></td> </tr> <tr> <td>Duração</td><td><input type="text" name="du"/></td> </tr> <tr> <td>Tamanho em GB</td><td><input type="text" name="ta"/></td> </tr> <tr> <td>Formato</td><td><input type="text" name="fo"/></td> </tr> <tr> <td>Codec de Audio</td><td><input type="text" name="co"/></td> </tr> <tr> <td>Sinopse</td><td><input type="text" name="si"/></td> </tr> <td><input type="submit" value="Enviar"/></td> </table> </form> </body> </html>
-
Boa noite, eu tenho um sistema de agendamento, porem eu conecto tudo certinho, está funcionando quase tudo certo, eu tenho dois botão, um +1 e um -1 que altera o valor de uma coluna no mysql, só que ela está em mysqli e eu gostaria de fazer em PDO, só que não estou conseguindo, alguém poderia me ajudar ? o codigo do botão +1 em mysqli <?php //inicia uma coneção com o banco de dados include"db2.php"; // pega o valor da variavel de identificação $id = $_GET['id']; $sql = "SELECT * FROM usuarios WHERE id='$id'"; $resultado = @mysql_query($sql) or die ("Não foi possível realizar a consulta ao banco de dados"); while ($line=mysql_fetch_array($resultado)) { $v1 = $line["v1"]; } //função de soma simples. $novoValor = $v1 + 1; //grava novo valor no banco. $gravar = mysql_query("UPDATE usuarios SET v1='$novoValor' WHERE id='$id'"); //retorna a pagina teste echo '<script type="text/javascript"> window.location="agen-pen.php"; </script>'; exit(); ?>
-
Olá Pessoal Boa tarde! Estou com um erro que não consigo identificar de jeito nenhum. Preciso realizar mais de uma consulta em classes diferentes em uma tela. O Meu problema está acontecendo quando a segunda consulta é executada, pois o e o Php retorna, Call to a member function prepare() on null por que o parâmetro de conexão que está em __construct está retornando null na segunda classe (peguei isso através de um var_dump) por isso que o "prepare" e consequentemente a consulta não funcionam. Queria saber o que estou fazendo de errado para não consegui consultar mais de uma classe na mesma tela. Estou usando PDO e banco mysql. Essa é a minha classe de conexão <?php // Classe que realiza a conexão com o banco de dados Class Conexao { private static $con; // Impede que a classe seja instanciada private function __construct() { } // Impede que a classe seja clonada private function __clone() { } //Impede a utilização do Unserialize (que a variavel retorne o array original) private function __wakeup() { } public static function getConexao() { if (!isset(self::$con)) { try{ // parametros de conexão $tipo = 'mysql:host=localhost;dbname=teste'; $user = 'root'; $senha = ''; self::$con = new PDO( $tipo, $user, $senha, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::ATTR_PERSISTENT => TRUE)); self::$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); self::$con->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_EMPTY_STRING); } catch ( PDOException $erro ){ echo $erro; // Encerrando a aplicação exit(); } return self::$con; } } // finalizando o getConexao protected function closeConexao() { if($this->con != null) $this->con = null; } public function __destruct() { $this->closeConexao(); } } // finalizando a classe conexão ?> Essa é a classe na qual realizo a 1º consulta <?php // ARQUIVO DE CLASSE SLIDE_CRUD - UTILIZADA PARA ADICIONAR AS IMAGENS E CONSULTAS ATRAVÉS DO LOGIN NO PAINEL-ADMIN // chamando o arquivo de conexão class Slide_crud extends Slide{ public static $conexaoPDO; // Instanciando a conexao e a classe public function __construct(){ $this->conexaopdo = conexao::getConexao(); } //******************************************************************************************************// //*********************************************CONSULTA GERAL******************************************// //****************************************************************************************************// public function consultaslide(){ try{ // realizando o SQL $sql = ('SELECT * FROM tbl_slide'); // Realizando a conexão $prepare_sql = $this->conexaopdo->prepare($sql); $prepare_sql->execute(); return $prepare_sql->fetchAll(PDO::FETCH_OBJ); } catch(exception $e){ echo" $e erro ao realizar a consulta, se o problema persistir contate o administrador do sistema"; } } } Essa é a classe na qual realizo a 2º consulta. <?php // Criando a Classe Seo_Crud - Classe responsável pelas interações com o banco de DADOS Class Seo_crud extends Seo{ // parametro na qual será responsável por iniciar a conexão com o banco de dados static $conexaoPDO; // função responsável por instanciar a classe em questão public function __construct(){ // instanciando o parametro de conexão; $this->conexaopdo = Conexao::getConexao(); } //******************************************************************************************************// //********************************************CONSULTA GERAL*******************************************// //****************************************************************************************************// public function consultaseo(){ try{ // consulta SQL $sql = ('SELECT * FROM tbl_seo'); // repassando a consulta para a conexão $prepare_sql = $this->conexaopdo->prepare($sql); // executando a instrução $prepare_sql->execute(); // retorno da função return $prepare_sql->fetchAll(PDO::FETCH_OBJ); }catch(PDOexception $e){ print_r($e); echo"$e Atenção! Ocorreu um Erro ao realizar essa consulta de dados, tente novamente, se o problema persisitir contate o Administrador do Sistema"; } } // fim function consulta } ?> aqui está os trechos na qual estou instanciando as classes no arquivo index.php para obter os dados através de um foreach. <?php // instanciando a classe responsável pelo Crud e pelas Consultas $slide_crud = new Slide_crud(); // repassando os parâmetros para a consulta e armazenando na variavel $result $result = $slide_crud->consultaslide(); // percorrendo o array através de um laço para exibir as imagens foreach($result as $dados){ ?> <div class="cycle-anterior" <a href="#" id="anterior"></a></div> <div class="cycle-proximo" <a href="#" id="proximo"></a></div> <img src="<?=$dados->caminho ?>" class="img-thumbnail" height="260" width="960" data-cycle-desc= <?=$dados->descricao?>> <?php } <?php // instanciando a classe responsável pela consulta; $seo_crud = new Seo_crud(); // realizando a consulta e armazenando os dados em uma variavel $result_seo = $seo_crud->consultaseo(); if(!Empty($result_seo)){ foreach($result_seo as $dados){ echo "$dados->rodape_centro"; } } ?>
-
Olá pessoal, bom estou estudando php pelo manual ,como falei em um tópico anterior , estou aprendendo o básico ainda, estou passando um pequeno script para PDO e estou com o seguinte erro Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-5, 5' at line 1' in C:\xamppp\htdocs\modcp.php:296 Stack trace: #0 C:\xamppp\htdocs\modcp.php(296): PDOStatement->execute() #1 {main} thrown in C:\xamppp\htdocs\modcp.php on line 296 este é meu código $num_items = $noi[0]; //changable $items_per_page= 5; $num_pages = ceil($num_items/$items_per_page); if($page>$num_pages)$page= $num_pages; $limit_start = ($page-1)*$items_per_page; $sql = "SELECT id, name, text, authorid, crdate FROM fun_topics WHERE reported='1' ORDER BY crdate DESC LIMIT $limit_start, $items_per_page"; $items = $tonn->prepare($sql); $items->execute(); Se alguém puder me da uma dica do que pode ser, ficarei grato!
-
Olá pessoal sou novo no forum, e começei a estudar php pelo manual,pois nao tenho condiçoes de pagar um curso. Bom estou passando um script pequeno que tenho aqui,para PDO e estou com problemas Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key Meu código (funcionava perfeitamente com mysql): $res = $tonn->prepare("INSERT INTO fun_online SET userid = :userid, actvtime = :actvtime, place = :place, placedet = :placedet"); $res->bindParam(':userid', $uid, PDO::PARAM_STR); $res->bindParam(':actvtime', $ttime, PDO::PARAM_STR); $res->bindParam(':place', $place, PDO::PARAM_STR); $res->bindParam(':placedet', $plclink, PDO::PARAM_STR); $res->execute(); if(!$res) { $res = $tonn->prepare("UPDATE fun_online SET actvtime = :actvtime, place = :place , placedet = :placedet WHERE userid = :userid"); $res->bindValue(':actvtime', $ttime, PDO::PARAM_STR); $res->bindValue(':place', $place, PDO::PARAM_STR); $res->bindValue(':placedet', $plclink, PDO::PARAM_STR); $res->bindValue(':userid', $uid, PDO::PARAM_STR); $res->execute(); }
-
php Gerador de forms CRUD em um único arquivo
uma questão postou sergiodesa Repositório de Scripts - PHP
Olá a todos, Apesar do cadastro recente gostaria de contribuir com esta comunidade, pois sempre que tenho dúvidas, percorro estes fóruns e, graças a vocês, até agora consegui solucionar todas elas. Pesquisei aqui se existia algo parecido e o único tópico que se refere a CRUD não tem o código fonte e o link esta quebrado. Este fim de semana tive que gerar várias páginas para inserção, edição, exclusão e consulta de dados de várias tabelas, então resolvi criar um gerador CRUD para facilitar minha vida e gostaria de compartilhar com vocês, não tenho muita experiência com identação e boas práticas de programação, qualquer critica para melhorar minha maneira de desenvolver e/ou sugestões para o script são bem vindas. gerador_crud.php <?php /** * Gerador CRUD (Create, Read, Update & Delete) * * Gera as 4 funções básicas de operações de dados em um único arquivo. * Serve para aumentar a produtividade na geração de formulários. * * Possui verificação de campos tipo Auto_increment para prevenir erros. * Tratamento para remover o prefixo das tabelas na exibição das labels * dos formulários Ex. produtos_codigo fica Codigo. * O CRUD gerado já utiliza a classe PDO * * Modo de usar: * Preencha as variáveis no inicio do arquivo e execute-o. * Serão exibidos dois scripts em formato de texto, copie e crie * os arquivos de conexão com o DB e o CRUD respectivamente. * Após gerados os scripts a parte estrutural estará pronta para você * começar a estilizar sua página. * * * @author SERGIO PEREIRA <sergiodesa@yahoo.com> */ //Dados para conexão com o seu servidor. $server = "localhost"; $banco = "XYZ"; $user = "root"; $senha = ""; //Parametros para gerar o seu CRUD. $tabela = ""; //Nome da tabela para gerar o CRUD. $prefixo = "_"; //Opcional, mas se os campos de sua tabela tiverem "_" remova-o. $ident = "clientes_id"; //Campo identificador para manipular dados do registro. $caminho = "conexao.php"; //Url + nome do arquivo de conexao a ser criado para o CRUD. $conn = mysqli_connect($server, $user, $senha, $banco); //Usamos <pre> para que as variaveis não sejam interpretadas no output. echo '<pre>'; echo htmlspecialchars($caminho . ' <?php $con = new PDO("mysql:host=localhost;dbname=erp", "root", "",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES \'utf8\'")); ?> ' . $tabela . '.php <?php include "' . $caminho . '"; if(isset($_GET["id"])){ $id = (int) $_GET["id"]; } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CRUD '.$tabela.'</title> </head> <?php if((!isset($_GET["novo"]))&&(!isset($_GET["altera"]))&&(!isset($_GET["apaga"]))){ ?> <table border="1"> <tr>'); $campos = consulta($conn); foreach ($campos as $item) { echo htmlspecialchars(' <td><b>' . ucfirst(after('_', $item["COLUMN_NAME"])) . '</b></td>'); } echo htmlspecialchars(' </tr> <?php $rs = $con->prepare("SELECT * FROM ' . $tabela . '"); if($rs->execute()){ if($rs->rowCount() > 0){ while($row = $rs->fetch(PDO::FETCH_ASSOC)){ ?> <tr>'); $campos = consulta($conn); foreach ($campos as $item) { echo htmlspecialchars(' <td valign="top"><?php echo $row["' . $item["COLUMN_NAME"] . '"];?></td>'); } echo htmlspecialchars(' <td valign="top"><a href="' . $tabela . '.php?id=<?php echo $row["' . $ident . '"];?>&altera">Edita</a></td> <td><a href="' . $tabela . '.php?id=<?php echo $row["' . $ident . '"];?>&apaga">Apaga</a></td> </tr> <?php } ?> <?php } } ?> </table> <a href="' . $tabela . '.php?novo">Novo</a> <?php } if(isset($_GET["novo"])){ if (isset($_POST["submitted"])) { foreach($_POST AS $key => $value) { $_POST[$key] = mysql_real_escape_string($value); } $rs = $con->prepare("INSERT INTO ' . $tabela . ' ('); $campos = consulta($conn); $i = 0; $len = count($campos); foreach ($campos as $item) { echo htmlspecialchars($item["COLUMN_NAME"]); if ($i == $len - 1) { echo htmlspecialchars(''); } else { echo htmlspecialchars(', '); } $i++; } echo htmlspecialchars(') VALUES('); $campos = consulta($conn); $i = 0; $len = count($campos); foreach ($campos as $item) { echo htmlspecialchars(':' . $item["COLUMN_NAME"]); if ($i == $len - 1) { echo htmlspecialchars(''); } else { echo htmlspecialchars(', '); } $i++; } echo htmlspecialchars(')");'); $campos = consulta($conn); foreach ($campos as $item) { echo htmlspecialchars(' $rs->bindParam(":' . $item["COLUMN_NAME"] . '", $_POST["' . $item["COLUMN_NAME"] . '"], PDO::PARAM_STR);'); } echo htmlspecialchars(' $rs->execute(); echo \'<script>location.href="' . $tabela . '.php";</script>\'; } ?> <form action="" method="POST">'); $campos = consulta($conn); foreach ($campos as $item) { echo htmlspecialchars(' <p><b>' . ucfirst(after('_', $item["COLUMN_NAME"])) . ':</b><br /><input type="text" name="' . $item["COLUMN_NAME"] . '"/>'); } echo htmlspecialchars(' <p><input type="submit" value="Incluir" /><input type="hidden" value="1" name="submitted" /> </form> <?php } ?> <?php if(isset($_GET["altera"])){ if (isset($_POST["submitted"])) { foreach($_POST AS $key => $value) { $_POST[$key] = mysql_real_escape_string($value); } $rs = $con->prepare("UPDATE ' . $tabela . ' SET '); $campos = consulta($conn); $i = 0; $len = count($campos); foreach ($campos as $item) { echo htmlspecialchars($item["COLUMN_NAME"] . '=:' . $item["COLUMN_NAME"]); if ($i == $len - 1) { echo htmlspecialchars(''); } else { echo htmlspecialchars(', '); } $i++; } echo htmlspecialchars(' WHERE ' . $ident . ' = $id");'); $campos = consulta($conn); foreach ($campos as $item) { echo htmlspecialchars(' $rs->bindParam(":' . $item["COLUMN_NAME"] . '", $_POST["' . $item["COLUMN_NAME"] . '"], PDO::PARAM_STR);'); } echo htmlspecialchars(' $rs->execute(); echo \'<script>location.href="' . $tabela . '.php";</script>\'; } ?> <form action="" method="POST"> <?php $rs = $con->prepare("SELECT * FROM ' . $tabela . ' WHERE ' . $ident . ' = $id"); if($rs->execute()){ if($rs->rowCount() > 0){ while($row = $rs->fetch(PDO::FETCH_ASSOC)){ ?>'); $campos = consulta($conn); foreach ($campos as $item) { echo htmlspecialchars(' <p><b>' . ucfirst(after('_', $item["COLUMN_NAME"])) . ':</b><br /><input type="text" name="' . $item["COLUMN_NAME"] . '" value="<?= stripslashes($row["' . $item["COLUMN_NAME"] . '"]) ?>" />'); } echo htmlspecialchars(' <p><input type="submit" value="Alterar" /><input type="hidden" value="1" name="submitted" /> <?php } } } ?> </form> <?php } if(isset($_GET["apaga"])){ $id = (int) $_GET["id"]; $rs = $con->prepare("DELETE FROM ' . $tabela . ' WHERE ' . $ident . ' = :id"); $rs->bindParam(":id", $id, PDO::PARAM_INT); $rs->execute(); echo \'<script>location.href="' . $tabela . '.php";</script>\'; } ?> </body> </html> '); echo '</pre>'; function after($this, $inthat) { if (!is_bool(strpos($inthat, $this))) { return substr($inthat, strpos($inthat, $this) + strlen($this)); } else { return $inthat; } } function consulta($conn) { global $banco; global $tabela; $cons = mysqli_query($conn, "SELECT COLUMN_NAME, EXTRA FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '$banco' AND TABLE_NAME = '$tabela';") or die(mysqli_error()); $result = array(); while ($row = mysqli_fetch_assoc($cons)) { if ($row["EXTRA"] != "auto_increment") { $campos[] = $row; } } return $campos; } ?> -
Estou com dificuldades em encontrar a solução esse enigma... pois as variais chegam até o echo mas não são executadas para inserção no banco . A resposta ao tentar é : Erro ao inserir os dados ini_set('display_errors', true); error_reporting(E_ALL); echo"email = ".$email. "<br>" ; echo "ddd = ".$ddd ."<br>"; echo "telefone = ".$telefone . "<br>"; echo "cpf = ".$cpf . "<br>"; echo "produto = ".$produto . "<br>" ; echo "status = ".$status . "<br>" ; echo "total = ".$total . "<br>" ; echo "data = ".$data . "<br>"; echo "ref = ".$ref. "<br>"; //Até aqui o ECHO recebe as informações try{ $inseri= $pdo -> prepare (" INSERT INTO rico_vendas (email, ddd, telefone, cpf, produto, status, valor, data_cadastro, ref) VALUES (:email, :ddd, :tel, :cpf, :produto, :status, :valor, :data, :ref)"); $inseri -> bindValue(':email',$email); $inseri -> bindValue(':ddd',$ddd); $inseri -> bindValue(':tel',$telefone); $inseri -> bindValue(':cpf',$cpf); $inseri -> bindValue(':produto',$produto); $inseri -> bindValue(':status',$status); $inseri -> bindValue(':valor',$total); $inseri -> bindValue(':data',$data); $inseri -> bindValue(':ref',$ref); $executa = $inseri -> execute(); if($executa){ echo 'Dados inseridos com sucesso'; } else{ echo 'Erro ao inserir os dados'; } } catch(PDOException $e){ echo $e->getMessage(); }
-
Estou montando um sistema de login. Mas não consigo fazer a validação da senha digitada. Quando tento desta forma ele acusa login/senha errado. Mas já me certifiquei, o login e senha estao corretos: <?php require_once 'init.php'; // resgata dados digitados no formulario $email = isset($_POST['email']) ? $_POST['email']: ''; $senha = isset($_POST['senha']) ? $_POST['senha']: ''; // Verifica se os campos do form não estao vazios if(empty($email) || empty($senha)){ echo "<script language='javascript' type='text/javascript'>alert('Infome Email e senha.');window.location.href='../login.php';</script>"; exit; } // Comando no banco de dados $pdo = db_connect(); // Abre conexão com o banco $sql = "SELECT id, nome FROM usuarios WHERE email = :email AND senha = :senha"; // Cria query $stmt = $pdo->prepare($sql); // Prepare da query $stmt->bindValue(':email', $email); $stmt->bindValue(':senha', $senha); // Atribui valor do campo email no valor email da query $stmt->execute(); // Execute na query $arr = $stmt->fetchAll(PDO::FETCH_ASSOC); // Cria array associativo if(count($arr) <= 0) { // Verifica se a busca trouxe retorno echo "<script language='javascript' type='text/javascript'>alert('Login e/ou senha inválido!');window.location.href='../login.php';</script>"; exit; } // Pega o primeiro usuario $user = $arr[0]; // Inicia a sessão session_start(); // Definir os dados persistindo entre paginas $_SESSION['logged_in'] = true; $_SESSION['user_id'] = $user['id']; $_SESSION['user_name'] = $user['nome']; header('Location: ../index.php'); Quando dou var_dump($arr); ele me retorna um array vazio, por isso ele não faz o login. Alguém poderia me auxiliar? Grato!
-
Olá. Estou criando um sistema de login para fins de estudo. Identifiquei no me arquivo que não esta populando o array com as informações do banco de dados... e sim, já me certifiquei que o email e senha informados já existe na base de dados. Segue arquivo de login.php: <?php require_once 'init.php'; // resgata dados digitados no formulario $email = isset($_POST['email']) ? $_POST['email']: ''; $senha = isset($_POST['senha']) ? $_POST['senha']: ''; // Cria o hash da senha $seg_senha = password_hash($senha, PASSWORD_DEFAULT); // Verifica se os campos do form não estao vazios if(empty($email) || empty($senha)){ echo 'Informe Email e Senha'; exit; } // Comando no banco de dados $pdo = db_connect(); // Abre conexão com o banco $sql = "SELECT id, nome FROM usuarios WHERE email = :email AND senha = :senha"; // Cria query $stmt = $pdo->prepare($sql); // Prepare da query $stmt->bindParam(':email', $email); // Atribui valor do campo email no valor email da query $stmt->bindParam(':senha', $seg_senha); // Atribui valor do campo senha no valor senha da query $stmt->execute(); // Execute na query $arr = $stmt->fetchAll(PDO::FETCH_ASSOC); // Cria array associativo if(count($arr) <= 0){ // Verifica se existe elemento no array echo "<script language='javascript' type='text/javascript'>alert('Login e/ou senha incorretos');window.location.href='../login.php';</script>"; exit; } // Pega o primeiro usuario $user = $arr[0]; // Inicia a sessão session_start(); $_SESSION['logged_in'] = true; $_SESSION['user_id'] = $user['id']; $_SESSION['user_name'] = $user['nome']; header('Location: ../index1.php'); Se eu comento da linha if(count($arr) <= 0){ para baixo, e coloco um var_dump($arr); abaixo de $arr = $stmt->fetchAll(PDO::FETCH_ASSOC); me retorna um array vazio C:\wamp64\www\ProjetoALPHA\core\login.php:33: array (size=0) empty Alguém poderia me ajudar? Grato!
-
Olá pessoal, Estou com problemas para conectar o banco de dados utilizando PDO, uso o MySQL. quando executo a conexao com o banco aparecem as seguintes mensagens de erro: ( ! ) Fatal error: Uncaught exception 'PDOException' with message ' in C:\wamp64\www\phpCRUD\config\Conecta.php on line 11 ( ! ) PDOException: in C:\wamp64\www\phpCRUD\config\Conecta.php on line 11 Call Stack # Time Memory Function Location 1 0.0003 235888 {main}( ) ...\login.php:0 2 0.0006 240904 include_once( 'C:\wamp64\www\phpCRUD\core\Login.php' ) ...\login.php:3 3 0.0013 253496 Conecta->__construct( ) ...\Login.php:5 4 0.0013 253984 __construct ( ) ...\Conecta.php:11 Não sei onde estou errando, alguém poderia me ajudar? Segue o código da configuração do banco: http://pastebin.com/24qAiFTr E abaixo arquivo conf.php: http://pastebin.com/986P4hiD