На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Дополнения к правилам (только для данного раздела)
- Используйте подсветку синтаксиса при выделении исходного кода;
- В описании темы обязательно укажите язык программирования;
- Прежде чем задать вопрос, обязательно воспользуйтесь поиском и загляните в FAQ раздела.
- Если вопрос касается серверного ПО, указывайте ОС.
- Если вопрос касается ASP.NET то лучше будет задать его в соответствующем разделе. Там вы сможете получить ответ намного быстрее.

Модераторы: Serafim, fatalist
  
> Проблемы со страницей регистрации нового , пользователя в ASP
    Приветствую!

    Задача такая: есть форма регистрации нового пользователя и нужно проверить есть ли уже такой в базе данных. Если есть, заполнить все поля предыдущими значениями и вывести соответствующее сообщение. Если нет, добавить нового пользователя в базу данных.

    Для этих целей я написал следующий скрипт (register.asp):
    ExpandedWrap disabled
       
      <%
       
      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

    Я новенький в этом деле, помогите, кто-хотите. :)
    Спасибо.
      M
      Тема перенесена из Visual Basic -> Visual Basic. Общие вопросы.
        Извините. Я не нашел раздела по ASP. Впредь буду постить сюда.
          Ничего страшного, лишь бы помогли....
            Ой да тут ошибок в ADODB может быть масса. К пирмеру, Provider может быть указан неверно. У тя разве нет дебагера из пакета ASP?
              Все решилось. Ошибок была куча.


              Цитата
              Lamerroot, 2.08.04, 17:41
              У тя разве нет дебагера из пакета ASP?

              Нет. Что за зверь? Мой дебаг - это изменение файлов на сервере, запуск скрипта и ожидание сообщений об ошибках.
              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0715 ]   [ 14 queries used ]   [ Generated: 18.07.25, 00:21 GMT ]