-
Posts
14.206 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que DiF postou
-
@FabianoS Sim. toda vez que fazer uma ação você faz o insert. Quando usar o update set? na pagina restrita logo depois que loga, atualizar o campo horas da tabela. para sempre mostrar ao usuário o ultimo horario logado no sistema. O código dava errado.. por que o null é o primeiro elemento, referente ao ID. se o campo é auto_increment não precisa,. e não deve colocar null ou algum valor. Além do mais, o null só é permitido caso seu campo permita que tenha valores nulos.. afinal nulo não é vazio.(não na programação). Provavelmente o campo ID da sua tabela é NOT NULL. ou seja, ele não pode ser nulo... então retirando o NULL do código.. ele funciona. Testar o retorno da função com: if ($sql) {return true;} else {return false; é um pouco errado nesse tipo de código. por que a função PRECISA que retorne o próprio SQL.. e caso dê erro só apresente uma mensagem então o correto seria: if ($sql) {return $sql;} else { return "Não foi possível inserir na tabela."}// faltou colocaro fechamento do IF Uma boa prática de programação: Sempre que for fazer um IF... evite ao máximo utilizar o modo convencional.. por que certamente vai te atrapalhar na hora de entender o encadeamento. Então use sempre a sintaxe alternativa que é mais elegante e mais claro de entender. vou dar um exemplo: //Sintaxe normal:if($idade < 18){ echo "Menor de idade"; }else{ echo "Maior de idade";}//sintaxe normal com dois ifsif($curso == "faculdade"){ if($idade <18 ){ echo "Menor de idade.. não pode fazer"; }else{ echo "Maior de idade, pode fazer"; } }else{ echo "Faça pre-vestibular antes ";} Olha que complicado... e muito fácil de se perder... veja agora a sintaxe alternativa que recomendo usar: //Sintaxe alternativa:if($idade < 18): echo "Menor de idade";else: echo "Maior de idade";endif;//sintaxe alternativa com dois ifsif($curso == "faculdade"): if($idade <18 ): echo "Menor de idade.. não pode fazer"; else: echo "Maior de idade, pode fazer"; endif; else: echo "Faça pre-vestibular antes ";endif; Muito melhor não? e os outros elemento são a mesma coisa: foreach ... endforeach, for... endfor, while...endwhile...
-
@Thalles Aguair Não. Não são todas as missões que dão grana. Alias a maioria não dá. As únicas que dão grana é as sub missões de taxi, reboque, entrega de drogas ou armas(trevor), as missões de assalto em que precisa juntar uma equipe(missões com o Lester) E algumas missões secundárias.. como por exemplo com o trevor nos estranhos e loucos.. que tens que pegar um carro.. e dentro do porta malas tem um cara dentro.. aí tu escolhe: Se levar o carro até os trilhos do trem.. e matar o cara... tu só recebe uma ligação de um velho muito indignado com a morte do cara. Se resolver aceitar a oferta do cara que está preso no porta-malas, parar o carro antes de chegar nos trilhos...sair do carro e chegar perto do porta-malas.. para soltar o cara.... tu ganha 10 mil dólares. Se uma hora que estiver andando pelo mapa.. principalmente nas estrada... maiores tipo as freeway .. e ver uma mulher pedindo socorro... (não a que está acidentada com carro pegando fogo), e der uma carona para ela... posteriormente vai ganhar 60 mil dólares por ter ajudado + o contato dela para se integrar na equipe de assalto. E por ai vai O gta 5 é um jogo muito vasto... duvido muito que alguém tenha visto ou escutado completamente tudo do jogo... Sempre vai ter algo diferente... em lugares diferentes.. Podes jogar o jogo do zero umas 30 vezes... que as 30 vezes vais encontrar coisas novas... Até brasileiros(modo história) eu já encontrei kkkkkkkkkk
-
@FabianoS Pelo que eu vejo tem erros ali. O NULL, não é para ser usado... porque quando criaste a tabela, definisse o ID para ser auto increment.(meio que obrigatório isso) A função não precisava ser criada para fazer algo como isso.. mas se realmente quer uma função.. pode ser feita assim: function logs($mensagem) { $conexao = mysqli_connect('localhost','root','','cadastro'); $ip = $_SERVER['REMOTE_ADDR']; $hora = date('Y-m-d H:i:s'); $mensagem = mysqli_real_escape_string($conexao,$mensagem); $insere = mysqli_query($conexao,"INSERT into logs(hora,ip,mensagem) VALUES('$hora','$ip','$mensagem')"); if($insere): return $insere; endif;} //usando a funçãologs("Entrou no sistema"); a função pode ser feita dessa maneira também: $ip = $_SERVER['REMOTE_ADDR']; $hora = date('Y-m-d H:i:s'); $mensagem = mysqli_real_escape_string($conexao,$mensagem);function logs($hora, $ip, $mensagem) { $conexao = mysqli_connect('localhost','root','','cadastro'); $insere = mysqli_query($conexao,"INSERT into logs(hora,ip,mensagem) VALUES('$hora','$ip','$mensagem')"); if($insere): return $insere; endif;} //usando a funçãologs($hora, $ip, $mensagem); As duas formas funcionam. o que precisas entender é que ele precisa retornar algo como a variável que insere no banco de dados é $insere... então tem que ser "return $insere" Já no seu banco.. eu não sei como foi criado.. mas a estrutura tens que respeitar alguns conceitos como: ID deve ser do tipo INT tamanho 11 auto_increment e primary key Hora deve ser do tipo DATETIME porque estas enviando data e hora juntos IP deve ser do tipo VARCHAR. porque além de números contem pontos... tamanho.. pelo menos uns 15 Mensagem deve ser do tipo VARCHAR,, coloque um tamanho não estão pequeno.. por exemplo 50
-
Como redirecionar o usuario que nao estiver logado.
DiF respondeu ao tópico de FabianoS em Web e banco de dados
@FabianoS Porque a variável de sessão contida em recebeDados.php é a global. Sem ela, não poderíamos acessar a a variável. Além disso, tem uma diferença entre as duas.. a posição. No recebeDados.php: $_SESSION["email"] = $login; E na página restrita: $login = $_SESSION["email"]; No recebeDados.php, estou criando a variável de sessão global e colocando em uma variável. Na página restrita estou atribuindo uma variável local à variável de sessão. Esta segunda é só usada para mostrar em tela o o e-mail de quem está logado. Algo igual aqui no fórum lá no canto direito, antes do sair.. tem seu nick certo? aquilo é uma variável que contém como valor a variável de sessão que contém o nick. No meu exemplo é simples,, mas se quisesse trazer por exemplo o nome da pessoa além do e-mail... para dar um tipo "bem vindo fulano de tal" aí no recebe dados.. tu faz a mesma coisa.. resgata o nome do banco,, coloca em uma variável de sessão. e ai na página restrita .. tu resgata o valor da variável de sessão do nome e coloca numa variável.. e imprime com echo.. e por aí vai. Ainda tem outra coisa que podes fazer ali dentro do else, podes fazer um update set na tabela de logs, para registrar sempre a ultima hora logada. Falando nisso, até já deixo essa tarefa pra você. Sugestão: crie uma tabela chamada logs que receba a data, hora e ID do usuário, se quiser ir mais a fundo, crie uma tabela chamada acoes que recebe o nome das ações que serão executadas no seu sistema... como "Login", "Logout","apagou","editou".. e por ai vai. a partir daí implemente o código de forma que sempre que efetuar uma ação, faça um update set na tabela de logs E depois crie um layout que mostre em tela todas as ações efetuadas.. pode ser em tabela.. lista não ordenada... Isso serviria como um controle de ações dos usuários,, monitorar ações e etc podes gravar tudo no logs.. endereço de ip... pais.. cidade... endereço... rsrs praticamente tudo que localize alguém.. é uma medida de segurança! Bem isso foi um exercício que meu professor me passou enquanto cursava a faculdade. Parece ser difícil.. mas não. o básico você já sabe! -
Como redirecionar o usuario que nao estiver logado.
DiF respondeu ao tópico de FabianoS em Web e banco de dados
@FabianoS Sim. pensa assim: Se o cara não ta logado, volta pro lugar formulário de login. Se ele está logado, coloca a sessão em uma variável. Esse email, é só por que eu uso o e-mail para logar... nas poderias trocar um um login qualquer. -
@anjoed Não viu nada ainda. até começar as missões de matança com o trevor. rsrsrssrsrsrs Esse cara é um quadro.. rsrsrsrsrs sempre que eu troco para ele.. ele ta fazendo algo estranho.. como acordar no meio da praia... acordar vestido de mulher, ou catando comida do lixo.. hjuiehouehoie jogando alguém da ponte... hauhauhauh Alguns dão. Por exemplo com o Franklin, podes comprar o "Up in smoke" a loja de maconha que fica perto da praia dá aproximadamente 9 mil por semana empresa de táxi, dá grana.. dependendo da corrida podes tirar 300 Dólares(sim tu pode pegar os passageiros e levar.. qtas vezes quiser, além disso o Franklin ganha acesso de táxi gratuito para qualquer lugar). Empresa de reboque de veículos é outro que dá grana.. pouco mas dá.. algo em torno de 2 mil por semana Assaltar não vale a pena, é muito pouco ganho. Descobri uma dica muito doida nesse jogo... tipo ele permite que tu assalte as lojas de conveniência certo? aquelas que ficam nos postos de gasolina. Mas as lojas no centro da cidade não dão para assaltar.. porque não dá para sacar arma dentro da loja... mas tem um jeito que dá. O jeito é invadir a loja de moto. Se entrar na loja de moto tu vai poder assaltar a loja.. atirar nos caixas eletrônicos.. que cada um contém 99 dólares aproximadamente.. é pouco mas mais do que assalto na rua Agora o melhor jeito de ganhar grana é fazendo as missões do Lester.. esses sim dão muita grana.
-
Como redirecionar o usuario que nao estiver logado.
DiF respondeu ao tópico de FabianoS em Web e banco de dados
@FabianoS Tenta fazer do meu jeito que não precisa por em um "else".. Não precisa aprender agora sobre o cookie, só coloca aquele trecho na sua página restrita bem no topo.. acima do código html... que não tem erro. -
Como redirecionar o usuario que nao estiver logado.
DiF respondeu ao tópico de FabianoS em Web e banco de dados
@FabianoS Geralmente eu faço desta maneira(pode variar algumas coisas): recebeDados.php <?phpsession_start(); $login = $_POST["email"]; $senha = $_POST["senha"]; $loginSeguro = addslashes($login); $senhaSegura = addslashes($senha); if (empty($login) or empty($senha)) { echo "<script> alert('Preencha todos os campos'); history.go(-1); </script>"; exit; } include 'includes/conexao.php'; $sql = "SELECT * FROM usuario WHERE email ='$loginSeguro' AND DES_DECRYPT(senha) = '$senhaSegura' "; $dados = mysqli_query($conecta, $sql); $num = mysqli_num_rows($dados); if ($num == 0){ echo "<script> alert('Usuario ou senha Incorreta'); history.go(-1); </script>"; exit; } else { $linha = mysqli_fetch_object($dados); $coduser = $linha->idUsuario; $_SESSION["codusuario"] = $coduser; $_SESSION["email"] = $login; $data = date('Y-m-d'); $log = "INSERT INTO logs(idusuario, idAcao, data, hora) VALUES($coduser, '1', '$data', curtime())"; $dados2 = mysqli_query($conecta,$log); header ("Location: GeFin.php"); } mysqli_close($conecta); Resumindo, abro a sessão.. Recupero os dados do formulário... Eu costumo utilizar o próprio e-mail da pessoa como login.. pois é mais provável que ela não esqueça. Testo as variáveis .. caso estiverem vazias.. mensagem de erro em um alert. Incluo a conexão, seleciono o e-mail e a senha descriptografada do banco de dados Testo se tem contagem de linhas.. se igual a zero, mensagem de erro. Senão, aplico um fetch na variavel da consulta Coloco em uma variável o valor do campo ID Atribuo a uma variável de sessão o valor do campo ID Atribuo em uma variável de sessão o e-mail usado como login. Logo após, coloco em uma variável a data atual Crio uma variável para inserir no banco de dados na tabela de logs o ID de quem acessou, o ID da ação(logar, deslogar, apagar, cadastrar), a data, e a hora. No fim redireciono para o arquivo gefin.php que seria a página de logados. E por ultimo, fecho a conexão. Depois no arquivo gefin.php eu testo se o usuário está logado ou não assim: <?phpsession_start();setcookie("ck_authorized", "true", 0, "/");if(!isset($_SESSION["email"])): header("location: index.php");else: $login = $_SESSION["email"];endif; ?> ps: Isso tem que ficar antes de tudo acima do <doctype> e <html> Entenda o código: Abre a sessão Seta um cookie para autorizar a entrada Testa com um IF se a sessão do login NÂO está vazia. Se estiver vazia, redireciona para o index.php cujo arquivo do formulário do login. Se não estiver fazia, Atribui em uma variável a sessão. Isso serve se quiser mostrar depois o lance do: " olá fulano, sua última visita foi no dia 08/09/15" Bem.. isso sempre funcionou bem para mim E o logout eu faço assim: <?php session_start(); include 'includes/conexao.php'; $idUsuario = $_SESSION["codusuario"]; $_SESSION = array(); if(session_destroy()){ $data = date("Y-m-d"); $insere = "INSERT INTO logs(idusuario, idAcao, data, hora) VALUES($idUsuario, '2', '$data', curtime())"; $dados = mysql_query($insere); } header("location: index.php");?> Inicio a sessão incluo o a conexão atribuo em uma variável a sessão que contem o ID do usuário Crio uma variável de sessão que é atribuida a um array vazio. Depois testo SE sessio_destroy.. ou seja, se destrui a sessão(fiz logout) Cria a variável da data atual, uma variável que insere na tabela de logs o ID do usuário, o id da ação(está se deslogando), a data e a hora. e por fim redireciona para o index.php .. que é onde está o formulário de login. depois disso... pode tentar entrar na página restrita.. que não vai conseguir.. sempre será redirecionado para a entrada.. forçando a entrar com o login e senha de novo.. para ter uma nova sessão. Fica as dicas.. Podes incrementar esse meu código para acrescentar controles de níveis de acesso.... aí fica a critério da sua criatividade. -
@Henrique Prado_734380 Mesmo voltando a estudar a um mês, por gentileza poste aqui alguma tentativa sua... os demais não lhe entregar uma resposta a menos que poste algo(mesmo que errado os outros podem corrigir e explicar onde estava errando). No momento você só postou o enunciado do exercício. Tente fazer, o google está aí para isso.. auxiliar e oferecer material de aprendizado... Depois volta aqui e posta o que tentou fazer... com suas dúvidas perante o código.. para que os outros que saibam possam ajudar e corrigir.
-
centralizar galeria de imagens (ul) no meio da div
DiF respondeu ao tópico de navegador2 em Web e banco de dados
@navegador2 Ainda tem outra regra do display que é "inline-block" ele faz o mesmo que float: left em cada elemento. -
@FabianoS Não que a função mail() esteja ultrapassada... ela é ruim mesmo. rsrsrs O que mais se usa é a classe phpmailer. Como é uma classe, precisas entender o básico do básico de orientação a objetos.. que seria instanciar uma variável de objeto da classe, usar esta variável para chamar as funções da classe.. e etc Mas isso é um assunto para outro tópico.. quando for conveniente.
-
@FabianoS Depende. Se você está enviando um array de dados sim precisa. O exemplo disso é o upload multiplo de imagens. quando envia mais de uma.. se torna um array de dados.. então precisa de um foreach para iterar. Já no caso de um cadastro de produtos que só tem uma informação de cada campo.. como nome do produto, descrição e etc.. aí não precisa de foreach por que não é um array. Sim. é errado. Ou declara a variável no escopo da função, ou torna a variável global. Mas o método de tornar a variável global nesse caso não é para ser usada.. Agora se estivesse usando o paradigma de orientação a objetos.. sim poderia.. pois com uma variável global ... poderia ser acessada de qualquer função. Sobre o código acima, chamou a função mas não foi usada. Não basta só colocar o nome da função ali .. tem de usar ela. exemplo: if(!empty($variaveis)): $produtos_verificados = produto($produto); $insert = mysqli_query($conexao, "INSERT INTO tabela_grafica(produto,quantidade,valor,observacoes)VALUES('$produtos_verificados','$qtd','$valor','$obs')") or die (mysqli_error()); echo"<script>alert('Cadastrado Com Sucesso.');location.href='index.php';</script>";else: echo"<script>alert('Preencha os Campos Produto: Quantidade - Valor.');location.href='index.php';</script>";endif; Veja que atribui uma variável para a função... e inseri a variável no primeiro parâmetro de values() Outra coisa que me chama a atenção é esse !empty($variaveis) ... esse $variaveis é todos as variaveis concatenadas certo? isso não funciona. precisas testar uma a uma... ou fazer uma função que testa elas e chamar no if.. tu pode fazer isso se quiser e eu acho ate melhor Uma função pode receber um array vazio como parâmetro.. e posterior preencher esse array para testas. mas acho q isso é um pouco mais avançado pra ti.. então faz do jeito mais fácil primeiro
-
@FabianoS Bem, achei que já estavas um pouco mais familiarizado com o php e funções. Vamos as explicações. Vou começar pelo array, Para termos um array(vetor), usamos a função array(). ela pode ser vazia... ou pode conter elementos. estrutura: //Vetor vazio$vetor = array();//vetor com elementos$frutas = array("Laranja","Maçã","Limão","Morango"); A linha 2, Podemos ver ali que a variável chamada $vetor recebe a função array(). Contudo, a função está vazia.. ou seja, o array não possui nenhum elemento. Agora veja a linha 6. A variável $frutas, recebe a função array(). Dentro dela, foi adicionado elementos entre aspas separado por virgula. Aspas indicam que é uma string. Se retirar, poderemos utilizar números, então aí o array passa a ser do tipo INT. A elegância do php.. está que o array pode ser de vários tipos diferentes... então em um mesmo array, podes ter números, strings, funções, um outro array. que nesse caso passaria a ser um array bidimensional(não entraremos em detalhes nisso). Bom temos um array ali.. como posso ver em tela de forma clara a estrutura? Usando a função print_r() entre a tag <pre> </pre>. então experimente fazer isto: echo"<pre>";echo print_r($frutas);echo "</pre>; O retorno será isto: Array( [0] => Laranja [1] => Maçã [2] => Limão [3] => Morango) Veja que o zero, é o primeiro índice e o elemento é Laranja. o número 1 é o elemento Maçã.. O sinal => no array serve para associar o índice ao elemento. Sabendo isso, podemos associar um elemento a outro no vetor.. por exemplo: $frutas = array("Laranja"=>"Orange","Maçã"=>"Apple","Limão"=>"Lemon","Morango"=>"Strawberry"); Veja que para cada elemento anterior, foi associado o nome dele em inglês. Usei o simbolo => para dizer que o elemento "Laranja", que agora passa a ser o índice, tem como valor a palavra Orange. Re-capitulando, quando o array estava com um elemento sem associações, o índice do elemento era números.. começando pelo zero. Então o índice zero tinha como valor Laranja. Agora, quando resolveu associar o elemento Laranja a outro, o Laranja passa a ser o índice e o Orange passa a ser o valor. Se der um print_r no $frutas terá isto: Array( [Laranja] => Orange [Maçã] => Apple [Limão] => Lemon [Morango] => Strawberry) Então voltando para sua dúvida , a função recebe como parâmetro uma string. dentro da função foi atribuída em uma variável, um array de strings. um sendo o índice e outro o valor. veja: 'á' => 'a' A letra " á " associada a letra " a ".. e por aí vai. Para que a função funcione, precisamos retornar a função strtr() para substituir os caracteres contidos no array e contidos na string. Então strtr($string, $map); Veja que o primeiro parâmetro é a string que será alterada e o segundo parâmetro é a variável que recebe o array de elementos. Resumindo o funcionamento da função de checkAcento() Ele recebe a string a ser convertida. a função strtr() compara a variável da string com o array.. se ele achar algum caractere com acento da string, que está no array como índice, ele vai substituir pelo valor. Sim, mas vai retornar o strtr() que é uma função. Poderíamos atribuir a função em uma variável e retornar esta variável.. por exemplo: $nova_string = strtr($string, $map);return $nova_string; O por que $string e por que $map? .. são só nome de variáveis... eu poderia ter posto como $caminho_imagem no lugar de $string e $lista_de_acentos Agora vou explicar um pouco sobre funções As funções tem a seguinte estrutura: function hello(){} Se tentarmos executar ela.. com: echo hello() nada acontece.. pois está vazia.. e não tem retorno nenhum. Vamos fazer ela funcionar assim: function hello(){ echo "Hello World!";} Agora se dermos um echo hello(), vai mostrar em tela "Hello World!". Podemos poder para uma função usar um valor que a gente quer. Para isso o parâmetro é usado. os Parâmetros ficam dentro do parenteses. assim: function hello($nome){ echo "Oi eu sou o $nome";} e dar um echo hello("fulano de tal") vai mostrar em tela: " Oi eu sou o fulano de tal " Como pode ver, os parâmetros são os meios de interagir com a função. No seu caso, a função que verifica os acentos precisa ter um parâmetro pelo menos. Que é a própria string do nome da imagem. Lembre-se que podes chamar a função quantas vezes quiser.. basta colocar a função dentro do laço de foreach que é a função do php destinada a iterar, ou seja, percorrer um elemento array. Desculpe se o post ficou massivo demais para ler. Mas tinha que explicar desta forma. bem esmiuçada.
-
A hospedagem de um site pode interferir na qualidade de uma imagem?
DiF respondeu ao tópico de duzagatto em Web e banco de dados
@duzagatto Não. a hospedagem não influencia. O que pode estar acontecendo é que em alguma parte do código é feito um redimensionamento para 600 X 400. então se enviar uma imagem 36x36 ela vai ser redimensionada. Inspecionando o elemento Percebi que as fotos são pequenas... e no arquvo estilos.css linha 1423 corresponde a seguinte regra: #principal #top img {} Nela contem width e height redimensionado.. se tirar.. as imagens voltam ao tamanho normal sem perda de qualidade. então, recomendo que busque no google imagens com o tamanho natural do elemento div que vai conter imagem. -
@FabianoS Nem sempre a função não precisa de parâmetro. No seu caso, sim precisa... alias, no php a maioria precisa de um parâmetro. Outra coisa que tens que pensar é o seguinte.. O lance do caminho das imagens.. no meu ponto de vista não precisa se preocupar com acentuação ou sql injection. Você pode rescrever a função desta maneira: function checkAcento($string){ $map = array( 'á' => 'a', 'à' => 'a', 'ã' => 'a', 'â' => 'a', 'ä' => 'a', 'é' => 'e', 'è' => 'e', 'ê' => 'e', 'í' => 'i', 'ó' => 'o', 'ò' => 'o', 'ô' => 'o', 'õ' => 'o', 'ú' => 'u', 'ü' => 'u', 'ç' => 'c', 'Á' => 'A', 'À' => 'A', 'Ã' => 'A', 'Â' => 'A', 'Ä' => 'A', 'É' => 'E', 'È' => 'E', 'Ê' => 'E', 'Í' => 'I', 'Ó' => 'O', 'Ò' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ú' => 'U', 'Ü' => 'U', 'Ç' => 'C'); return strtr($string, $map); // funciona corretamente} onde ele usa um array associativo... para mapear os caracteres e substituir utilizando a função strtr() Assim, você só troca os acentos e preserva a "barra"... no caso do seu código.. em uma das linhas ele subistitui a barra por underline... isso vai prejudicar o caminho da imagem. então por exemplo no pega o caminho da imagem: $imagem = "images/ímagêmóò.jpg"//aplica a funçãoecho $imagem_sem_acento = checkAcento($imagem);//retorna images/imagemoo.jpg Outra coisa que é muito usada.. é criptografar o nome.. com md5 combinando a hora e data... assim você gera uma string única, O facebook por exemplo usa desta forma... quando clica para salvar uma imagem.. o nome da imagem é bem grande cheio de hash
-
@FabianoS Não entendi.. o str_replace() é usado para substituir strings e não imagens. Além do mais, o arquivo functions.php não contém função. Tem que fazer assim: function substitui($produto){ $produto = str_replace('ã','a', $produto); $produto = str_replace('â','a', $produto); $produto = str_replace('ä','a', $produto); $produto = str_replace('à','a', $produto); $produto = str_replace('á','a', $produto); $produto = str_replace('õ','o', $produto); $produto = str_replace('ó','o', $produto); $produto = str_replace('ö','o', $produto); $produto = str_replace('ò','o', $produto); $produto = str_replace('ô','o', $produto); $produto = str_replace('ê','e', $produto); $produto = str_replace('é','e', $produto); $produto = str_replace('ë','e', $produto); $produto = str_replace('í','i', $produto); $produto = str_replace('ì','i', $produto); $produto = str_replace('ï','i', $produto); $produto = str_replace('î','i', $produto); $produto = str_replace('ú','u', $produto); $produto = str_replace('ù','u', $produto); $produto = str_replace('ü','u', $produto); $produto = str_replace('û','u', $produto); $produto = str_replace('ç','c', $produto); $produto = str_replace(' ','_', $produto); $produto = str_replace('/','-', $produto); produto = str_replace('(','-', $produto); $produto = str_replace(')','-', $produto); $produto = str_replace('´','-', $produto); $pruduto = strtolower($produto); return $produto;} Toda função precisa da palavra chave function, além do nome. se tiver parâmetro.. tem que colocar entre parênteses... e no final precisa de um return. depois de criada a função basta chamar ela : substitui($produto); Só uma coisa, uma função assim não é muito legal de se deixar.. use a expressão regular .. que você faz em uma linha rsrs Outra coisa, é errado concatenar as variáveis para testar se está vazia.. teste desta forma: $produto = $_POST['pr'];$qtd = $_POST['qtd'];$valor = $_POST['valor'];$obs = $_POST['obs'];if(empty($produto) OR empty($qtd) OR empty($valor) OR empty($obs): //faz alguma coisaelse: //faz outra coisaendif;
-
@FabianoS Burlar é possível sim.. qualquer um que tenha conhecimento. Não dá para prevenir 100%.. mas o melhor que podemos fazer é dificultar usando algumas funções do php.. como por exemplo addslashes(), trim().. dentre outras Você pode até criar uma função para isso.... por exemplo: function protege($algo){ $algo = addslashes(trim($algo)); return $algo;} A função addslashes() acrescenta barras \ \ e a função trim() retira os espaços do início e do fim. Claro que tu podes implementar mais coisas nessa função.. por exemplo acrescentar a função str_replace() para substituir coisas.. preg_match() para expressão regular..mysql_real_escape_string() .. enfim tem várias funções que podem ser usadas.. ali! Sugestão, procura no google algumas funções de proteção contra sql injection. tem vários sites mostrando algumas funções... use elas para estudar e aí criar uma função sua! ps: procure utilizar algum tipo de criptografia nas senhas.. por exemplo md5., sha1, base_64.. Posso indicar o início do estudo: http://www.zoomdigital.com.br/sql-injection-o-que-e-e-como-evitar/ http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php
-
@anjoed acho que do jeito que está em algum determinado momento vai ter alguns lags e travamentos. Acredito que se diminuir algumas coisinhas ali vai melhorar drasticamente. eu diminuria um pouco: qualidade das sombras, shader e reflexos. as partículas e qualidade da agua também dão impacto no desempenho. O que podes aumentar sem dar muito impacto: densidade demográfica, variedade demográfica e escala de distancia.. podes aumentar sem problemas que não dá muito impacto Bom... não vou dizer com certeza quais opções podes fazer a mudança.. mas tipo Tente não deixar a barra de memória de video no vermelho. podes ver que ele está passando do limite da sua placa de video.. Por exemplo minha placa de video é uma gtx 660 Ti 2GB. Nas minhas configurações, eu estou usando aproximadamente 1.7 e alguns quebrados do total de 2048GB que possuo. O lance é desabilitar tudo e ir habilitando aos poucos para ver até onde podes deixar sem perder desempenho! Outra coisa que ajuda muiiiito no desempenho.. mais precisamente quando está dirigindo em estradas é logo que entrar no jogo, use o ctrl + tab ou alt + esc para voltar ao windows sem sair do jogo.. entrar no gerenciador de tarefas. Dentro dele procurar a aba de detalhes.. e setar a prioridade para "alta" no GTAV.exe pelo menos aqui no meu pc funcionou muito bem essa dica. Fora isso, teu pc está ótimo de processador e memória ram.. No próximo upgrade do seu pc, priorize a placa de vídeo.. já que o o processador casa muito bem com a maioria das placas boas Já o meu processador por exemplo o fx 8120 é mais fraco do que o seu i5! ps: lamento por eu não ter pego um fx 6300 na época... que o desempenho é bem superior ao meu atual rsrsr.. fui com muita sede ao pote. pelo fato de ter 4 núcleos físicos e 4 virtuais dando a entender que é octacore... rsrsr já aprendi minha lição..
-
@Raimar Lunardi Eu por um lado.. não gostei muito do online pelo menos na versão do pc... muito hacker chato... acabando com a diversão. Mas por outro lado.. o modo história é ótimo com certeza vale cada centavo gasto. @anjoed Mesmo pagando um pouco mais caro.. teu dinheiro não foi desperdiçado.. pelo menos é o que eu acho.. comprei por 99 reais.. e nem era promoção. Se tu é um cara que não joga toda hora... que gosta de curtir o momento do jogo e não jogar para zerar o jogo em menos tempo... tens aí pelo menos umas 100horas de jogo. no modo história.. ou só dando uma banda pelo mapa... descobrir as coisas que tem... zoar ... fugir da policia ... ir para as colinas... rsrsrs(sim, tem um amigo meu que quando vem jogar aqui em casa.. tudo que ele faz é pegar um carro ou moto e subir montanhas rsrsrrs) eu tava com 107 horas de jogo.. e só 70% da historia concluida... porém no meu jogo deu um bug louco... tive que recomeçar do zero.... e lá se vão mais 100 horas rsrsrs enfim... não acho que foi besteira comprar parcelado... afinal o jogo é muito belo!
-
centralizar galeria de imagens (ul) no meio da div
DiF respondeu ao tópico de navegador2 em Web e banco de dados
@navegador2 Tem alguns erros no seu CSS, além de regras desnecessárias que acabam não ajudando no que quer fazer. Por exemplo: os paddings, posititions relative... alguns width e height.. além de chamadas erradas... por exemplo esta: conteudoclientes#clientes isso é errado. O certo é: #conteudoclientes #clientes{} ou apenas: #clientes{} Então seu css ficaria assim: #conteudoclientes { color:#006; background-image:url(../imagens/bg.jpg); font-family:Verdana, Geneva, sans-serif; font-size:1.4em; text-align:center;}ul.containerimgs { list-style:none; float: left;}li.imagem { width:190px; height:120px; margin: 5px; text-align:center;}#clientes { display: table; margin: 0 auto;} Veja o seu código corrigido: http://jsfiddle.net/twj676qm/ ps: redimensione a janela no JSFiddle.. verás que o elemento que engloba as listas não ordenadas ficam sempre centralizadas. Claro que eu coloquei ali background com cores.. para você ver as delimitações... Perceba as diferenças do seu css para o meu exemplo. -
Dúvida sobre alterar limitações de um programa
DiF respondeu ao tópico de Galatus em Programação - outros
@Galatus Não é possível. Alterando o programa é o mesmo que usar crack.. então se enquadra em pirataria que é proibido aqui. A única coisa que podes fazer é comprar a licença do programa. -
Criando um programa para reconhecer texto de uma foto de celular
DiF respondeu ao tópico de Carlos_Oliveira em Programação - outros
@Carlos_Oliveira Mais fácil procurar um app de OCR. para isso... já deve existir aos montes. Mas se quer desenvolver um: https://www.google.com.br/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=android%20ocr%20api -
@DSR1 Pelo que eu entendi.. o exercício pede só para colocar comentários em cada linha explicando o que faz. exemplo: //Chama a função exibeDados()trein.exibeDados();
-
Para que geralmente usamos php ? E banco de dados?
DiF respondeu ao tópico de FabianoS em Web e banco de dados
@FabianoS Pelo que eu vi ele acusa erro nas linhas 13 e 14.. onde define o diretório ..e outra variável. tenta alterar o diretório de: $diretorio = "fotos/".$foto; para $diretorio = "fotos/"; -
Para que geralmente usamos php ? E banco de dados?
DiF respondeu ao tópico de FabianoS em Web e banco de dados
@FabianoS Não só para campo file.. usa-se sempre que quiser um array de dados. os colchetes avisam ao php que está sendo enviado um array. então se dar um print_r() na variável $arquivos exemplo: echo "<pre>"; print_r($arquivos);echo "</pre>"; mostrará isto: Array( [0] => wallpaper001-1920x1200.jpg [1] => wallpaper002-1920x1200.jpg [2] => wallpaper003-1920x1200.jpg [3] => wallpaper004-1920x1200.jpg [4] => wallpaper010-1920x1200.jpg) Veja que cada índice é uma imagem diferente.. ou seja o campo input file enviou múltiplas imagens como um array
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais