Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''pdo''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. Olá pessoal, estou tendo problemas para usar o PDO do MySQL no PHP. Quando tento fazer a conexão por código com o MySQL ele apresenta o seguinte erro: could not find driver Creio que o driver PDO do MySQL não esteja instalado. Não tenho muito conhecimento em configuração de Apache, php e tudo mais... Quando vou em phpinfo() ele apresenta as seguintes informações no campo Configure Command: cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=c:\php-sdk\oracle\x64\instantclient_12_1\sdk,shared" "--with-oci8-12c=c:\php-sdk\oracle\x64\instantclient_12_1\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--without-analyzer" "--with-pgo" Não sei se ta haver, como disse, não tenho muito conhecimento nessas configurações. Alguém poderia me ajudar? Uso Windows 10 e o programa Wamp64. Agradeço desde já!
  2. Olá, No último mês estive desenvolvendo um painel de gerenciamento PHP Orientado a Objetos. Desenvolvido em bootstrap, ele é uma mistura simples que une o prático ao agradável. Estou disponibilizando-o para download, assim qualquer ser interessado em testá-lo e aprimorá-lo é bem-vindo! Peço apenas que mantenham os créditos. Download: https://mega.nz/#!ZcQwXBqI!qhQraQMGFw-c3_ABn5rMR_7CYlqSiynaWt_nclWwrVc Obs: O arquivo de SQL do painel não está incluso por questões de avaliações. Quem for baixar o painel envie um email para: azielsilas@gmail.com e receberá o arquivo de mysql + senha para descompactação do sistema. Abraços, Dúvidas - twitter: @Azielsilas
  3. Olá, Estou desenvolvendo uma aplicação para controle residencial, porém estou tendo algumas dificuldades para comunicação via PDO com o Cloud9. Não sou desenvolvedor web ou linguagens convencionais, mas estou aprendendo. Favor deixar o usuário do c9 que eu compartilho o app. <?php /* MySql Daten */ define('DB_HOST', 'igorronchi-homecontrol-1179525'); define('DB_USER', 'igorronchi'); define('DB_PASS', ''); define('DB_PORT', '3306'); define('DB_NAME', 'DAI_DB'); define('DB_CHARSET', 'utf8'); define('PREFIX', 'pi_'); define('LANGUAGE', 'en'); /*define('BASE', 'http://'.$_SERVER['HTTP_HOST'].'/');*/ /*define('SERVER_PATH', '/home/www/');*/ define('BASE', ''); define('SERVER_PATH', ''); function name($name) { $n = explode(" ", $name); if(count($n)==0) { $r = $name[0].$name[1]; }else{ $r = $n[0][0].$n[1][0]; } return strtoupper($r); } <?php class Database { private $_con; public function __construct() { return $this->con(); } function con() { $this->_con = new PDO('mysql:host='.DB_HOST.'; port='.DB_PORT. '; dbname='.DB_NAME, DB_USER, DB_PASS); $this->_con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $this->_con->exec("SET CHARACTER SET ".DB_CHARSET); // return all sql requests as UTF-8 return $this->_con; } }
  4. Fiz o insert usando type: text e varchar no banco... quero alterar no banco para date, mais não tenho muita ideia como fazer essa alteração no código para que para o Usuário fique o formato brasileiro, no banco converta para o americano para aceitar o date,e quando for fazer o select do fomulário para o usuário visualizar os dados recupere no formato brasileiro tb. abaixo o código como está hoje. segue o código! <script type="text/javascript"> jQuery(function($){ $("#date").mask("99/99/9999",{placeholder:"dd/mm/yyyy"}); }); </script> <?php if(isset($_POST['cadastrar'])){ $data = trim(strip_tags($_POST['data'])); $titulo = trim(strip_tags($_POST['titulo'])); $exibir = trim(strip_tags($_POST['exibir'])); $descricao = $_POST['descricao']; $alterado = trim(strip_tags($_POST['alterado'])); $logado = trim(strip_tags($_POST['logado'])); //INFO IMAGEM $file = $_FILES['img']; $numFile = count(array_filter($file['name'])); //PASTA $folder = '../upload/agenda/'; //REQUISITOS $permite = array('image/jpeg', 'image/png'); $maxSize = 1024 * 1024 * 5; //MENSAGENS $msg = array(); $errorMsg = array( 1 => 'O arquivo no upload é maior do que o limite definido em upload_max_filesize no php.ini.', 2 => 'O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no formulário HTML', 3 => 'o upload do arquivo foi feito parcialmente', 4 => 'Não foi feito o upload do arquivo' ); if($numFile <= 0){ echo '<div class="alert alert-danger"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> Selecione uma Imagem e tente novamente! </div>'; } else if($numFile >=2){ echo '<div class="alert alert-danger"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> Você ultrapassou o limite de upload. Selecione apenas uma foto e tente novamente! </div>'; }else{ for($i = 0; $i < $numFile; $i++){ $name = $file['name'][$i]; $type = $file['type'][$i]; $size = $file['size'][$i]; $error = $file['error'][$i]; $tmp = $file['tmp_name'][$i]; $extensao = @end(explode('.', $name)); $novoNome = rand().".$extensao"; if($error != 0) $msg[] = "<b>$name :</b> ".$errorMsg[$error]; else if(!in_array($type, $permite)) $msg[] = "<b>$name :</b> Erro imagem não suportada!"; else if($size > $maxSize) $msg[] = "<b>$name :</b> Erro imagem ultrapassa o limite de 5MB"; else{ if(move_uploaded_file($tmp, $folder.'/'.$novoNome)){ //$msg[] = "<b>$name :</b> Upload Realizado com Sucesso!"; $insert = "INSERT into agenda (imagem_agenda, data_agenda, titulo_agenda, exibir_agenda, descricao_agenda, alterado, logado) VALUES (:imagem, :data, :titulo, :exibir, :descricao, :alterado, :logado)"; try{ $result = $conexao->prepare($insert); $result->bindParam(':imagem', $novoNome, PDO::PARAM_STR); $result->bindParam(':data', $data, PDO::PARAM_STR); $result->bindParam(':titulo', $titulo, PDO::PARAM_STR); $result->bindParam(':exibir', $exibir, PDO::PARAM_STR); $result->bindParam(':descricao', $descricao, PDO::PARAM_STR); $result->bindParam(':alterado', $alterado, PDO::PARAM_STR); $result->bindParam(':logado', $logado, PDO::PARAM_STR); $result->execute(); $contar = $result->rowCount(); if($contar>0){ /******Forme date*********/ <input type="text" class="span2" id="date" name="data" value="" required >
  5. Fui vendo na internet os tutoriais e tudo mais e resolvi juntar e mais pra frente incrementar meu sisteminha. Arquivo functions.php <?php /** * Created by PhpStorm. * User: blx32 * Date: 7/10/16 * Time: 1:58 PM */ include_once ('global-config.php'); /* * É importante não colocar apenas "session_start()"; no topo de todas as páginas nas quais você desejar utilizar sessões php, se você realmente estiver preocupado com a segurança, é desta forma que você deverá fazer. Você criará uma função chamada "sec_session_start", a qual irá iniciar uma sessão php de forma segura. Você deveria chamar esta função no topo de cada página a partir da qual você deseje acessar uma variável de sessão php. Função de Início de Sessão Segura: */ function sec_session_start() { $session_name = 'sec_session_id'; // Set a custom session name $secure = true; // This stops JavaScript being able to access the session id. $httponly = true; // Forces sessions to only use cookies. if (ini_set('session.use_only_cookies', 1) === FALSE) { header("Location: ../error.php?err=Could not initiate a safe session (ini_set)"); exit(); } // Gets current cookies params. $cookieParams = session_get_cookie_params(); session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly); // Sets the session name to the one set above. session_name($session_name); session_start(); // Start the PHP session session_regenerate_id(true); // regenerated the session, delete the old one. }; /* * Crie uma função de login. Esta função irá checar o email e a senha na base de dados e retornará um valor "true" (verdadeiro) caso ambos estejam corretos e combinando. Função de Login Seguro: */ function login($email, $password, $mysqli) { // Using prepared statements means that SQL injection is not possible. if ($stmt = $mysqli->prepare("SELECT id, username, password FROM members WHERE email = ? LIMIT 1")) { $stmt->bind_param('s', $email); // Bind "$email" to parameter. $stmt->execute(); // Execute the prepared query. $stmt->store_result(); // get variables from result. $stmt->bind_result($user_id, $username, $db_password); $stmt->fetch(); if ($stmt->num_rows == 1) { // If the user exists we check if the account is locked // from too many login attempts if (checkbrute($user_id, $mysqli) == true) { // Account is locked // Send an email to user saying their account is locked return false; } else { // Check if the password in the database matches // the password the user submitted. We are using // the password_verify function to avoid timing attacks. if (password_verify($password, $db_password)) { // Password is correct! // Get the user-agent string of the user. $user_browser = $_SERVER['HTTP_USER_AGENT']; // XSS protection as we might print this value $user_id = preg_replace("/[^0-9]+/", "", $user_id); $_SESSION['user_id'] = $user_id; // XSS protection as we might print this value $username = preg_replace("/[^a-zA-Z0-9_\-]+/", "", $username); $_SESSION['username'] = $username; $_SESSION['login_string'] = hash('sha512', $db_password . $user_browser); // Login successful. return true; } else { // Password is not correct // We record this attempt in the database $now = time(); $mysqli->query("INSERT INTO login_attempts(user_id, time) VALUES ('$user_id', '$now')"); return false; } } } else { // No user exists. return false; } } }; /* * Função Brute Force. Ataques de brute force ou força bruta acontecem quando hackers tentam milhares de diferentes senhas em uma conta, seja de forma randômica através de senhas aleatórias ou através de um dicionário de palavras. Em nosso script, se um usuário falhar em sua tentativa de login por mais de 5 vezes, sua conta será bloqueada. Crie a função login_check: */ function checkbrute($user_id, $mysqli) { // Get timestamp of current time $now = time(); // All login attempts are counted from the past 2 hours. $valid_attempts = $now - (2 * 60 * 60); if ($stmt = $mysqli->prepare("SELECT time FROM login_attempts WHERE user_id = ? AND time >'$valid_attempts'")) { $stmt->bind_param('i', $user_id); // Execute the prepared query. $stmt->execute(); $stmt->store_result(); // If there have been more than 5 failed logins if ($stmt->num_rows > 5) { return true; } else { return false; } } } /*Cheque o status de login. Isto é feito checando-se as variáveis de sessão "user_id" e "login_string". A variável de sessão "login_string" possui as informações de endereço IP e navegador em forma de hash juntamente com a senha. Utilizamos o endereço IP e a informação do navegador pois é muito improvável que o usuário altere o endereço IP ou o navegador durante sua sessão. Fazendo isto, você impede um ataque de hijack na sessão (sequestro de sessão, literalmente). Crie a função login_check: */ function login_check($mysqli) { // Check if all session variables are set if (isset($_SESSION['user_id'], $_SESSION['username'], $_SESSION['login_string'])) { $user_id = $_SESSION['user_id']; $login_string = $_SESSION['login_string']; $username = $_SESSION['username']; // Get the user-agent string of the user. $user_browser = $_SERVER['HTTP_USER_AGENT']; if ($stmt = $mysqli->prepare("SELECT password FROM members WHERE id = ? LIMIT 1")) { // Bind "$user_id" to parameter. $stmt->bind_param('i', $user_id); $stmt->execute(); // Execute the prepared query. $stmt->store_result(); if ($stmt->num_rows == 1) { // If the user exists get variables from result. $stmt->bind_result($password); $stmt->fetch(); $login_check = hash('sha512', $password . $user_browser); if (hash_equals($login_check, $login_string) ){ // Logged In!!!! return true; } else { // Not logged in return false; } } else { // Not logged in return false; } } else { // Not logged in return false; } } else { // Not logged in return false; } } function esc_url($url) { if ('' == $url) { return $url; } $url = preg_replace('|[^a-z0-9-~+_.?#=!&;,/:%@$\|*\'()\\x80-\\xff]|i', '', $url); $strip = array('%0d', '%0a', '%0D', '%0A'); $url = (string)$url; $count = 1; while ($count) { $url = str_replace($strip, '', $url, $count); } $url = str_replace(';//', '://', $url); $url = htmlentities($url); $url = str_replace('&', '&', $url); $url = str_replace("'", ''', $url); if ($url[0] !== '/') { // We're only interested in relative links from $_SERVER['PHP_SELF'] return ''; } else { return $url; } } ?> autentica_usuario.php <?php /** * Created by PhpStorm. * User: blx32 * Date: 7/10/16 * Time: 1:35 PM */ include_once 'inc/db_connect.php'; include_once 'inc/functions.php'; sec_session_start(); // Our custom secure way of starting a PHP session. if (isset($_POST['email'], $_POST['p'])) { $email = $_POST['email']; $password = $_POST['p']; // The hashed password. if (login($email, $password, $mysqli) == true) { // Login success header('Location: protected_page.php'); } else { // Login failed header('Location: index.php?error=1'); } } else { // The correct POST variables were not sent to this page. echo 'Invalid Request'; } db_connect.php <?php /** * Created by PhpStorm. * User: blx32 * Date: 7/10/16 * Time: 3:29 PM */ include_once 'global-config.php'; // As functions.php is not included $mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE); ?> E global-config.php é onde estão o define do host,user,pdw e database. register.php <?php /** * Created by PhpStorm. * User: blx32 * Date: 7/10/16 * Time: 2:20 PM */ /* * Certifique-se de que o valor de $_POST['p'] já esteja em hash a partir do javascript. Caso não esteja utilizando este método por desejar validar a senha no lado do servidor, certifique-se de utilizar hash. */ include_once 'db_connect.php'; include_once 'inc/global-config.php'; $error_msg = ""; if (isset($_POST['username'], $_POST['email'], $_POST['p'])) { // Sanitize and validate the data passed in $username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING); $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL); $email = filter_var($email, FILTER_VALIDATE_EMAIL); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { // Not a valid email $error_msg .= '<p class="error">The email address you entered is not valid</p>'; } $password = filter_input(INPUT_POST, 'p', FILTER_SANITIZE_STRING); if (strlen($password) != 128) { // The hashed pwd should be 128 characters long. // If it's not, something really odd has happened $error_msg .= '<p class="error">Invalid password configuration.</p>'; } // Username validity and password validity have been checked client side. // This should should be adequate as nobody gains any advantage from // breaking these rules. // $prep_stmt = "SELECT id FROM members WHERE email = ? LIMIT 1"; $stmt = $mysqli->prepare($prep_stmt); // check existing email if ($stmt) { $stmt->bind_param('s', $email); $stmt->execute(); $stmt->store_result(); if ($stmt->num_rows == 1) { // A user with this email address already exists $error_msg .= '<p class="error">A user with this email address already exists.</p>'; $stmt->close(); } } else { $error_msg .= '<p class="error">Database error Line 39</p>'; $stmt->close(); } // check existing username $prep_stmt = "SELECT id FROM members WHERE username = ? LIMIT 1"; $stmt = $mysqli->prepare($prep_stmt); if ($stmt) { $stmt->bind_param('s', $username); $stmt->execute(); $stmt->store_result(); if ($stmt->num_rows == 1) { // A user with this username already exists $error_msg .= '<p class="error">A user with this username already exists</p>'; $stmt->close(); } } else { $error_msg .= '<p class="error">Database error line 55</p>'; $stmt->close(); } // TODO: // We'll also have to account for the situation where the user doesn't have // rights to do registration, by checking what type of user is attempting to // perform the operation. if (empty($error_msg)) { // Create hashed password using the password_hash function. // This function salts it with a random salt and can be verified with // the password_verify function. $password = password_hash($password, PASSWORD_BCRYPT); // Insert the new user into the database if ($insert_stmt = $mysqli->prepare("INSERT INTO members (username, email, password) VALUES (?, ?, ?)")) { $insert_stmt->bind_param('sss', $username, $email, $password); // Execute the prepared query. if (! $insert_stmt->execute()) { header('Location: ../error.php?err=Registration failure: INSERT'); } } header('Location: ./register_success.php'); } } ?> A pagina login.php <?php include_once 'inc/db_connect.php'; include_once 'inc/functions.php'; sec_session_start(); if (login_check($mysqli) == true) { $logged = 'in'; } else { $logged = 'out'; } ?> <!DOCTYPE html> <html> <head> <title>Secure Login: Log In</title> <link rel="stylesheet" href="styles/main.css"/> <script type="text/JavaScript" src="sha512.js"></script> <script type="text/JavaScript" src="main.js"></script> </head> <body> <?php echo "Username: test_user Email: test@example.com Password: 6ZaxN2Vzm9NUJT2y"; if (isset($_GET['error'])) { echo '<p class="error">Error Logging In!</p>'; } ?> <form action="autentica_usuario.php" method="post" name="login_form"> Email: <input type="text" name="email"/> Password: <input type="password" name="password" id="password"/> <input type="button" value="Login" onclick="formhash(this.form, this.form.password);"/> </form> <?php if (login_check($mysqli) == true) { echo '<p>Currently logged ' . $logged . ' as ' . htmlentities($_SESSION['username']) . '.</p>'; echo '<p>Do you want to change user? <a href="inc/logoff.php">Log out</a>.</p>'; } else { echo '<p>Currently logged ' . $logged . '.</p>'; echo "<p>If you don't have a login, please <a href='register.php'>register</a></p>"; } ?> </body> </html> logoff.php (está escrito errado mas não me preocupei em mudar). <?php /** * Created by PhpStorm. * User: blx32 * Date: 7/10/16 * Time: 2:14 PM */ include_once ('functions.php'); sec_session_start(); // Unset all session values $_SESSION = array(); // get session parameters $params = session_get_cookie_params(); // Delete the actual cookie. setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]); // Destroy session session_destroy(); header('Location: ../index.php'); protegido.php (pagina que quero proteger). <?php /** * Created by PhpStorm. * User: blx32 * Date: 7/10/16 * Time: 2:32 PM */ include_once 'inc/db_connect.php'; include_once 'inc/functions.php'; sec_session_start(); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Secure Login: Protected Page</title> <link rel="stylesheet" href="styles/main.css"/> </head> <body> <?php if (login_check($mysqli) == true) : ?> <p>Welcome <?php echo htmlentities($_SESSION['username']); ?>!</p> <p> This is an example protected page. To access this page, users must be logged in. At some stage, we'll also check the role of the user, so pages will be able to determine the type of user authorised to access the page. </p> <p>Return to <a href="index.php">login page</a></p> <?php else : ?> <p> <span class="error">You are not authorized to access this page.</span> Please <a href="login.php">login</a>. </p> <?php endif; ?> </body> </html> sha512.js var hexcase=0;var b64pad="";function hex_sha512(a){return rstr2hex(rstr_sha512(str2rstr_utf8(a)))}function b64_sha512(a){return rstr2b64(rstr_sha512(str2rstr_utf8(a)))}function any_sha512(a,b){return rstr2any(rstr_sha512(str2rstr_utf8(a)),b)}function hex_hmac_sha512(a,b){return rstr2hex(rstr_hmac_sha512(str2rstr_utf8(a),str2rstr_utf8(b)))}function b64_hmac_sha512(a,b){return rstr2b64(rstr_hmac_sha512(str2rstr_utf8(a),str2rstr_utf8(b)))}function any_hmac_sha512(a,c,b){return rstr2any(rstr_hmac_sha512(str2rstr_utf8(a),str2rstr_utf8(c)),b)}function sha512_vm_test(){return hex_sha512("abc").toLowerCase()=="ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"}function rstr_sha512(a){return binb2rstr(binb_sha512(rstr2binb(a),a.length*8))}function rstr_hmac_sha512(c,f){var e=rstr2binb(c);if(e.length>32){e=binb_sha512(e,c.length*8)}var a=Array(32),d=Array(32);for(var b=0;b<32;b++){a[b]=e[b]^909522486;d[b]=e[b]^1549556828}var g=binb_sha512(a.concat(rstr2binb(f)),1024+f.length*8);return binb2rstr(binb_sha512(d.concat(g),1024+512))}function rstr2hex(c){try{hexcase}catch(g){hexcase=0}var f=hexcase?"0123456789ABCDEF":"0123456789abcdef";var b="";var a;for(var d=0;d<c.length;d++){a=c.charCodeAt(d);b+=f.charAt((a>>>4)&15)+f.charAt(a&15)}return b}function rstr2b64(c){try{b64pad}catch(h){b64pad=""}var g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var b="";var a=c.length;for(var f=0;f<a;f+=3){var k=(c.charCodeAt(f)<<16)|(f+1<a?c.charCodeAt(f+1)<<8:0)|(f+2<a?c.charCodeAt(f+2):0);for(var d=0;d<4;d++){if(f*8+d*6>c.length*8){b+=b64pad}else{b+=g.charAt((k>>>6*(3-d))&63)}}}return b}function rstr2any(m,c){var b=c.length;var l,f,a,n,e;var k=Array(Math.ceil(m.length/2));for(l=0;l<k.length;l++){k[l]=(m.charCodeAt(l*2)<<8)|m.charCodeAt(l*2+1)}var h=Math.ceil(m.length*8/(Math.log(c.length)/Math.log(2)));var g=Array(h);for(f=0;f<h;f++){e=Array();n=0;for(l=0;l<k.length;l++){n=(n<<16)+k[l];a=Math.floor(n/b);n-=a*b;if(e.length>0||a>0){e[e.length]=a}}g[f]=n;k=e}var d="";for(l=g.length-1;l>=0;l--){d+=c.charAt(g[l])}return d}function str2rstr_utf8(c){var b="";var d=-1;var a,e;while(++d<c.length){a=c.charCodeAt(d);e=d+1<c.length?c.charCodeAt(d+1):0;if(55296<=a&&a<=56319&&56320<=e&&e<=57343){a=65536+((a&1023)<<10)+(e&1023);d++}if(a<=127){b+=String.fromCharCode(a)}else{if(a<=2047){b+=String.fromCharCode(192|((a>>>6)&31),128|(a&63))}else{if(a<=65535){b+=String.fromCharCode(224|((a>>>12)&15),128|((a>>>6)&63),128|(a&63))}else{if(a<=2097151){b+=String.fromCharCode(240|((a>>>18)&7),128|((a>>>12)&63),128|((a>>>6)&63),128|(a&63))}}}}}return b}function str2rstr_utf16le(b){var a="";for(var c=0;c<b.length;c++){a+=String.fromCharCode(b.charCodeAt(c)&255,(b.charCodeAt(c)>>>8)&255)}return a}function str2rstr_utf16be(b){var a="";for(var c=0;c<b.length;c++){a+=String.fromCharCode((b.charCodeAt(c)>>>8)&255,b.charCodeAt(c)&255)}return a}function rstr2binb(b){var a=Array(b.length>>2);for(var c=0;c<a.length;c++){a[c]=0}for(var c=0;c<b.length*8;c+=8){a[c>>5]|=(b.charCodeAt(c/8)&255)<<(24-c%32)}return a}function binb2rstr(b){var a="";for(var c=0;c<b.length*32;c+=8){a+=String.fromCharCode((b[c>>5]>>>(24-c%32))&255)}return a}var sha512_k;function binb_sha512(p,A){if(sha512_k==undefined){sha512_k=new Array(new int64(1116352408,-685199838),new int64(1899447441,602891725),new int64(-1245643825,-330482897),new int64(-373957723,-2121671748),new int64(961987163,-213338824),new int64(1508970993,-1241133031),new int64(-1841331548,-1357295717),new int64(-1424204075,-630357736),new int64(-670586216,-1560083902),new int64(310598401,1164996542),new int64(607225278,1323610764),new int64(1426881987,-704662302),new int64(1925078388,-226784913),new int64(-2132889090,991336113),new int64(-1680079193,633803317),new int64(-1046744716,-815192428),new int64(-459576895,-1628353838),new int64(-272742522,944711139),new int64(264347078,-1953704523),new int64(604807628,2007800933),new int64(770255983,1495990901),new int64(1249150122,1856431235),new int64(1555081692,-1119749164),new int64(1996064986,-2096016459),new int64(-1740746414,-295247957),new int64(-1473132947,766784016),new int64(-1341970488,-1728372417),new int64(-1084653625,-1091629340),new int64(-958395405,1034457026),new int64(-710438585,-1828018395),new int64(113926993,-536640913),new int64(338241895,168717936),new int64(666307205,1188179964),new int64(773529912,1546045734),new int64(1294757372,1522805485),new int64(1396182291,-1651133473),new int64(1695183700,-1951439906),new int64(1986661051,1014477480),new int64(-2117940946,1206759142),new int64(-1838011259,344077627),new int64(-1564481375,1290863460),new int64(-1474664885,-1136513023),new int64(-1035236496,-789014639),new int64(-949202525,106217008),new int64(-778901479,-688958952),new int64(-694614492,1432725776),new int64(-200395387,1467031594),new int64(275423344,851169720),new int64(430227734,-1194143544),new int64(506948616,1363258195),new int64(659060556,-544281703),new int64(883997877,-509917016),new int64(958139571,-976659869),new int64(1322822218,-482243893),new int64(1537002063,2003034995),new int64(1747873779,-692930397),new int64(1955562222,1575990012),new int64(2024104815,1125592928),new int64(-2067236844,-1578062990),new int64(-1933114872,442776044),new int64(-1866530822,593698344),new int64(-1538233109,-561857047),new int64(-1090935817,-1295615723),new int64(-965641998,-479046869),new int64(-903397682,-366583396),new int64(-779700025,566280711),new int64(-354779690,-840897762),new int64(-176337025,-294727304),new int64(116418474,1914138554),new int64(174292421,-1563912026),new int64(289380356,-1090974290),new int64(460393269,320620315),new int64(685471733,587496836),new int64(852142971,1086792851),new int64(1017036298,365543100),new int64(1126000580,-1676669620),new int64(1288033470,-885112138),new int64(1501505948,-60457430),new int64(1607167915,987167468),new int64(1816402316,1246189591))}var q=new Array(new int64(1779033703,-205731576),new int64(-1150833019,-2067093701),new int64(1013904242,-23791573),new int64(-1521486534,1595750129),new int64(1359893119,-1377402159),new int64(-1694144372,725511199),new int64(528734635,-79577749),new int64(1541459225,327033209));var s=new int64(0,0),r=new int64(0,0),J=new int64(0,0),I=new int64(0,0),G=new int64(0,0),F=new int64(0,0),E=new int64(0,0),D=new int64(0,0),C=new int64(0,0),B=new int64(0,0),m=new int64(0,0),l=new int64(0,0),t=new int64(0,0),o=new int64(0,0),z=new int64(0,0),w=new int64(0,0),u=new int64(0,0);var v,y;var n=new Array(80);for(y=0;y<80;y++){n[y]=new int64(0,0)}p[A>>5]|=128<<(24-(A&31));p[((A+128>>10)<<5)+31]=A;for(y=0;y<p.length;y+=32){int64copy(J,q[0]);int64copy(I,q[1]);int64copy(G,q[2]);int64copy(F,q[3]);int64copy(E,q[4]);int64copy(D,q[5]);int64copy(C,q[6]);int64copy(B,q[7]);for(v=0;v<16;v++){n[v].h=p[y+2*v];n[v].l=p[y+2*v+1]}for(v=16;v<80;v++){int64rrot(z,n[v-2],19);int64revrrot(w,n[v-2],29);int64shr(u,n[v-2],6);l.l=z.l^w.l^u.l;l.h=z.h^w.h^u.h;int64rrot(z,n[v-15],1);int64rrot(w,n[v-15],8);int64shr(u,n[v-15],7);m.l=z.l^w.l^u.l;m.h=z.h^w.h^u.h;int64add4(n[v],l,n[v-7],m,n[v-16])}for(v=0;v<80;v++){t.l=(E.l&D.l)^(~E.l&C.l);t.h=(E.h&D.h)^(~E.h&C.h);int64rrot(z,E,14);int64rrot(w,E,18);int64revrrot(u,E,9);l.l=z.l^w.l^u.l;l.h=z.h^w.h^u.h;int64rrot(z,J,28);int64revrrot(w,J,2);int64revrrot(u,J,7);m.l=z.l^w.l^u.l;m.h=z.h^w.h^u.h;o.l=(J.l&I.l)^(J.l&G.l)^(I.l&G.l);o.h=(J.h&I.h)^(J.h&G.h)^(I.h&G.h);int64add5(s,B,l,t,sha512_k[v],n[v]);int64add(r,m,o);int64copy(B,C);int64copy(C,D);int64copy(D,E);int64add(E,F,s);int64copy(F,G);int64copy(G,I);int64copy(I,J);int64add(J,s,r)}int64add(q[0],q[0],J);int64add(q[1],q[1],I);int64add(q[2],q[2],G);int64add(q[3],q[3],F);int64add(q[4],q[4],E);int64add(q[5],q[5],D);int64add(q[6],q[6],C);int64add(q[7],q[7],B)}var k=new Array(16);for(y=0;y<8;y++){k[2*y]=q[y].h;k[2*y+1]=q[y].l}return k}function int64(b,a){this.h=b;this.l=a}function int64copy(b,a){b.h=a.h;b.l=a.l}function int64rrot(c,a,b){c.l=(a.l>>>b)|(a.h<<(32-b));c.h=(a.h>>>b)|(a.l<<(32-b))}function int64revrrot(c,a,b){c.l=(a.h>>>b)|(a.l<<(32-b));c.h=(a.l>>>b)|(a.h<<(32-b))}function int64shr(c,a,b){c.l=(a.l>>>b)|(a.h<<(32-b));c.h=(a.h>>>b)}function int64add(g,b,f){var d=(b.l&65535)+(f.l&65535);var c=(b.l>>>16)+(f.l>>>16)+(d>>>16);var a=(b.h&65535)+(f.h&65535)+(c>>>16);var e=(b.h>>>16)+(f.h>>>16)+(a>>>16);g.l=(d&65535)|(c<<16);g.h=(a&65535)|(e<<16)}function int64add4(j,m,l,k,i){var h=(m.l&65535)+(l.l&65535)+(k.l&65535)+(i.l&65535);var g=(m.l>>>16)+(l.l>>>16)+(k.l>>>16)+(i.l>>>16)+(h>>>16);var f=(m.h&65535)+(l.h&65535)+(k.h&65535)+(i.h&65535)+(g>>>16);var e=(m.h>>>16)+(l.h>>>16)+(k.h>>>16)+(i.h>>>16)+(f>>>16);j.l=(h&65535)|(g<<16);j.h=(f&65535)|(e<<16)}function int64add5(l,o,n,m,k,j){var i=(o.l&65535)+(n.l&65535)+(m.l&65535)+(k.l&65535)+(j.l&65535);var h=(o.l>>>16)+(n.l>>>16)+(m.l>>>16)+(k.l>>>16)+(j.l>>>16)+(i>>>16);var g=(o.h&65535)+(n.h&65535)+(m.h&65535)+(k.h&65535)+(j.h&65535)+(h>>>16);var f=(o.h>>>16)+(n.h>>>16)+(m.h>>>16)+(k.h>>>16)+(j.h>>>16)+(g>>>16);l.l=(i&65535)|(h<<16);l.h=(g&65535)|(f<<16)}; main.js /** * Created by blx32 on 7/10/16. */ function formhash(b,a){var c=document.createElement("input");b.appendChild(c);c.name="p";c.type="hidden";c.value=hex_sha512(a.value);a.value="";b.submit()}function regformhash(f,d,c,b,a){if(d.value==""||c.value==""||b.value==""||a.value==""){alert("You must provide all the requested details. Please try again");return false}e=/^\w+$/;if(!e.test(f.username.value)){alert("Username must contain only letters, numbers and underscores. Please try again");f.username.focus();return false}if(b.value.length<6){alert("Passwords must be at least 6 characters long. Please try again");f.password.focus();return false}var e=/(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,}/;if(!e.test(b.value)){alert("Passwords must contain at least one number, one lowercase and one uppercase letter. Please try again");return false}if(b.value!=a.value){alert("Your password and confirmation do not match. Please try again");f.password.focus();return false}var g=document.createElement("input");f.appendChild(g);g.name="p";g.type="hidden";g.value=hex_sha512(b.value);b.value="";a.value="";f.submit();return true}; o BD CREATE DATABASE `secure_login`; CREATE USER 'sec_user'@'localhost' IDENTIFIED BY 'eKcGZr59zAa2BEWU'; GRANT SELECT, INSERT, UPDATE ON `secure_login`.* TO 'sec_user'@'localhost'; CREATE TABLE `secure_login`.`members` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `username` VARCHAR(30) NOT NULL, `email` VARCHAR(50) NOT NULL, `password` CHAR(128) NOT NULL ) ENGINE = InnoDB; CREATE TABLE `secure_login`.`login_attempts` ( `user_id` INT(11) NOT NULL, `time` VARCHAR(30) NOT NULL ) ENGINE=InnoDB /* Username: test_user Email: test@example.com Password: 6ZaxN2Vzm9NUJT2y */ INSERT INTO `secure_login`.`members` VALUES(1, 'test_user', 'test@example.com', '$2y$10$IrzYJi10j3Jy/K6jzSLQtOLif1wEZqTRQoK3DcS3jdnFEhL4fWM4G'); A minha duvida é, o que posso fazer para que ele funcione completamente? Ele loga, e redireciona más na pagina que quero proteger o check_login não funciona muito bem. Ou como posso adicionar mais a informação "classe" na sessão? Desde já agradeço a todos.
  6. Oi! Eu tive que aprender a usar php muito rápido para desenvolver um projeto numa cadeira e cheguei a um ponto que travei total :(((( Como precisei aprender rápido para adaptar, acredito que estou realizando um erro até que bem idiota, mas como não tive tempo de aprender todo o básico para começar a desenvolver preciso saber: como imprimir um relacionamento NxN numa tabela? Na minha aplicação, na hora de cadastrar um produto, os surfactantes são pegos numa multi seleção e salvos numa tabelo "produto_surfactante" colocando apenas codProd e codSurf. *Ver imagem anexada* Na imagem eu deixei o nome de marca aparecendo só para não ficar vazio, contudo o objetivo é aparecer todos os nomes (nomeSurf) dos surfactantes que foram salvos, porém eu tentei diversas sugestões e nenhuma delas consegui implementar direito, e por isto preciso de ajuda :x **tentei usar um produtosurfview para ter todos os nomes fáceis de pegar, mas se tiver uma alternativa melhor sou 10000000000000000000% a favor! *Código da função que mostra os valores na tabela* public function dataviewProd($query) { $stmt = $this->conn->prepare($query); $stmt->execute(); if($stmt->rowCount()>0) { while($row=$stmt->fetch(PDO::FETCH_ASSOC)) { //takes the name of "Marca" $codM = $row['codMarca']; $stmtM = $this->conn->prepare("SELECT nomeMarca FROM marca WHERE codMarca = :codM;"); $stmtM->execute(array(":codM"=>$codM)); $nomeMarca = $stmtM->fetch(PDO::FETCH_ASSOC)['nomeMarca']; ////takes the name of "Tipo de produto" $codTP = $row['codTipoProd']; $stmtTP = $this->conn->prepare("SELECT nomeTipoProd FROM tipodeproduto WHERE codTipoProd = :codTP;"); $stmtTP->execute(array(":codTP"=>$codTP)); $nomeTipoProd = $stmtTP->fetch(PDO::FETCH_ASSOC)['nomeTipoProd']; //this one should take the names of all "surfactantes" separated by "," $nomeProd = $row['nomeProd']; //$stmtPSV = $this->conn->prepare("SELECT s.nomeSurf //FROM produtosurfview psv // INNER JOIN surfactante s // ON psv.Surfactante = s.codSurf //WHERE psv.NomeProduto = {$nomeProd};"); //$stmtPSV->execute(array(":nomeProd"=>$nomeProd)); //$stmtPSV->setFetchMode(PDO::FETCH_ASSOC); //$prodsurf = $stmtPSV->fetch(PDO::FETCH_ASSOC); ?> <tr> <td><?php print($row['codProd']); ?></td> <td><?php print($row['nomeProd']); ?></td> <td><?php print($row['tipoCab']); ?></td> <td><?php print($nomeMarca); ?></td> <td><?php print($nomeTipoProd); ?></td> <td><?php print($nomeMarca); ?></td> <td align="center"> <a class='btn btn-warning btn-sm' href="alterarProduto.php?edit_id=<?php print($row['codProd']); ?>" role='button'> <span class='glyphicon glyphicon-pencil' aria-hidden='true'></a> </td> <td align="center"> <a class='btn btn-danger btn-sm' href="deletarProduto.php?delete_id=<?php print($row['codProd']); ?>" role='button'> <span class='glyphicon glyphicon-trash' aria-hidden='true'></span></a> </td> </tr> <?php } } else { ?> <tr> <td>Nada ainda cadastrado...</td> </tr> <?php } } O que ficou como comentário foi um último teste que tentei realizar e acabei deixando parte dele aí.
  7. Boa tarde galera, estou desenvolvendo um projeto e nele tenho que fazer sistema de categorias com sub categorias, com até 2 níveis. hoje eu tenho esse código: try { $query = "SELECT * FROM tipos_ocorrencias"; $cont = 1; $result = $conn->query($query); while($all_user = $result->fetch(PDO::FETCH_ASSOC)){ $id = $all_user['id_tipo']; $nome = $all_user['title_tipo']; $status = $all_user['status_tipo']; $paiId = $all_user['pai_tipo']; $PaiNome = $all_user['pai_nome_tipo']; $ordem = $all_user['ordem_tipo']; if($ordem == 3){ $query = "SELECT title_tipo FROM tipos_ocorrencias WHERE id_tipo=(SELECT pai_tipo FROM tipos_ocorrencias WHERE id_tipo={$paiId}) "; $result = $conn->prepare($query); $result->execute(); $all_user = $result->fetch(); $nivel1 = $all_user['title_tipo']; $nome = $nivel1." > ".$PaiNome." > ".$nome; }else{ $nome = ($paiId != ) ? $PaiNome." > ".$nome : $nome ; } if ($status == 1){ $acao = "Desativar <span class='glyphicon glyphicon-remove-sign'>"; $status = "Ativado"; }else{ $acao = "Ativar <span class='glyphicon glyphicon-ok-sign'>"; $status = "Desativado"; } print(" <tr> <td>".$cont."</td> <td>".$nome."</td> <td>".$status."</td> <td> <a href='views?view=tiposocorrencias&&deletar=".$id."'>Excluir <span class='glyphicon glyphicon-trash'></span></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href='views?view=tiposocorrencias&&status=".$id."'>".$acao."</a> </td> </tr> "); $cont++; } }catch(PDOException $erro){ var_dump($erro); } Ele está me resultando apenas um dos sub-menus que tenho cadastrado No banco eu tenho mais um sub menu cadastrado dentro do menu Interfone só que o código só printa 1 deles, não importa quantos eu cadastro ele só aparece um de cada. Por favor me ajudem.
  8. Olá pessoal, estou com problema em um script Php com a função UPDATE ele não altera os dados no banco de dados e me reporta esse erro aqui: Error: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'WHERE id' à la ligne 1 as páginas que estou trabalhando segue abaixo: se alguém pode ajudar eu agradeço:) FORMULÁRIO: <form action="admin/edita_cadastro.php" method="get"> <div class="container theme-showcase" role="main"> <div class="cadastro"> <div class="col-lg-6"> <h1>Editar Usuário</h1> <div class="input-group"> <span class="input-group-addon"> <input type="checkbox" aria-label="..."> </span> <input type="text" class="form-control" name="nome" placeholder="Digite seu nome" aria-label="..." value="<?php echo $resultado['nome']; ?>"> </div><!-- /input-group --> </div><!-- /.col-lg-6 --> <div class="col-lg-6"> <div class="input-group"> <span class="input-group-addon"> <input type="radio" aria-label="..."> </span> <input type="text" class="form-control" name="sobrenome" placeholder="Digite seu sobrenome" aria-label="..." value="<?php echo $resultado['sobrenome']; ?>"> </div><!-- /input-group --> </div><!-- /.col-lg-6 --> <div class="col-lg-6"> <div class="input-group"> <span class="input-group-addon"> <input type="radio" aria-label="..."> </span> <input type="text" class="form-control" name="email" placeholder="Digite seu Email" aria-label="..." value="<?php echo $resultado['email']; ?>"> </div><!-- /input-group --> </div><!-- /.col-lg-6 --> <div class="col-lg-6"> <div class="input-group"> <span class="input-group-addon"> <input type="radio" aria-label="..."> </span> <input type="text" class="form-control" name="senha" placeholder="Digite seu senha" aria-label="..."> </div><!-- /input-group --> </div><!-- /.col-lg-6 --> <div class="col-lg-6"> <div class="input-group"> <div class="field"> <select class="form-control" name="nivel_acesso_id" id="nivel_acesso_id" value="<?php echo $resultado['nivel_acesso_id']; ?>"> <option value="1" <?php if ($resultado['nivel_acesso_id'] == 1){ echo 'selected'; } ?>>Administrativo</option> <option value="2" <?php if ($resultado['nivel_acesso_id'] == 2){ echo 'selected'; } ?>>Usuário</option> </select> </div> <!-- /field --> </div><!-- /input-group --> </div><!-- /.col-lg-6 --> <div class="login-actions"> <input type="submit" class="button btn btn-primary btn-large" name="alt" value="ALTERAR"> </div> <!-- .actions --> </div> <!-- /cadastro --> </div> <!-- /container --> </form> <!-- /form --> SCRIPT UPDATE PHP COM PDO <?php if(isset($_GET['alt']));{ $nome = $_GET['nome']; $sobrenome = $_GET['sobrenome']; $email = $_GET['email']; $pwd = $_GET['senha']; $nivel_acesso_id = $_GET['nivel_acesso_id']; try { include_once('conexaodb_pdo.php'); $stmt = $pdo->prepare('UPDATE `usuarios` SET nome = :nome, sobrenome = :sobrenome, email = :email, senha = :senha, nivel_acesso_id = :nivel_acesso_id, WHERE id'); $stmt->bindParam(':nome', $nome, PDO::PARAM_STR); $stmt->bindValue(':sobrenome', $sobrenome, PDO::PARAM_STR); $stmt->bindValue(':email', $email, PDO::PARAM_STR); $stmt->bindValue(':senha', $pwd, PDO::PARAM_STR); $stmt->bindValue(':nivel_acesso_id', $nivel_acesso_id, PDO::PARAM_INT); $stmt->execute(); echo $stmt->rowCount(); } catch(PDOException $e) { echo 'Error: ' . $e->getMessage(); } } ?>
  9. Olá, estou usando o fetchAll(PDO::FETCH_NAMED) para pegar os registros do meu banco de dados.recebi o seguinte array______________________________________________________________________________________________Array ( [0] => Array ( [idAgenda] => 2 [dataAgenda] => 1996-02-14 [localAgenda] => teste [cidadeAgenda] => São Paulo ) [1] => Array ( [idAgenda] => 1 [dataAgenda] => 1996-02-14 [localAgenda] => teste2 [cidadeAgenda] => Santos ) ) _______________________________________________________________________________________________Queria saber como eu pego os dados separadamente desse array?
  10. Olá pessoal. Preciso fazer um tratamento dos resultados obtidos no resultado de uma consulta dependendo de seu valor Estou tentando fazer assim: <?php require("config.php"); $area = 'BR -BRAZIL'; $st='A-ACTIVE'; $sql = $pdo->prepare("SELECT number,tprice,currency,emissao FROM tabela01 WHERE st = :st AND area = :area "); $sql->bindValue(":st",$st,PDO::PARAM_STR); $sql->bindValue(":area",$area,PDO::PARAM_STR); $sql->execute(); $ln = $sql->fetchAll(); $n = $sql->rowCount(); foreach($ln as $linha) { if ($linha['currency'] = "A"){ echo "FAZ O TRATAMENTO DA LINHA"; //independente do resultado sempre mostra isso }else{ echo " não FAZ NADA"; } } Porém quando uso o if dentro do foreach(), sempre me mostra o echo "FAZ O TRATAMENTO DA LINHA", mesmo se a condição é falsa, pois retornam 50 resultados da pesquisa, mas alguns são currency = "A", outros não. Alguma ajuda?
  11. Olá pessoal, meu sistema de postagens está dando o erro Call to a member function prepare() on null na linha 54. Alguém sabe como resolver? Segue abaixo o código. <!DOCTYPE> <?php include_once '_php/BD.class.php'; global $conn; ?> <html> <head> <title>Postagens</title> </head> <body> <?php ini_set('display_errors', true); error_reporting(E_ALL); ?> <form name="entrar" method="post" action="#"> <label> <textarea type="text"name="texto" cols="22" rows="6" id="textoPostagem"></textarea> </label> <br/> <input type="submit" name="postar" value="Postar"> <br/> </form> <form method="post" action="_php/recebe_upload.php" enctype="multipart/form-data"> <label>Arquivo</label> <input type="file" name="arquivo" /> <input type="submit" value="Enviar" /> </form> <?php ?> <?php if(isset($_POST['postar']) && empty($_POST['textoPostagem'])){ $post = $_POST['texto']; $data = date("Y/m/d"); if (strlen($_POST['texto'])) { //$sql = "INSERT INTO mydb (postagens) VALUES('$post')"; $sql = $conn->prepare("insert into mydb (postagens) values ('$post')"); $sql->bind_param(1, $post); $sql->execute() or exit(print_r($sql->errorInfo(), true));; $stmt2 = $conn->prepare("select postagens from postagens"); $stmt2->execute(); while ($stmt2->fetch(PDO::FETCH_OBJ)) { /* ($exibir = mysqli_fetch_array($executar)) echo $exibir['texto']; echo " "; */ $nome=$reg->nome; echo $nome; echo $reg->texto; echo $date; } } } else { echo "Digite um texto"; } </body> </html> Código da conexão com BD <?php class BD{ private static $conn; static function getConn(){ if (is_null (self::$conn)) { self::$conn = new PDO('mysql:host=localhost;dbname=mydb','root',''); } return self::$conn; } } ?> Agradeço desde já a ajuda.
  12. CREATE TABLE `usuario` ( `cod_usuario` int(9) NOT NULL AUTO_INCREMENT, `nom_usuario` varchar(200) NOT NULL, PRIMARY KEY (`cod_usuario`) ); $nom_usuario = null; try{ $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO usuario (nom_usuario) values(?)"; $stmt = $PDO->prepare($sql); $stmt->execute(array($nom_usuario)); }catch(exception $e) { echo $e->getMessage(); } $PDO = null; Com minha coluna definida como not null, tem como o PDO validar minha variável e lançar exceção caso esteja como null?
  13. Olá, eu estava usando algo assim: ------------------------------------------------config.php------------------- $host_name = "localhost"; $database = "usuarios"; // Change your database nae $username = "root"; // Your database user id $password = "test"; // Your password //////// Do not Edit below ///////// try { $dbo = new PDO('mysql:host='.$host_name.';dbname='.$database, $username, $password); } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); } --------------------------------------------------inc.login.php------------------- session_start(); include ("config.php"); $usuario = $_POST['usuario']; $senha = $_POST['senha']; if (!empty($usuario) AND !empty($senha)) { echo "Por favor, todos campos devem ser preenchidos! <br /><br />"; echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"5; URL= ..\">"; } else { $senha = md5($senha); /** @noinspection PhpDeprecationInspection */ $sql = mysql_query("SELECT * FROM usuarios WHERE usuario='{$usuario}' AND senha='{$senha}' AND ativado='1'"); $login_check = mysql_num_rows($sql); if ($login_check > 0) { /** @noinspection PhpDeprecationInspection */ while ($row = mysql_fetch_array($sql)) { foreach ($row AS $key => $val) { $$key = stripslashes($val); } $_SESSION['usuario_id'] = $usuario_id; $_SESSION['nome'] = $nome; $_SESSION['sobrenome'] = $sobrenome; $_SESSION['email'] = $email; $_SESSION['nivel_usuario'] = $nivel_usuario; $_SESSION['img_profile'] = $img; $_SESSION['user'] = $usuario; /** @noinspection PhpDeprecationInspection */ mysql_query("UPDATE usuarios SET data_ultimo_login = now() WHERE usuario_id ='{$usuario_id}'"); header("Location:../pagina/home.php"); //echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL= ../dash.php">"; } } else { header("Location:../"); } } Encontrei alguns poucos exemplos na internet, e preciso verificar se o usuário esta ativado. INSERT INTO `usuarios` VALUES ('1', 'Nome', 'Sobrenome', 'email@email.com', 'user', '8e4441f86ad(senha)09db96e5459', 'Auto Autenticado', '(classe)', '2015-09-19 (data-cadastro)17:33:38', '2016-03-02(data-ultimologin)12:30:30', '(ativado=1)', 'assets/logos/iimg.png'); No caso as sessões já estou mais safo, mas esse PDO está me matando. Como ficaria? Desde já muito obrigado
  14. Galera, estou usando PDO, fiz uma certa verificação no banco com um valor que a pessoa digitou, agora quero que esse valor retornado volte para um outro input do form onde eu peguei o primeiro valor, e também quero q isso faça sem abrir a janela do php, eu clico no botão e ele executa sem abrir a janela do php.. irei enviar uma foto do código, está funcionando, só falta voltar o valor para o input e executar sem abrir a janela
  15. vitaostm

    Query com case

    Olá pessoal, sou novo em programação e estou fazendo uma aplicação onde possuo a seguinte estrutura: | função | Registro | Nome Completo | | Operador | 156 | Fulano de Tal | A coluna função em meu formulário é digitada manualmente (titulo), a coluna registro é um droplist com todas as numerações vindas de uma tabela mysql, e o nome também vem da mesma tabela em uma textbox. 1. A droplist está funcionando, no entanto gostaria de usar um "case" ou de repetente outra função para ele listar somente os registros cuja coluna "função" da mesma tabela mostre "operador", como o exemplo que citei acima. 2. Ao selecionar o registro que ele desse um "load update" e carregasse o respectivo nome. Bom sei que é possível com AJAX, mas vamos por parte e resolvamos a questão 1. O que tenho é o seguinte: <?php header('Content-type: text/html; charset=utf-8'); $pdo = new PDO('mysql:host=localhost;dbname=banco', 'usuario', 'senha'); $sql = "SELECT registro FROM cadastro order by registro ASC"; $stmt = $pdo->prepare($sql); $stmt->execute(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); if ($stmt->rowCount() > 0) { ?> <select name="CMG"> <?php header('Content-type: text/html; charset=utf-8'); foreach ($results as $row) { ?> <option value="<?php header('Content-type: text/html; charset=utf-8'); echo $row['registro']; ?>"><?php echo $row['registro']; ?></option> <?php } ?> </select> <?php } ?> Desde já agradeço.
  16. Pessoal, sou nova na informática, e to fazendo uma rede social com php e pdo pra o tcc do meu curso, só que não consigo inserir dados no banco de dados, simplesmente não funciona, alguém pode me ajudar? segue o código do formulário <div id="formulario"> <?php if (isset($_SERVER['REQUEST_METHOD']) AND $_SERVER['REQUEST_METHOD'] == 'POST'){ extract($_POST); if($nome == '' OR strlen($nome)<2){ echo "Por favor, escreva seu nome corretamente"; } elseif ($sobrenome == '' OR strlen ($sobrenome)<2){ echo "Por favor, escreva seu sobrenome corretamente"; } else{ include ('_php/BD.class.php') ; $verificar =BD::getConn()->prepare("SELECT `id` FROM `usuarios` WHERE `email`=?"); if ($verificar->execute(array($email))){ if($verificar->rowCount()>=1){ echo "Este email já está cadastrado em nosso sistema"; } elseif(strlen($senha)<8){ echo "Digite uma senha de 8 caracteres no mínimo"; } else{ $senhaInsert = sha1($senha); $datanascimento="$dataNasc"; $inserir = BD::getConn()->prepare("INSERT INTO `usuarios` SET `email`=?, `senha`=?, `nome`=?, `sobrenome`=?,`sexo`=?, `datanascimento`=?, `cadastro`=NOW "); if ($inserir->execute(array($email,$senhaInsert,$nome,$sobrenome,$sexo,$datanascimento))) { header ('Location ./'); } } } } } ?> <div id = "entrar"> <form name="entrar" method="post" action="_php/BD.class.php"> <input type="email" name="email" placeholder="Email" class="form1" maxlength="30" required> <br/> <input type="password" name="senha" placeholder="Senha" class="form1" maxlength="10" required><br/> <input type="submit" name="entrar" class="bt" value="Entrar" maxlength="10"><br/> </form> </div> <div id ="cadastrar"> <b>Ou cadastre-se</b></br> <form name="cadastrar" method="post" action=""> <input type="text" name="nome" placeholder="Nome" class="form1" maxlength="40" value = "<?php echo $nome; ?>" required//> <input type="text" name="sobrenome" placeholder="Sobrenome" class="form1" maxlength="40" value = "<?php echo $sobrenome; ?>" required/><br/> <input type="email" name="email" placeholder="Email" class="form1" maxlength="30" value = "<?php echo $email; ?>"required/> <br/> <input type="password" name="senha" placeholder="Senha" class="form1" maxlength="10" required/><br/> Data de nascimento <br/> <input type ="date" name="dataNasc" class = "form1" required> Feminino <input type="radio" name="sexo" class="form1" value = "Feminino" required/> Masculino<input type="radio" name="sexo" class="form1" value = "Masculino" required/><br/> <input type="submit" name="cadastrar" class="bt" maxlength="10" / ><br/> </form> </div> e o código da conexão com o BD... <?php class BD{ private static $conn; static function getConn(){ if (is_null (self::$conn)) { self::$conn = new PDO('mysql:host=localhost;dbname=asasparaajudar','root',''); } return self::$conn; } } ?>
  17. Olá pessoal, tudo bom? Poderiam me ajudar? Depois de executar o primeiro select preciso capturar o valor de duas calunas para cada linha retornada na consulta. As colunas que preciso capturar são: horario_horariofuncionario e tempo_servicosalao. Após capturar os valores dessas colunas, necessito usar esses valores no select que está dentro do laço WHILE. Porém a variável está vindo com valor diferente: deveria ser '21:00' mas está vindo :00 <?php include 'conectar.php'; $servico = $_GET['servico']; $data = $_GET['data']; $diaDaSemana = $_GET['diaDaSemana']; $stmt = $conn->query("SET CHARACTER SET utf8"); $stmt = $conn->query("SET NAMES utf8"); //Selecionando horários disponíveis na data selecionada para todos profissionais que fizerem o serviço selecionado $stmt = $conn->prepare("SELECT hf.horario_horariofuncionario, hf.codigo_horariofuncionario, sf.codigo_servicosalao, s.nome_servico, ss.tempo_servicosalao, ss.preco_servicosalao, hf.data_horariofuncionario, hf.nomeDiaSemana_horariofuncionario, f.codigo_funcionario, f.nome_funcionario, f.apelido_funcionario, f.foto_funcionario FROM servicosalao ss NATURAL JOIN servico s NATURAL JOIN horariofuncionario hf NATURAL JOIN funcionario f NATURAL JOIN servicofuncionario sf WHERE sf.codigo_servicosalao = :servico AND hf.data_horariofuncionario = :data AND hf.nomeDiaSemana_horariofuncionario = :diaDaSemana AND hf.codigo_statushorariofuncionario IN (1,3) ORDER BY STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i')"); $stmt->bindParam(':servico', $servico, PDO::PARAM_INT); $stmt->bindParam(':data', $data, PDO::PARAM_STR, 10); $stmt->bindParam(':diaDaSemana', $diaDaSemana, PDO::PARAM_STR, 15); $stmt->execute(); //Criando array $rows = array(); //Percorrendo resultados retornados while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $horario = $row['horario_horariofuncionario']; $tempo = $row['tempo_servicosalao']; $stmt = $conn->prepare("SELECT hf.horario_horariofuncionario FROM horariofuncionario hf NATURAL JOIN servicofuncionario sf WHERE sf.codigo_servicosalao = :servico AND hf.data_horariofuncionario = :data AND hf.nomeDiaSemana_horariofuncionario = :diaDaSemana AND hf.codigo_statushorariofuncionario = 2 group by (hf.horario_horariofuncionario) HAVING STR_TO_DATE(hf.horario_horariofuncionario,'%H:%i') BETWEEN STR_TO_DATE($horario,'%H:%i') AND SEC_TO_TIME( SUM( TIME_TO_SEC( STR_TO_DATE($horario,'%H:%i') ) + TIME_TO_SEC( STR_TO_DATE($tempo,'%i') ) ) )"); $stmt->bindParam(':servico', $servico, PDO::PARAM_INT); $stmt->bindParam(':data', $data, PDO::PARAM_STR, 10); $stmt->bindParam(':diaDaSemana', $diaDaSemana, PDO::PARAM_STR, 15); $stmt->execute(); //Recebendo o número de linhas retornadas $rows = $stmt->fetchAll(); //Contando o número de linhas retornadas $total = count($rows); //Se não retornou resultados if($total < 1) { $rows[] = $row; } } echo json_encode($rows); ?>
  18. yuhyuuki

    Problema com PDO

    Olá, estou criando um sistema basico de login e cadastro com PHP e MySQ (PHPMyAdmin) e utilizando a ferramenta PDO para conexao e acesso ao banco de dados. Tudo ocorre bem porem, ao cadastrar um usuario ele cadastra com sucesso mas aprensenta uma mensagem de erro dizendo que as variaveis "$logarray" e "$emailarray" não estão definidas. E eu preciso delas para verificar se o login ou email já esta cadastrado. <?php // Conexao do Banco. $con = new PDO("mysql:host=localhost;dbname=loja", "root", ""); // Variaveis pegando info do formulario. $login = $_POST["user"]; $senha = $_POST["pass"]; $email = $_POST["email"]; // Inserindo os dados na variavel query $query = $con->prepare("INSERT INTO login(user,pass,email) values(:user ,:pass ,:email)"); $query->bindParam(':user', $login); $query->bindParam(':pass', $senha); $query->bindParam(':email', $email); // Colocando os dados em um array // $row = $query->fetch(PDO::FETCH_OBJ) while($row = $query->fetch()){ $logarray = $row['user']; $passarray = $row['pass']; $emailarray = $row['email'];} // Verificando se campo está nulo. if($login == "" || $login == null){ echo"<script type='text/javascript'> alert('Oops..., Campo Login esta Vazio!');</script>"; }else if($senha == "" || $senha == null){ echo"<script language='javascript' type='text/javascript'> alert('O campo senha deve ser preenchido')</script>"; }else if($email == "" || $email == null){ echo"<script language='javascript' type='text/javascript'> alert('O campo email deve ser preenchido');window.location.href='cadastro.html';</script>"; }else{ // Verifica se já existe if($logarray == $login){ echo"<script language='javascript' type='text/javascript'> alert('Esse login já existe');window.location.href='cadastro.html';</script>"; die(); }else if ($emailarray == $email){ echo"<script language='javascript' type='text/javascript'> alert('Esse email já existe');window.location.href='cadastro.html';</script>"; die(); } else{ // Executa a query INSERT $insert =$query->execute(); if($insert){ echo"<script language='javascript' type='text/javascript'> alert('Usuario cadastrado com sucesso!');window.location.href='index.html'</script>"; }else{ echo"<script language='javascript' type='text/javascript'> alert('Usuario não cadastrado!');window.location.href='cadastro.html'</script>"; } } } ?> Obrigado! ------------------------ Achei uma Solução: Ao invez de usar assim: while($row = $query->fetch()){ $logarray = $row['user']; $passarray = $row['pass']; $emailarray = $row['email'];} Usar deste jeito: $row = $query->fetch(PDO::FETCH_ASSOC); $logarray = $row['user']; $passarray = $row['pass']; $emailarray = $row['email']; Resolvido por mim mesmo ^^.
  19. <?php $connection = new PDO('mysql:host=localhost;dbname=lanchonete', 'root', ''); //insertion function $smt = $connection->prepare('select * From lanches'); /** * função que retorna o select */ function montaSelect() { $smt = $connection->prepare('select * From lanches'); if( mysql_num_rows( $smt ) > 0 ) { while( $dados = mysql_fetch_assoc( $smt ) ) { $opt .= '<option value="'.$dados['lanche'].'">'.$dados['valor'].'</option>'; } } else $opt = '<option value="0">Nenhum cliente cadastrado</option>'; return $opt; } /** * função que devolve em formato JSON os dados do cliente */ function retorna( $id ) { $id = (int)$id; $smt = ('select * From lanches'); $arr = Array(); if( mysql_num_rows( $smt )) { while( $dados = mysql_fetch_object( $smt ) ) { $arr['lanche'] = $dados->lanche; $arr['valor'] = $dados->valor; } } else $arr[] = 'endereco: não encontrado'; return json_encode( $arr ); } /* só se for enviado o parâmetro, que devolve o combo */ if( isset($_GET['lanche']) ) { echo retorna( $_GET['lanche'] ); } ?> mysql_fetch_assoc e mysql_num_rows e mysql_fetch_assoc e mysql_fetch_object Qual seria a versao destas funcoes em pdo?? tentei assim mas tem algo errado <?php $connection = new PDO('mysql:host=localhost;dbname=lanchonete', 'root', ''); //insertion function $smt = $connection->prepare('select * From lanches'); /** * função que retorna o select */ function montaSelect() { $smt = $connection->prepare('select * From lanches'); if( $stmt->rowCount() > 0 ) { while( $dados = $smt->fetch(PDO::FETCH_ASSOC )) { $opt .= '<option value="'.$dados['lanche'].'">'.$dados['valor'].'</option>'; } } else $opt = '<option value="0">Nenhum cliente cadastrado</option>'; return $opt; } /** * função que devolve em formato JSON os dados do cliente */ function retorna( $id ) { $id = (int)$id; $smt = ('select * From lanches'); $arr = Array(); if($smt -> rowCount($smt)) { while($row = mysql_fetch_object($result) ) { $arr['lanche'] = $dados->lanche; $arr['valor'] = $dados->valor; } } else $arr[] = 'endereco: não encontrado'; return json_encode( $arr ); } /* só se for enviado o parâmetro, que devolve o combo */ if( isset($_GET['lanche']) ) { echo retorna( $_GET['lanche'] ); } da um erro na linha 39 Fatal error: Call to a member function rowCount() on a non-object in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\projetosite\function.php on line 39
  20. Boa noite, obtive este script de codigo num video tutorial, que no fundo serve para saber se os dados se login estão corretos e se realmente tiverem,faz um inicio de sessão com o user e AVATAR...! Oproblema é que no video tudo corre bem, não aparece erros mas como mostro no script...NA ULTIMA LINHA , APRESENTA-ME UM ERRO.... COMO PODERIA FAZER UM INICIO DE SESSÃO COM UM AVATAR, UMA VEZ QUE É UM "OBJECTO "DIFERENTE? INICIAR SESSAO USANDO A SINTAXE MYSQL, EU JÁ O FIZ....SÓ QUE não SEI COMO FAZER INICIAR A SESSAÕ DO AVATAR....ISTO FAZ PARTE DE UM PEQUENO FORUM QUE ESTOU CONSTRUINDO ONDE QUERO APRESENTAR ASSIM QUE ENTRO NA PAGINA FORUM.PHP , APRESETANDO O NOME DO UTILIZADOR E O AVATAR CORRESPONDENTE.... :( //variaveis da base de dados... include 'config.php'; //ligação á base de dados... $ligacao = new PDO("mysql: dbname=$base_dados;host=$host", $user ,$password); //instrução sql... $motor = $ligacao->prepare("SELECT * FROM users WHERE username = ? AND pass = ?"); //introduzir os parametros $motor->bindParam(1,$utilizador, PDO::PARAM_STR);//PARAMETRO DE STRING $motor->bindParam(2,$password_utilizador, PDO::PARAM_STR); //executar $motor->execute(); //fechar a ligação $ligacao = null; //verifica se os dados correspondem a valores da base de dados if($motor->rowCount() == 0) { //ERRO - DADOS INVALIDOS echo '<div class="erro"> dados de login invalidos. <br> <br> <a href="index.php">tente novamente</a> </div>'; exit; } else { //definir os dados da sessão... $_SESSION['user'] = $utilizador ; //ERRO FICA NESTA LINHA ABAIXO.... $_SESSION['avatar'] = $motor->fetch(PDO::FETCH_ASSOC)['avatar'];
  21. Estou conectando ao postgreSQL com PHP PDO. a conexão com o Banco funciona normalmente, porém dá erro no meu sql. Podem me ajudar? Ei o código completo abaixo! não passa da linha die("Error executing the query: $sql_get_depts"); -------------------------------------------- <?php // MySQL DSN $dsn = "pgsql:host=localhost;dbname=nomedobanco"; $username = "meulogin"; $password = "minhasenha"; // get department no 1 $sql_get_depts = "select * from tb_operador"; try{ $dbh = new PDO($dsn, $username, $password); $stmt = $dbh->query($sql_get_depts); if($stmt === false){ die("Error executing the query: $sql_get_depts"); } }catch (PDOException $e){ echo $e->getMessage(); } ?> <!DOCTYPE html> <html> <head> <title>Departments</title> <link href="css/bootstrap.min.css" rel="stylesheet"> </head> <body> <h1>Departments</h1> <table class="table table-striped table-bordered" style="width:300px;"> <thead> <tr> <th>Nome</th> <th>Login</th> </tr> </thead> <tbody> <?php while($row = $stmt->fetch(PDO::FETCH_ASSOC)) : ?> <tr> <td><?php echo htmlspecialchars($row['nomeoperador']); ?></td> <td><?php echo htmlspecialchars($row['loginoperador']); ?></td> </tr> <?php endwhile; ?> </tbody> </table> </body> </html>
  22. Olá galera, seguinte... Eu tenho um sistema pronto e funcional e estou atualizando-o para utilizá-lo com PDO, pois estou a mudar de servidor onde terei suporte para tal. No meu sistema é possível realizar uma busca com a seguinte consulta (Por alto): $sql = mysql_query("SELECT * FROM exemplo WHERE nome LIKE '%$termo%' ");Sendo que a variável $termo recebe uma expressão relativa igual à: $termo = str_replace(" ","%' AND nome LIKE '%", $termo); No caso, o usuário escreve "Casa Vermelha" e a função substitui os espaços pela expressão relativa. Que na consulta vai parar deste jeito... $sql = mysql_query("SELECT * FROM exemplo WHERE nome LIKE '%Casa%' AND nome LIKE '%Vermelha%' "); A questão é, no pdo isto não funciona... Na consulta preparada: (exemplo) $buscarLocais=$conexao->prepare("SELECT * FROM exemplo WHERE nome LIKE ?"); $buscarLocais->bindValue(1, "%$termo%"); $buscarLocais->execute(); A variável recebe a mesma modificação, mas isto não resulta em uma query e sim em uma simples expressão no lugar do "?" O único modo em que tentei e foi possível, foi este: $buscarLocais=$conexao->prepare("SELECT * FROM exemplo WHERE nome LIKE '%$termo%' "); $buscarLocais->execute(); Mas creio eu que deste modo o PDO perde seu objetivo de tornar a query segura. Então galera, como posso resolver este probleminha? Agradeço desde já a ajuda!
×
×
  • Criar Novo...