Показать сообщение отдельно
Непрочитано 23.06.2011, 20:27   #1
Аватар для OkoPwnz
Пользователь

Автор темы (Топик Стартер) Регистрация

Есть ли ошибка в данном пхп коде?
PHP код:
<center><b>Регистрация</b></center><br>
<script type="text/javascript">//<![CDATA[
function isAlphaNumeric(value)
{
  if (value.match(/^[a-zA-Z0-9_]+$/))
    return true;
  return false;
}
function checkform(f)
{
  if (f.account.value=="")
  {
    alert("Введите аккаунт");
    return false;
  }
  if (!isAlphaNumeric(f.account.value))
  {
    alert("Аккаунт должен состоять из английских букв и/или цифр!");
    return false;
  }
  if (f.password.value=="")
  {
    alert("Введите пароль");
    return false;
  }
  if (!isAlphaNumeric(f.password.value))
  {
    alert("Пароль должен состоять из английских букв и/или цифр!");
    return false;
  }
  if (f.password2.value=="")
  {
    alert("Введите пароль повторно");
    return false;
  }
  if (f.password.value != f.password2.value)
  {
    alert("Пароль и повтор пароля не совпадают!");
    return false; 
  }
  if (f.email.value=="")
  {
    alert("Введите E-mail");
    return false;
  }
  if (!f.email.value.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/))
  {
    alert("Это не e-mail!");
    return false;
  }
  if (f.question1.value=="")
  {
    alert("Введите Секретный вопрос №1");
    return false;
  }
  if (f.answer1.value=="")
  {
    alert("Введите Секретный ответ №1");
    return false;
  }
  if (f.question2.value=="")
  {
    alert("Введите Секретный вопрос №2");
    return false;
  }
  if(f.answer2.value=="")
  {
    alert("Введите Секретный ответ №2");
    return false;
  }
  return true;
}
//]]></script>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
 <tr>
  <td> </td>
 </tr>
 <?=$sep?>
</table>
<?
//connectdb($CONFIG['dbdbname'], $CONFIG['dbaddress'], $CONFIG['dbuser'], $CONFIG['dbpass']);

connectdb($CONFIG['dbdbname'], $mssql_addr$mssql_user$mssql_pass);
$result mssql_query(sprintf(SELECT_COUNT_ACCOUNT));
$accounts mssql_fetch_array($result);
$accounts $accounts[0];

if(
$CONFIG['maxaccounts']==0)
 {
  
$maxaccounts 0;
 }
elseif(
$accounts>=$CONFIG['maxaccounts'])
 {
  
$maxaccounts 1;
 }
else
 {
  
$maxaccounts 0;
 }

if(
$maxaccounts==0)
 {
  if(
$CONFIG['registration']==1)
   {
    
$error 0;
    if(isset(
$_POST["register"])&&$_POST['register']=='register')
         {

      
$error 2;
      
//connectdb($CONFIG['dbdbname'], $CONFIG['dbaddress'], $CONFIG['dbuser'], $CONFIG['dbpass']);
      
connectdb($CONFIG['dbdbname'], $mssql_addr$mssql_user$mssql_pass);
      
$account $_POST['account'];
      
$password $_POST['password'];
      
$password2 $_POST['password2'];
      
$email $_POST['email'];
      
$question1 $_POST['question1'];
      
$answer1 $_POST['answer1'];
      
$question2 $_POST['question2'];
      
$answer2 $_POST['answer2'];
      
$account antiinjection($account);
      
$password antiinjection($password);
      
$password2 antiinjection($password2);
      
$email antiinjection($email);
      
$question1 antiinjection($question1);
      
$answer1 antiinjection($answer1);
      
$question2 antiinjection($question2);
      
$answer2 antiinjection($answer2);
      
$ssn = isset($_POST['ssn'])?$_POST['ssn']:null;

          
$result mssql_query (sprintf(CHECK_ACCOUNT$account));
      
$rows=mssql_num_rows($result);
      echo 
'<table width="100%" cellspacing=0 border=0 cellpadding=0 align=center>
             <tr><td class="n-cell b-tblr ac p-2 error">'
;
      if (
$rows>0)
       {
        echo 
'<font color=red><b><u>Такой аккаунт уже существует!</font><br><br>';
        
$error 1;
       }

      if ((
strlen($account)<|| strlen($account)>14)&& $account!="")
       {
        echo 
"<font color=red><b><u>Аккаунт должен содержать от 4 до 14 символов!</font><br><br>";
        
$error 1;
       }

      if ((
strlen($password)<||strlen($password)>16) && $password!="")
       {
        echo 
"<font color=red><b><u>Пароль должен содержать от 8 до 16 символов!</font><br><br>";
        
$error 1;
       }

          if (
$password!=$password2)
       {
        echo 
"<font color=red><b><u>Повторный пароль не совпадает с первым введённым паролем!</font><br><br>";
        
$error 1;
       }

      
$result mssql_query (sprintf(CHECK_EMAIL$email));
      
$rows=mssql_num_rows($result);

      if (
$CONFIG['maxemail']>0)
       {
        if (
$rows>=$CONFIG['maxemail'])
         {
          echo 
"<font color=red><b><u>Исчерпан лимит аккаунтов на ( {$CONFIG['maxemail']} ) e-mail.</font><br><br>";
          
$error 1;
         }
       }

      if ((
strlen($email)<||strlen($email)>50) && $email!="")
       {
        echo 
"<font color=red><b><u>E-mail должен содержать от 7 до 50 символов.</font><br><br>";
        
$error 1;
       }

          if ((
strlen($question1)<||strlen($question1)>250) && $question1!="")
       {
        echo 
"<font color=red><b><u>Первый секретный вопрос должен содержать от 4 до 250 символов.</font><br><br>";
        
$error 1;
       }

      if (
strlen($answer1)>16 && $answer1!="")
       {
                echo 
"<font color=red><b><u>Первый ответ на секретный вопрос должен содержать от 1 до 16 символов.</font><br><br>";
                
$error 1;
       }
      if ((
strlen($question2)<||strlen($question2)>250) && $question2!="")
       {
        echo 
"<font color=red><b><u>Второй секретный вопрос должен содержать от 4 до 250 символов.</font><br><br>";
        
$error 1;
       }
      if (
strlen($answer2)>16 && $answer2!="")
       {
        echo 
"<font color=red><b><u>Второй ответ на секретный вопрос должен содержать от 1 до 16 символов.</font><br><br>";
        
$error 1;
       }
      echo 
'</td></tr>';
          if (
$error == 1) echo $delimiter;
          echo 
'</table>';
         }

if(
$error<2)
 {
?>
<ul>
<LI>Аккаунт и пароль не могут быть пустыми.<BR>
<LI>Аккаунт и пароль не могут содержать менее 8 и более 16 знаков.<BR>
<LI>Аккаунт и пароль пишутся латинскими буквами и(или) цифрами.<BR>
<LI>Восстановить или сменить пароль можно только в личном кабинете<BR>
<LI><span style='color: red'>Для защиты аккаунта используйте сложные пароли вида: 0g49Xt3Sx</span><BR>
<LI><span style='color: red'>Администрация не занимается восстановлением и сменой паролей!</span><BR><BR><BR>
</ul>

<table width="100%" cellspacing=0 border=0 cellpadding=0 align=center>
<tr>
<td class="n-cell b-lr">
<form method="post" action="index.php?x=register" onsubmit="return checkform(this)">
<table width="370" cellspacing=0 border=0 cellpadding=0 align=center>
 <tr>
  <td align=center>Аккаунт<br><input type=text maxlength=14 name=account></td>
  <td align=center>Пароль<br><input type=password maxlength=16 name=password></td>
 </tr>
 <tr>
  <td align=center>&nbsp;</td>
 </tr>
 <tr>
  <td align=center>E-Mail<br><input type=text maxlength=50 name=email></td>
  <td align=center>Повторить Пароль<br><input type=password maxlength=16 name=password2></td>
 </tr>
 <tr>
 <tr>
  <td align=center>&nbsp;</td>
 </tr>
 </tr>
  <td align=center colspan="4" class="b-tb ar">
<center>
<script type="text/javascript" src="http://vkontakte.ru/js/api/share.js?5"></script><br>
<script type="text/javascript">document.write(VK.Share.button({url: "<?php echo $site?>"},{type: "round", text: "Рассказать о сервере"}));</script>
</center>
<br><br>
<input type=hidden name=register value="register">
<input style="cursor:pointer" type=submit name=submit value="Зарегистрироваться">
  </td>
</table>
</form>
 </td>
 </tr>
</table>
<? }
function 
debugsql()
{
        
$result=@mssql_get_last_message();
        foreach(
$result as $ley=>$value)
        print 
$key " = " $value "<br>";
}
if(
$error==2)
 {
  
$ssn1 mt_rand(1000000,9999999);
  
$ssn2 mt_rand(100000,999999);
  
$ssn $ssn1 $ssn2;
  
$password = @encrypt($password);
  
$answer1= @encrypt($answer1);
  
$answer2= @encrypt($answer2);

  
mssql_query(sprintf(INSERT_SSN$ssn$account$email));

  
mssql_query(sprintf(INSERT_USERACCOUNT$account));
  
mssql_query(sprintf(INSERT_USERINFO$account$ssn));
  
mssql_query(sprintf(INSERT_USERAUTH$account$password$question1$question2$answer1$answer2));

  echo 
'<table width="100%" cellspacing=0 border=0 cellpadding=0 align=center>
         <tr><td><b><font color=green size=1 face=verdana>Аккаунт создан успешно.</font></b>
         <script type="text/javascript" src="http://vkontakte.ru/js/api/share.js?5"></script><br><br>
         <script type="text/javascript">document.write(VK.Share.button({url: "<?php echo $site; ?>"},{type: "round", text: "Рассказать о сервере"}));</script>
         '
;

  if(
$CONFIG['displayssn']==1)
   {
    echo 
"
    <br>SSN сгенерирован автоматически: <b>
{$ssn}</b><BR><BR>
    ОБЯЗАТЕЛЬНО!!!  запишите и сохраните его.<BR>
    Без него Вы не сможете востановить свой аккаунт в случае его хищения."
;
   }
  echo 
'</td></tr></table>';
 }

 }
elseif(
$CONFIG['registration']==0)
 {
  echo 
'<table width="100%" cellspacing=0 border=0 cellpadding=0 align=center>
         <tr><td>Регистрация отключена.</td></tr></table>'
;
 }
}
elseif(
$maxaccounts==1)
 {
  echo 
'<table width="100%" cellspacing=0 border=0 cellpadding=0 align=center>
     <tr><td>Лимит аккаунтов в '
.$CONFIG['maxaccounts'].' шт.на 1 e-mail - исчерпан!</td></tr></table>';
 }
?>
__________________

Последний раз редактировалось OkoPwnz; 24.06.2011 в 17:25.
OkoPwnz вне форума Ответить с цитированием