Ir para conteúdo
Fórum Script Brasil
  • 0

Script De Deletar Usuario Com Falha


mestre fyoda

Pergunta

Gostaria de colocar nesse script um jeito do usuario não deletar o usuário Master

<%@ Language=VBScript%>
<% Option Explicit %>
<%
	Dim intSno,intDelid,conn,a
	intSno=Request("Delete")

	set conn=Server.CreateObject("ADODB.Connection")
	conn.Provider="Microsoft.Jet.OLEDB.4.0"
	conn.Open(Server.Mappath("banco.mdb"))

usuario = Request.Form("usuario")
SQL = "select * from usuarios where usuario = '"&usuario&"' "
Set RS = conexao.Execute(SQL)

	a=split(intSno,",")

	dim iLoop
	for iLoop=LBound(a) to UBound(a)
  intDelid=Trim(a(iLoop))
  
  
  conn.Execute "delete from usuarios where id=" & intDelid & ""
	next
  Response.Redirect "del_sucesso.asp" 


	conn.Close
	set conn=nothing

%>

Link para o comentário
Compartilhar em outros sites

  • Respostas 52
  • Created
  • Última resposta

Top Posters For This Question

Posts Recomendados

  • 0

peraí!!

não abusa né!

vamos por partes..

nem olhei seu codigo, ate porque olink que você colocou não funcionou.

Mas e o que deleta master?

Link para o comentário
Compartilhar em outros sites

  • 0

<%@ Language=VBScript%>

<%

intSno=Request("Delete")

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open(Server.Mappath("banco.mdb"))

usuario = Request.Form("usuario")

SQL = "select * from usuarios where usuario = '"&usuario&"' and nivel <> 1 "

Set RS = conn.Execute(SQL)

If not RS.EOF Then

%>

<script>

alert("Você não pode deletar usuario master. Este codigo eu peguei pronto não se pode fazer isso também.");

window.location.href=("index.asp");

</script>

<%

end if

a=split(intSno,",")

dim iLoop

for iLoop=LBound(a) to UBound(a)

intDelid=Trim(a(iLoop))

conn.Execute "delete from usuarios where id=" & intDelid & ""

next

Response.Redirect "del_sucesso.asp"

conn.Close

set conn=nothing

%>

Link para o comentário
Compartilhar em outros sites

  • 0

tente assim...

<%@ Language=VBScript%>

<%

intSno=Request("Delete")

set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("banco.mdb"))

usuario = Request.Form("usuario")
SQL = "select * from usuarios where usuario = '"&usuario&"'"
Set RS = conn.Execute(SQL)

SQL = "select * from usuarios where usuario = '"&usuario&"' and nivel = 1 "
Set RC = conn.Execute(SQL)
If RC.EOF Then
%>

<script>
alert("Você não pode deletar usuario master. Este codigo eu peguei pronto não se pode fazer isso também.");
window.location.href=("index.asp");
</script>
<%
else
a=split(intSno,",")

dim iLoop
for iLoop=LBound(a) to UBound(a)
intDelid=Trim(a(iLoop))


conn.Execute "delete from usuarios where id=" & intDelid & ""
next
Response.Redirect "del_sucesso.asp" 


conn.Close
set conn=nothing
end if
%>

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, deixe eu me meter aqui também, hehehehehe

Seguinte, você tem um link onde o usuário exclui o outro usuário, mais esse não pode excluir qd o usuário a ser deletado for igual a nivel 1 certo? Então faça assim:

<%

id_usuario = Request.QueryString("id")

Set rs = SuaConexao.Execute("SELECT * FROM tabela WHERE id = "& id_usuario &"")

If rs.EOF Then

  Response.Write "O usuário não existe!!!"

ElseIf rs("nivel") = "1" Then ' tire as aspas caso seja valor numérico no BD

  Response.Write "O mané, não pode excluir usuários de nível 1..."

Else

  SuaConexão.Execute("DELETE FROM tabela WHERE id = "& id_usuario &"")

  Response.Write "beleza, já foi pro espaço o usuário"

End If

rs.Close

Set rs = Nothing

%>

entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0

Maninho, por favor não é?!!!

Se liga no erro:

Microsoft VBScript compilation error '800a0408'

Invalid character

/teste123/sistema em asp/deleta.asp, line 12

SuaConexão.Execute("DELETE FROM usuarios WHERE id = "& id &"")

--------^

Note que:

SuaConexão.Execute("DELETE FROM usuarios WHERE id = "& id &"")

está errado...

No lugar de SuaConexão, coloca o nome da conexão q você criou, onde você definiu:

Set alguma_coisa = Server.CreateObject("ADODB.Connection")

onde alguma_coisa é o que vai em SuaConexão!!! dry.gif

[]s!

Link para o comentário
Compartilhar em outros sites

  • 0

cara..

para mostrar os erros de script:

- Abra Opções de internet

- Avançado

- Desmarque "Mostrar URL DE ERRO AMIGAVEIS"

Link para o comentário
Compartilhar em outros sites

  • 0

mestre fyoda voce testou o ultimo codigo que eu te mandei.

Acredito que não pelo jito, e se testou poste o erro que deu.

Link para o comentário
Compartilhar em outros sites

  • 0

seu link não abriu para mim..

por isso não testei..

Link para o comentário
Compartilhar em outros sites

  • 0

Microsoft JET Database Engine error '80040e07'

Data type mismatch in criteria expression.

/teste123/sistema em asp/deleta.asp, line 14

<%@ Language=VBScript%>

<%

intSno=Request("Delete")

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open(Server.Mappath("banco.mdb"))

id_usuario = Request.QueryString("id")

Set rs = conn.Execute("SELECT * FROM usuarios WHERE id = '"& id &"' ")

If rs.EOF Then

Response.Write "O usuário não existe!!!"

ElseIf rs("nivel") = 1 Then ' tire as aspas caso seja valor numérico no BD

Response.Write "O mané, não pode excluir usuários de nível 1..."

Else

a=split(intSno,",")

dim iLoop

for iLoop=LBound(a) to UBound(a)

intDelid=Trim(a(iLoop))

conn.Execute "delete from usuarios where id = '" & intDelid & "' "

next

Response.Redirect "del_sucesso.asp"

End If

rs.Close

Set rs = Nothing

%>

Link para o comentário
Compartilhar em outros sites

  • 0

mude isso:

Set rs = conn.Execute("SELECT * FROM usuarios WHERE id = '"& id &"' ")

para isso:

Set rs = conn.Execute("SELECT * FROM usuarios WHERE id = "& id &" ")

se você não percebeu, eu apenas tirei a aspa imples (').

Pois o erro que esta dando, é tipo de dados incorreto.

Isso porque seu campo ID é numero, e você estava tratando ele como se fosse string (com a aspa simples)

Link para o comentário
Compartilhar em outros sites

  • 0

bom..

esse erro tá dizendo que sua variavel ID está vazia!

você vai ter que verificar no seu codigo se ela ta vazia mesmo!

eu vi que você coloca id = request.querystring("id")

é isso mesmo?

de onde vem os dados dessa pagina?

onde esta o form?

pois, operador faltando, é porque o ID esta vazio, aí da erro na comparação

Link para o comentário
Compartilhar em outros sites

  • 0

o form é esse :

deletar.asp

<%@ Language=VBScript %>
<%OPTION EXPLICIT%>

<BODY>
<FORM action="deleta.asp" method="Post" name=Form>

<%
Dim conn,rs,intCounter,intMod,rcolor,SQL
	set conn=Server.CreateObject("ADODB.Connection")
	conn.Provider="Microsoft.Jet.OLEDB.4.0"
	conn.Open(Server.Mappath("banco.mdb"))
	set rs = Server.CreateObject("ADODB.recordset")

SQL = "select * from usuarios" 
RS.Open SQL,Conn,3,3

%>

<table width="306" border="1" cellpadding="0" cellspacing="0" height="43" style="border-collapse: collapse" bordercolor="#CCCCCC">
  <tr>
    <th align="left" bgcolor=#DFE19D width="84" height="13" bordercolor="#FFFFFF"  bordercolordark="#006699"> <b>
      Selecione</b>
    <th align="left" bgcolor=#DFE19D width="98" height="13" bordercolor="#FFFFFF"  bordercolordark="#006699"> <b><font size="2" face="arial"> Nome</font> </b>
    <td align="left" bgcolor=#DFE19D width="58" height="13" bordercolor="#FFFFFF"  bordercolordark="#006699">
      <p align="center"><b><font size="2" face="arial"> Login</font></b></td>
  </tr>
  <%intCounter=0%>
  <%do until rs.EOF%>
  <%
intCounter=intCounter+1
intMod=intcounter mod 2

  if intmod=0 then 
  	rcolor = "#c0c0c0"  
  elseif intmod=1 then 
  	rcolor = "#FFFFFF"  
  end if
%>
  <tr>
    <td align="left" bgcolor=<%=rcolor%> width="84" height="20">
    <font size="2" face="arial" color="BLACK">
    <width=35%>
    <input type=CheckBox name=Delete value=<%=RS("id")%>>
    <td align="left" bgcolor=<%=rcolor%> width="58" height="20"> <font size="2" face="arial" color="BLACK">
      <%Response.Write (RS("nome"))%>
&nbsp;</font>
    <td align="center" bgcolor=<%=rcolor%> width="56" height="20"> <font size="2" face="arial" color="BLACK">
      <%Response.Write(RS("usuario"))%>
&nbsp;</font>
        <%rs.MoveNext%>
  </font></tr>
  <%loop
  	SET rs=nothing
  	set conn=nothing
  	%>
</table>
<input type="submit" value="Deletar" name="B1">
  	</p>

</form>
</BODY>

Link para o comentário
Compartilhar em outros sites

  • 0

nossa..

eu olhei todo o codigo, e não achei o lugar que passa o ID por parametro..

aliás.. até achei..

mas não bate com o script que processa..

Odeio remendar codigos..

Mas ok..

olhe o que ta em vermelho:

<%@ Language=VBScript %>

<%OPTION EXPLICIT%>

<BODY>

<FORM action="deleta.asp" method="Post" name=Form>

<%

Dim conn,rs,intCounter,intMod,rcolor,SQL

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open(Server.Mappath("banco.mdb"))

set rs = Server.CreateObject("ADODB.recordset")

SQL = "select * from usuarios"

RS.Open SQL,Conn,3,3

%>

<table width="306" border="1" cellpadding="0" cellspacing="0" height="43" style="border-collapse: collapse" bordercolor="#CCCCCC">

<tr>

  <th align="left" bgcolor=#DFE19D width="84" height="13" bordercolor="#FFFFFF"  bordercolordark="#006699"> <b>

    Selecione</b>

  <th align="left" bgcolor=#DFE19D width="98" height="13" bordercolor="#FFFFFF"  bordercolordark="#006699"> <b><font size="2" face="arial"> Nome</font> </b>

  <td align="left" bgcolor=#DFE19D width="58" height="13" bordercolor="#FFFFFF"  bordercolordark="#006699">

    <p align="center"><b><font size="2" face="arial"> Login</font></b></td>

</tr>

<%intCounter=0%>

<%do until rs.EOF%>

<%

intCounter=intCounter+1

intMod=intcounter mod 2

if intmod=0 then

  rcolor = "#c0c0c0" 

elseif intmod=1 then

  rcolor = "#FFFFFF" 

end if

%>

<tr>

  <td align="left" bgcolor=<%=rcolor%> width="84" height="20">

  <font size="2" face="arial" color="BLACK">

  <width=35%>

  <input type=CheckBox name=Delete value=<%=RS("id")%>>

  <td align="left" bgcolor=<%=rcolor%> width="58" height="20"> <font size="2" face="arial" color="BLACK">

    <%Response.Write (RS("nome"))%>

&nbsp;</font>

  <td align="center" bgcolor=<%=rcolor%> width="56" height="20"> <font size="2" face="arial" color="BLACK">

    <%Response.Write(RS("usuario"))%>

&nbsp;</font>

      <%rs.MoveNext%>

</font></tr>

<%loop

  SET rs=nothing

  set conn=nothing

  %>

</table>

<input type="submit" value="Deletar" name="B1">

  </p>

</form>

</BODY>

Pelo que consegui entender, é naquela linha, que você esta passando o ID como parametro.

veja o nome do campo:

name=Delete <-- você esta dizendo que o nome do campo é delete, certo?

Então, na proxima pagina, ao invés de dar

"ID = REQUEST.QUERYSTRING("id")"

você colocaria:

id = request("Delete")

entendeu? quer que desenhe?

hauhauhau

falow, ate mais

Link para o comentário
Compartilhar em outros sites

  • 0

ei cara , achei um outro erro , quando você vai deletar o usuario padrão ele da erro .

Microsoft JET Database Engine error '80040e07'

Data type mismatch in criteria expression.

/teste123/sistema em asp/deleta.asp, line 27

<%@ Language=VBScript%>

<%

intSno=Request("Delete")

set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("banco.mdb"))


id = Request("Delete")

Set rs = conn.Execute("SELECT * FROM usuarios WHERE id = "& id &" ")

If rs.EOF Then
Response.Write "O usurio no existe!!!"
ElseIf rs("nivel") = 1 Then ' tire as aspas caso seja valor numrico no BD
Response.Write "O man, no pode excluir usurios de nvel 1..."
Else

a=split(intSno,",")

dim iLoop
for iLoop=LBound(a) to UBound(a)
intDelid=Trim(a(iLoop))
conn.Execute "delete from usuarios where id = '" & intDelid & "' "
next
Response.Redirect "del_sucesso.asp" 
End If

rs.Close
Set rs = Nothing


%> 

Link para o comentário
Compartilhar em outros sites

  • 0

ae carinha beleza?

Bom.. o passo 1 tá ok, certo?

(eu lembro quando eu comecei.. todos se negavam a me ajudar hauhauhauha)

você viu o tipo de erro que deu?

se prestar atenção, é o mesmo que deu antes, certo?

e o que fizemos para arrumar?

só tiramos a aspa simples da variavel!

faremos a mesma coisa:

troque isso:

conn.Execute "delete from usuarios where id = '" & intDelid & "' "

por isso:

conn.Execute "delete from usuarios where id = " & intDelid & " "

agora deve estar OK!

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

hã?

como assim?

como você faz para deletar 2 ao mesmo tempo?

seu script está feito apenas para deletar 1 por vez!

por isso gera erro!

Link para o comentário
Compartilhar em outros sites

  • 0

fazer o que?

montar um esquema para apagar mais de um por vez?

pootz, isso é um pouco complicadinho, pois mecher com checkbox sempre é um problema..

Mas o codigo, se você for apagar apenas um, funciona bem né?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...