|
|
|
| Здравствуйте...
Хочу сделать регистрацию как на odnoklassniki.ru , страна, город, школа, имя-фамилия-имя-мыло-пароль
Так вот, подскажите пожалуйста как это реализовать..
Имеется ввиду как добавлять в бд, как выводить города, школы, где проверку делать и т.п.
желательно подробнее!
Спасибо | |
|
|
|
|
|
|
|
для: SnooPI
(24.03.2008 в 07:38)
| | Когда осознаете что вы сейчас спросили, поймёте почему вам не ответили. | |
|
|
|
|
|
|
|
для: Valick
(24.03.2008 в 09:04)
| | ну почему же... я попробую... вот регистрация... правда это лишь набросок... если надо - разберётесь. | |
|
|
|
|
|
|
|
для: afdm
(24.03.2008 в 09:18)
| | а если в бвзу нада там это предусмотрено или просто форма?
он у меня отображается как веб страница а как сделать чтоб как текстовый отобр, может в архиве загрузите...
:) Хоть я и не создатель темы но мне тоже очень интересно... | |
|
|
|
|
 3.5 Кб |
|
|
для: rzimax
(24.03.2008 в 09:24)
| | пожалуйста... но повторюсь... это лишь наброски... возможно там многое ещё нужно переделать, доработать и т.д. :)
ЗЫ >а если в бвзу нада там это предусмотрено
- само собой разумеется :)
>он у меня отображается как веб страница а как сделать чтоб как текстовый отобр, может в архиве загрузите...
- пожалуйста ;-) буду рад, если окажется полезным кому-нибудь... | |
|
|
|
|
|
|
|
для: afdm
(24.03.2008 в 09:57)
| | А там скл файл не прилагается для создания таблицы в бд ? | |
|
|
|
|
|
|
|
для: rzimax
(24.03.2008 в 09:58)
| | нет, забыл про него, извините, вот:
CREATE TABLE users (
id_user INT NOT NULL AUTO_INCREMENT,
login VARCHAR(20),
pass VARCHAR(35),
email VARCHAR(50),
fam VARCHAR(50),
name VARCHAR(20),
otch VARCHAR(20),
question VARCHAR(50),
answer VARCHAR(50)
PRIMARY KEY (id_user)
) TYPE=MyISAM;
|
| |
|
|
|
|
|
|
|
для: afdm
(24.03.2008 в 11:12)
| | #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(id_user)
) TYPE=MyISAM' at line 11
именно это он пишет мне в ответ, придется вручную создавать :( | |
|
|
|
|
|
|
|
для: afdm
(24.03.2008 в 11:12)
| | Есть парочка ошибок, так будет вернее:
CREATE TABLE users (
id_user int(11) NOT NULL AUTO_INCREMENT,
login VARCHAR(20),
pass VARCHAR(35),
email VARCHAR(50),
fam VARCHAR(50),
name VARCHAR(20),
otch VARCHAR(20),
question VARCHAR(50),
answer VARCHAR(50),
PRIMARY KEY (id_user)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;
|
| |
|
|
|
|
|
|
|
для: DEM
(24.03.2008 в 12:09)
| | ну да, может быть... торопился.. извините. :)) | |
|
|
|
|
|
|
|
для: DEM
(24.03.2008 в 12:09)
| | ага, пошло поехало,
Вот теперь ошибка на странице с регистрацией
Warning: include(topindex.php) [function.include]: failed to open stream: No such file or directory in X:\denwer\www\denwer\rzimax\izza\reg.php on line 5
Warning: include() [function.include]: Failed opening 'topindex.php' for inclusion (include_path='.;/usr/local/php5/PEAR') in X:\denwer\www\denwer\rzimax\izza\reg.php on line 5
Что это значит | |
|
|
|
|
|
|
|
для: rzimax
(24.03.2008 в 12:17)
| | При сумбите вот такое
Warning: include(topindex.php) [function.include]: failed to open stream: No such file or directory in X:\denwer\www\denwer\rzimax\izza\reg.php on line 5
Warning: include() [function.include]: Failed opening 'topindex.php' for inclusion (include_path='.;/usr/local/php5/PEAR') in X:\denwer\www\denwer\rzimax\izza\reg.php on line 5
Warning: include(admin/config.php) [function.include]: failed to open stream: No such file or directory in X:\denwer\www\denwer\rzimax\izza\reg.php on line 138
Warning: include() [function.include]: Failed opening 'admin/config.php' for inclusion (include_path='.;/usr/local/php5/PEAR') in X:\denwer\www\denwer\rzimax\izza\reg.php on line 138
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in X:\denwer\www\denwer\rzimax\izza\reg.php on line 179
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in X:\denwer\www\denwer\rzimax\izza\reg.php on line 179
Fatal error: Call to undefined function puterror() in X:\denwer\www\denwer\rzimax\izza\reg.php on line 180 | |
|
|
|
|
|
|
|
для: rzimax
(24.03.2008 в 12:17)
| | То что вы неправильно указывается адрес файла в функции include();
А вот следующие ошибки означают, что вы неправильно указали параметры для коннекта к БД
А последняя означает то, что у вас нету функции puterror();
ЗЫ. лучше исопльзовать include_once(); ИМХО | |
|
|
|
|
|
|
|
для: DEM
(24.03.2008 в 12:18)
| | коннект в конфиге правильный, include как я понимаю нужно в коде поменять? puterror куда и что вставлять или как | |
|
|
|
|
|
|
|
для: rzimax
(24.03.2008 в 12:23)
| | Возможно коннест и правильный, но вот в ошибке пишется что нет... Инклюд надо менять в коде... А puterror(); просто удалите... ну или замените на echo ""; | |
|
|
|
|
|
|
|
для: DEM
(24.03.2008 в 12:25)
| | остается инклуд что с ним делать? | |
|
|
|
|
|
|
|
для: rzimax
(24.03.2008 в 12:17)
| | я ж сказал что это только набросок... выдранный кусок из проекта... topindex, bottomindex можно смело удалять... в include прописать путь к config файлу, ну и т.д.... там далеко не всё так гладко... но основная мысль есть... :) | |
|
|
|
|
|
|
|
для: afdm
(24.03.2008 в 12:57)
| | угу :) уже лучше
теперь одна така осталась
Fatal error: Cannot redeclare puterror() (previously declared in X:\denwer\www\denwer\rzimax\izza\config.php:42) in X:\denwer\www\denwer\rzimax\izza\config.php on line 44 | |
|
|
|
|
|
|
|
для: rzimax
(24.03.2008 в 13:00)
| | при сумбите тоже меньше
Warning: include(admin/config.php) [function.include]: failed to open stream: No such file or directory in X:\denwer\www\denwer\rzimax\izza\reg.php on line 138
Warning: include() [function.include]: Failed opening 'admin/config.php' for inclusion (include_path='.;/usr/local/php5/PEAR') in X:\denwer\www\denwer\rzimax\izza\reg.php on line 138
Пользователь fdsfsfsfsdfsd зарегистрирован
Fatal error: Cannot redeclare puterror() (previously declared in X:\denwer\www\denwer\rzimax\izza\config.php:42) in X:\denwer\www\denwer\rzimax\izza\config.php on line 44 | |
|
|
|
|
|
|
|
для: rzimax
(24.03.2008 в 13:03)
| | Еще гляжу в базу данных, все регистрирует кроме вопроса и ответа.... | |
|
|
|
|
|
|
|
для: rzimax
(24.03.2008 в 13:04)
| | просто недописано... :)
$query = mysql_query("INSERT INTO users (login, pass,
email, fam, name, question, answer)
VALUES ('$login',MD5('$pass'),'$_POST[email]',
'$_POST[last_name]', '$_POST[first_name]',
'$_POST[question]', '$_POST[answer]')");
|
| |
|
|
|
|
|
|
|
для: afdm
(24.03.2008 в 13:30)
| | а как сделать чтобы без ошибок было | |
|
|
|
|
|
|
|
для: rzimax
(24.03.2008 в 14:12)
| | а что в инклюде прописали?
если так:
include "admin/config.php";
|
то понятно что у вас ничего не работает...
у вас есть каталог admin?! а файл config.php в нём?! нет?! значит и прописать путь в include нужно к своему файлу config.php где он у вас находится... | |
|
|
|
|
|
|
|
для: afdm
(24.03.2008 в 14:37)
| | test | |
|
|
|
|
|
|
|
для: rzimax
(24.03.2008 в 14:12)
| | > а как сделать чтобы без ошибок было
Исправить все ошибки. | |
|
|
|
|
|
|
|
для: SnooPI
(24.03.2008 в 07:38)
| | =\
Вы показали самую простую регистрацию....
А мне надо как тут:
http://odnoklassniki.ru/
Вывод городов, при нажатии на город, выбор школы и т.п. | |
|
|
|
|
|
|
|
для: SnooPI
(24.03.2008 в 15:16)
| | Разбей задачу на более мелкие: вывод списка городов, школ. ... Сбор этих значений путем перехода по ссылкам и обычная регистрация с записью собранных значений. | |
|
|
|
|
|
|
|
для: SnooPI
(24.03.2008 в 15:16)
| | я показал то, что писал для себя... основная мысль там есть... а дальше как говорится дело техники...) | |
|
|
|
|
|
|
|
для: afdm
(24.03.2008 в 20:11)
| | >а что в инклюде прописали?
>если так:
>
include "admin/config.php";
|
>то понятно что у вас ничего не работает...
>у вас есть каталог admin?! а файл config.php в нём?! нет?! значит и прописать путь в include нужно к своему файлу config.php где он у вас находится...
В инклюде все правильно прописано....
Но когда отображается форма выдает такое
Fatal error: Cannot redeclare puterror() (previously declared in X:\denwer\www\denwer\rzimax\izza\config.php:42) in X:\denwer\www\denwer\rzimax\izza\config.php on line 44
При сумбите это:
Warning: include(admin/config.php) [function.include]: failed to open stream: No such file or directory in X:\denwer\www\denwer\rzimax\izza\reg.php on line 138
Warning: include() [function.include]: Failed opening 'admin/config.php' for inclusion (include_path='.;/usr/local/php5/PEAR') in X:\denwer\www\denwer\rzimax\izza\reg.php on line 138
Пользователь tret зарегистрирован
Fatal error: Cannot redeclare puterror() (previously declared in X:\denwer\www\denwer\rzimax\izza\config.php:42) in X:\denwer\www\denwer\rzimax\izza\config.php on line 44
Конечно видно, что пользователь зарегистрирован, данные пошли в базу, но вот это только мешает дизайну... :) | |
|
|
|
|
|
|
|
для: rzimax
(25.03.2008 в 07:16)
| | Создаешь файл "param_path.inc" внего вставляешь
<?php
$inc_path= $_SERVER['DOCUMENT_ROOT'].'/';
$admin_path = $_SERVER['DOCUMENT_ROOT'].'/admin/';
?>
|
Плодишь его по своим каталогам, а затем если надо чтото инклудить пишешь следующее
include_once("param_path.inc"); // вставляешь один раз в начале файла
include($admin."config.php"); // если подключаемый файл находится в каталоге "admin"
include($inc_path."config.php"); // если подключаемый файл находится в корне"
|
и все | |
|
|
|
|
|
|
|
для: rzimax
(25.03.2008 в 07:16)
| | puterror - это небольшая вспомогательная функция для вывода ошибок. Можно заменить на exit(). | |
|
|
|
|
|
|
|
для: afdm
(25.03.2008 в 11:09)
| | и что после этого будет? | |
|
|
|
|
|
|
|
для: rzimax
(25.03.2008 в 14:51)
| | > Fatal error: Cannot redeclare puterror()
Просто означает, что где-то два раза встречается объявление функции puterror(). | |
|
|
|
|
|
|
|
для: rzimax
(25.03.2008 в 14:51)
| | эта функция прописана в файле config.php, её можно просто заменить на exit(). | |
|
|
|
|
|
|
|
для: afdm
(25.03.2008 в 20:37)
| | если меняю на эксит то вот короче
Parse error: syntax error, unexpected T_EXIT, expecting T_STRING in X:\denwer\www\denwer\rzimax\izza\config.php on line 42 | |
|
|
|
|
|
|
|
для: rzimax
(26.03.2008 в 09:22)
| | не могли бы вы показать весь код... а то сложно гадать что вы там понаписали.... | |
|
|
|
|
|
|
|
для: afdm
(26.03.2008 в 10:56)
| |
<?php
// Имя сервера базы данных, например $dblocation = "mysql28.noweb.ru"
// сейчас выставлен сервер локальной машины
$dblocation = "localhost";
// Имя базы данных, на хостинге или локальной машине
$dbname = "users";
// Имя пользователя базы данных
$dbuser = "rzimax";
// Пароль (без комментариев ;)
$dbpasswd = "34564456";
// Количество новостей, выводимых в анонсе
$pnumber = 3;
// Количество символов в одном аносе новостей
$numchar = 100;
// Количество новостей, выводимых на странице
// все новости
$all_number_news = 10;
// Версия Web-приложения
$version = "2.0.3";
// Соединяемся с сервером базы данных
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if(!$dbcnx) exit("<p>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</p>");
// Выбираем базу данных
if(!@mysql_select_db($dbname,$dbcnx)) exit("<p>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</p>");
// Определяем версию сервера
$query = "SELECT VERSION()";
$ver = mysql_query($query);
if(!$ver) exit("Ошибка при определении версии MySQL-сервера");
$version = mysql_result($ver, 0);
list($major, $minor) = explode(".", $version);
// Если версия выше 4.1 сообщаем серверу, что будем работать с
// кодировкой cp1251
$ver = $major.".".$minor;
if((float)$ver >= 4.1){
mysql_query("SET NAMES 'cp1251'");
}
// Небольшая вспомогательная функция, которая выводит сообщение об ошибке
// в случае ошибки запроса к базе данных
function puterror($message){
exit("$message");
}
?>
|
<?php
session_start();
$t = "Регистрация";
include "config.php";
if(!isset($_POST['login']) && !isset($_POST['pass']) && !isset($_SERVER['REFERRER']))
{
?>
<br />
<form action="" method="post">
<table width="100%" cellspacing="1" cellpadding="3" border="0" align="center">
<tr>
<td><label for="login">Логин:</label></td>
<td><input type="text" id="login" value="" name="login"/></td>
</tr>
<tr>
<td><label for="pass">Пароль:</label></td>
<td><input id="pass" type="password" value="" name="pass"/><br />
<span style="color: #777777;">пароль должен быть не короче 8 символов и не должен совпадать с логином</span>
</td>
</tr>
<tr>
<td><label for="email">E-mail:</label></td>
<td><input id="email" type="text" value="" name="email"/>
</td>
</tr>
<tr>
<td><label for="first_name">Имя:</label></td>
<td><input id="first_name" type="text" value="" name="first_name"/></td>
</tr>
<tr>
<td><label for="last_name">Фамилия:</label></td>
<td><input id="last_name" type="text" value="" name="last_name"/></td>
</tr>
<tr>
<td><label for="question">Вопрос:</label></td>
<td><select id="question" style="display: block; width: 190px;" name="question">
<option selected="selected" value="">---- Выберите вопрос ----</option>
<option onmouseup="Hide(this,'show');return false;" value="Любимое блюдо">Любимое блюдо</option>
<option onmouseup="Hide(this,'show');return false;" value="Номер паспорта">Номер паспорта</option>
<option onmouseup="Hide(this,'show');return false;" value="Любимая книга">Любимая книга</option>
<option onmouseup="Hide(this,'show');return false;" value="Любимый фильм">Любимый фильм</option>
<option onmouseup="Hide(this,'show');return false;" value="Номер телефона">Номер телефона</option>
<option onmouseup="Hide(this,'show');return false;" value="Любимый учитель">Любимый учитель</option>
<option onmouseup="Show(this,'show');return false;" value="">Задать свой вопрос</option>
</select>
<script type="text/javascript">
function Show(input,id)
{
if (document.getElementById)
{
itm = document.getElementById(id);
itm.style.display = "";
}
}
function Hide(input,id)
{
if (document.getElementById)
{
itm = document.getElementById(id);
itm.style.display = "none";
}
}
</script>
</td>
</tr>
<tr id="show" style="display:none;">
<td><label for="user_question">Вопрос:</label></td>
<td><input id="user_question" type="text" value="" name="user_question"/></td>
</tr>
<tr>
<td><label for="answer">Ответ:</label></td>
<td><input id="answer" type="text" value="" name="answer"/></td>
</tr>
<!--<tr valign="top">
<td><label for="code">Защита:</label></td>
<td><img src="/school11/captcha/index.php" width="165" height="60" border="0" alt=""/><br />
<span style="color: #ff0000; margin-left: -10px; margin-right: 5px;">*</span><input id="code" type="text" value="" name="code" size="20"/><br />
<span style="font-style: italic; font-size: 0.8em; color: #7E7E7E;">введите символы на картинке</span></td>
</tr>-->
<tr>
<td colspan="2">
<label for="t">Я согласен со всеми <a target="_blank" href="/rules.php">Правилами</a></label>
<input id="t" type="checkbox" checked="" value="Y" name="agry"/>
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Зарегистрироваться"/></td>
</tr>
</table>
</form>
<?php
}
else
{
include "admin/config.php";
if (get_magic_quotes_gpc())
{
$_POST['login'] = stripslashes($_POST['login']);
$_POST['pass'] = stripslashes($_POST['pass']);
$_POST['email'] = stripslashes($_POST['email']);
$_POST['last_name'] = stripslashes($_POST['last_name']);
$_POST['first_name'] = stripslashes($_POST['first_name']);
$_POST['question'] = stripslashes($_POST['question']);
$_POST['user_question'] = stripslashes($_POST['user_question']);
$_POST['answer'] = stripslashes($_POST['answer']);
}
$login = $_POST['login'];
$pass = $_POST['pass'];
if (empty($login) || trim($login) == "") exit("Не введено имя пользователя\n");
elseif (!preg_match("|^[0-9a-zа-яё_\.]{3,16}+$|i", $_POST['login'])) exit("Неверно введено имя пользователя\n");
if (empty($pass) || trim($pass) == "") exit("Не введён пароль\n");
elseif (!preg_match("|[(\а-яА-Яa-zA-Z0-9_\-\!\@\#\$\%\^\&\*\(\)\+\=\{\}\[\]\;\:\.\>\<\,\\\/\`\~\|)]{8,}|", $pass)) exit("Неверно введён пароль\n");
elseif ($pass == $login) exit("Пароль не должен совпадать с логином\n");
if (empty($_POST['email']) || trim($_POST['email']) == "") exit("Не введён электронный адрес\n");
elseif (!preg_match("|[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}|i", $_POST['email'])) exit("Неверно введён электронный адрес\n");
if(empty($_POST['last_name']) || trim($_POST['last_name']) == "") exit("Не введена фамилия\n");
if(empty($_POST['first_name']) || trim($_POST['first_name']) == "") exit("Не введено имя\n");
if(empty($_POST['question']) && empty($_POST['user_question']) || trim($_POST['question']) == "" && trim($_POST['user_question']) == "") exit("Неверно введён секретный вопрос\n");
if(empty($_POST['answer']) || $_POST['answer'] == "") exit("Неверно введён ответ на секретный вопрос\n");
if(isset($_SESSION['captcha_code']) && strnatcasecmp($_SESSION['captcha_code'], $_POST['code']) <> 0) exit("Неверно введена проверка слова\n");
if (empty($_POST['agry']) && $_POST['agry'] != "Y") exit("Нужно согласиться с Правилами");
// экранирование кавычек \"
$_POST['login'] = mysql_escape_string($_POST['login']);
$_POST['pass'] = mysql_escape_string($_POST['pass']);
$query = mysql_query("SELECT * FROM users WHERE login='$login'");
if (!$query) ("Ошибка выполнения запроса");
if(mysql_num_rows($query) > 0)
{
echo "Логин <b>$login</b> занят.\n";
}
else
{
$query = mysql_query("INSERT INTO users (login, pass, email, fam, name) VALUES ('$login',MD5('$pass'),'$_POST[email]', '$_POST[last_name]', '$_POST[first_name]')");
if (!$query) ("Ошибка при добавлении нового пользователя");
else echo "Пользователь $login зарегистрирован";
}
}
include "config.php";
?>
|
| |
|
|
|
|
|
|
|
для: rzimax
(26.03.2008 в 13:03)
| | 42 я строка такова:
function puterror($message){
|
ошибка в конфиге
а вообше у меня сейчас ошибка
Fatal error: Cannot redeclare puterror() (previously declared in X:\denwer\www\denwer\rzimax\izza\config.php:42) in X:\denwer\www\denwer\rzimax\izza\config.php on line 44
В 44 чтроке у меня стоит тока } | |
|
|
|
|
|
|
|
для: rzimax
(26.03.2008 в 13:08)
| | ну во-первых, у вас два раза подключается config.php. В начале и в конце скрипта... в конце надобно убрать.
Во-вторых, $t = "Регистрация"; - эта строка вам, по видимому, не нужна, т.к. эта переменная у меня выводилась в файле topindex.php, которого у вас нет.
В-третьих, относительно строки include "admin/config";, вы уж разберитесь как-нибудь... Потому что конфиг должен быть подключен один... а иначе вы пытаетесь создать сразу несколько параллельных подключений к базе под одним именем... (Правило: Конфиг должен быть один!)
Дальше, функцию puterror можно убрать совсем, если она всё равно у вас нигде не используется...
Ну вот это основное что я заметил беглым взглядом... :)) | |
|
|
|
|
|
|
|
для: afdm
(26.03.2008 в 13:17)
| | куль!!!! Все гут! Огромное спасибо всем кто мне помог.... :) | |
|
|
|
|
|
|
|
для: rzimax
(26.03.2008 в 13:27)
| | обращайтесь :)) | |
|
|
|