ОБСУЖДЕНИЕ

Проблема с регистрацией

8 сообщений1 просмотровОткрыта
#1
Вообщем проблема такая, при нажатии на регистрацию не чего не происходит, просто обновляет страницу, ввела в адрес.строку со знаком ? перешло на регу, но на этот раз не хочет сохранять персонажа вот сам код:
PHP
<?
/*
if($_SESSION['mult']==68758){
err_game("<span>У вас уже есть учетная запись в игре.</span>");
}
else
if(isset($_SESSION['mult'])!=68758)
{
*/
Error_reporting(E_ALL^E_NOTICE);
if(isset($_POST['nick']) && isset($_POST['password']) && isset($_POST['password2']) && isset($_POST['email']))
{
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `kolhoz_user` WHERE `nick` = '".my_esc($_POST['nick'])."' LIMIT 1"),0)!=0)err_game("Этот ник уже зарегистрирован. Выберите другой!");
elseif( !preg_match("#^([A-zА-я0-9-_ ])+$#ui", $_POST['nick']))err_game('В нике присутствуют запрещенные символы');
elseif (preg_match("#[a-z]+#ui", $_POST['nick']) && preg_match("#[а-я]+#ui", $_POST['nick']))err_game('Разрешается использовать символы только русского или только английского алфавита');
elseif (preg_match("#(^ )|( $)#ui", $_POST['nick']))err_game('Запрещено использовать пробел в начале и конце ника');
elseif (strlen2($_POST['nick'])<4)err_game('Короткий ник');
elseif (strlen2($_POST['nick'])>32)err_game('Длина ника превышает 32 символа');
elseif (!isset($_POST['email']) || $_POST['email']==NULL)err_game('Неоходимо ввести Email');
elseif (!preg_match('#^[A-z0-9-._]+@[A-z0-9]{2,}.[A-z]{2,4}$#ui',$_POST['email']))err_game('Неверный формат Email');
elseif(mysql_result(mysql_query("SELECT COUNT(*) FROM `kolhoz_user` WHERE `email` = '".my_esc($_POST['email'])."'"),0)!=0)err_game("Пользователь с этим E-mail уже зарегистрирован");
elseif (strlen2($_POST['password'])<6)err_game('По соображениям безопасности пароль не может быть короче 6-ти символов');
elseif(strlen2($_POST['password'])>32)err_game('Длина пароля превышает 32 символа');
elseif ($_POST['password']!=$_POST['password2'])err_game('Пароли не совпадают');
elseif($_POST['capcha'] != $_SESSION['capcha'])err_game('Проверочный код неверен');
else
{
if($_POST['pol']==0)$pol='0';else $pol='1';
mysql_query("INSERT INTO `kolhoz_user` SET `nick` = '".my_esc($_POST['nick'])."', `password` = '".md5($_POST['password'])."', `pol` = '$pol', `email` = '".my_esc(strtolower($_POST['email']))."', `money` = '1000', `rating` = '0', `time_voller` = '0', `rubies` = '50000', `zoloto` = '10000', `almaz` = '10000', `rmoney` = '500', `dollars` = '10000', `goldlottery_key` = '10000', `show_news` = '1', `status` = '".(mysql_result(mysql_query("SELECT COUNT(*) FROM `kolhoz_user`"), 0)==0?3:0)."'");
$_SESSION['id_user']=mysql_insert_id();
$_SESSION['pass']=md5($_POST['password']);
$text="Добро пожаловать в игру Родная деревня.Хорошей игры!";
mysql_query("INSERT INTO `kolhoz_mail` SET `id_user` = '$_SESSION[id_user]', `id_kont` = '0', `msg` = '$text', `time` = '".time()."', `type` = 'to'") or die (mysql_error());
if(isset($_SESSION[refer])){
$control=mysql_fetch_array(mysql_query("SELECT * FROM `kolhoz_user` WHERE `id` = '".intval($_SESSION['refer'])." ' "));
if($control['ip']!==$_SERVER['REMOTE_ADDR']){
mysql_query("UPDATE `kolhoz_user` SET `count_ref` = '$control[count_ref]' +'1' WHERE `id` = '".intval($_SESSION['refer'])."' ") or die (mysql_error());
mysql_query("UPDATE `kolhoz_user` SET `refi` = '$control[id]' WHERE `id` = '$_SESSION[id_user]' ") or die (mysql_error());
 }
}
header("Location: http://$_SERVER[HTTP_HOST]/myfarm");
exit;
}
}
?>
<div class="event">
<div><title>Регистрация</title></div>
</div>
<div class="content">
<div class="block">

  <div class="warn">Сохрани персонаж и получи <img width='16' height='16' src='http://vferma.ml/worldkassa/coin.png' alt='*'> 500 RM-монет!
</div>
<li class="pt">
<form method="post"><ul>
<li>
<label>Ник:<br>
<input type="text" value="" name="nick">
</label>
<div class="small minor">
Ник может содержать до 2-х пробелов.
</div>
</li>
<li class="pt">
<label>Пол:<br>
<select name='pol'>
<option value='1'>Мужской</option>
<option value='0'>Женский</option>
</select>
</label>
</li>
<li class="pt">
<label>Пароль:<br>
<input type="password" value="" name="password">
</label>
<div class="small minor">
Пароль должен содержать хотя бы 1 букву, 1 цифру и быть длиной от 6 до 20 символов.
</div>
</li>
<li class="pt">
<label>Ещё раз пароль:<br>
<input type="password" value="" name="password2">
</label>
</li>
<li class="pt">
<label>Email:<br>
<input type="text" value="" name="email">
</label>
</li>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Введите код: <br><img src="captcha.php" width="120" height="20" /><br />
<input type="text" name="capcha" /><br />
<li class="pt">
</label>
</li>
  <div class="warn">Внимание!
</div>
<div class="small minor">
После регистрации Ваш ник и
email изменить будет нельзя.
</div>
<li class="pt">
<input type="submit" value="Сохранить">
</ul>
</form>
</div>
<div class="block event">
</div>
</div>
<?
include_once 'no_reg/foot.php';
exit;
?>
#2
А вот это что вообще ???
[/php=
#3
4AD4, я хотела код воткнуть, коряво вышло
#4
че за строка ? <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> и не закрытый.. мешает общему

Проверяй вот так
PHP

<?
/*
if($_SESSION['mult']==68758){
err_game("<span>У вас уже есть учетная запись в игре.</span>");
}
else
if(isset($_SESSION['mult'])!=68758)
{
*/
Error_reporting(E_ALL^E_NOTICE);
if(isset($_POST['nick']) && isset($_POST['password']) && isset($_POST['password2']) && isset($_POST['email']))
{
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `kolhoz_user` WHERE `nick` = '".my_esc($_POST['nick'])."' LIMIT 1"),0)!=0)err_game("Этот ник уже зарегистрирован. Выберите другой!");
    
elseif( !preg_match("#^([A-zА-я0-9-_ ])+$#ui", $_POST['nick']))err_game('В нике присутствуют запрещенные символы');
elseif (preg_match("#[a-z]+#ui", $_POST['nick']) && preg_match("#[а-я]+#ui", $_POST['nick']))err_game('Разрешается использовать символы только русского или только английского алфавита');
    
elseif (preg_match("#(^ )|( $)#ui", $_POST['nick']))err_game('Запрещено использовать пробел в начале и конце ника');
elseif (strlen2($_POST['nick'])<4)err_game('Короткий ник');
elseif (strlen2($_POST['nick'])>32)err_game('Длина ника превышает 32 символа');
elseif (!isset($_POST['email']) || $_POST['email']==NULL)err_game('Неоходимо ввести Email');
elseif (!preg_match('#^[A-z0-9-._]+@[A-z0-9]{2,}.[A-z]{2,4}$#ui',$_POST['email']))err_game('Неверный формат Email');
elseif(mysql_result(mysql_query("SELECT COUNT(*) FROM `kolhoz_user` WHERE `email` = '".my_esc($_POST['email'])."'"),0)!=0)err_game("Пользователь с этим E-mail уже зарегистрирован");
    
elseif (strlen2($_POST['password'])<6)err_game('По соображениям безопасности пароль не может быть короче 6-ти символов');
elseif(strlen2($_POST['password'])>32)err_game('Длина пароля превышает 32 символа');
elseif ($_POST['password']!=$_POST['password2'])err_game('Пароли не совпадают');
elseif($_POST['capcha'] != $_SESSION['capcha'])err_game('Проверочный код неверен');
else
{
if($_POST['pol']==0)$pol='0';else $pol='1';
mysql_query("INSERT INTO `kolhoz_user` SET `nick` = '".my_esc($_POST['nick'])."', `password` = '".md5($_POST['password'])."', `pol` = '$pol', `email` = '".my_esc(strtolower($_POST['email']))."', `money` = '1000', `rating` = '0', `time_voller` = '0', `rubies` = '50000', `zoloto` = '10000', `almaz` = '10000', `rmoney` = '500', `dollars` = '10000', `goldlottery_key` = '10000', `show_news` = '1', `status` = '".(mysql_result(mysql_query("SELECT COUNT(*) FROM `kolhoz_user`"), 0)==0?3:0)."'");
    
$_SESSION['id_user']=mysql_insert_id();
$_SESSION['pass']=md5($_POST['password']);
    
$text="Добро пожаловать в игру Родная деревня.Хорошей игры!";
mysql_query("INSERT INTO `kolhoz_mail` SET `id_user` = '$_SESSION[id_user]', `id_kont` = '0', `msg` = '$text', `time` = '".time()."', `type` = 'to'") or die (mysql_error());
    
if(isset($_SESSION[refer])){
$control=mysql_fetch_array(mysql_query("SELECT * FROM `kolhoz_user` WHERE `id` = '".intval($_SESSION['refer'])." ' "));
    
if($control['ip']!==$_SERVER['REMOTE_ADDR']){
mysql_query("UPDATE `kolhoz_user` SET `count_ref` = '$control[count_ref]' +'1' WHERE `id` = '".intval($_SESSION['refer'])."' ") or die (mysql_error());
mysql_query("UPDATE `kolhoz_user` SET `refi` = '$control[id]' WHERE `id` = '$_SESSION[id_user]' ") or die (mysql_error());
 }
}
header("Location: http://$_SERVER[HTTP_HOST]/myfarm");
exit;
}
}
?>
<div class="event">
<div><title>Регистрация</title></div>
</div>
<div class="content">
<div class="block">
 
  <div class="warn">Сохрани персонаж и получи <img width='16' height='16' src='http://vferma.ml/worldkassa/coin.png' alt='*'> 500 RM-монет!
</div>
<li class="pt">
<form method="post"><ul>
<li>
<label>Ник:<br>
<input type="text" value="" name="nick">
</label>
<div class="small minor">
Ник может содержать до 2-х пробелов.
</div>
</li>
<li class="pt">
<label>Пол:<br>
<select name='pol'>
<option value='1'>Мужской</option>
<option value='0'>Женский</option>
</select>
</label>
</li>
<li class="pt">
<label>Пароль:<br>
<input type="password" value="" name="password">
</label>
<div class="small minor">
Пароль должен содержать хотя бы 1 букву, 1 цифру и быть длиной от 6 до 20 символов.
</div>
</li>
<li class="pt">
<label>Ещё раз пароль:<br>
<input type="password" value="" name="password2">
</label>
</li>
<li class="pt">
<label>Email:<br>
<input type="text" value="" name="email">
</label>
</li>
  
<li class="pt">
    <label>  
Введите код: <br><img src="captcha.php" width="120" height="20" /><br />
<input type="text" name="capcha" /><br />
<li class="pt">
</label>
</li>
  <div class="warn">Внимание!
</div>
<div class="small minor">
После регистрации Ваш ник и
email изменить будет нельзя.
</div>
<li class="pt">
<input type="submit" value="Сохранить">
</ul>
</form>
</div>
<div class="block event">
</div>
</div>
<?
include_once 'no_reg/foot.php';
exit;
?>

#5
Корявое , можно проще
#6
-=Дukuй=-, Благодарю помогло, но теперь еще следующий вопрос, не хочет сохранять персонажа, а это в чем может заключаться сия проблема?
#7
Hacuro, сделай так же проверку при записи or die (mysql_error());
#8
Всё решила проблему с сохранением :) спасибо всем тем кто помог :)