Publicidade

Placar de líderes


Conteúdo popular

Exibindo o conteúdo com as maiores reputações desde 23-02-2017 em todas as áreas

  1. 5 pontos
    Seu problema é realmente com o PHP ?! O objetivo deste pequeno artigo é orientar você na hora da criação de um novo tópico para descrever o seu problema, afim de ajudar definir qual área seria adequada para tratativa do mesmo, ajudando assim a organização do Fórum e consequentemente um melhor entendimento. O fórum de PHP é voltado exclusivamente à linguagem de Programação PHP , por este motivo, antes de iniciar um novo tópico com sua dúvida, certifique-se de que seu problema realmente está relacionado com PHP e não com outro tipo de linguagem ou tecnologia. Vários membros criam tópicos relatando estar com problemas, e que não sabe se esta é a área correta, e, com uma frequência muito comum, geralmente o problema não está relacionado com o PHP, e sim com JavaScript/Ajax ou HTML/CSS. Por que isso ocorre ? Geralmente você está desenvolvendo uma aplicação que envolve HTML, CSS, JavaScript, PHP, MySQL quando se depara com alguma falha/bug, e simplesmente por estar envolvendo PHP, e pelo fórum de PHP ter um maior tráfego, acabam generalizando e postando aqui o problema. Vou exemplificar algumas situações que ocorrem: Nos casos acima, é notório que o problema é com MySQL e não com o PHP, principalmente quando recebe na tela um erro de sintaxe SQL. A área correta para tratativa de sua dúvida é MySQL: Banco de Dados MySQL Entendam que PHP é uma linguagem de programação Back-End; Todo e qualquer problema com: Alinhamento de Tabela, Alinhamento de Div's, Alinhamento de Menu, e demais problemas desta ordem, fazem parte do Front-End e são relacionados a HTML/CSS. A área correta para tratativa de sua dúvida é: HTML e CSS É muito comum membros postarem esse tipo de dúvida, achando que o problema ou solução estão no PHP. Requisições sem "carregamento da página" assim por dizer, chamada "requisição assíncrona", na maioria dos casos são efetuadas com AJAX/jQuery e, por estar trabalhando em conjunto com o PHP, você acaba achando que o problema é com PHP. O mesmo ocorre com o MODAL, em que sua ação para abrir, depende de uma função javascript. Um simples erro ou uma biblioteca não inclusa pode ocasionar o problema. A área correta para tratativa de sua dúvida é: Javascript O mesmo ocorre com as demais áreas, procurem identificar o fórum coreto para tratativa do problema, assim nos ajuda a organizar e promover uma gama de conteúdo mais seletivo, específico de cada área. Ainda na oportunidade, recomendamos fortemente a leitura do tópico: ATENÇÃO: Orientações e Regras do Fórum de PHP Atenciosamente, equipe iMasters.
  2. 3 pontos
    Olá. Fiz uma correção no código, pois o menu não abria quando clicava no marcador animado ("+" ou"-"). Acrescentei mais um efeito tipo elástico na animação. O que eu faço pra aprender é pegar algo e tentar reproduzir. Eu estudo bem o código e procuro reproduzir pra entender cada passo. Eu não conheço sites de aulas gratuitas, mas creio que deve haver sim. http://codepen.io/Eziquiel/pen/WpMKER?editors=1000
  3. 3 pontos
    Boa tarde! É importante entender como o php converte para booleanos, para evitar pegadinhas var_dump(0 == true); // false var_dump(1 == true); // true var_dump(1 === true); // false var_dump(-1 == true); // true Não deixe de ver: http://us2.php.net/manual/en/language.types.boolean.php No caso do switch, ele faz comparação fraca (==) Sendo o valor de idade, zero: ($idade >= 0) and ($idade < 14) # isso retornara um true, e zero com true é igual a false. # Reiterando: var_dump(0 == true); # retornara um false Veja mais em: Http://www.php.net/manual/en/types.comparisons.php#types.comparisions-loose Por esse motivo que não entrava na primeira condição. @Webr, mudar: case ($idade >= 0) and ($idade < 14): para case ($idade >= 1) and ($idade < 14): Apesar de fazer cair na primeira condição, esta errado, pelo simples fato de zero ser menor do que 1
  4. 3 pontos
    Pessoal to dando continuidade nos tutoriais para iniciantes e esse aqui é para quem ja leu: http://forum.imasters.com.br/index.php?showtopic=191441 Esse tutorial é para usuarios iniciantes que estao começando agora e querem aprender a mecher com PHP e banco de dados, sei que é dificil achar um tutorial bem mastigado assim, e falta exemplos completos no manual do php, e as vezes a pessoa acaba pegando um script pronto mas nao entende muito e o pior a maioria das vezes o sistema esta mal feito assim o usuario acaba aprendendo errado pensando que é o certo. esse tutorial é bem basico, e criei como exemplo 2 tabelas uma para usuario e outra para estados e é mais para você aprender mesmo , acabei criando varias funções que ficaram mais para aprendizado do que funcional, mas a ideia é você entender como as coisas funcionam com esse sistema você vai aprender: * Listar os dados de um banco de dados * Salvar dados do formulario para banco de dados * Excluir dados do banco * Editar dados do banco * Carregar um combobox(select do html) com dados vindos do banco de dados * Validações especiais para deixar o php funcionando 100% sem erros * Varios macetes e dicas de uso em sistemas com o uso de um arquivo de verificações basicas o init.php tabela.sql CREATE TABLE usuarios ( id_usuario SMALLINT ( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, nome VARCHAR ( 45 ) NOT NULL, email VARCHAR ( 64 ) NOT NULL UNIQUE, data_nascimento DATE NOT NULL, sexo ENUM ( 'M', 'F' ) NOT NULL, preferencias SET ( 'R', 'S', 'P', 'F' ) NOT NULL COMMENT 'R=Romance;S=Suspense;P=Policial;F=Ficção', salario DECIMAL ( 10,2 ) NOT NULL, endereco VARCHAR ( 30 ) NOT NULL, bairro VARCHAR ( 20 ) NOT NULL, cidade VARCHAR ( 45 ) NOT NULL, fk_estado SMALLINT ( 5 ) UNSIGNED NOT NULL, login VARCHAR ( 40 ) NOT NULL, senha CHAR ( 32 ) NOT NULL ); CREATE TABLE estados ( id_estado SMALLINT ( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, uf CHAR ( 2 ) NOT NULL, estado VARCHAR ( 19 ) NOT NULL UNIQUE ); INSERT INTO estados VALUES ( NULL , "AC", "Acre"); INSERT INTO estados VALUES ( NULL , "AL", "Alagoas"); INSERT INTO estados VALUES ( NULL , "AP", "Amapá"); INSERT INTO estados VALUES ( NULL , "AM", "Amazonas"); INSERT INTO estados VALUES ( NULL , "BA", "Bahia"); INSERT INTO estados VALUES ( NULL , "CE", "Ceará"); INSERT INTO estados VALUES ( NULL , "DF", "Distrito Federal"); INSERT INTO estados VALUES ( NULL , "ES", "Espirito Santo"); INSERT INTO estados VALUES ( NULL , "GO", "Goiás"); INSERT INTO estados VALUES ( NULL , "MA", "Maranhão"); INSERT INTO estados VALUES ( NULL , "MT", "Mato Grosso"); INSERT INTO estados VALUES ( NULL , "MS", "Mato Grosso do Sul"); INSERT INTO estados VALUES ( NULL , "MG", "Minas Gerais"); INSERT INTO estados VALUES ( NULL , "PA", "Pará"); INSERT INTO estados VALUES ( NULL , "PB", "Paraíba"); INSERT INTO estados VALUES ( NULL , "PR", "Paraná"); INSERT INTO estados VALUES ( NULL , "PE", "Pernambuco"); INSERT INTO estados VALUES ( NULL , "PI", "Piauí"); INSERT INTO estados VALUES ( NULL , "RN", "Rio Grande do Norte"); INSERT INTO estados VALUES ( NULL , "RS", "Rio Grande do Sul"); INSERT INTO estados VALUES ( NULL , "RJ", "Rio de Janeiro"); INSERT INTO estados VALUES ( NULL , "RO", "Rondônia"); INSERT INTO estados VALUES ( NULL , "RR", "Roraima"); INSERT INTO estados VALUES ( NULL , "SC", "Santa Catarina"); INSERT INTO estados VALUES ( NULL , "SP", "São Paulo"); INSERT INTO estados VALUES ( NULL , "SE", "Sergipe"); INSERT INTO estados VALUES ( NULL , "TO", "Tocantins"); </div> como podem ver é uma tabela apenas para podermos usar no sistema, sao coisas ficticias que usei apenas para passar exemplos uteis de varios campos no banco de dados, talves o unico campo que você nao saiba para que serve nessa tabela é o "preferencias", esse preferencia é para o usuario escolher qual tipo de filme ele gosta, usei esse exemplo para você entender como usar o campo SET() do mysql pessoal eu nao faço codigos html fora do padrao, e todos meus codigos sao valido pelo W3C, mas eu nao me preocupei em deixar os codigos validos pois a ideia é passar mais informação sobre o sistema de cadastro, e se eu for me preoculpar com tudo isso eu nunca iria postar esse tutorial, pois meu tempo anda curto demais. index.html: <a href="cadastro.php">Cadastrar Usuarios</a><br /> <a href="listar.php">Listar Usuarios</a> cadastro.php <?php //Verifico se o arquivo existe if(file_exists("init.php")) { require "init.php"; } else { echo "Arquivo init.php nao foi encontrado"; exit; } //verifico se a função que eu criei existe, vai que alguem pegou meu script e apagou ela = ) if(!function_exists("Abre_Conexao")) { echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao"; exit; } Abre_Conexao(); $re = mysql_query("select * from estados order by estado"); //verifico se nao deu erro de mysql if(mysql_errno() != 0) { //verifico se a $errros existe, mesma coisa vai que alguem meche no script e apagou ela if(!isset($erros)) { echo "Erro o arquivo init.php foi auterado, nao existe \$erros"; exit; } echo $erros[mysql_errno()]; exit; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Cadastro</title> <style> <!-- .textBox { border:1px solid gray; width:200px;} --> </style> </head> <body> <form id="form1" name="form1" method="post" action="salvar.php"> <table width="400" border="0" align="center"> <tr> <td width="145">Nome</td> <td width="245"><input name="nome" type="text" id="nome" maxlength="45" class="textBox" /></td> </tr> <tr> <td>Email</td> <td><input name="email" type="text" id="email" maxlength="64" class="textBox" /></td> </tr> <tr> <td>Data Nascimento</td> <td> <?php /*aqui eu criei uma função para montar o combo para mim, na propria função a seguir eu explico como ela funciona*/ echo monta_select("dia", 1, 31); echo monta_select("mes", 1, 12); echo monta_select("ano", 1940, 1988); ?> </td> </tr> <tr> <td>Sexo</td> <td><input name="sexo" type="radio" value="M" checked="checked" /><label>Masculino</label> <input name="sexo" type="radio" value="F" /> <label>Feminino</label></td> </tr> <tr> <td>Preferencias de Filmes </td> <td><select name="preferencias[]" class="textBox" multiple="multiple" id="preferencias"> <option value="R">Romance</option> <option value="S">Suspense</option> <option value="P">Policial</option> <option value="F">Ficção</option> </select> </td> </tr> <tr> <td>Salario</td> <td><input name="salario" type="text" id="salario" maxlength="5" class="textBox" /></td> </tr> <tr> <td>Endereco</td> <td><input name="endereco" type="text" id="endereco" maxlength="30" class="textBox" /></td> </tr> <tr> <td>Bairro</td> <td><input name="bairro" type="text" id="bairro" maxlength="20" class="textBox" /></td> </tr> <tr> <td>Cidade</td> <td><input name="cidade" type="text" id="cidade" maxlength="45" class="textBox" /></td> </tr> <tr> <td>Estado</td> <td><select name="estados" id="estados" class="textBox" > <?php //pego os dados do banco para montar o combo do estados while($l = mysql_fetch_array($re)) { $id = $l["id_estado"]; $estado = $l["estado"]; $uf = $l["uf"]; echo "<option value=\"$id\">$uf - $estado</option>\n"; } //fecho a conexao com o banco @mysql_close(); ?> </select> </td> </tr> <tr> <td>Login</td> <td><input name="login" type="text" id="login" maxlength="40" class="textBox" /></td> </tr> <tr> <td>Senha</td> <td><input name="senha" type="password" id="senha" maxlength="10" class="textBox" /></td> </tr> <tr> <td> </td> <td><input type="submit" name="Submit" value="Salvar" style="cursor:pointer;" /></td> </tr> </table> </form> </body> </html></div> salvar.php <?php /*verifico se os dados estao vindos do formulario, porque se uma pessoa acessar essa pagina diretamente poderia dar erro, entao eu testo antes*/ if($_SERVER["REQUEST_METHOD"] == "POST") { $nome = $_POST["nome"]; $email = $_POST["email"]; $data = "{$_POST["ano"]}-{$_POST["mes"]}-{$_POST["dia"]}"; $sexo = $_POST["sexo"]; //if e else simplificado, verifico se foi escolhido alguma preferencia e crio um array $preferencias = isset($_POST["preferencias"]) ? implode(",", $_POST["preferencias"]) : ""; $salario = $_POST["salario"]; $endereco = $_POST["endereco"]; $bairro = $_POST["bairro"]; $cidade = $_POST["cidade"]; $estados = $_POST["estados"]; $login = $_POST["login"]; $senha = $_POST["senha"]; //aqui ja expliquei, mas denovo: ele verifica se o arquivo existe if(file_exists("init.php")) { require "init.php"; } else { echo "Arquivo init.php nao foi encontrado"; exit; } //ja expliquei, mas ultima vez: verifica se a função que eu vou usar existe if(!function_exists("Abre_Conexao")) { echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao"; exit; } Abre_Conexao(); if(@mysql_query("INSERT INTO usuarios VALUES ( NULL , '$nome', '$email', '$data' , '$sexo', '$preferencias', '$salario', '$endereco', '$bairro', '$cidade', '$estados', '$login', MD5( '$senha' ) )")) { //verifiquei acima se deu certo o comando e aqui verifico se foi mesmo gravado o dado no banco if(mysql_affected_rows() == 1){ echo "Registro efetuado com sucesso<br />"; } } else { //verifico se nao estao tentando gravar um dado que ja existe, pois usei UNIQUE na tabela if(mysql_errno() == 1062) { echo $erros[mysql_errno()]; exit; } else { echo "Erro nao foi possivel efetuar o cadastro"; exit; } @mysql_close(); } } ?> <a href="index.html">Voltar</a> listar.php <a href="index.html">Voltar</a> <?php if(file_exists("init.php")) { require "init.php"; } else { echo "Arquivo init.php nao foi encontrado"; exit; } if(!function_exists("Abre_Conexao")) { echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao"; exit; } Abre_Conexao(); $re = mysql_query("SELECT * FROM usuarios INNER JOIN estados ON usuarios.fk_estado = estados.id_estado ORDER BY usuarios.nome;"); if(mysql_errno() != 0) { if(!isset($erros)) { echo "Erro o arquivo init.php foi auterado, nao existe $erros"; exit; } echo $erros[mysql_errno()]; exit; } ?> <table width="100%" border="1"> <tr> <td>Ações</td> <td>Nome</td> <td>Email</td> <td>Data Nasc.</td> <td>Sexo</td> <td>Preferencias</td> <td>salario</td> <td>Endereço</td> <td>Bairro</td> <td>Cidade</td> <td>Estado</td> <td>Login</td> </tr> <?php while($l = mysql_fetch_array($re)) { $id = $l["id_usuario"]; $nome = $l["nome"]; $email = $l["email"]; $data = implode("/", array_reverse(explode("-", $l["data_nascimento"]))); $sexo = $l["sexo"] == "M" ? "Masculino" : "Feminino"; $preferencia = Pega_Preferencia($l["preferencias"]); $salario = $l["salario"]; $endereco = $l["endereco"]; $bairro = $l["bairro"]; $cidade = $l["cidade"]; $estado = $l["estado"]; $login = $l["login"]; echo " <tr> <td><a href=\"editar.php?id=$id\">[Editar]</a> <a href=\"excluir.php?id=$id\">[Excluir]</a></td> <td> $nome</td> <td> $email</td> <td> $data</td> <td> $sexo</td> <td> ". monta_combo($preferencia). "</td> <td> ". number_format($salario, 2, ",", "."). "</td> <td> $endereco</td> <td> $bairro</td> <td> $cidade</td> <td> $estado</td> <td> $login</td> </tr>\n"; } @mysql_close(); ?> </table> editar.php <?php if(file_exists("init.php")) { require "init.php"; } else { echo "Arquivo init.php nao foi encontrado"; exit; } if(!function_exists("Abre_Conexao")) { echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao"; exit; } $id = $_GET["id"]; Abre_Conexao(); $re = mysql_query("select count(*) as total from usuarios where id_usuario = $id"); $total = mysql_result($re, 0, "total"); if($total == 1) { $re = mysql_query("select * from usuarios, estados where estados.id_estado = usuarios.fk_estado and usuarios.id_usuario = $id"); $dados = mysql_fetch_array($re); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Cadastro</title> <style> <!-- .textBox { border:1px solid gray; width:200px;} --> </style> </head> <body> <form id="form1" name="form1" method="post" action="salvar_edicao.php"> <input type="hidden" name="id" value="<?php echo $id; ?>" /> <table width="400" border="0" align="center"> <tr> <td width="145">Nome</td> <td width="245"><input name="nome" type="text" id="nome" maxlength="45" class="textBox" value="<?php echo $dados["nome"]; ?>" /></td> </tr> <tr> <td>Email</td> <td><input name="email" type="text" id="email" maxlength="64" class="textBox" value="<?php echo $dados["email"]; ?>" /></td> </tr> <tr> <td>Data Nascimento</td> <td> <?php $arr = explode("-", $dados["data_nascimento"]); echo Seleciona_Item($arr[2], monta_select("dia", 1, 31)); echo Seleciona_Item($arr[1], monta_select("mes", 1, 12)); echo Seleciona_Item($arr[0], monta_select("ano", 1940, 1988)); ?> </td> </tr> <tr> <td>Sexo</td> <td><input name="sexo" type="radio" value="M" <?php echo $dados["sexo"] == "M" ? "checked=\"checked\"" : ""; ?> /><label>Masculino</label> <input name="sexo" type="radio" value="F" <?php echo $dados["sexo"] == "F" ? "checked=\"checked\"" : ""; ?> /> <label>Feminino</label></td> </tr> <tr> <td>Preferencias de Filmes </td> <td><select name="preferencias[]" class="textBox" multiple="multiple" id="preferencias"> <?php $combo = "<option value=\"R\">Romance</option> <option value=\"S\">Suspense</option> <option value=\"P\">Policial</option> <option value=\"F\">Ficção</option>"; $arr = explode(",", $dados["preferencias"]); for($i = 0; $i < count($arr); $i++) { $combo = preg_replace("#<option value=\"{$arr[$i]}\">#is", "<option value=\"{$arr[$i]}\" selected=\"selected\">", $combo); } echo $combo; ?> </select> </td> </tr> <tr> <td>Salario</td> <td><input name="salario" type="text" id="salario" maxlength="5" class="textBox" /></td> </tr> <tr> <td>Endereco</td> <td><input name="endereco" type="text" id="endereco" maxlength="30" class="textBox" /></td> </tr> <tr> <td>Bairro</td> <td><input name="bairro" type="text" id="bairro" maxlength="20" class="textBox" /></td> </tr> <tr> <td>Cidade</td> <td><input name="cidade" type="text" id="cidade" maxlength="45" class="textBox" /></td> </tr> <tr> <td>Estado</td> <td><select name="estados" id="estados" class="textBox" > <option value="0">Selecione</option> <?php $re = mysql_query("select * from estados order by estado"); if(mysql_errno() != 0) { if(!isset($erros)) { echo "Erro o arquivo init.php foi auterado, nao existe $erros"; exit; } echo $erros[mysql_errno()]; exit; } while($l = mysql_fetch_array($re)) { $id = $l["id_estado"]; $estado = $l["estado"]; $uf = $l["uf"]; echo Seleciona_Item($dados["id_estado"], "<option value=\"$id\">$uf - $estado</option>"); } @mysql_close(); ?> </select> </td> </tr> <tr> <td>Login</td> <td><input name="login" type="text" id="login" maxlength="40" class="textBox" /></td> </tr> <tr> <td>Senha</td> <td><input name="senha" type="password" id="senha" maxlength="10" class="textBox" /></td> </tr> <tr> <td> </td> <td><input type="submit" name="Submit" value="Salvar" style="cursor:pointer;" /></td> </tr> </table> </form> </body> </html> excluir.php <?php if($_SERVER["REQUEST_METHOD"] == "GET") { if(file_exists("init.php")) { require "init.php"; } else { echo "Arquivo init.php nao foi encontrado"; exit; } if(!function_exists("Abre_Conexao")) { echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao"; exit; } $id = $_GET["id"]; Abre_Conexao(); if(mysql_query("delete from usuarios where id_usuario = $id")) { if(mysql_affected_rows() == 1){ echo "Registro deletado com sucesso<br />"; } } } ?> <a href="listar.php">Voltar</a> salvar_edicao.php <?php if($_SERVER["REQUEST_METHOD"] == "POST") { $id = $_POST["id"]; $nome = $_POST["nome"]; $email = $_POST["email"]; $data = "{$_POST["ano"]}-{$_POST["mes"]}-{$_POST["dia"]}"; $sexo = $_POST["sexo"]; $preferencias = isset($_POST["preferencias"]) ? implode(",", $_POST["preferencias"]) : ""; $salario = $_POST["salario"]; $endereco = $_POST["endereco"]; $bairro = $_POST["bairro"]; $cidade = $_POST["cidade"]; $estados = $_POST["estados"]; $login = $_POST["login"]; $senha = $_POST["senha"]; if(file_exists("init.php")) { require "init.php"; } else { echo "Arquivo init.php nao foi encontrado"; exit; } if(!function_exists("Abre_Conexao")) { echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao"; exit; } Abre_Conexao(); if(@mysql_query("UPDATE usuarios SET nome = '$nome', email = '$email', sexo = '$sexo', preferencias = '$preferencias', salario = '$salario', endereco = '$endereco', bairro = '$bairro', cidade = '$cidade', fk_estado = '$estados', login = '$login', senha = MD5( '$senha' ) WHERE id_usuario = $id")) { if(mysql_affected_rows() == 1){ echo "Registro atualizado com sucesso"; } } else { if(mysql_errno() == 1062) { echo $erros[mysql_errno()]; exit; } else { echo "Erro nao foi possivel efetuar a edição"; exit; } @mysql_close(); } } ?> <a href="listar.php">Voltar</a> arquivos completos para download: Cadastro.zip Pessoal qualquer duvida quanto os sistema ou alguma duvida só postar no forum mesmo que responderemos bom espero que esse exemplo seja util versao do sistema de cadastro mais simples http://forum.imasters.com.br/index.php?showtopic=201046 abraços OBS Topico atualizado 24/06/2009 ir para ultimas paginas nelas tem outras atualizações do sistema de cadastro incluindo sistema de login com niveis de acesso
  5. 2 pontos
    Se quiser usar apenas funções nativas de array: $chars = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"; $chars2 = "0,1,2,3,4,5,6,7,8,9"; $arrayChars = explode("," , $chars); $arrayNumbers = explode("," , $chars2); $result = array_merge(array_rand(array_flip($arrayChars) , 3) , array_rand(array_flip($arrayNumbers) , 3)); shuffle($result); var_dump($result); https://3v4l.org/RdPmf Só para constar: - explode: transforma string em array; - array_flip: inverte as o valor e as chaves (chave se torna valor, valor se torna chave); - array_rand: sorteia um ou mais valores (depende do segundo parâmetro) e retorna as chaves (por isso foi utilizado o array_flip); - array_merge: junta dois ou mais arrays; - shuffle: sorteia o array (para não ficar 3 letras e 3 números em sequência). Pode ser feito sem usar array, só strings e um for (é claro, array para armazenar apenas): $chars = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"; $chars2 = "0,1,2,3,4,5,6,7,8,9"; $chars = str_replace("," , "" , $chars); $chars2 = str_replace("," , "" , $chars2); $result = []; for($i = 0 ; $i < 6 ; $i++) { $result[] = $i < 3 ? substr($chars , rand(0 , strlen($chars) - 1) , 1) : substr($chars2 , rand(0 , strlen($chars2) - 1) , 1); } shuffle($result); var_dump($result); O resultado é praticamente o mesmo: https://3v4l.org/snPMS E há tantas outras maneiras. Vai do gosto de cada um.
  6. 2 pontos
    Boa tarde! Você pode pegar o índice da imagem, por exemplo. Para o HTML: <div class="estrelas"> <img class="estrela" src="estrela_off.jpg"> <img class="estrela" src="estrela_off.jpg"> <img class="estrela" src="estrela_off.jpg"> <img class="estrela" src="estrela_off.jpg"> <img class="estrela" src="estrela_off.jpg"> </div> No jQuery: $('.estrelas .estrela').each(function(i, e) { $(e).hover(function() { var indice = $(this).index(); for(var i = 0; i < (indice + 1); i++) { $(this).parent().find('.estrela').eq(i).attr('src', 'estrela_on.jpg'); } }); }); Ficou claro?
  7. 2 pontos
    Sim, use DateTime $date = new \DateTime(); echo $date->format('yMdHm'); Saída: 17Mar221703 Funcionamento: https://3v4l.org/cjZTo Apenas lembrando que o formato yMdHm é interpretado como yyMMddHHmm
  8. 2 pontos
    Só complementando o meu amigo @wootzor. Aqui basicamente temos um array [] de objetos {} em JS: var dados = [ { "Nome": "EMPRESA1", "Status": true } ,{ "Nome": "EMPRESA2", "Status": false } ,{ "Nome": "EMPRESA3", "Status": true } ]; O seu objetivo seria simplemente filtrar e exibir apenas as chaves Status cujo o valor é true. Para percorrer um array em JS temos diversas maneiras (for, forEach, map). Vou exemplificar com o for in... for(x in dados){ if(dados[x]['Status']){ //Só vai entrar aqui qnd o Status estiver true } } Ai para filtrar e exibir em tempo real precisa de alguns conhecimentos do JS... Um exemplo pra ti, tentei deixar o mais simples possível porem dinâmico a ponto de você ver os estados se alternarem https://jsfiddle.net/4f5wkvfw/ Pensando bem você poderia até fazer outros filtros... e intercalando eles. <!-- Spoiler --> Acabei viajando na ideia e tentar reproduzir aqueles filtros do Angular 1.x Da uma olhada no filtro de Nome + Status hehe https://jsfiddle.net/h5o9Lfu5/
  9. 2 pontos
    A respeito do ajax recomendo a leitura: https://github.com/gabrieldarezzo/desafiosInternos/tree/master/ajax
  10. 2 pontos
    sim, não importa quantas vezes você troque, porque no final das contas basta trocar: 7a por A e pronto. O quanto de trabalho você teve no meio do caminho não importa, o seu algoritmo é muito fraco.
  11. 2 pontos
    Não sei como é o seu código, então não posso dar uma solução, mas posso dar alguma ajuda, você vai precisar usar javascript, algo +/- assim: var img = new Image(); img.onerror = function(){ //Fazer alfuma coisa caso de erro ao carregar a imagem, por exemplo, mostrar outra imagem img.src = "http://URL_DA_IMAGEM_ALTERNATIVA"; } img.src = "http://URL_DA_IMAGEM"; Olha se algum desses links ajuda: http://stackoverflow.com/questions/18837735/check-if-image-exists-on-server-using-javascript http://stackoverflow.com/questions/14651348/checking-if-image-does-exists-using-javascript
  12. 2 pontos
    O código está simples, acho que dispensa comentários. Altere o valor de $limit caso deseje alterar o limite de registros por query. Eu deixei como 1000 porque é o que pede seu tópico, porém eu acho muito. Eu colocaria 100 registros de cada vez pra não floodar tanto o banco de dados e criaria alguma coisa que me permitisse acompanhar os registros sendo inseridos pra me certificar de que nada de errado aconteceu. <?php $usuarios[] = array('nome' => 'Ciclano', 'email' => 'ciclano@uol.com.br'); $usuarios[] = array('nome' => 'Ciclano', 'email' => 'ciclano@uol.com.br'); $usuarios[] = array('nome' => 'Ciclano', 'email' => 'ciclano@uol.com.br'); $usuarios[] = array('nome' => 'Ciclano', 'email' => 'ciclano@uol.com.br'); $usuarios[] = array('nome' => 'Ciclano', 'email' => 'ciclano@uol.com.br'); $sql = "INSERT INTO `usuarios` (`id`, `nome`, `email`) VALUES"; $values = []; $indice = 0; $qntidade = 0; $limit = 1000; foreach ($usuarios as $usuario) { if ($qntidade < $limit) { $qntidade++; } else { $qntidade = 1; $indice++; } $str = " (NULL, '{$usuario['nome']}', '{$usuario['email']}'),"; $values[$indice] = (isset($values[$indice])) ? "{$values[$indice]}{$str}" : $str; } foreach ($values as $str) { $query = substr("{$sql}{$str}", 0, -1); sqlsrv_query($query); }
  13. 2 pontos
    Passa as categorias na query usando WHERE IN(...) https://www.google.com.br/#safe=off&q=mysql+where+in+&*
  14. 2 pontos
    Mais rápida é complicado de dizer, nunca tive problemas de performance. Mas a que eu recomendo é sempre a mesma, TCPDF https://github.com/tecnickcom/TCPDF A nova versão da TCPDF está em desenvolvimento e, em consequência, terá outro nome (novamente...). https://github.com/tecnickcom/tc-lib-pdf
  15. 2 pontos
    Fiz algumas alterações que não havia me atentado. http://codepen.io/Eziquiel/pen/QpgJoL?editors=0010
  16. 2 pontos
    function enviar_lixeira ($idCliente ){ $pdo = conectar(); try { $delete = $pdo->prepare("UPDATE cad_cliente set lixeira = '1' WHERE idCliente = :idCliente "); $delete->bindValue('idCliente', $idCliente); $delete->execute(); if ($delete->rowCount()> 0): return true; else: return false; endif; } catch(PDOException $erro) { echo "ERRO AO ENVIAR PARA LIXEIRA" . $erro->getMessage(); } } Tente isso!
  17. 2 pontos
    Esse post do Thiago belem, que é de onde você extraiu esse codigo, é muito antigo. De lá para cá o PHPMailer teve algumas alterações. De uma olhada em https://github.com/PHPMailer/PHPMailer Tem um exemplo correto de como você deve usar o PHPMailer, nas versões atuais. Dica, sempre que quiser saber/aprender algo, procure sempre pela documentação, no site oficial, pois sempre estará atualizado Boa diversão!
  18. 2 pontos
    Como o colega acima explicou, primeiro você precisa entender o conceito de MULTITENANCY ou PLATFORM AS A SERVICE que consiste exatamente em um sistema que serve de "plataforma"para os demais. veja também este vídeo:
  19. 2 pontos
    Oi Lucas, No seu script se um dos updates for concluído o alert será disparado dando um FALSO POSITIVO. Para corrigir criei uma variável para armazenar a quantidades de FORMS e outra para contar os FORMS com 100% dentro do FOR (em lugar do $each) Compare as duas variáveis e se forem iguais TODOS os updates estarão concluídos. Como mostrado a seguir: <script type="text/javascript"> var qdeForms = $( 'form[id^="fr-arquivos"]' ).length; var count = 0; for (i=0; i<qdeForms; i++) { if( $('form[id=fr-arquivos'+ i +'] .progress-meter-text').text() == '100%' ) { count++; } } if (qdeForms == count) {alert('Todos updates foram Completos...');} </script>
  20. 2 pontos
  21. 2 pontos
    Existe formas mais elegantes e uma delas é via htaccess Forçar o arquivo .css ou .js interpretar tags php Exemplo index.html css/ /.htaccess /custom.css <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Fundo Cinza</title> <link rel='stylesheet' type='text/css' href='css/custom.css?cor=blue' /> </head> <body> <h1>Cor Branca</h1> <span class="cor">Cor Azul</span> </body> </html> . /css/.htaccess <FilesMatch "\.(css)$"> SetHandler application/x-httpd-php </FilesMatch> /css/custom.css <?php header("Content-type: text/css; charset: UTF-8"); $cor = isset($_GET['cor']) ? $_GET['cor'] : null; $body = "#ccc"; $h1 = "#fff"; ?> body { background: <?= $body ?>; } h1 { color: <?= $h1 ?>; } .cor { color: <?= $cor ?>; }
  22. 2 pontos
    Por questão de organização, prefira a forma externa, apresentada no post do Duarte.
  23. 2 pontos
    Use apenas o composer! Para instalar: composer require phpdocumentor/phpdocumentor Depois crie a documentação de acordo com o manual https://www.phpdoc.org/docs/latest/index.html E para gerar a documentação basta executar: ./vendor/bin/phpdoc run -d diretorioAhDocumentar -t diretorioDaDocumentacao Se não entendi errado, no seu comentário você esta dizendo que não utiliza o composer? Se for isso, então este é problema! Perca umas duas horinhas ou que for necessário e pesquise sobre o composer, vai mudar sua vida, você sera mais feliz! :)
  24. 2 pontos
    Olá, isso é um bug na atualização do plugin W3TC e não com a hospedagem. Aqui está a possível solução: http://www.mkwebdesign.ca/tutorials/parse-error-deactivating-w3-total-cache.html Resumindo, ele pede para acessar o wp-config.php e alterar a primeira linha da seguinte forma: De <?php/**Para<?php/** Abraço.
  25. 2 pontos
    Pow não seja por isso haha: Exemplo de busca por Cep sem jQuery/Plugin/CSS https://github.com/gabrieldarezzo/gabrieldarezzo.github.io/blob/master/busca_cep/vanilla.html Live Demo: http://gabrieldarezzo.github.io/busca_cep/vanilla.html
  26. 1 ponto
    Esta dentro dos Padrões do Mercado. Que eu me lembre, esta não é uma criptografia autenticada e é vulnerável a ataques. Você vai achar a respeito aqui! Muita gente vem utilizando JWT para autenticar Json, uso e recomendo.
  27. 1 ponto
    É o que te falei, pesquisa por criptografia simétrica e assimétrica antes de iniciar a criação de um algoritmo. Hoje os melhores algoritmos de criptografia são baseados no conceito de chaves. A criptografia mais segura atualmente utiliza o conceito de chave pública e privada. Você está pensando apenas no processo de substituição de caracteres, isso é uma das técnicas básica da criptografia, que é conhecida como Cifra de Substituição. Se você não implementar uma chave, qualquer um pode tentar quebrar sua criptografia com mais facilidade, basta ter um motivo, por exemplo, ter certeza que você criptografou dados de cartão de crédito, ou que é a senha de um super administrador de um sistema. Outro detalhe importante é que o método de criptografia tem que ser eficiente e rápido. Então ficar criptografando a criptografia pode deixar seu sistema lento.
  28. 1 ponto
    Para obter mais informações sobre como reparar ou configurar sua conta de e-mail Outlook, clique no seguinte link: https://www.pstrepairkit.com/pt/ Saudações
  29. 1 ponto
    Primeiramente, bem-vindo ao fórum! Vamos lá... Você deve criar uma coluna na sua tabela(admin) e, na hora do login, você trata cada qual com seu algum, você também pode criar um novo cookie e armazenar o nivel de acesso do usuario logado, assim podendo criar condições para cada cargo em cada página. Alguns pontos... 1º - Funções começadas com mysql_* estão obsoletas há algum tempo e no PHP 7 já foram removidas, lhe recomendo a migrar para o PDO, mas como você diz que ainda é iniciante, talvez o caminho mais fácil seja utilizar o mysqli_*; 2º - Evite usar cookies, prefira sempre Sessions, é bem parecida com cookies porém mais segura e, na minha opinião, mais simples e dá menos problema; 3º - Esse é mais frescura minha e meio algo que todo mundo faz rs, nas suas queries, prefira usar os comandos SQL em maiúsculo e nomes de tabelas e colunas como são (normalmente minusculo), um exemplo utilizando a sua propria consulta: SELECT * FROM admin WHERE login='$login' AND cod='$cod Como eu disse, é mais uma frescura mesmo, não interfere em nada, mas na minha opinião, facilita a leitura da query. É isso aí, espero que extraia algo de útil daqui haha
  30. 1 ponto
    Você pode fazer uma gambiarra: <?php class Registros { private $valoresBanco; private $novoValor; private $erro; private $inserir; public function receberValores() { $this->setValoresBanco("BICICLETAS,CARROS,MOTOS,AVIÕES,VANS,ANIMAIS,PESSOAS"); $this->setNovoValor("CARROS"); } public function separarValores() { $this->setValoresBanco(explode(",", $this->getValoresBanco())); } public function dispararErro() { $this->setErro(1); } public function verificarValores() { for ($x = 0; $x < count($this->getValoresBanco()); $x++) { if ($this->getNovoValor() == $this->getValoresBanco()[$x]) { $this->dispararErro(); } } $this->inserirNovoValor(); } public function inserirNovoValor() { if ($this->getErro()) { echo "Este valor já existe!"; } else { array_push($this->valoresBanco, $this->getNovoValor()); } } public function setValoresBanco($v) { $this->valoresBanco = $v; } public function getValoresBanco() { return $this->valoresBanco; } public function setNovoValor($n) { $this->novoValor = $n; } public function getNovoValor() { return $this->novoValor; } public function setInserir($i) { $this->inserir = $i; } public function getInserir() { return $this->inserir; } public function setErro($e) { $this->erro = $e; } public function getErro() { return $this->erro; } } $valores = new Registros(); $valores->receberValores(); $valores->separarValores(); $valores->verificarValores(); Lembrando que você terá que sempre adicionar um novo valor após virgula e até quando a aplicação vai continuar sem bugs? Até quando você vai ter 5 valores? Aconselho você criar uma tabela CATEGORIAS e adicionar as mesmas lá. Para verificar da maneira correta: <?php $this->setPdo($this->con->prepare("SELECT * FROM......")); $this->execute(); if ($this->getPdo()->rowCount() > 0) { return false; } else { return true; } // SE FOR FALSO ELE NÃO INSERE, SE FOR VERDADEIRO ELE INSERE... Veja a diferença :)
  31. 1 ponto
    Sim, só colocar <script src="myscripts.js"></script> antes de fechar o head. https://www.w3schools.com/tags/att_script_src.asp
  32. 1 ponto
    Você está em qual pasta? no cmd? navegou (cd pasta_do_projeto) até a pasta que possui o compose.json? Tem diversas maneiras de utilizar o composer. Verificou se a pasta foi preenchida (Se agora o Image tem conteúdo?)?
  33. 1 ponto
    Está habilitado o seu auto_load? <?php require_once 'vendor/autoload.php'; Recomendo a leitura: https://getcomposer.org/doc/00-intro.md http://php.net/manual/pt_BR/language.oop5.autoload.php
  34. 1 ponto
    http://api.jquery.com/trigger/ Ou então se precisa esperar um retorno de Ajax de pagina onde você não tem acesso: $(document).ready(function() { //Só é ativado após a resposta. $( document ).ajaxComplete(function( event, xhr, settings ) { if(settings.url == '/url_do_ajax'){ } ); }); Porem recomendo fortemente estudar sobre callbacks do JavaScript se esse for o seu cenário.
  35. 1 ponto
    A segurança de seu sistema depende muito da forma como você trata os dados. Valores inteiros devem ser tratados como inteiros, strings como strings e etc. "Amarrar" o tipo de dado ao valor passado é sempre necessário. Ao utilizar PDO já ajuda muito sua aplicação no caso de transação de dados. Função como addslashes() também é bem vinda.
  36. 1 ponto
    O nome é accordion segue tutorial: https://www.w3schools.com/howto/howto_js_accordion.asp
  37. 1 ponto
    tente assim, apenas: $stm->execute(); (sem a variavel) http://php.net/manual/en/pdostatement.execute.php
  38. 1 ponto
    function detalhescliente(id_cliente){ $.post('services/load_detalhes_cliente.php', {id_cliente: id_cliente}, function(data){ var array = JSON.parse(data); var razao = array.razao_cliente; //não consigo encontrar o valor dentro do array $('#modalupdatecliente').modal('show'); $('.modal-body #razao_cliente').val(razao); }); } Ver se assim da certo..
  39. 1 ponto
    Percebi quer você está trabalhando direto pelo Servidor de 'produção' Normalmente os erros são suprimidos. Recomendo a leiutura das orientações do forum de php: E habilitar os erros como descrito na 3°: ini_set('display_errors', true); error_reporting(E_ALL); Provavelmente depois que você habilitar vai 'estourar' os erros na sua cara. Como por exemplo esse trecho errado: if($cadastra == 1){ <script type="text/javascript"></script> Onde ocorre uma 'fusão' de php + HTML/JS Exemplo 'certo' (sem erro de Syntax) if($cadastra == 1){ echo '<script type="text/javascript"></script>';
  40. 1 ponto
    $getbalance->data->balances[0]->available_balance balances é um array, se retornar mais de um item você terá que usar um foreach
  41. 1 ponto
    Primeiro grave o ID do usuário. Faça para a verificação pela data da votação. $dataDeHoje = date("Y-m-d"); suaQuery("SELECT * FROM tabela WHERE date(`data_do_post`) >= '$dataDeHoje'"); daí você complementa: "AND ID_user = '$id_user'"
  42. 1 ponto
    Olá, seja bem vindo ao fórum. Você já tem noção do que seja o MySQL ? sabe selecionar dados, excluir, inserir, atualizar ? Veja aqui o básico para selecionar dados. http://www.codigomaster.com.br/desenvolvimento/php-exibir-dados-de-uma-tabela-em-mysql
  43. 1 ponto
    Você poderia usar o Bootstrap, mas caso queira fazer manualmente. Ficaria algo assim. HTML: <div id="box"></div> <div id="informacao">Digite a informação desejada aqui!</div> CSS: #box { width: 100px; height: 100px; border-radius: 5px; background-color: grey; } #informacao { width: auto; height: auto; display: inline-block; visibility: hidden; position: absolute; padding: 5px 10px 5px 10px; border-radius: 5px; background-color: #000; color: #fff; } #box:hover + #informacao { visibility: visible; } Exemplo: https://jsfiddle.net/renancardosofc/tds8me70/ OBS: Caso queira colocar a #informação dentro do #box, é só substituir + por > Assim: #box:hover > #informacao { visibility: visible; }
  44. 1 ponto
    Se você tiver certeza que sempre havera a query select, use a função http_build_query, senão tiver use stropos para verificar se existe o sinal "?" de interrogação na URL , se existir use a função http_build_query para ir montando a nova URL com $_SERVER['REQUEST_URI']
  45. 1 ponto
    $inicio = strtotime('2016-10-21'); $fim = strtotime('2016-11-31'); while(1){ $inicio = strtotime('next tuesday', $inicio); if($inicio>$fim){ break; } echo date('Y-m-d',$inicio)."</br>"; }
  46. 1 ponto
  47. 1 ponto
    acho que seria melhor postar na area de PHP .
  48. 1 ponto
    Se você já tem a query pronta, qual sua dificuldade ? é só substituir pela atual... Por favor, coloque sempre códigos dentro das tags CODE como mostrado na advertência.
  49. 1 ponto
    Math não é uma função, é um objeto. Random é uma função que você chama a partir do objeto Math. https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Math
  50. 1 ponto
    mostre a função executecmd... olhando assim a construção da sql está legal... detalhe de menos importância... o campo id_produto e quantidade são campos texto?