Регистрация

Discussion in 'PHP' started by sasha72, 15 Oct 2007.

  1. sasha72

    sasha72 Member

    Joined:
    2 Oct 2007
    Messages:
    59
    Likes Received:
    9
    Reputations:
    -6
    Игру сделал всё пашет по локалке а вот по инету нельзя зарегица получается так что я регюсь и после нажатия кнопки регистрация меня обрато перекидывает на страницу регистрации но акк не создаётся что делать как исправить??? :confused:

    Плиззз хелп
     
  2. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Смотри error-log, access-log и referrer-log. Исправить можно всё. А вот что делать при такой формулировке вопроса сказать сложно.
     
  3. sasha72

    sasha72 Member

    Joined:
    2 Oct 2007
    Messages:
    59
    Likes Received:
    9
    Reputations:
    -6
    Ну вот адрес сайта 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
     
  4. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Мне бы код регистрилки глянуть...
     
  5. sasha72

    sasha72 Member

    Joined:
    2 Oct 2007
    Messages:
    59
    Likes Received:
    9
    Reputations:
    -6
    <?
    $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,menubar=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>";
    }


    ?>
     
  6. SQLHACK

    SQLHACK Остались только слоны

    Joined:
    27 Sep 2006
    Messages:
    437
    Likes Received:
    372
    Reputations:
    407
    кстати о птичках, тут инъекция в Http_x_forwarded_for
     
    _________________________
  7. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    374
    Reputations:
    460
    1) Не переходит так код написан для регистр_глобла=Он...
    2) Код написан коряво... честно слово... не люблю линейный код... если сам писал, учись писать нормально
    3) В коде много ошибок... которые и не видны на первый вгляд, если хорошо присмотреться то сразу видны, СКЛхак уже указал на одну...
     
  8. sasha72

    sasha72 Member

    Joined:
    2 Oct 2007
    Messages:
    59
    Likes Received:
    9
    Reputations:
    -6
    код писал не я а тут некто не может выложить нормальный рабочий код ато я в этих делах ничего не понимаю
     
  9. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Проблема действительно в директиве register_globals, у тебя на локальном хосте она включена, а на любом нормальном хостинге она выключена. Скрипт надо переписывать по любому...
     
  10. sasha72

    sasha72 Member

    Joined:
    2 Oct 2007
    Messages:
    59
    Likes Received:
    9
    Reputations:
    -6
    ясн лан буду значит пробывать пекреписать