|
|
|
|
<?php
$dblocation = "localhost";
$dbname = "indep";
$dbuser = "root";
$dbpassword = "";
$connect = mysql_connect($dblocation, $dbuser, $dbpassword) OR DIE("Не могу создать соединение "); ;
@mysql_select_db($dbname, $connect) or die("Не могу выбрать базу данных ");
$login = htmlspecialchars($login);
$passw = htmlspecialshars($passw);
if (preg_match("/[0-9a-z_], $login))
{
echo " <HTML><head>
<META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
<title>Ошибка></title>
<body bgcolor=black text=white>
<align=left>
Ошибка...
</align></body></html> ";
exit();
}
if (empty($login))
{
echo '<HTML><head>
<META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
<title>Ошибка></title>
<body bgcolor=black text=white>
<align=left>
Ошибка! Возможные причины: <br>
- Вы не ввели имя.<br>
</align></body></html> ';
}
if(empty($passw) || empty($passw2) || $passw != $passw2)
{
echo "<html><head>
<META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
<title> Ошибка</title>
<body bgcolor=black text=white>
<align=left>
- Вы ошиблись при введении повторного пароля!<br>
</align></body></html>";
exit();
}
$result=mysql_query ("SELECT * FROM users WHERE login like '$login' ");
if(!$result) exit("Ошибка - ".mysql_error());
if (mysql_num_rows($result) >0)
{
echo "<HTML><head>
<META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
<TITLE>Ошибка.</TITLE>
<body bgcolor=black text=white>
<align=left>
- Пользователь с таким ником уже зарегистрирован! Придумайте себе другой ник.<br>
</align>
</body>
</html>";
}
else
{
$ins= "insert into users values ('','$login','$passw','','');";
mysql_query($ins);
$result=mysql_query($ins);
if($result)
{
echo "<html>
<head><META HTTP-EQUIV='Refresh' CONTENT='3; URL=index.htm'></head>
<body bgcolor=black text=white>
Регистрация прошла успешно! Теперь вы можете зайти!
</body></html>";
}
}
?>
|
С этим скриптом произошли какие-то непонятности... Как только его написал и начал тестить - всё работало на "ура"! Потом через некоторое время опять начал пробывать, пишет:
Parse error: syntax error, unexpected '>' in c:\www\ind\registr.php on line 13
|
Если удаляю эту строчку - пишет ошибка в другой строчке, но из-за того же символа (>)! Просто не понимаю...
И ещё, может подскажите, почему этот скрипт заносит в БД значения 2(!) раза! | |
|
|
|
|
|
|
|
для: TrunK
(02.05.2005 в 17:51)
| | пропущена " в if (preg_match("/[0-9a-z_], $login))
надо так
<?
if (preg_match("/[0-9a-z_]/", $login))
?>
|
| |
|
|
|
|
|
|
|
для: Artem S.
(02.05.2005 в 18:15)
| | Спасибо! Помогло!
Но осталась проблема двойного заноса в БД... Прям не знаю что делать! | |
|
|
|
|
|
|
|
для: TrunK
(02.05.2005 в 18:59)
| | Попробуй следующий код, все должно работать:
<?php
$dblocation = "localhost";
$dbname = "indep";
$dbuser = "root";
$dbpassword = "";
$connect = mysql_connect($dblocation, $dbuser, $dbpassword) OR DIE("Не могу создать соединение "); ;
@mysql_select_db($dbname, $connect) or die("Не могу выбрать базу данных ");
$login = htmlspecialchars($login);
$passw = htmlspecialchars($passw);
$result=mysql_query ("SELECT * FROM users WHERE login like '$login' ");
if(!$result) exit("Ошибка - ".mysql_error());
if (preg_match("/[0-9a-z_]/", $login))
{
echo "<HTML><head>
<META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
<title>Ошибка></title>
<body bgcolor=black text=white>
<align=left>
Ошибка...
</align></body></html>";
exit();
}
elseif (empty($login))
{
echo "<HTML><head>
<META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
<title>Ошибка></title>
<body bgcolor=black text=white>
<align=left>
Ошибка! Возможные причины: <br>
- Вы не ввели имя.<br>
</align></body></html>";
}
elseif (empty($passw) || empty($passw2) || $passw != $passw2)
{
echo "<html><head>
<META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
<title> Ошибка</title>
<body bgcolor=black text=white>
<align=left>
- Вы ошиблись при введении повторного пароля!<br>
</align></body></html>";
exit();
}
elseif (mysql_num_rows($result)>0)
{
echo "<HTML><head>
<META HTTP-EQUIV='Refresh' CONTENT='5; URL=registr.htm'></head>
<TITLE>Ошибка.</TITLE>
<body bgcolor=black text=white>
<align=left>
- Пользователь с таким ником уже зарегистрирован! Придумайте себе другой ник.<br>
</align>
</body>
</html>";
}
else
{
$ins= "insert into users values ('','$login','$passw','','');";
mysql_query($ins);
$result=mysql_query($ins);
echo "<html>
<head><META HTTP-EQUIV='Refresh' CONTENT='3; URL=index.htm'></head>
<body bgcolor=black text=white>
Регистрация прошла успешно! Теперь вы можете зайти!
</body></html>";
}
?>
|
| |
|
|
|
|
|
|
|
для: Serge
(02.05.2005 в 19:30)
| | Таже проблема... Заносит 2 одинаковых значения в таблицу! | |
|
|
|
|
|
|
|
для: TrunK
(02.05.2005 в 19:36)
| | Прости, я проглядел: ошибка в
mysql_query($ins);
$result=mysql_query($ins);
|
2 раза повторяется запрос к базе данных, а надо 1. Удали любой из запросов. | |
|
|
|
|
|
|
|
для: Serge
(02.05.2005 в 19:40)
| | Огромное человеческое спасибо! все работает как надо... | |
|
|
|
|
|
|
|
для: TrunK
(02.05.2005 в 19:42)
| | Пока вспомнил ещё одну проблему:
Если будет русский логин или пароль, то в таблицу заносятся всякие нечитаемые символы. Может ты мне подскажешь что надо сделать? | |
|
|
|
|
|
|
|
для: TrunK
(02.05.2005 в 19:45)
| | Над каждым запросом пропиши такую строчку
mysql_query ("SET NAMES cp1251;");
|
Тогда запрос примет следующий вид:
mysql_query ("SET NAMES cp1251;");
$ins= "insert into users values ('','$login','$passw','','');";
|
| |
|
|
|