Цитата:
Сообщение от srv38
|
это на мой взгляд юзабельнее.
надеюсь понимаешь о чем тут.
а дальше подгоняй в индекс пхп регистрации респ.
добавляй проверку и в общем то все.
там вроде как написано подробно, но если возникнет вопрос,куда пихать проверку,спрашивай.тебе тут помогут , но за тебя не сделают.
вообще было где то нарыто на просторах инета.
под какую то версию регистрации, сам не помню,но мало ли пригодиться.
некий BY ALEX BARN судя по коментам в самом файлике , делал это так.
Код:
<?php
/*
REGISTRATION PAGE FOR MANGOS!
ВЕБ СТРАНИЦА РЕГИСТРАЦИИ ДЛЯ СЕРВЕРА MANGOS!
BY ALEX BARN
*/
define('roSSECURE',true);
require_once 'config.php';
require_once 'lang.php';
require_once 'dblayer.php';
require_once 'recaptchalib.php';
$fp = @fsockopen( $host, 3724, $errno, $errstr, 1);
if ($fp >= 1) {
$server = '<font color=green>'.$page.'</font>';
} else {
$server = '<font color=red>'.$page.'</font>';
}
$resp = recaptcha_check_answer ($RECprivatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if ( empty($_POST['username']) AND empty($_POST['passw']) AND empty($_POST['email']) AND !($resp->is_valid) ) {
$cont = ' <TR>
<TD vAlign=center align=left width=190>
<LABEL
for=username>'.$text["name"].'</LABEL> <BR><INPUT
id=username style="WIDTH: 300px; HEIGHT: 30px; FONT-SIZE: 12pt" tabIndex=1 maxLength=32
size=18 name=username></TD>
<TD rowSpan=6><IMG height=1 src="'.$img_base.'pixel.gif" width=350></TD></TR>
<TR><TD width=190 height=10></TD></TR>
<TD vAlign=center align=left width=190>
<LABEL
for=passw>'.$text["password"].'</LABEL> <BR><INPUT id=passw
style="WIDTH: 300px; HEIGHT: 30px; FONT-SIZE: 12pt" tabIndex=2 type=password maxLength=40
size=18 name=passw></TD></TR>
<TR><TD width=190 height=10></TD></TR>
<TD vAlign=center align=left width=190>
<LABEL
for=email>'.$text["e-mail"].'</LABEL> <BR><INPUT id=email
style="WIDTH: 300px; HEIGHT: 30px; FONT-SIZE: 12pt" tabIndex=2 maxLength=50
size=18 name=email></TD></TR>
<TR><TD width=190 height=10></TD></TR>
<TD vAlign=center align=left width=190>
<LABEL
for=email>'.$text["rec_safety_key"].'</LABEL> <BR>
' . recaptcha_get_html($RECpublickey) . '
</TD></TR>
<TR><TD width=190 height=10></TD></TR>
<TD vAlign=center align=center><INPUT class=button
style="WIDTH: 184px; HEIGHT: 37px" tabIndex=3 type=image
src="'.$img_base.$button.'"
value=Create border=0></TD>
<TR><TD width=190 height=30></TD></TR>
<TD><LABEL for=info><center>'.$server.'</center>'.$text["client"].' <font color=orange>'.$client.'</font>
<br>'.$text["realm"].' <font color=orange>'.$realm.'</font></LABEL></TD>
</TR></TBODY></TABLE></TD></TR>';
} elseif ( empty($_POST['username']) OR empty($_POST['passw']) OR empty($_POST['email']) OR !($resp->is_valid) ) {
$cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error>
'.$text["not_all"].'
<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
} elseif ( !($resp->is_valid) ) {
$cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error>
'.$text["not_all"].'
<br><br><a href="" onClick="history.go(-1)">'.$text["rec_safety_key_invalid"].'</a></SMALL></TD></TD></TR>';
} else {
$username = htmlspecialchars(trim("$_POST[username]"));
$passw = trim($_POST['passw']);
$email = htmlspecialchars(trim($_POST['email']));
$expansion = trim($expansion);
$ip = getenv('REMOTE_ADDR');
$realm_db = new DBLayer($host, $user, $password, $db);
$realm_db->query("SET NAMES database_encoding");
$ip_cr = 0;
if ( $lock_reg != 0 ) {
$query = $realm_db->query("SELECT `last_ip` FROM `account` WHERE `last_ip`='$ip'");
while($result = $realm_db->fetch_assoc($query)) $ip_cr++;
}
if ( ($ip_cr >= $lock_reg) AND ($lock_reg != 0) )
{
$cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error>
'.$text["ip_limit"][0].$ip.'<br>'.$ip_cr.$text["ip_limit"][1].'
<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
} else {
if ( $expansion ) {
if (
$realm_db->query("INSERT INTO `account` (`username`,`sha_pass_hash`, `email`, `last_ip`, `locked`, `expansion`) VALUES ('$username', SHA1(CONCAT(UPPER('$username'), ':', UPPER('$passw'))), '$email', '$ip', '$lock_acc', '$expansion')")
{
$cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL>
'.$text["acc"].'<br><strong><font color=orange size=4>'.$username.'</font></strong><br>'.$text["create"].'
<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
}
else
{
$cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error>
'.$text["acc"].'<br><strong><font color=orange size=4>'.$username.'</font></strong><br>'.$text["failed"].'
<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
}
} else {
if($realm_db->query("INSERT INTO `account` (`username`,`sha_pass_hash`,`email`,`last_ip`,`locked`) VALUES ('$username','$passw','$email','$ip','$lock_acc')"))
{
$cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL>
'.$text["acc"].'<br><strong><font color=orange size=4>'.$username.'</font></strong><br>'.$text["create"].'
<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
}
else
{
$cont = '<TR><IMG height=1 width=650 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error>
'.$text["acc"].'<br><strong><font color=orange size=4>'.$username.'</font></strong><br>'.$text["failed"].'
<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
}
}
}
$realm_db->close();
unset($realm_db);
}
?>
хочу обратить внимание, что скорее всего этот код не рабочий, но имеет место быть,в виде примера.