
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.3] |
![]() |
|
Сообщ.
#1
,
|
|
|
Приветствую!
Задача такая: есть форма регистрации нового пользователя и нужно проверить есть ли уже такой в базе данных. Если есть, заполнить все поля предыдущими значениями и вывести соответствующее сообщение. Если нет, добавить нового пользователя в базу данных. Для этих целей я написал следующий скрипт (register.asp): ![]() ![]() <% Dim error error = false %> <html> <head> <title>New user registration</title> <link rel="stylesheet" type="text/css" href="forms/forms.css"> <script language="jscript"> function CheckForm() { if ((adm.LoginName.value == "") || (adm.DisplayName.value == "") || (adm.Password.value == "")) { alert("Error! You probably not specified login name, password or display name.") } else { adm.submit(); } } function FillForm() { <% ' Не знаю правильно ли это, но тут я пытался проверить был ли уже сабмит, или нет. Может так нельзя? if request.Form.Count > 0 then ' Если сабмит был, то тут я проверяю есть ли такой в базе данных: loginname = server.HtmlEncode(request.form("LoginName")) Set Conn = Server.CreateObject("ADODB.Connection") With Conn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & Server.MapPath ("data.mdb") .Open() End With Set Rs = Server.CreateObject("ADODB.Recordset") Rs.Open "SELECT * FROM Users WHERE (usrName = """ & loginname & """)", Conn, 1, 3 UserExists = (Rs.RecordCount = 1) Rs.Close if UserExists then error = true ' Если такой есть, то в этой функции ява скрипта я заполняю поля предыдущими значениями, я не поставил эту функцию на onload в <body>, но в принципе она должна работать. По крайней мере ошибка не тут. response.write " adm.LoginName.value = """ & server.HTMLEncode(request.Form("LoginName")) & """;" & vbNewLine response.write " adm.Password.value = """ & server.HTMLEncode(request.Form("Password")) & """;" & vbNewLine response.write " adm.DisplayName.value = """ & server.HTMLEncode(request.Form("DisplayName")) & """;" & vbNewLine response.write " adm.BirthDate.value = """ & server.HTMLEncode(request.Form("BirthDate")) & """;" & vbNewLine response.write " adm.Country.value = """ & server.HTMLEncode(request.Form("Country")) & """;" & vbNewLine response.write " adm.StreetAddress.value = """ & server.HTMLEncode(request.Form("StreetAddress")) & """;" & vbNewLine response.write " adm.email.value = """ & server.HTMLEncode(request.Form("email")) & """;" & vbNewLine response.write " adm.TelNumber.value = """ & server.HTMLEncode(request.Form("TelNumber")) & """;" & vbNewLine response.write " adm.FaxNumber.value = """ & server.HTMLEncode(request.Form("FaxNumber")) & """;" & vbNewLine else ' Иначе все нормально и можно добавлять нового пользователя. DisplayName = server.HTMLEncode(request.Form("DisplayName")) Password = server.HtmlEncode(request.form("Password")) BirthDate = server.HtmlEncode(request.form("BirthDate")) Country = server.HtmlEncode(request.form("Country")) StreetAddress = server.HtmlEncode(request.form("StreetAddress")) email = server.HtmlEncode(request.form("email")) TelNumber = server.HtmlEncode(request.form("TelNumber")) FaxNumber = server.HtmlEncode(request.form("FaxNumber")) Rs.Open "SELECT * FROM Users WHERE 1=2", Conn, 1, 3 Rs.AddNew Rs("usrName") = username Rs("usrDisplayName") = DisplayName Rs("usrPassword") = Password Rs("usrBirthdate") = BirthDate Rs("usrCountry") = Country Rs("usrStreetAddress") = StreetAddress Rs("usrEmail) = email Rs("usrTelephoneNumber") = TelNumber Rs("usrFaxNumber) = FaxNumber Rs.Update Rs.Close ' Переходим в логин response.Redirect("login.asp") end if else response.write " return 0;" end if %> } </script> </head> <body bottomMargin="0" bgColor="white" leftMargin="0" topMargin="0" rightMargin="0" marginwidth="0" marginheight="0"> <form name="adm" id="adm" method="post" action="adduser.asp"> <table cellSpacing="1" cellPadding="3" width="100%" border="0" ID="Table1"> <tr> <td class="header1">New user registration</td> </tr> <tr> <td class="header2">Common information:</td> </tr> <tr> <td class="intd"> <% ' Пишем сообщение, что такой уже есть. if error then ' Пишем сообщение, что такой уже есть. response.Write "<font color=""red""><b>Login name you entered is already exists in database. Please choose another one.</b></font>" end if %> <p> <table border="0" cellpadding="0" cellspacing="0" width="100%" ID="Table2"> <tr> <td height="30pt" width="23%" align="right"><b>Login name:<font color="red">*</font></b></td> <td width="77%"> <input name="LoginName" type="text" value="" ID="LoginName"></td> </tr> <tr> <td height="30pt" width="23%" align="right"><b>Password:<font color="red">*</font></b></td> <td width="77%"> <input name="Password" type="text" value="" ID="Password"></td> </tr> <tr> <td height="30pt" width="23%" align="right"><b>Display name (actual name)<font color="red">*</font></b></td> <td width="77%"> <input name="DisplayName" type="text" value="" ID="DisplayName"></td> </tr> <tr> <td height="30pt" width="23%" align="right"><b>Birth date:</b></td> <td width="77%"> <input name="BirthDate" type="text" value="" ID="BirthDate"></td> </tr> <tr> <td height="30pt" width="23%" align="right"><b>Country:</b></td> <td width="77%"> <input name="Country" type="text" value="" ID="Country"></td> </tr> </table> </p> </td> </tr> <tr> <td class="header2">Contact information:</td> </tr> <tr> <td class="intd"> <p> <table border="0" cellpadding="0" cellspacing="0" width="100%" ID="Table3"> <tr> <td height="30pt" width="23%" align="right"><b>Street address:</b></td> <td width="77%"> <input name="StreetAddress" type="text" value="" ID="StreetAddress"></td> </tr> <tr> <td height="30pt" width="23%" align="right"><b>email:</b></td> <td width="77%"> <input name="email" type="text" value="" ID="email"></td> </tr> <tr> <td height="30pt" width="23%" align="right"><b>Telephone number:</b></td> <td width="77%"> <input name="TelNumber" type="text" value="" ID="TelNumber"></td> </tr> <tr> <td height="30pt" width="23%" align="right"><b>Fax number:</b></td> <td width="77%"> <input name="FaxNumber" type="text" value="" ID="FaxNumber"></td> </tr> </table> </p> </td> </tr> </table> <p> </p> <P>Please fill the form (fields marked with (<font color="red">*</font>) are required)</P> <input type="button" value="Register" name="RegButton" ID="Submit1" onclick="CheckForm();"> </form> </body> </html> Но, похоже где-то я напортачил, т.к. страница не грузится и вылезает: Цитата The page cannot be displayed There is a problem with the page you are trying to reach and it cannot be displayed. -------------------------------------------------------------------------------- Please try the following: Open the brd92.ort.org.il home page, and then look for links to the information you want. Click the Refresh button, or try again later. Click Search to look for information on the Internet. You can also see a list of related sites. HTTP 500 - Internal server error Internet Explorer Я новенький в этом деле, помогите, кто-хотите. ![]() Спасибо. |
![]() |
Сообщ.
#2
,
|
|
M Тема перенесена из Visual Basic -> Visual Basic. Общие вопросы. |
Сообщ.
#3
,
|
|
|
Извините. Я не нашел раздела по ASP. Впредь буду постить сюда.
|
![]() |
Сообщ.
#4
,
|
|
Ничего страшного, лишь бы помогли....
|
Сообщ.
#5
,
|
|
|
Ой да тут ошибок в ADODB может быть масса. К пирмеру, Provider может быть указан неверно. У тя разве нет дебагера из пакета ASP?
|
Сообщ.
#6
,
|
|
|
Все решилось. Ошибок была куча.
Цитата Lamerroot, 2.08.04, 17:41 У тя разве нет дебагера из пакета ASP? Нет. Что за зверь? Мой дебаг - это изменение файлов на сервере, запуск скрипта и ожидание сообщений об ошибках. |