Выкладываю рабочий скрипт для регестрации:
itsmusictime: Выкладываю рабочий скрипт для регестрации:SQLALTER TABLE accounts
CHARACTER SET UTF8,
ADD email varchar(20);Код<?php
if(empty($mw))
{
header ("Location: ..");
exit;
}
?>
<center>
| <a href="index.php?id=register">Регистрация</a>
| <a href="index.php?id=cp">Личный кабинет</a>|<br><hr>
<center/>
<?
#config
$mysql_server ="localhost"; // IP адрес MySQL-сервера ["localhost"]
$mysql_user ="root"; // Логин ["root"]
$mysql_pass ="root"; // Пароль ["root"]
$mysql_db ="l2jdb"; // Имя игровой базы ["l2jdb"]
mysql_connect($mysql_server,$mysql_user,$mysql_pass);
mysql_select_db($mysql_db);
#config
#function begin
function newaccount($account,$password,$email){
$passworden = base64_encode(pack('H*', sha1($password)));
$query="INSERT INTO accounts (login, password, email) VALUES('$account', '$passworden', '$email')";
$result=mysql_query($query);
return true;
}
function displayErrors($messages) {
foreach($messages as $msg){
print("<li>$msg</li>\n");
}
print("</ul>\n");
}
function field_validator($field_descr, $field_data,
$field_type, $min_length="4", $max_length="20",
$field_required=1) {
global $messages;
if(!$field_data && !$field_required){ return; }
$field_ok=true;
$email="^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|";
$email.="(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
$data_types=array(
"email"=>$email,
"digit"=>"^[0-9]$",
"number"=>"^[0-9]+$",
"alpha"=>"^[a-zA-Z]+$",
"alpha_space"=>"^[a-zA-Z ]+$",
"alphanumeric"=>"^[a-zA-Z0-9]+$",
"alphanumeric_space"=>"^[a-zA-Z0-9 ]+$",
"string"=>""
);
if ($field_required && empty($field_data)) {
$messages[] = "Вы не ввели $field_descr.";
return;
}
if ($field_type == "string") {
$field_ok = true;
} else {
$field_ok = ereg($data_types[$field_type], $field_data);
}
if (!$field_ok) {
$messages[] = "Введите правильно $field_descr.";
return;
}
if ($field_ok && $min_length) {
if (strlen($field_data) < $min_length) {
$messages[] = "$field_descr вы ввели меньше чем $min_length знака.";
return;
}
}
if ($field_ok && $max_length) {
if (strlen($field_data) > $max_length) {
$messages[] = "$field_descr вы ввели больше чем $max_length знаком.";
return;
}
}
}
##Function end
##register
if($_POST["register"]){
field_validator("Аккаунт", $_POST["login"], "alphanumeric", 4, 20);
field_validator("пароль", $_POST["password1"], "alphanumeric", 4, 20);
field_validator("Повтор пароля", $_POST["password2"], "alphanumeric", 4, 20);
field_validator("E-mail", $_POST["email"], "email", 4, 20);
if(strcmp($_POST["password1"], $_POST["password2"])) {
$messages[]="Вы ошиблись в повторном воде пароля.";
}
$query="SELECT login FROM accounts WHERE login='".$_POST["login"]."'";
$result=mysql_query($query) or die("MySQL query $query failed. Error if any: ".mysql_error());
if( ($row=mysql_fetch_array($result)) ){
$messages[]="Аккаунт <font color='red'>\"".$_POST["login"]."\"</font> уже сушествует. Попробуйте другой.";
}
if(empty($messages)) {
newaccount($_POST["login"], $_POST["password1"], $_POST["email"]);
$messages[]="Аккаунт <font color='green'>".$_POST['login']."</font> зарегистрирован успешно.";
}
}
?>
<?
if(!empty($messages)){
displayErrors($messages);
}
?>
<form method="POST">
<table border=0 cellspacing=0 cellpadding=0>
<H3>Регистрация</h3><br>
<div align="center">
<table width="266" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="right">Логин:</td>
<td><label>
<input type="text" name="login">
</label></td>
</tr>
<tr>
<td align="right">Пароль:</td>
<td><label>
<input type="password" name="password1">
</label></td>
</tr>
<tr>
<td align="right">Повтор пароля:</td>
<td><label>
<input type="password" name="password2">
</label></td>
</tr>
</tr>
<tr>
<td align="right">E-mail:</td>
<td><label>
<input type="text" name="email">
</label></td>
</tr>
<tr>
<td align="right"><label>
<input type="reset" name="Submit2" value="Сброс">
</label></td>
<td align="center"><label>
<input type="submit" name="register" value="Регистрация">
</label></td>
</tr>
</table>
</div>
</form>
Помог?=)Жми спасибо!![]()
Не регистрирует аккаунт?![]()
Замените в скрипте access_level на accessLevel или на оборот в зависимости от сборки сервера!
Не регистрирует аккаунт?![]()
Замените в скрипте access_level на accessLevel или на оборот в зависимости от сборки сервера!
Восстановление пароля все равно не будет работать правильно если в Dle втыкать. А на других сборках, эти скрипты уже есть. Смысла лишнего поля не вижу. Сейчас проверю скрипт, опишу работает или нет.
everybody lies (c)
ну втыкнул прикрасно работает только почему на мыло не чё не приходит??? И ешё скрипт нужен востоновление пороля!
Ничего не должно на мыло приходить. Не предусмотренно скриптом. Ищи другой, если нужно, либо дописывай этот.
Timeo Danaos et dona ferentes
У мну нерабит помогите плиз, меня почемуто при заходе на скрипт http://ip/reg2.php автоматом перенаправляет на http://ip/