Всем привет. Я установил игру на хост . Теперь хочу зарегаться .Но когда регаюсь пишет : Скрин http://joxi.ru/L21bWJ7SBeaJAX
вот что пишет .
Длина пароля должна быть в пределах 6 - 20 символов
Пароль у меня больше чем 6 символов , но все же пишет так и не могу зарегаться . В чем дело , где может быть ошибка
Заранее спасибо
#FWLone,
<?php
require_once 'core/system.php';
echo reg();
$header = 'Регистрация';
require_once 'core/head.php';
/*
header('Location: /index.php');
$_SESSION['err'] = 'Регистрация временно приостановлена';
exit();
*/
if(isset($_GET['inv'])){
$inv = mysql_fetch_assoc(mysql_query("SELECT id,nick ,storona from `user` where `id` = '".abs(intval($_GET['inv']))."'");
if(!empty($inv['id'])){
echo '<center>Вы регистрируйтесь по приглашению игрока <b>'.$inv['nick'].'</b>!</center>';
}
}
switch($act) {
case 'post':
if(isset($_POST['nick']) && isset($_POST['pass']) && isset($_POST['pass2']) && isset($_POST['storona'])) {
$nick = check($_POST['nick']);
$pass = check($_POST['pass']);
$pass2 = check($_POST['pass2']);
$pol = num($_POST['pol']);
$storona = num($_POST['storona']);
/*
Не рекомендуется хранить пароли в базе в открытом виде. Их нужно шифровать. Для этого достаточно функции md5()
*/
if(strlen($nick) < 3 or strlen($nick) > 20) $err = 'Длина ника должна быть в пределах 3 - 20 символов';
if(strlen($pass) < 6 or strlen($pass) > 20) $err = 'Длина пароля должна быть в пределах 6 - 20 символов';
if(strlen($pass) != strlen($pass2)&$pass != $pass2) $err = 'Пароли не совпадают!';
/*
Проверяем длину ника и пароля с помощью функции strlen(). Она считает количество символов в том числе пробелы.
*/
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '$nick'",0) == true) $err = 'Пользователь с таким ником уже существует, выбирете другой';
/*
С помощью запроса в базу проверяем есть ли уже такой ник или нет.
Запрос может вернуть 2 значения
<strong> FALSE</strong> - отрицательный
*/
// запись
if(!isset($err)) {
/*
Проверяем есть ли ошибки при обработке. Если есть, пропускаем запись и выводим ошибку
*/
mysql_query("INSERT INTO `user` SET `nick` = '$nick', `pass` = '$pass', `pol` = '$pol', `storona` = '$storona', `timereg` = '".time()."', `mana` = 1050, `max_mana` = 1050, `health` = 80, `max_health` = 80, `sila` = 80, `lovk` = 80, `zashit` = 80"
if(!empty($inv['id'])){
mysql_query("INSERT INTO `ref` set `nak` = '".$inv['id']."', `id_us` = '".mysql_insert_id()."'"
}
// Ставим куки на год
setcookie('nick', $nick, time()+86400*365, '/');
setcookie('pass', $pass, time()+86400*365, '/');
header('Location: /index.php');
$_SESSION['message'] = 'Регистрация успешна';
exit();
}else{
header('Location: /reg.php');
$_SESSION['err'] = $err;
// Вывод ошибки
exit();
}
}else{
header('Location: /reg.php');
$_SESSION['err'] = 'Введите данные';
exit();
}
break;
default:
echo "<center><div class='player center blue'>Зарегистрируйся сейчас и получи подарок на выбор!</div>";
echo "<div class='mini-line'></div>";
echo '<form class="player" method="post" action="/reg.php?act=post'.(!empty($inv['id'])?'&inv='.$inv['id']:null).'">
Введите желаемый ник: <br /><input class="text large" type="text" name="nick" /><br />
Введите пароль: <br /><input class="text large" type="password" name="pass" /><br />
Подтвердите пароль: <br /><input class="text large" type="password" name="pass2" /><br />
Cторона: <br />
<select name="storona">
<option value="0">Свет</option>
<option value="1">Тьма</option>
</select><br />
Ваш пол: <br />
<select name="pol">
<option value="1">Мужской</option>
<option value="0">Женский</option>
</select><br />
<span class="btn"><input class="label" type="submit" value="Начать игру"></span></span></center><div class="line"></div>
</form>';
}
require_once 'core/foot.php';
?>
Попробуй вместо strlen mb_strlen..
А не не то не внимательно прочитал тему
andpov, не помогает .
вот так сделал
if(mb_strlen($nick) < 3 or mb_strlen($nick) > 20) $err = 'Длина ника должна быть в пределах 3 - 20 символов';
if(mb_strlen($pass) < 6 or mb_strlen($pass) > 20) $err = 'Длина пароля должна быть в пределах 6 - 20 символов';
if(mb_strlen($pass) != mb_strlen($pass2)&$pass != $pass2) $err = 'Пароли не совпадают!';
<?
if(strlen($pass) != strlen($pass2) && $pass != $pass2)
?>
#FWLone, вот так
[code]if(strlen($nick) < 3 or strlen($nick) > 20) $err = 'Длина ника должна быть в пределах 3 - 20 символов';
if(strlen($pass) != strlen($pass2)&&$pass != $pass2) $err = 'Длина пароля должна быть в пределах 6 - 20 символов';
if(strlen($pass) != strlen($pass2)&&$pass != $pass2) $err = 'Пароли не совпадают!';[/code]
pirlo, угу, должно получится так
<?
if(strlen($nick) < 3 or strlen($nick) > 20) $err = 'Длина ника должна быть в пределах 3 - 20 символов';
if(strlen($pass) < 6 or strlen($pass) > 20) $err = 'Длина пароля должна быть в пределах 6 - 20 символов';
if(strlen($pass) != strlen($pass2) && $pass != $pass2) $err = 'Пароли не совпадают!';
?>
#FWLone, не получается .
Скрины http://joxi.ru/V2VK5vxtRwW5Av
http://joxi.ru/krDDqkPuqR5vrp
#FWLone, может ошибка тут
<?php
if(isset($_POST['nick']) && isset($_POST['pass']) && isset($_POST['pass2']) && isset($_POST['storona'])) {
$nick = check($_POST['nick']);
$pass = check($_POST['pass']);
$pass2 = check($_POST['pass2']);
$pol = num($_POST['pol']);
$storona = num($_POST['storona']);