Jump to content
Fórum Script Brasil

sabino

Membros
  • Posts

    43
  • Joined

  • Last visited

About sabino

sabino's Achievements

0

Reputation

  1. sabino

    Instrução SQL

    Bom dia! Acho que podemos ajudar nisso, mas antes de qualquer coisa tenho algumas dúvidas... 1) A combo é populada com valores existentes... aí o usuário digita o filtro em um campo texto ou seleciona a(as) as classes desejadas? 2) Não entendi o problema do registro que ainda não foi salvo: os classes existentes não foram exibidas na primeira combo? Ou seja, não são registros pré-existentes no banco?
  2. Bom dia pessoal! Leili, uma opção é colocar o primeiro option do select com um texto do estilo "Selecione a cidade" e verificar se o selectedIndex do select igual a zero, por exemplo.... &lt;script> ... //inserir essa validação junto com as outras... if (document.getElementById('cboCidade').selectedIndex == 0) { alert('Por favor, selecione a cidade.'); return false; } ... </script> ... <select id='cboCidade' name='cboCidade> <option value='0'>Selecione a cidade</option> .... </select> ... Espero que isso ajude! []' a todos!
  3. Bom dia pessoal! Pelo que entendi, o Leonardo deseja que, ao clicar em um radio button o sistema seja direcionado para a pagina X e ao clicar em outro seja direcionado para Y.. se for isso mesmo, é possível colocar uma função no onclick do radio que redireciona para a página desejada ou definir uma variável que seja alterada no onclick para que a página seja redirecionada em um onsubmit (por exemplo). Seria alguma coisa assim... Opção 1) &lt;script> function defineDestino(strURL, lngCodCliente) { window.location.href = strURL + "?CodCliente=" + lngCodCliente; } </script> <input type="radio" value="<%=rstSearch("cod_estabel")%>" ... onclick="defineDestino('Detalhes.asp', this.value);"> <input type="radio" value="<%=rstSearch("cod_estabel")%>" ... onclick="defineDestino('Produtos.asp', this.value);"> Opção 2) Opção 1) &lt;script> var strDestino = ""; var lngCodCliente = 0; function defineDestino(strURL, lngCodigo) { strDestino = strURL; lngCodCliente = lngCodigo; return true; } function redireciona(objForm) { objForm.action = strDestino + "?CodCliente=" + lngCodCliente; return true; } </script> <form ... onsubmit="return redireciona(this);"> <input type="radio" value="<%=rstSearch("cod_estabel")%>" ... onclick="return defineDestino('Detalhes.asp', this.value);"> <input type="radio" value="<%=rstSearch("cod_estabel")%>" ... onclick="return defineDestino('Produtos.asp', this.value);"> Espero que isso ajude! []' a todos!
  4. Pessoal, A variável que tem o IP do usuário chama-se REMOTE_ADDR (Request.ServerVariables("REMOTE_ADDR") []'s a todos!
  5. sabino

    formatando valor

    E aí pessoal? Notax, pelo que você descreveu, os valores estão vindo com vírgula para separar as casas decimais, e deveriam vir com ponto: 4.56 ao invés de 4,56. Se for isso mesmo, o replace deveria funcionar, só não entendi porque colocar Len(...): len(replace(valor(i),",",".")) Parece que o correto seria simplesmente: replace(valor(i),",",".") Espero que ajude! []'s a todos!
  6. Pessoal, Além da sugestão do jothaz, pode ser mais uma coisa: um erro comum é o form estar postando com o método GET e tentarmos pegar o FORM. Outra coisa que pode ajudar é a depuração com a instrução STOP. Aí você terá certeza, em tempo de execução, dos valores das variáveis. []'s a todos!
  7. Pessoal, apenas para esclarecer... A parametrização é um meio seguro que IMPEDE tentativas de adulteração da query, exemplo... Na consulta simples abaixo que pode ser usada para verificar a existência de um login de usuário... strSQL = " SELECT CodUsuario FROM Usuarios WHERE Login = '" & strLogin & "'" Pode ser inserido o SQL Injection através de valores maliciosos, mas inserindo parâmetros isso não será tão fácil. Seria algo parecido com o trecho abaixo... ... strSQL = " SELECT CodUsuario FROM Usuarios WHERE Login = @Login " Call objCommand.Parameters.Append("@Login", 200, 1, Len(strLogin), strLogin) ... Nesse caso, não importa o que seja passado em "strLogin", porque o valor não vai alterar o corpo da query. Quando à substituição de aspa simples, é um bom método e impede também os ataques que eu já vi ou ouvi falar, mas limita a inserção de dados com aspa simples no banco. Ao invés de eliminar a aspa simples, a sugestão é o mesmo replace mas trocando aspa simples por duas aspas simples. Também funciona e o caractere será inserido normalmente. Outra vantagem do uso de parâmetros é que não é necessário padronizar o site inteiro, apenas vamos nos preocupar em criar os parâmetros da query na camada de acesso a dados, o tratamento fica centralizado, não importando o tamanho do site. Isso é particularmente útil quando estamos trabalhando em equipe. []'s a todos!
  8. No banco guestbook1 existe uma tabela com o nome guestbook1 também? Parece ser esse o problema: não existir a tabela.
  9. Beleza, parou de dar erro. Os problemas agora são: 1) O arquivo deleting.asp está pegando request.querystring e por isso pega apenas o código que foi passado na URL no action do form (deleting.asp?id=...). O correto é utilizar, nesse caso, request.form para pegar os valores postados no form e não na querystring; 2) No arquivo deleting.asp, a instrução SQL ainda está com LINK_ID = ... o correto é LINK_ID IN (...) para deletar mais de um. Espero que ajude!
  10. O trecho de código que tem onsubmit é esse: <form id="frmDeletar" name="frmDeletar" action="deletar.asp" onsubmit="critica(this)" method="post"> Ao invés de onsubmit="critica(this)" o certo é onsubmit="return critica(this)" Esta postando vazio, por isso esta dando o erro. Se o request vier vazio, vai ficar LINK_ID = na query sem valor nenhum, ai da erro mesmo.
  11. py2tz, Repare no código que eu postei que existe um função associada ao evento onsubmit do form, justamente para dificultar a postagem se não tiver nenhum item selecionado, isso é importante para prevenir o erro na instrução sql. Deve ser isso que está causando o problema>: não está validando se em pelo menos um item selecionado. Outre coisa: a associação do evento onsubmit deve ser onsubmit="return ...". Esqueci o return, mas aqui no Firefox funcionou mesmo assim quando testei antes de postar. []'s!
  12. Foi mal, postei sem querer rsrs :-) já alterei o post para o codigo correto, ele não faz nada, so posta os valores dos itens para exlusao ou qualquer coisa que a pessoa queira fazer, so um esquema do funcionamento. []'s!
  13. <% Dim strAlert Dim strLinks : strLinks = Request.Form("chkLink") If Len(strLinks) > 0 Then strAlert = "alert('Itens selecionados: " & strLinks & "');" End If %> <html> <head> &lt;script language="javascript" type="text/javascript"> <%=strAlert%> function critica(obj) { for (var i = 0; i < obj.chkLink.length; i ++) { if (obj.chkLink[i].checked) { return true; } } alert("Selecione pelo menos um item para exclusão"); return false; } function selecionarTodos(check) { var objChk = document.getElementsByName("chkLink") for (var i = 0; i < objChk.length; i ++) { objChk[i].checked = check; } } function deletarLink(id) { selecionarTodos(false); document.getElementById("chk" + id).checked = true; document.frmDeletar.submit(); } </script> </head> <body> <form id="frmDeletar" name="frmDeletar" action="deletar.asp" onsubmit="critica(this)" method="post"> <table> <tr> <td> <input type="checkbox" id="chkSelecionarTodos" onclick="selecionarTodos(this.checked)"/> </td> <td> Selecione os liks para exclusão </td> </tr> <% Dim i : For i = 0 To 9 %> <tr> <td> <input type="checkbox" value="<%=i%>" id="chk<%=i%>" name="chkLink"/> </td> <td> <a href="java script:deletarLink(<%=i%>); void(0);">Link<%=i%></a> </td> </tr> <% Next %> <tr> <td colspan="2" align="right"> <input type="submit" value="Excluir" /> </td> </tr> </table> </form> </body> </html>
  14. py2tz, O recurso que você implementou pode ficar basicamente o mesmo. Se eu entendi o que deseja, seria assim: 1) Mudar a instrução DELETE utilizando IN, por exemplo : DELETE FROM LINKS WHERE LINK_ID IN (" + Replace(spDeleteLinks__id, "'", "''") + ")" Isso permitirá que a instrução apague mais de um registro na tabela. 2) Na caixa que selecionará todas as outras, basta implementar uma função que altere o atributo "checked" das demais para "true" (marcando) ou "false" (demarcando) que será chamada no evento onclick da caixa. Dessa forma, quando postar vão todos os códigos que foram selecionados para formar a instrução SQL. Qualquer dúvida, é só postar! Espero que te ajude []'s
  15. hicarocastro, A iniciativa é interessante, mas é mais simples evitar ataques através da parametrização dos campos, que impede qualquer tentativa de alterar o conteúdo de uma instrução SQL. []'s a todos!
×
×
  • Create New...