Перейти до вмісту

Оформлення реєстрації на сайті


Повідомлень в темі: 2

#1 citadeldimon

    Ледар

  • Користувачі
  • PipPip
  • 11 повідомлень

Відправлено 12.11.2007 – 22:07

  • 2
Привіт всім, маю проблему. Треба на сторінці розмістити реєстрацію відвідувачів. Створення їм профілів не потрібна, тільки заповнення певної форми, відповіді на запитання. Допоможіть. Дякую

#2 Lukom

    Абориген

  • Користувачі
  • PipPipPipPip
  • 112 повідомлень
  • Стать:Чоловік
  • Місто:Ukraine-Lviv

Відправлено 13.11.2007 – 00:05

Дуже рутинна задача я б сказав.

Для цього потрібно зробити:
1) Таблицю з даними зареєстрованих людей в базі даних. Простий приклад в mssql:
create table tblClients
(
   clID int identity primary key not null,
   clName varchar(100) not null,
   clAnswer1 varchar(500) not null
);
для mysql буде вроді те саме тільки замість identity - auto_increment

2) Наверстати відповідний html. Наприклад:
<fieldset>
   <legend>Відповісти на питання</legend>
   <label for="txtName">Ваше ім'я: </label><input type="text" id="txtName" name="txtName" maxlength="100" />
   <br /><label for="txtAnswer1">Відповідь на якесь-там питання: </label><textarea id="clName" name="clAnswer1" cols="80" rows="15"></textarea>
</fieldset>
для asp.net додати требуде для контролів runat="server" і валідаторів наставити

3) Зробити серверний скрипт який забирає інфу з полей, перевіряє і вставляє в БД.
На php буде приблизно так:
include('Admin/dbinfo.php');
mysql_connect("localhost", $username, $password);
@mysql_select_db($database) or die("Неможливо під'єднатись до бази даних...");
$txtName = substr($txtName, 0, 100);
$txtAnswer1 = substr($txtAnswer1, 0, 500);
if (mysql_query("insert into tblClients(clName, clAnswer1) values(" + mysql_escape_string($txtName) + "," + mysql_escape_string($txtAnswer1) + ")"))
   header("location:http://www.url.com/thanq.php");
else
   echo "Сталась помилка при роботі з базою даних...";
код для asp.net:
SqlConnection conn = new SqlConnection(Global.ConnectionString);
try
{
   conn.Open();
   SqlCommand cmd = new SqlCommand("sprClients_Insert", conn);
   cmd.CommandType = CommandType.StoredProcedure;
   cmd.Parameters.Add("@name", SqlDbType.VarChar);
   cmd.Parameters[0].Value = txtName.Value;
   cmd.Parameters.Add("@answer1", SqlDbType.VarChar);
   cmd.Parameters[1].Value = txtAnswer.Value;
   cmd.ExecuteNonQuery();
   Response.Redirect("http://www.url.com/thanq.aspx");
}
catch (Exception)
{
   ErrHolder.Controls.Add(new LiteralControl("Сталась помилка при роботі з базою даних..."));
}
finally
{
	conn.Close();
}
відповідна сторед процедура:
create proc sprClients_Insert
(
   @name varchar(100),
   @answer1 varchar(500)
)
as
begin
   insert into tblClients(clName, clAnswer1)
   values(@name, @answer1);
end

Якщо більше даних, звісно може знадобитись більше таблиць, складніші запити, складніша логіка перевірки даних, але загалом суть та сама.
Хех, трохи перестарався мабуть з кодом asp.net, понесло. в коді php можуть бути помилки.
  • 0

#3 citadeldimon

    Ледар

  • Користувачі
  • PipPip
  • 11 повідомлень

Відправлено 13.11.2007 – 11:37

Велике спасибі, тепер думаю зроблю
  • 0



Кількість користувачів, що читають цю тему: 1

0 користувачів, 1 гостей, 0 анонімних