Newsgroup: it.comp.www.asp
Titolo: Redirect a pagina personale utente dopo login

Salve a tutti, inutile dire che ho abbondantemente cercato la soluzione
al mio problema senza risultati soddisfacenti.
In questo gruppo ho trovato qualcosa che mi ha avvicinato molto alla
soluzione ma purtroppo per la mia inesperienza non sono riuscito a
risolvere ...
Il mio problema:
Ho un database utenti.mdb dove ho creato una tabella utenti
al suo interno:  ID,NomeUtente,Password,URLpersonale
ho una pagina login.asp che funziona perfettamente ma che mi
reindirizza sempre alla stessa pagina qualsiasi sia l'utente che fa il
login,
ecco il codice:
-------------
<%
Dim nome_ut
Dim pass
nome_ut = Replace(Request.Form("nome_utente"), "'", "''")
pass = Replace(Request.Form("password"), "'", "''")
Dim cn
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "driver={Microsoft Access Driver
(*.mdb)};dbq="&Server.MapPath("utenti.mdb")
Dim sql
sql = "SELECT ID FROM Utenti WHERE NOMEUTENTE='" &nome_ut&_
       "' AND PASSWORD='" &pass& "'"
Dim rs
Set rs = cn.Execute(sql)
Dim autenticato
if rs.eof then
  autenticato = false
else
  autenticato = true
end if
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
if autenticato = true then
  Session("Autenticato") = "OK"
  Response.Redirect("paginadidestinazione.asp")
  else
  Response.Redirect("index.htm")
end if
%>
-------------
allora ho deciso di modificarlo per far si che ogni utente abbia il suo
redirect personalizzato, ho inserito la "colonna" URLpersonale nella
tabella utenti e poi modificato lo script come segue:
-----------------
<%
Dim nome_ut
Dim pass
nome_ut = Replace(Request.Form("nome_utente"), "'", "''")
pass = Replace(Request.Form("password"), "'", "''")
URLpersonale = Replace(Request.Form("URLpersonale"), "'", "''")
Dim cn
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "driver={Microsoft Access Driver
(*.mdb)};dbq="&Server.MapPath("utenti.mdb")
Dim sql
sql = "SELECT ID FROM Utenti WHERE NOMEUTENTE='" &nome_ut&_
       "' AND PASSWORD='" &pass& "'"
Dim rs
Set rs = cn.Execute(sql)
Dim autenticato
if rs.eof then
  autenticato = false
else
  autenticato = true
end if
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
if autenticato = true then
  Session("Autenticato") = "OK"
  Response.Redirect(URLpersonale)             *****QUESTA è la LINE 33
CITATA NELL'ERRORE******
  else
  Response.Redirect("index.htm")
end if
%>
---------------
ma ovviamente il tutto ha semplicemente restituito un errore:
---------------
Oggetto risposta error 'ASP 0158 : 80004005'
Impossibile trovare l'URL
/login.asp, line 33
Specificare un URL.
---------------
E' una mattinata che giro attorno all'errore, sono quasi certo di
esserci vicino ... ma non ne vengo fuori.
Grazie in anticipo a chi vorrà aiutarmi!!!!
Saluti


Non trova la pagina indicata in URL sul server/sito. Se ho ben capito, ora 
fai inserire all'utente il proprio URL locale a cui essere rediretti, dato 
che poi lo recuperi con Request.Form("URLpersonale"). Ma se l'utente 
inserisce, ad esempio, solo: PaginaUtente1.asp nel form, perché questo č il 
nome della pagina che gli hai detto contiene i suoi dati, quando vai a 
recuperarla nel Request non hai il percorso relativo che punta a quella 
pagina. Se č cosě e se, ad esempio, hai messo tutte le pagine personali 
degli utenti in una sottodirectory sul server chiamatta, mettiamo, 
PagineUtenti devi cambiare il tuo redirect cosě:
Response.Redirect "./PagineUtenti/" & URLpersonale
in modo che il percorso restituito sia:
http://miosito/MiePagineAsp/PagineUtenti/PaginaUtente1.asp
Se non č cosě, spiegami meglio.
Ciao
Giovanni

 Giovanni
Ciao Giovanni e grazie per avermi risposto.
Io avrei voluto il mio database cosě:
ID - NomeUtente - Password - URLpersonale
1 - Tizio - abc - tizio.asp
2 - Caio - zxc - caio.asp
e fare in modo che al loggarsi dell'utente Tizio il browser restituisca
la pagina tizio.asp
e cosě via ...
cmq ho deciso di modificare completamente lo script prendendo spunto da
altri trovati in giro ed HO RISOLTO IL PROBLEMA, posto qui la soluzione
per qualcuno interessato.
in pratica dopo l'inseriemento dei dati nel form di LOGIN lo script
preleva da quello il nome utente e costruisce l'URL personale,
ovviamente io devo preventivamente creare la pagina e chiamarla come il
nome utente del mio cliente:
  <%
    if (azione == "OK")
    {
        var username = new String(Request.Form("username"));
        var password = new String(Request.Form("password"));
        var username2 = username.replace(/'/g,"''");
        var password2 = password.replace(/'/g,"''");
        var Cn = new ActiveXObject("ADODB.Connection");
            Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" +
Server.MapPath("utenti.mdb"));
        var Sql = "SELECT * FROM utenti WHERE nomeutente = '" +
username2 + "' AND password = '" + password2 + "'";
        var EseguiLogin = Cn.Execute(Sql);
            if (EseguiLogin.EOF)
            {
                Cn.Close();
                Response.Write("ACCESSO NEGATO");
                Response.End;
            }
            else
            {
                Cn.Close();
                Session("username") = username;
                with (Response)
                {
                      Write("<p>");
					  Write("<p>");
					  Write("<p align='center'>");
                      Write("Benvenuto " + username + "!<br><br>");
                      Write("Clicca <a href='" + username +
".asp'>qui</a> per entrare!");
                      Write("</p>");
                }
            }
    }
    else
    {
%>
----
Saluti.
CinOp!