Foros del Web » Programando para Internet » ASP Clásico »

Pasar Id al redirecionar

Estas en el tema de Pasar Id al redirecionar en el foro de ASP Clásico en Foros del Web. que tal como estan tengo una consulta puedo pasar el id al momento de redirecionar una web e tratado pero no e podido encontrar la ...
  #1 (permalink)  
Antiguo 29/05/2005, 22:23
Avatar de jahman  
Fecha de Ingreso: noviembre-2003
Ubicación: Oslo
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
Pasar Id al redirecionar

que tal como estan tengo una consulta puedo pasar el id al momento de redirecionar una web e tratado pero no e podido encontrar la forma, la idea es pasar el id para luego colocar el nombre de la persona en su pagina hay dos tipos de usarios, espero que me puedan ayudar

Código:
MM_rsUser.Source = "SELECT id,nick, pass, nivel"
  If MM_fldUserAuthorization <> "" Then MM_rsUser.Source = MM_rsUser.Source & "," & MM_fldUserAuthorization
  MM_rsUser.Source = MM_rsUser.Source & " FROM usuarios WHERE nick='" & Replace(MM_valUsername,"'","''") &"' AND pass='" & Replace(Request.Form("pass"),"'","''") & "'"
.
.
.
.
if( MM_rsUser("nivel") = 0 )Then
      MM_redirectLoginSuccess="editorpaula.asp?id="
      Response.Redirect(MM_redirectLoginSuccess)
	  MM_rsUser.Close
	  Else
	  MM_redirectLoginSuccess="administrador/index.asp?id="
	  MM_rsUser.Close
      Response.Redirect(MM_redirectLoginSuccess)
	  End If
Código HTML:
<table width="250" border="0" cellspacing="0" cellpadding="0" align="center" bordercolor="#0099FF">
  <tr> 
    <td> <table width=100% border=0 align="center" cellpadding="0" cellspacing="0" bordercolor="#e9e9e9" bgcolor="#CCFFCC">
        <form action="<%=MM_LoginAction%>" method="post">
          <tr bgcolor="#ffcc33"> 
            <td colspan="2" height="45"> <div align="center"><font face="Arial" color="#0000cc" size=2><b>Identificaci&oacute;n 
                Usuarios<br>
                </b></font></div></td>
          </tr>
          <tr> 
            <td colspan="2"> <div align="center"> 
                <table width="100%" border="0" cellspacing="0" cellpadding="5">
                
                  <tr> 
                    <td width="39%" bgcolor="#e9e9e9"> <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Usuario 
                        : </font></div></td>
                    <td width="61%" bgcolor="#e9e9e9"> <div align="left"> 
                        <input type="text" name="nick" size="15" class="imputbox">
                      </div></td>
                  </tr>
                  <tr> 
                    <td width="39%" bgcolor="#e9e9e9"> <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Password 
                        : </font></div></td>
                    <td width="61%" bgcolor="#e9e9e9"> <div align="left"> 
                        <input type="password" name="pass" size="15" class="imputbox">
                      </div></td>
                  </tr>
                </table>
              </div></td>
          </tr>
          <tr valign="middle"> 
            <td colspan="2" height="50" bgcolor="#e9e9e9"> <div align="center"><font face="Arial" color=black size=2> 
                <input name=submit type=submit value="  Entrar  " class="botones">
                </font></div></td>
          </tr>
        </form>
      </table> 
y al momento de recibir la variable

Código:
<%
Dim editor__MMColParam
editor__MMColParam = "id"
If (Request.QueryString("id") <> "") Then 
  editor__MMColParam = Request.QueryString("id")
End If
%>
  #2 (permalink)  
Antiguo 29/05/2005, 23:19
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Es facil, debes concatenar la variable que contiene el ID. Sacas el Id y lo guardas en una variable, supongamos "UserId", y luego lo que haces es agregarla a tu url como concatenarias cualquier cadena o variable.

if( MM_rsUser("nivel") = 0 )Then
MM_redirectLoginSuccess="editorpaula.asp?id="&UserId&""
Response.Redirect(MM_redirectLoginSuccess)
MM_rsUser.Close
Else
MM_redirectLoginSuccess="administrador/index.asp?id="&UserId&""
MM_rsUser.Close
Response.Redirect(MM_redirectLoginSuccess)
End If

No se si esta bien el tema de las comillas. Puedes probar dejando sin comillas el final de la variable que concatenas.
Saludos!.
  #3 (permalink)  
Antiguo 29/05/2005, 23:26
Avatar de jahman  
Fecha de Ingreso: noviembre-2003
Ubicación: Oslo
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
quieres decir mas omenos esto

if( MM_rsUser("nivel") = 0 )Then
UserId = MM_rsUser("id")
MM_redirectLoginSuccess="editorpaula.asp?id="&User Id&""
Response.Redirect(MM_redirectLoginSuccess)
MM_rsUser.Close

me agarra el id pero a la hora de recibirlo no pasa na asi es como trato de recibirlo

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/editor.asp" -->
<%
Dim editor__MMColParam
editor__MMColParam = "UserId"
If (Request.Form("UserId") <> "") Then
editor__MMColParam = Request.QueryString("UserId")
End If
%>
<%
Dim editor
Dim editor_numRows

Set editor = Server.CreateObject("ADODB.Recordset")
editor.ActiveConnection = MM_editor_STRING
editor.Source = "SELECT id,nombre,apellido_pat FROM usuarios WHERE Id = " + Replace(editor__MMColParam, "'", "''") + ""
editor.CursorType = 0
editor.CursorLocation = 2
editor.LockType = 1
editor.Open()

editor_numRows = 0
%>

pero me sale el siguiente error

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 1.
/atento/editores107/editorpaula.asp, línea 20
  #4 (permalink)  
Antiguo 30/05/2005, 11:45
Avatar de jahman  
Fecha de Ingreso: noviembre-2003
Ubicación: Oslo
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
Quien podria ayudarme ya que necesito urgente resolver este tema.gracias
  #5 (permalink)  
Antiguo 30/05/2005, 12:04
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Hola Jahman, no te da el valor porque te estas equivocando al momento de recibir los datos. Debes recibirlos de esta forma:

Request.Querystring(NOMBRE DE LA VARIABLE) 'NO el valor de la variable como tenes vos

Es decir, tu tienes Request.QueryString("UserId"), pero eso esta mal, porque ahí tienes que recoger el nombre de la variable, es decir, REQUEST.QUERYSTRING("Id"), para poder acceder al valor que contiene esta.

Así quedaría:

Dim editor__MMColParam
editor__MMColParam = "UserId"
If (Request.Form("UserId") <> "") Then
editor__MMColParam = Request.QueryString("Id")
End If

Otra cosa que veo es (no se si te habras equivocado o es porque falta parte de código obviamente), ese Request.Form. El Request.Form lo usas para recibir el valor de variables que se pasan a través de un formulario, no a través de la URL, para estos casos siempre tenés que utilizar Request.QueryString. Esa linea esta bien si le estas pasando una variable por formulario con nombre USERID, esta mal si estras tratando de reicibir una variable que le estas pasando por la URL.
Espero que te sirva Jahman.
Saludos!.
  #6 (permalink)  
Antiguo 30/05/2005, 12:37
Avatar de jahman  
Fecha de Ingreso: noviembre-2003
Ubicación: Oslo
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
ahh ok gracias man pense que como la estoy pasando deberia recibirla a travez del Request.Form y ademas pense que pasaba la variable con el valor adentro por eso a la hora de hacer el Request.QueryString coloque la variable que recibia, muchas gracias por tu disposicion y ayuda.
  #7 (permalink)  
Antiguo 30/05/2005, 22:56
Avatar de jahman  
Fecha de Ingreso: noviembre-2003
Ubicación: Oslo
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
Bueno man llegue a probarla a mi casa y no funka sale el siguiente error este error me sale al correguir lo que ud me sugerio, me envia(index.asp?id=1) el id pero tengo problemas al recibirlos , espero me pueda ayudar.
--------------------------------------------------
Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 1.
/atento/editores107/editorpaula.asp, línea 20
----------------------------------------

mi codigo es el siguiente para enviar el parametro al redirecionar
index.asp
Código:
if( MM_rsUser("nivel") = 0 )Then
	  UserId = MM_rsUser("id")
      MM_redirectLoginSuccess="editorpaula.asp?id="&UserId&""
      Response.Redirect(MM_redirectLoginSuccess)
	  MM_rsUser.Close
	  Else
	  MM_redirectLoginSuccess="administrador/index.asp?id="
	  Response.Redirect(MM_redirectLoginSuccess)
	  MM_rsUser.Close
	  End If
Pero tengo problemas al recibir los datos si me puedes ayudar que hago mal
Código:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/editor.asp" -->
<%
Dim editor__MMColParam
editor__MMColParam = "UserId"
If (Request.QueryString("UserId") <> "") Then 
editor__MMColParam = Request.QueryString("Id")
End If
%>
<%
Dim editor
Dim editor_numRows

Set editor = Server.CreateObject("ADODB.Recordset")
editor.ActiveConnection = MM_editor_STRING
editor.Source = "SELECT id,nombre,apellido_pat FROM usuarios WHERE id = " + Replace(editor__MMColParam, "'", "''") + ""
editor.CursorType = 0
editor.CursorLocation = 2
editor.LockType = 1
editor.Open()

editor_numRows = 0
%>

Última edición por jahman; 30/05/2005 a las 23:07
  #8 (permalink)  
Antiguo 31/05/2005, 07:13
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Hola, el error ese te sale justamente porque no estas recibiendo ningún parametro. Veo un par de cosas en donde puede estar el error. Lo primero es en esta linea de tu código:
  #9 (permalink)  
Antiguo 31/05/2005, 07:28
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Hola, el error ese te sale justamente porque no estas recibiendo ningún parametro. Veo un par de cosas en donde puede estar el error. Lo primero es en esta linea de tu código:

MM_redirectLoginSuccess="administrador/index.asp?id=" <<<< ahi no le estas pasando ningún valor a la variable ID.


Lo segundo es en la pagina que recibes los datos, esta linea también está mal:

If (Request.QueryString("UserId") <> "") Then <<< Tenés que comprobar no con el valor, sino con el nombre de la variable, en tu caso ID, osea te quedaría así:

if (Request.QueryString("Id") <>"") Then....


Esta linea, editor__MMColParam = "UserId", no le veo el funcionamiento, y también puede ser una fuente del error que te da, porque si no recoges un valor en la variable ID, esa variable seguirá conteniendo como valor una cadena, y a la hora de comparar en tu sentencia SQL usando WHERE, sin poner comillas simples (para indicar que el valor con el que deseas comparar es una cadena de texto y no un valor numérico), te puede generar error al no concordar los tipos de datos.
Bueno, espero que te funcione.
Saludos.!
  #10 (permalink)  
Antiguo 31/05/2005, 13:53
Avatar de jahman  
Fecha de Ingreso: noviembre-2003
Ubicación: Oslo
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
OK man hice los cambios pertinentes y funko de lo mas rebien ningun problema pero tengo otro problemita..al logearme me redirecciona a la estacion de trabajo que perteneces segun nivel de acceso en la estacion de trabajo tengo un link que es crear un usuarios a la hora de entrar a esa pagina y volver haceindo click en el link "volver" que es un link normal me reclama lo siguiente
-------------------------------------------------------
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'UserId'.
/WebUnificada/editor107/bbdd/editor107/administrador/index.asp, line 20
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:50.