Ir para conteúdo
Fórum Script Brasil

ESerra

Moderadores
  • Total de itens

    8.873
  • Registro em

  • Última visita

Tudo que ESerra postou

  1. Só um adendo... o código do babaloricha tem um bugzinho... quando o número for um divisor perfeito de 3 a variável sobra vai ter um valor = zero, sendo que deveria ter um valor igual a 3, mas isso pode ser resolvido adicionando logo após sobra=numero.length%3 isso: sobra = (sobra == 0)?3:sobra; Tirando isso o código acabou de ser bem útil pra mim ;)
  2. O valor vai vir exatamente do option... só que ele deve ter o atributo VALUE e não o NAME, exemplo: <option value="valor que vai ser resgatado">O que é exibido no menu</option>
  3. <?php //No caso é o nome dado ao SELECT, no caso reserve $qualnome = $_POST['reserve']; ?>
  4. ESerra

    segurança para login

    É essa função ai está de bom tamanho sim... uma outra coisa que é pouco usado, mas é bem eficiente, geralmente os problemas acontecem em páginas "abertas" (ou seja em seções do site que qualquer um pode ter acesso), então nessas seções o recomendado é que o usuário que se conecta ao banco de dados tenha apenas permissão de lleitura (select), assim mesmo que alguém, por exemplo, tente dropar o teu BD, não vai conseguir, em último caso, pela simples falta de permissão do usuário que acesso o BD...
  5. ESerra

    segurança para login

    Tudo que vem de um formulário, independente do método de envio, deve ser tratado antes de se jogar em uma query. O básico do básico é usar a função mysql_real_escape_string(), outra coisa que é interessante é fazer um black list de palavras, como SELECT, DELETE, INSERT, e etc, palavras que geralmente se usam em instruções SQL, juntando essas duas coisas, já fica 99% tranquilo. Quanto as sessões, o problema é se ocorrer o roubo delas, mas isso depende das configurações do servidor também, como em geral quem administra servidores tem o mínimo de noção e bom senso, é difícil ocorrer isso. Sempre que possível deve-se usar algum tipo de criptografia, mas isso ter dois contras: 1 - O preço de um certificado de segurança não é lá muito barato; 2 - Isso acarreta em maior processamento. Em resumo pra aplicações do dia-a-dia, criptografia ainda é algo que ainda demanda muito em troca de pouco.
  6. ESerra

    Listar fotos

    Se você for guardar os dados referentes a cada foto no BD, basta fazer o laço pra pegar os dados e a cada volta pegar o nome e colocar dentro da tag IMG para mostrar como imagem... caso você não for guardar os dados das imagens no BD, ai você pega a função scandir para ler o conteúdo do diretório... Para mostrar miniaturas você teria que criá-las em algum momento, eu já postei um script pra isso aqui no fórum... é mais recomendado você criar elas quando enviar as fotos pro servidor do que criar elas toda vez que for exibir a galeria...
  7. Faltou especificar no cabeçalho que o e-mail conterá HTML... Troque isso: $headers = "From: $email <$name>"; Por isso: $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "From: $email <$name>\r\n"; Deve resolver...
  8. ESerra

    strtotime()

    A menos que você use uma versão muito antiga do PHP, não é normal... que erro que dá? echo strtotime("2007-12-14");
  9. Claro que as duas querys tem que serem iguais na questão do WHERE, só que uma vai ter o LIMIT a outra não, realmente você não entendeu a idéia da paginação... vou tentar de novo: Você vai ter que ter duas querys: query 1 -> Vai ter o total de registros baseados na sua busca; query 2 -> Vai ser a query que vai ser usada para exibir os dados, ela tem que ter os mesmos critérios da query1, só que contém a cláusula LIMIT que dirá onde começa e quanto resultados deve pegar... EDIT: Testei aqui em localhost e funcionou...
  10. Relamente 1001% estranho, bom, vamos analisar isso pelo lado da lógica: -> Achou 4 registros; -> Tá mostrando 10 registros; 1 - O mysql_num_rows tá te informado que achou 4 registros ou você tá consultando isso pelo phpmyadmin? 2 - Os registros estão se repetindo ou tá vindo outros coisas que não tem nada a ver com a pesquisa? EDIT: Mais um erro: $sql2 = mysql_query("SELECT * FROM shows LIMIT $inicio, $NumReg"); Tá faltando o WHERE na query!
  11. ESerra

    Upload + SSL + PHP

    A única coisa que de fato tem que ser configurado é o apache, pra ele aceitar o SSL, mas se você estiver fazendo isso em um servidor remoto, ai geralmente já está tudo pronto, bastando seguir o que o host mandar...
  12. Como eu pensei, você está usando a query errada (comentários no próprio código): <?php $busca = $_GET["busca"]; $NumReg = 10; if(!isset($_GET["pag"])) { $pag = 0; } $inicio = $pag * $NumReg; $sql = "SELECT * FROM shows WHERE evento LIKE '%$busca%'"; /* ###################### VOCÊ ESTÁ USANDO ESSA ###################### */ $seleciona = mysql_query($sql); $total = mysql_num_rows ($seleciona); if ($total == 0) { echo "<h2>Nenhum show encontrado...</h2>"; } else { echo "<h2>$total shows encontrados</h2>"; } /* ###################### QUANDO DEVERIA ESTAR USANDO ESSA, QUE É A QUE CONTÊM O LIMITE ###################### */ $sql2 = mysql_query("SELECT * FROM shows LIMIT $inicio, $NumReg"); $tr = mysql_num_rows($seleciona); ?> /* ###################### VOCÊ DEVE USAR NO mysql_fetch_array a query com o LIMIT ou seja, a $sql2 ###################### */ while ($exibe = mysql_fetch_array ($seleciona)) { $show = utf8_encode($exibe["evento"]); $dia = $exibe["dia"]; $mes = $exibe["mes"]; $ano = $exibe["ano"]; $cidade = utf8_encode($exibe["cidade"]); $estado = $exibe["estado"]; $cartaz = $exibe["cartaz"]; $obs = utf8_encode($exibe["obs"]); [...] E tem mais um erro: $Npg = ceil($tr / $NumReg); ai você está descobrindo o número total de páginas, só que $tr conta os registros quem vem da $sql2, ou seja, sempre vai ter no máximo 10, em vez de $tr deveria estar usando a variável $total, que conta todos os registros sem a cláusula LIMIT...
  13. ESerra

    Upload + SSL + PHP

    O google sabe, bastaria ter digitado SSL funciona ou SSL funcionamento que teria milhares de resultados... mas quanto a sua dúvida, o tráfego é criptografado, assim só na estação cliente e no servidor os dados são 'legíveis'...
  14. Tipo, o que você passou não é o que eu pedi, vou ser mais explícito, o que está interessando nesse momento é o laço que imprime os resultados na tela, antigamente estava assim: while ($exibe = mysql_fetch_array ($seleciona)) { ... } Mas é necessário saber como está agora, pois o erro está nele. O meu palpite é que de novo você está apontando pra query errada, pois o que você disse: "na busca sempre são retornados 10 resultados, 3 encontrados pelo termo pesquisado e o restante só para completar os 10, se a busca retornar 20 por ex, a paginação funciona normalmente... o que to querendo é que se achar só 3, mostre somente 3...tendeu?" não tem a mínima lógica, se a query só tem 3 resultado não tem como ela criar mais 7 pra completar os 10...
  15. Não tá funcionando assim? Então você não tem paginação, já que ela tem que fazer exatamente isso! Coloque o código completo, pois só pelo pedaço de código que você passou acho que você erro de novo...
  16. Tá difícil... mas vamos lá... "independente da palavra pesquisada, sempre são retornados a quantidade de registros definida na $NumReg e não a quantidade encontrada no BD... se eu buscar "show" ele retorna todos os resultados encontrados e mais alguns, sempre mostrando no mínino a quantidade definida na $NumReg..." Não sei se entendi o que você disse, mas cada página sempre vai retornar no máximo o definido no $NumReg, já que ele diz quantos resultados devem existir por página, assim uma consulta que retorne 35 resultados, com um $NumReg igual a 10 terá 4 páginas, sendo que a 1,2,3 terão 10 resultados e a 4 terá 5 resultados... Coloque o código completo....
  17. Volto a repetir, entenda a lógica, não copie apenas... Você tem duas querys: $sql = "SELECT * FROM shows WHERE evento LIKE '%$busca%'"; $seleciona = mysql_query($sql); E $sql2 = mysql_query("SELECT * FROM shows LIMIT $inicio, $NumReg"); $sql deveria ser a que serve apenas para saber a quantidade total de registros que existem com o termo pesquisado, e $sql2 deveria ser a que vai exibir os registros em cada página... só que logo abaixo no seu script está: while ($exibe = mysql_fetch_array ($seleciona)) { ... } Ou seja, você está mandando pro mysql_fetch_array a query errada!
  18. ESerra

    Formulario

    Ou você usa sessões ou guarda os dados que vierem das páginas anteriores em campos do tipo hidden e a cada página submete os dados de novo, mas isso ai vai ficar pior ainda...
  19. Em primeiro lugar, leia as regras do Fórum, UPs não são permitidos... Em segundo lugar, localhost é quando você executa alguma coisa na própria máquina em que está operando, ou seja, se você instalar o Apache/PHP e testa os scripts ai no seu próprio PC, está operando em localhost, por outro lado, se você testar os scripts em um servidor remoto, ai já não será localhost...
  20. Como PHP só processa a página e entrega pro navegador, se em um funciona e em outro não o problema está no HTML/JS gerado e não no PHP em si... movendo...
  21. Pelo fato de estar falando que o BD não foi selecionado é por falta do mysql_select_db, se ele tivesse selecionado o banco os erros poderiam ser banco não encontrado ou tabela não encontrada no banco (ou algum outro erro relacionada a consulta em si)...
  22. Esquece a parte do LIMIT (já corrigi a referência no post anterior), mas é sempre bom usar a lógica (e nem precisa ser a de programação), se dentre os resultados que comporão o retorno do BD só te interessam os que estiverem determinados no WHERE, como você vai usar uma query que pega tudo como referência para a parte da paginação? Logo se no BD tem 1000 cadastros, mas a tua pesquisa só deve retornar 100 com o que foi especificado, e devam ser exibidos 10 resultados por página, no primeiro caso vão existir 100 páginas, no segundo 10, ou seja, vai ter página que não vai ter conteúdo algum... por isso você vai ter que contar o número total de registro indicando um WHERE igual ao usado para na query que utiliza o LIMIT...
  23. ESerra

    Help Desk em PHP

    Dois que eu já utilizei e gostei são: - Crafty Syntax Live Help - Help Center Live
  24. É como eu sempre digo, o bom é pegar um código, entender ele e ai fazer o próprio, como você está fazendo fica difícil aprender, já que você simplesmente tá tentando alterar uma coisa que não faz lá muita idéia de como funciona... Veja: $Npg = ceil($tr / $NumReg); $Npg++; Isso dai diz a quantidade de página, ou seja arredodando pra cima o $tr (quantidade de registros) dividindo pelo $Num_Reg (quantidade de registros por página), ai se você tivesse consultado o $tr veria que ele está assim: $sql2 = mysql_query("SELECT * FROM shows"); $tr = mysql_num_rows($sql2); Ou seja, a paginação está sendo exibida porque a query simplesmente sempre está pegando todos os registros... essa contagem deveria se basear na query que faz a consulta no banco de dados conforme você especificou, ou seja: $sql2 = "SELECT * FROM shows WHERE evento LIKE '%$busca%'"; $seleciona2 = mysql_query($sql2); $total = mysql_num_rows ($seleciona2); Quanto ao seu outro problema, tente o urlencode e urldecode...
×
×
  • Criar Novo...