|
|
|
| Требуется создание регистрации. Я может чего-то не понимаю. Изучил пока тока хтмл.
Если тема уже была - киньте ссылки с темами, а то скока смотрел чего-те не очень понятно...
По пунктам как предположительно оно должно быть.
1. На странице index создаём форму с полями для ввода "Логин", "пароль" и кнопкой "регистрация".
Здесь проблемов не возникает. Это просто. Что нужно сделать далее? Если считать, что существует таблица в MySQL под именем "regin".
З.Ы. Работаю с Денвером. | |
|
|
|
|
|
|
|
для: Dajver
(16.01.2007 в 18:36)
| | Учить пхп или другой язык для соединения с базой:) | |
|
|
|
|
|
|
|
для: hsasha
(16.01.2007 в 18:42)
| | =)
ну это-то оно по-любому нужно. я полазил по форуму и наковырял регистраций....тока вот что-то не сходится....
файл index.php -
<form action="reg.php">
Ник:<br>
<input type="text" name="nickname"><br>
Пароль:<br>
<input type="password" name="password"><br>
<input type="submit" value="Регистрировать"><br>
<input type="reset" value="Очистить"><br>
</form>
|
обработчик reg.php -
<?php
//Кодирование тегов и обратных слешей в нике
$nick = htmlspecialchars($_POST['nick']);
$pass = htmlspecialchars($_POST['pass']);
//Удаление пробелов
$nick = trim($nick);
$pass = trim($pass);
//Проверка логина
if(empty($nick))
{
echo "Введите логин!";
exit();
}
//Проверка пароля
if(empty($pass))
{
echo "Введите пароль";
exit();
}
//Соединение с базой данных
require_once("config.php");
//Если все поля заполнены, продолжение проверки
if(strlen("$nick") > 12)
{
print "Слишком длинный логин!";
exit();
}
if(strlen("$pass") > 10)
{
print "Слишком длинный пароль!";
exit();
}
//Проверка (от SoftTime =) )
$rus = array("А","а","В","Е","е","К","М","Н","О","о","Р","р","С","с","Т","Х","х");
// Массив латинских букв
$eng = array("A","a","B","E","e","K","M","H","O","o","P","p","C","c","T","X","x");
// Заменяем русские буквы латинскими
$eng_nick = str_replace($rus, $eng, $nick);
// Заменяем латинские буквы русскими
$rus_nick = str_replace($eng, $rus, $nick);
// Формируем SQL-запрос
$query = "SELECT * FROM users
WHERE nick LIKE '$nick' OR
nick LIKE '$eng_nick' OR
nick LIKE '$rus_nick'";
$ath = mysql_query($query);
if($ath)
{
if(mysql_num_rows($ath)>0)
{
echo "Ник \"$nick\" уже зарегистрирован.";
exit();
}
}
//Регистрация пользователя
$nick = mysql_escape_string($nick);
$pass = mysql_escape_string($pass);
$sql = "INSERT INTO users (nick, pass) VALUES ('$nick', '$pass')";
if(mysql_query($sql))
{
echo "Вы успешно зарегистрированы!<br>
Ваш ник: $nick<br>
Ваш пароль: $pass<br>
<a href=\"enter.php?nick=$nick&pass=$pass\">Вход</a><br>
</small></card></wml>";
mysql_close();
}
else
{
echo "Ошибка регистрации!";
mysql_close();
}
?>
|
config.php -
<?php
//Местонахождение базы данных
$dblocation = "localhost";
//Имя БД
$dbname = "test";
//Пользователь
$dbuser = "root";
//Пароль
$dbpasswd = "";
// Connect
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo( "В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно." );
exit();
}
if (! @mysql_select_db($dbname,$dbcnx) )
{
echo( "В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно." );
exit();
}
// Небольшая вспомогательная функция, которая выводит сообщение об ошибке
// в случае ошибки запроса к базе данных
function puterror($message)
{
echo("<p>$message</p>");
exit();
}
?>
|
Этот способ у меня почему-то не работает...когда заполняю форму и жму "регистрация" он говорит "введите логин". | |
|
|
|
|
|
|
|
для: Dajver
(16.01.2007 в 18:53)
| | ну правильно, нужно смотреть что копируете :)
в форме у вас поле Ник называется nickname, а в обработчике он идёт как nick. В этом и ошибка. | |
|
|
|
|
|
|
|
для: NIK
(16.01.2007 в 19:06)
| | Исправил имя в форме. таже ошибка...
заодно походая фигня есть в пароле....когда убрал ничего не изменилось... | |
|
|
|
|
|
|
|
для: Dajver
(16.01.2007 в 19:16)
| | не усмотрел. В форме: password, в обработчике: pass. | |
|
|
|
|
|
|
|
для: NIK
(16.01.2007 в 19:18)
| | А вот в этом коде
<?php
///////////////////////////////////////////////////
// уЙУФЕНБ БЧФПТЙЪБГЙЙ HTTP-Basic БЧФПТЙЪБГЙЙ
// 2003-2005 (C) IT-УФХДЙС SoftTime (http://www.softtime.ru)
// уЙНДСОПЧ й.ч. (simdyanov@softtime.ru)
///////////////////////////////////////////////////
$dblocation = "localhost";
$dbname = "softtime";
$dbuser = "root";
$dbpasswd = "1";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) exit("<p>К сожалению, не доступен сервер MySQL</p>");
if (!@mysql_select_db($dbname,$dbcnx)) exit("<p>К сожалению, не доступна база данных</p>");
?>
|
когда заполняешь все формы вылазит сообщение что база недоступна....то есть исполняется строка -
if (!@mysql_select_db($dbname,$dbcnx)) exit("<p>К сожалению, не доступна база данных</p>");
|
| |
|
|
|
|
|
|
|
для: Dajver
(16.01.2007 в 19:32)
| | А вот это настроено вами???
$dblocation = "localhost";
$dbname = "softtime";
$dbuser = "root";
$dbpasswd = "1";
|
| |
|
|
|
|
|
|
|
для: Poison
(16.01.2007 в 19:46)
| | >А вот это настроено вами???
>
> $dblocation = "localhost";
> $dbname = "softtime";
> $dbuser = "root";
> $dbpasswd = "1";
>
|
В этом месте я переделал только пароль на root'а. ведь 1 можно поставить? хотя оно и ез единицы не работало. имя базы точное - я создавал её сам. | |
|
|
|
|
|
|
|
для: Dajver
(16.01.2007 в 20:00)
| | Тагда дело в вашей MySQL=))
Вы уверены что сервер MySQL запущен и работает??? | |
|
|
|
|
|
|
|
для: Poison
(16.01.2007 в 20:13)
| | =)сервер работает...денвер устанавливал раз 5, так что Run нажать не забываю.
ну ладно. чем народ мучать пойду куплю книжку по пых-пыху и сяду учить.. | |
|
|
|
|
|
|
|
для: Dajver
(16.01.2007 в 20:34)
| | так...с авторизацией разобрался. Помогите разобраться с регистрацией.
чего я уже понял -
1. Инф-ция берется из текстого поля в index(для примера. хотя может быть где угодно). там ей присваивается какое-либо кодовое имя. к примеру 'name' для имени.
2. По нажатию кнопки "Регистрировать"(свойство submit), выполняется скрипт в файле, который указан как action при создании формы. скажем так -
<FORM action="reg.php"...>
|
3. В скрипте указано что следует делать.. значение текстого поля присваивается функции...если я чего не путаю... допустим так -
.вот тут возникают трудности... как нас учили в школе, составляем алгоритм работы...
1) Проверка ячейки - а вдруг она пустая. if пустая -> ECHO 'Введите имя';
2) Потом в одном примере показано согласование латинских и русских символов..
3) Заносим в базу значение из $NICK. думаю такой код подойдёт -
$sql = "INSERT INTO users (nick) VALUES ('$nick')";
|
З.Ы. должна быть предварительно создана и размечена таблица "users" в БД.
4)Выводим юзверю месагу дескать "спасибо за регистрацию" и перенаправляем на какую-либо страницу. этот пункт неважен пока что, поэтому его не рассматриваем.
надо сделать такой вот скриптик...в общем просто скатать скрипт можно, но я хочу ПОНЯТЬ.объясните как оно работает.
в файле config.php лежат данные о юзере БД, её положении, имени. | |
|
|
|