PDA

Просмотр полной версии : Регистрация


sasha72
15.10.2007, 11:40
Игру сделал всё пашет по локалке а вот по инету нельзя зарегица получается так что я регюсь и после нажатия кнопки регистрация меня обрато перекидывает на страницу регистрации но акк не создаётся что делать как исправить??? :confused:

Плиззз хелп

groundhog
15.10.2007, 11:55
Смотри error-log, access-log и referrer-log. Исправить можно всё. А вот что делать при такой формулировке вопроса сказать сложно.

sasha72
15.10.2007, 12:04
Ну вот адрес сайта spartac.isrv.ru

а вот error log
[Sun Oct 14 11:23:14 2007] [error] [client 62.205.194.104] Directory index forbidden by rule: /virtual/spartac.isrv.ru/htdocs/
[Sun Oct 14 11:23:15 2007] [error] [client 62.205.194.104] Directory index forbidden by rule: /virtual/spartac.isrv.ru/htdocs/
[Sun Oct 14 11:23:16 2007] [error] [client 62.205.194.104] Directory index forbidden by rule: /virtual/spartac.isrv.ru/htdocs/
[Sun Oct 14 21:21:54 2007] [error] [client 62.205.224.33] File does not exist: /virtual/spartac.isrv.ru/htdocs/favicon.ico

groundhog
15.10.2007, 13:02
Мне бы код регистрилки глянуть...

sasha72
15.10.2007, 13:04
<?
$ok=0;

#include('inc/noflood.php');

include('inc/db_connect.php');
include('time.php');

$now=time();
$ip=GetEnv("REMOTE_ADDR");
$browser=GetEnv("HTTP_USER_AGENT");

SetCookie("user","");
SetCookie("pass","");

unset($user);
unset($pass);

if (@$register) {

// Блокировка таблицы

mysql_query("LOCK TABLES `players` WRITE, `slots` WRITE");
echo mysql_error();

$login=trim($login);
$login=addslashes($login);

if ($login=="" or $conf_pass=="" or $name=="" or $sex=="") $nms.="Вы не заполнили обязательные поля!"; else {

$hinfo=mysql_fetch_array(mysql_query("SELECT id FROM players where user='".$login."'"));
echo mysql_error();


if (!empty($hinfo['id'])) $finded=1; else $finded=0;

if ($finded == 0) {

if (strlen($login)<3) { $nms.="Логин не должен быть короче 3-х символов!\\n"; } else $ok+=1;

$arr[] = chr(32);
for($i = 48; $i != 57; $i++) {
$arr[] = chr($i);
}

for($i = 65; $i != 91; $i++) {
$arr[] = chr($i);
}

for($i = 97; $i != 123; $i++) {
$arr[] = chr($i);
}

for($i = 192; $i != 256; $i++) {
$arr[] = chr($i);
}

for ($i=0; $i<strlen($login); $i++) {
if (!in_array($login[$i],$arr)) { $fb=1; break; }
}

if ($fb == 1) { $nms.="Логин содержит недопустимый символ!\\n"; } else $ok+=1;


if (preg_match("#[A-Za-z]#", $login) && preg_match("#[А-Яа-я]#", $login)) { $nms.="Логин должен состоять либо только из русских букв, либо только из английских!\\n"; } else $ok+=1;

if (is_numeric($login)) { $nms.="Логин не может состоять только из цифр!\\n"; } else $ok+=1;
if ($psw!=$conf_pass) { $nms.="Введённые Вами пароли не совпадают!\\n"; } else $ok+=1;
if ($psw==$conf_pass && strlen($psw)<6) { $nms.="Пароль не должен быть короче 6-и символов!\\n"; } else $ok+=1;
if ($sex!=1 && $sex!=2) { $nms.="Неверно указан пол!\\n"; } else $ok+=1;
if ($rase!=0 && $rase!=0 && $rase!=0 && $rase!=0) { $nms.="Неверно указана раса!\\n"; } else $ok+=1;

if (is_numeric($day) && is_numeric($month) && is_numeric($year)) {
if (($day>0 && $day<32) and ($month>0 && $month<13) and ($year>1949 && $year<2000)) { $ok+=1; }
else $nms.="Неверно указана дата рождения!\\n";
} else $nms.="Неверно указана дата рождения!\\n";

if ($law!=1) { $nms.="Принятие наших законов является обязательным условием!\\n"; } else $ok+=1;

} else $nms.="Персонаж с таким логином уже существует!\\n";

}

// Вставляем в базу
if(empty($ip))
{
if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
else
{
$ip=getenv('REMOTE_ADDR');
}

}
if ($ok>9) {

$max = mysql_fetch_array(mysql_query("SELECT MAX(id) as id FROM players"));
$NEW_USER_ID = $max['id'] + 1;

mysql_query("INSERT INTO slots (id, slots.1) values('".$NEW_USER_ID."','0')");
mysql_query("INSERT INTO players (id, user, pass, name, birth, birthdate, real_city, sex, browser, deviz, ip) values('".$NEW_USER_ID."','".addslashes($login)."',md5('$psw'),'".addslashes($name)."','$day.$month.$year','$this_time','".addslashes($city)."','".addslashes($sex)."','".addslashes($browser)."','".addslashes($deviz)."','$ip')");

$finded = 1;

mysql_query("unlock tables");
// Разблокировка таблицы

header("Location: register.php?page=end&login=$login");
exit;
}
//
mysql_query("unlock tables");
// Разблокировка таблицы

}




if ($page!="end") {


$title='[Регистрация]';
include('inc/html_header.php');
echo"<body bgcolor=EBEDEC>";



echo"<table width=350 border=1 bordercolor=CCCCCC cellspacing=0 cellpadding=3>
<tr>
<td align=center><b style='COLOR: Green'>[Регистрация]</b></td>
</tr>
</table><br>
";


if ($nms!="") echo"<script>alert('Найдены ошибки:\\n$nms');</script>";


echo"<table width=350 border=1 bordercolor=CCCCCC cellspacing=0 cellpadding=3>
<form action='' method=post>

<tr>
<td width=50%>&nbsp;Логин персонажа: (<b style='COLOR: Red'>*</b>)</td><td align=center><input name='login' class=input style='WIDTH: 150px' maxlength=20 value='$login'></td>
</tr>

<tr>
<td>&nbsp;Пароль: (<b style='COLOR: Red'>*</b>)</td><td align=center><input name='psw' type=password class=input style='WIDTH: 150px' maxlength=30 value='$psw'></td>
</tr>

<tr>
<td>&nbsp;Пароль повторно: (<b style='COLOR: Red'>*</b>)</td><td align=center><input name='conf_pass' type=password class=input style='WIDTH: 150px' value='$conf_pass'></td>
</tr>

<tr>
<td>&nbsp;Реальное имя: (<b style='COLOR: Red'>*</b>)</td><td align=center><input name='name' class=input style='WIDTH: 150px' maxlength=11 value='$name'></td>
</tr>

<tr>
<td>&nbsp;Дата рождения: (<b style='COLOR: Red'>*</b>)</td><td align=center>
<select name=day>";
for ($i=1; $i<32; $i++) { echo"<option value=$i"; if ($i==$day) echo" selected"; echo">$i"; }
unset($i);
echo"</select>
<select name=month>";
for ($i=1; $i<13; $i++) { echo"<option value=$i"; if ($i==$month) echo" selected"; echo">$i"; }
unset($i);
echo"</select>
<select name=year>";
for ($i=1950; $i<2000; $i++) { echo"<option value=$i"; if ($i==$year) echo" selected"; echo">$i"; }
unset($i);
echo"</select>
</td>
</tr>

<tr>
<td>&nbsp;Пол: (<b style='COLOR: Red'>*</b>)</td><td align=center><select name=sex style='WIDTH: 85px'><option><option value=1"; if ($sex==1) echo" selected"; echo">Мужской<option value=2"; if ($sex==2) echo" selected"; echo">Женский</select></td>
</tr>

<tr>
<td>&nbsp;Девиз: </td><td align=center><input name='deviz' class=input style='WIDTH: 150px' value='$deviz'></td>
</tr>

<tr>
<td>&nbsp;Город: </td><td align=center><input name='city' class=input style='WIDTH: 150px' maxlength=11 value='$city'></td>
</tr>

<tr>
<td colspan=2><input type=hidden name=law value=0><input type=checkbox name=law value=1"; if ($law == 1) echo " checked"; echo"> Я обязуюсь соблюдать <a href='law.php' target=_blank>законы</a></td>
</tr>


<tr>
<td align=center><input type=submit name=register class=input value='Регистрация' style='WIDTH: 150px'></td>
<td align=center><input type=button class=input value='Закрыть' style='WIDTH: 150px' onclick='window.close();'></td>

</tr>

</form>
</table>
";

}

elseif ($page=="end") {

$inf=mysql_fetch_array(mysql_query("SELECT * FROM players where user='".addslashes($login)."'"));

if ($inf[user]!="") {
if ($inf[active]==0) {

$title='[Регистрация]';
include('inc/html_header.php');

echo"<body bgcolor=EBEDEC>";

echo"<table width=350 border=1 bordercolor=CCCCCC cellspacing=0 cellpadding=3>
<tr>
<td align=center><b style='COLOR: Green'>[Регистрация]</b></td>
</tr>
</table><br>
";

echo"<table width=330 border=1 bordercolor=CCCCCC cellspacing=0 cellpadding=3 height=329><tr><td align=center valign=center>";


echo"Спасибо за регистрацию, <b>$inf[user]</b>!<br>
<br>
<br>
<input type=button value='Войти в игру с главной страницы!' class=input onclick='window.open(\"http://\",\"\",\"width=700,height=400,resizable,location=yes,menuba r=yes,status=yes,toolbar=yes,scrollbars=yes\");'>

";

mysql_query("update players set active=1 where id=$inf[id]");

} else { $title='[Регистрация]';
include('inc/html_header.php');
echo"<body bgcolor=EBEDEC>";



echo"<table width=350 border=1 bordercolor=CCCCCC cellspacing=0 cellpadding=3>
<tr>
<td align=center><b style='COLOR: Green'>[Регистрация]</b></td>
</tr>
</table><br>
";

echo"<center>Аккаунт был активирован ранее!</center>"; }
}

echo"</td></tr></table>";
}


?>

SQLHACK
15.10.2007, 14:22
кстати о птичках, тут инъекция в Http_x_forwarded_for

DIAgen
15.10.2007, 14:36
1) Не переходит так код написан для регистр_глобла=Он...
2) Код написан коряво... честно слово... не люблю линейный код... если сам писал, учись писать нормально
3) В коде много ошибок... которые и не видны на первый вгляд, если хорошо присмотреться то сразу видны, СКЛхак уже указал на одну...

sasha72
15.10.2007, 15:21
код писал не я а тут некто не может выложить нормальный рабочий код ато я в этих делах ничего не понимаю

groundhog
15.10.2007, 15:46
Проблема действительно в директиве register_globals, у тебя на локальном хосте она включена, а на любом нормальном хостинге она выключена. Скрипт надо переписывать по любому...

sasha72
15.10.2007, 15:54
ясн лан буду значит пробывать пекреписать