За последние 24 часа нас посетили 62182 программиста и 1796 роботов. Сейчас ищут 835 программистов ...

Форма ввода текста постоянно пустая(Ошибка)

Тема в разделе "Прочие вопросы по PHP", создана пользователем KasperZzz, 23 фев 2011.

  1. KasperZzz

    KasperZzz Активный пользователь

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Такая проблема.
    Есть чат в котором идет 30 сек обновление.
    И форма ввода текста для отправки сообщения.
    При попытке что то отправить, текст любой длинны, пишет что поле пустое.
    Помимо этого при регистрации есть проверка, введено ли что то в поле Логин или пасс(Так же занят ли логин)...Моментальная проверка.То есть как только переключаешься, чтобы писать в другое поле, сразу выдает ошибку.Ошибка о том что поле не может быть пустым.
    Эти скрипты работают на других серверах отлично...Методом тыка выяснил что проблема в конфигурации сервера...
    Какие параметры могут за это отвечать? Или может надо доп модули?На сервере Стоит гентоо
    Как они сказали на сервер ставилась типовая конфигурация ПО.
    Такое у них уже было... Когда только в первый раз им залил двиг. Они исправили как то...Но после переноса моего сайта на другие сервера, эта ошибка опять появилась... А они то ли забыли как исправить то ли что...Я уже не знаю...
    Не предлагайте мне другие хостинги и тд... Мне надо решить эту проблему...
    Заранее спасибо.
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    ясно видно, что проблема не в хостинге, а в коде.
    тот, кто предлагал сменить хостинг - был не в курсе, либо просто не разбирался в этом вопросе.
     
  3. KasperZzz

    KasperZzz Активный пользователь

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Вы наверно пропустили строчку. Эти скрипты работают на других серверах отлично..
    Хостинг не интернетный!...
    Как такое может быть что на всех кроме этого все замечательно работает?
    Этот хостинг локальный заправляют им внутри сети провайдера какие то умельцы.
    Везде на сайте где используется text/javascript начинаются глюки. Сначала были глюки с кодировкой.
    (То есть везде на сайте было все по русски а там где text/javascript было в квадратах. Если выставить в браузере 1251 все было нормально. )
     
  4. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    KasperZzz
    читал по диагонали, не понял до конца проблему.
    но в любом случае это проблема в коде, а точнее, скорее всего, в установке кодировки.
    тот, кто делал вам код, не подумал о том, что на других хостангах настройки могут отличаться.

    кодировку можно выставить через файл .htaccess, отдавать внутри кода через header или вписать внутрь <meta encoding...
     
  5. KasperZzz

    KasperZzz Активный пользователь

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    =) с кодировкой они разобрались. Проблемы у них были. Через .htaccess как только не пробовал.В итоге когда перенесли на новый сервер с кодировкой проблема решилась сома собой...Но вот появилась проблема с отправкой сообщений...
    И проверкой регистрации.. То есть ввожу в форму текст... а скрипт его почему то не видет...
    Регистрация все ровно происходит...Несмотря на то что сайт говорит что поле пустое...
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    KasperZzz
    ещё раз повторю - код некачественный!

    хорошо написанный код будет работать без всяких танцев с бубнами на большинстве хостингов.
    если хостинг не поддерживает что-то - выдаст ошибку, что работать не будет потому-то и
    потому-то с описанием того, что не поддерживается данным конкретным хостингом.

    если не разбираешься в пхп - прямая дорога во фриланс.
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    нифигаж себе обсуждают код которого нет. или я ослеп на старости лет? (и стихами заговорил, старый гомодрил... ой, нет, плохая рифма!)
     
  8. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    igordata
    развиваем скилл телепата :)
     
  9. KasperZzz

    KasperZzz Активный пользователь

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    =) Никто не попросил...Я в коде уверен на 100% Так как на тысячах машин он проверен.
    Это цмс.
    Вот куски из него
    signup.php Страница регистрации.
    Код (Text):
    1. </form>
    2. <?
    3.     end_frame ();
    4.     stdfoot ();
    5.     die ();
    6. }
    7.  
    8. stdhead ( $tracker_lang ['signup_signup'] );
    9.  
    10. $countries = "<option value=\"0\">" . $tracker_lang ['signup_not_selected'] . "</option>\n";
    11. $ct_r = sql_query ( "SELECT id, name FROM countries ORDER BY name" ) or die () or sqlerr ( __FILE__, __LINE__ );
    12. while ( $ct_a = mysql_fetch_array ( $ct_r ) )
    13.     $countries .= "<option value=\"$ct_a[id]\">$ct_a[name]</option>\n";
    14. begin_frame ( "Регистрационная форма", "100", true );
    15. ?>
    16. <span style="color: red; font-weight: bold;"><?=$tracker_lang ['signup_use_cookies'];?></span>
    17. <?
    18. print ( ($use_captcha && $type_captcha ? '<br/><span style="color: red; font-weight: bold;">' . $tracker_lang ['signup_use_javascript'] . '</span>' : "") );
    19. if ($deny_signup && $allow_invite_signup)
    20.     stdmsg ( "Внимание", "Регистрация доступна только тем у кого есть код приглашения!" );
    21. ?>
    22.  
    23. <p>
    24. <form method="post" action="takesignup.php" name='signup'>
    25. <table border="1" cellspacing=0 cellpadding="10">
    26.     <tr>
    27.         <td align="right" class="heading"><?=$tracker_lang ['signup_username'];?></td>
    28.         <td align=left><input type="text" size="40" name="wantusername"
    29.             onblur="check_areas('uname', name, value)" />
    30.         <div id='areas_uname'></div>
    31.         </td>
    32.     </tr>
    33.     <tr>
    34.         <td align="right" class="heading"><?=$tracker_lang ['signup_password'];?></td>
    35.         <td align=left><input type="password" size="40" name="wantpassword"
    36.             onblur="javascript: check_areas('pass', name, value); if (document.signup.passagain.value!=''){check_areas('passag', 'passagain', document.signup.passagain.value, 'wantpassword', document.signup.wantpassword.value);}" /><span
    37.             id='areas_pass'></span> <input type='button'
    38.             onclick='javascript: rand_pass();'
    39.             value='Генерация случайного пароля'>
    40.         <div id='up_pass'></div>
    41.         </td>
    42.     </tr>
    43.     <tr>
    44.         <td align="right" class="heading"><?=$tracker_lang ['signup_password_again'];?></td>
    45.         <td align=left><input type="password" size="40" name="passagain"
    46.             onblur="check_areas('passag', name, value, 'wantpassword', document.signup.wantpassword.value)" />
    47.         <div id='areas_passag'></div>
    48.         </td>
    49.     </tr>
    50.     <tr valign=top>
    51.         <td align="right" class="heading"><?=$tracker_lang ['signup_email'];?></td>
    52.         <td align=left><input type="text" size="40" name="email"
    53.             onblur="check_areas('email', name, value)" />
    54.         <table width=250 border=0 cellspacing=0 cellpadding=0>
    55.             <tr>
    56.                 <td class=embedded><font class=small><?=$tracker_lang ['signup_email_must_be_valid'];?></font></td>
    57.             </tr>
    58.         </table>
    59.         <div id='areas_email'></div>
    60.         </td>
    61.     </tr>
    62.     <tr>
    63.         <td align="right" class="heading"><?=$tracker_lang ['signup_gender'];?></td>
    64.         <td align=left><input type=radio name=gender value=1
    65.             onblur="check_areas('gender', name, value)"><?=$tracker_lang ['signup_male'];?><input
    66.             type=radio name=gender onblur="check_areas('gender', name, value)"
    67.             value=2><?=$tracker_lang ['signup_female'];?><div id='areas_gender'></div>
    68.         </td>
    69.     </tr>
    signup_aj.php
    Код (Text):
    1. if ((empty ( $wantusername ) && $type == 'uname') || (empty ( $wantpassword ) && $type == 'pass') || (empty ( $passagain ) && $type == 'passag') || (empty ( $email ) && $type == 'email') || (empty ( $gender ) && $type == 'gender') || (empty ( $country ) && $type == 'country'))
    2.     bark ( "Поле не может быть пустым." );
    Могу показать полный код.
    Просто тут спойлера нет.
     
  10. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    KasperZzz
    тут что-то очень странное. у меня складывается впечатление,
    что код написан древне-древне с использованием register_globals.

    попробуй в корне сайта в файл .htaccess добавить строчку
    php_flag register_globals on
     
  11. KasperZzz

    KasperZzz Активный пользователь

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Не помогло... Сайт наоборот после этого выдал...
    "Отключите параметр register_globals в php.ini"
     
  12. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    KasperZzz
    тогда показывай код, потому что конструкция

    вызывает странное подозрение
     
  13. KasperZzz

    KasperZzz Активный пользователь

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Signup.php

    PHP:
    1. <?
    2.  
    3. /// Random password ///
    4. if (isset ( $_POST ['up_pass'] )) {
    5.     define ( 'IN_TRACKER', true );
    6.     require_once ("./include/functions.php");
    7.     $curpass = random_stirng ();
    8.     @header ( "Content-Type: text/html; charset=Windows-1251" );
    9.     $curpass = 'Случайный пароль:&nbsp;' . $curpass . '<br /><input type=\'button\'
    10.             onclick=\'javascript: set_pass("' . $curpass . '");\'
    11.             value=\'Вставить пароль\'>';
    12.     die ( $curpass );
    13. }
    14. require_once ("./include/bittorrent.php");
    15. global $use_captcha, $type_captcha, $pic_base_url;
    16. /// Update Cacptcha ///
    17. ?>
    18. <div id="loading-layer"
    19.     style="display: none; font-family: Verdana; font-size: 11px; width: 200px; height: 50px; background: #FFF; padding: 10px; text-align: center; border: 1px solid #000">
    20. <div style="font-weight: bold" id="loading-layer-text">Загрузка.
    21. Подождите пожалуйста...</div>
    22. <br />
    23. <img src="<?=$pic_base_url?>loading.gif" border="0" /></div>
    24. <script type="text/javascript">
    25. function update_captcha() {
    26. document.signup.imagestring.value='';
    27. var Captcha = document.getElementById('areas_captcha');
    28. Captcha.text = '';
    29. $.post("signup.php", {"up_captcha": true}, function(data){
    30.     $("#up_captcha").hide();
    31.    $("#up_captcha").empty();
    32.    $("#up_captcha").append(data);
    33.    $("#up_captcha").slideToggle('medium');
    34. }, 'html');
    35. }
    36. function rand_pass() {
    37. $.post("signup.php", {"up_pass": true}, function(data){
    38.     $("#up_pass").hide();
    39.    $("#up_pass").empty();
    40.    $("#up_pass").append(data);
    41.    $("#up_pass").slideToggle('medium');
    42. }, 'html');
    43. }
    44. function set_pass(pass) {
    45. document.signup.wantpassword.value = pass;
    46. document.signup.passagain.value = pass;
    47. check_areas('pass', 'wantpassword', document.signup.wantpassword.value);
    48. check_areas('passag', 'passagain', document.signup.passagain.value, 'wantpassword', document.signup.wantpassword.value);
    49. }
    50. function check_areas(type, name, value, name2, value2) {
    51. $.post("ajax/signup_aj.php", {"type": type, 'rname': name, 'rname2': name2, 'name': value, 'name2': value2}, function(data){
    52.     $("#areas_"+type).hide();
    53.    $("#areas_"+type).empty();
    54.    $("#areas_"+type).append(data);
    55.    $("#areas_"+type).slideToggle('medium');
    56. }, 'html');
    57. }
    58. function create_date() {
    59. d = document.signup;
    60. if (d.year.value!='0000' && d.day.value!='00' && d.month.value!='00' && !d.date.value) {
    61. d.date.value = d.year.value + '.' + d.month.value + '.' + d.day.value;
    62. check_areas('date', 'date', d.date.value);
    63. }
    64. if (d.date.value) {
    65. d.date.value = d.year.value + '.' + d.month.value + '.' + d.day.value;
    66. check_areas('date', 'date', d.date.value);
    67. }
    68. }
    69. </script>
    70. <?
    71. /// Update Cacptcha ///
    72. if ($use_captcha && $_POST ['up_captcha'] && ! $type_captcha) {
    73.     dbconn ( false, true );
    74.     include_once ("./include/captcha.php");
    75.     $hash = create_captcha ();
    76.     print ( "<img src=\"captcha.php?imagehash=$hash\" alt=\"Captcha\" /><input type=\"hidden\" name=\"imagehash\" value=\"$hash\" />" );
    77.     die ();
    78. }
    79. dbconn ();
    80. if ($deny_signup && ! $allow_invite_signup)
    81.     stderr ( $tracker_lang ['error'], "Извините, но регистрация отключена администрацией." );
    82.  
    83. if ($CURUSER)
    84.     stderr ( $tracker_lang ['error'], sprintf ( $tracker_lang ['signup_already_registered'], $SITENAME ) );
    85.  
    86. list ( $users ) = mysql_fetch_array ( sql_query ( "SELECT COUNT(id) FROM users" ) );
    87. if ($users >= $maxusers)
    88.     stderr ( $tracker_lang ['error'], sprintf ( $tracker_lang ['signup_users_limit'], number_format ( $maxusers ) ) );
    89.  
    90. if ($_POST ["agree"] != "yes") {
    91.     stdhead ( "Правила трекера" );
    92.     begin_frame ( "Правила трекера", "100", true );
    93.     ?>
    94. <form method="post" action="<?=$PHP_SELF?>">
    95. <div style="width: 80%" align="center">
    96. <fieldset class="fieldset">
    97. <table cellpadding="4" cellspacing="0" border="0" style="width: 100%"
    98.     class="tableinborder">
    99.     <tr>
    100.         <td class="tablea">Для продолжения регистрации, Вы должны согласиться
    101.         со следующими правилами:</td>
    102.     </tr>
    103.     <tr>
    104.         <td class="tablea"
    105.             style="font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif">
    106.         <div class="page"
    107.             style="border-right: thin inset; padding-right: 6px; border-top: thin inset; padding-left: 6px; padding-bottom: 6px; overflow: auto; border-left: thin inset; padding-top: 1px; border-bottom: thin inset; height: 250px">
    108.         <p><strong>Правила трекера</strong></p>
    109.         <p>Регистрация абсолютно бесплатна! Настоятельно
    110.         рекомендуем ознакомиться с правилами нашего проекта. Если вы согласны
    111.         со всеми условиями, поставьте галочку рядом с 'Я согласен' и нажмите
    112.         'Регистрация'. Если вы передумали регистрироваться, нажмите <a
    113.             href="<?=$DEFAULTBASEURL;?>">здесь</a>, чтобы вернуться на главную
    114.         страницу.</p>
    115.         <p>Хотя модераторы и администраторы, обслуживающие <?=$SITENAME;?>, стараются удалять все оскорбительные и некорректные
    116. сообщения из трекера, все равно все сообщения просмотреть невозможно. Сообщения отражают точку зрения только
    117. автора, но не администрации трекера, соответственно только автор несет ответственность за содержание сообщения.</p>
    118.         <p>Соглашаясь с нашими правилами, вы обязуетесь выполнять требования
    119.         трекера в целом, а также требования законодательства РФ.</p>
    120.         <p>Администрация трекера оставляет за собой право удалять, изменять,
    121.         переносить или закрывать любую тему или сообщение по своему
    122.         усмотрению.</p>
    123.         </div>
    124.         </td>
    125.     </tr>
    126.     <tr>
    127.         <td class="tablea">
    128.         <div><label> <input class="tablea" type="checkbox" name="agree"
    129.             value="yes"> <input type="hidden" name="do" value="register"> <strong>Я согласен исполнять установленные правила, посещая <?=$SITENAME;?>.</strong>
    130.         </label></div>
    131.         </td>
    132.     </tr>
    133. </table>
    134. </fieldset>
    135. <p>
    136.  
    137.  
    138. <center><input class="tableinborder" type="submit" value="Регистрация">
    139. </center>
    140.  
    141. </form>
    142. <?
    143.     end_frame ();
    144.     stdfoot ();
    145.     die ();
    146. }
    147.  
    148. stdhead ( $tracker_lang ['signup_signup'] );
    149.  
    150. $countries = "<option value=\"0\">" . $tracker_lang ['signup_not_selected'] . "</option>\n";
    151. $ct_r = sql_query ( "SELECT id, name FROM countries ORDER BY name" ) or die () or sqlerr ( __FILE__, __LINE__ );
    152. while ( $ct_a = mysql_fetch_array ( $ct_r ) )
    153.     $countries .= "<option value=\"$ct_a[id]\">$ct_a[name]</option>\n";
    154. begin_frame ( "Регистрационная форма", "100", true );
    155. ?>
    156. <span style="color: red; font-weight: bold;"><?=$tracker_lang ['signup_use_cookies'];?></span>
    157. <?
    158. print ( ($use_captcha && $type_captcha ? '<br/><span style="color: red; font-weight: bold;">' . $tracker_lang ['signup_use_javascript'] . '</span>' : "") );
    159. if ($deny_signup && $allow_invite_signup)
    160.     stdmsg ( "Внимание", "Регистрация доступна только тем у кого есть код приглашения!" );
    161. ?>
    162.  
    163. <p>
    164. <form method="post" action="takesignup.php" name='signup'>
    165. <table border="1" cellspacing=0 cellpadding="10">
    166.     <tr>
    167.         <td align="right" class="heading"><?=$tracker_lang ['signup_username'];?></td>
    168.         <td align=left><input type="text" size="40" name="wantusername" onblur="check_areas('uname', name, value)" />
    169.         <div id='areas_uname'></div>
    170.         </td>
    171.     </tr>
    172.     <tr>
    173.         <td align="right" class="heading"><?=$tracker_lang ['signup_password'];?></td>
    174.         <td align=left><input type="password" size="40" name="wantpassword" onblur="javascript: check_areas('pass', name, value); if (document.signup.passagain.value!=''){check_areas('passag', 'passagain', document.signup.passagain.value, 'wantpassword', document.signup.wantpassword.value);}" /><span id='areas_pass'></span>
    175.             <input type='button' onclick='javascript: rand_pass();' value='Генерация случайного пароля'>
    176.         <div id='up_pass'></div>
    177.         </td>
    178.     </tr>
    179.     <tr>
    180.         <td align="right" class="heading"><?=$tracker_lang ['signup_password_again'];?></td>
    181.         <td align=left><input type="password" size="40" name="passagain" onblur="check_areas('passag', name, value, 'wantpassword', document.signup.wantpassword.value)" />
    182.         <div id='areas_passag'></div>
    183.         </td>
    184.     </tr>
    185.     <tr valign=top>
    186.         <td align="right" class="heading"><?=$tracker_lang ['signup_email'];?></td>
    187.         <td align=left><input type="text" size="40" name="email" onblur="check_areas('email', name, value)" />
    188.         <table width=250 border=0 cellspacing=0 cellpadding=0>
    189.             <tr>
    190.                 <td class=embedded><font class=small><?=$tracker_lang ['signup_email_must_be_valid'];?></font></td>
    191.             </tr>
    192.         </table>
    193.         <div id='areas_email'></div>
    194.         </td>
    195.     </tr>
    196.     <tr>
    197.         <td align="right" class="heading"><?=$tracker_lang ['signup_gender'];?></td>
    198.         <td align=left><input type=radio name=gender value=1
    199.             onblur="check_areas('gender', name, value)"><?=$tracker_lang ['signup_male'];?><input
    200.             type=radio name=gender onblur="check_areas('gender', name, value)"
    201.             value=2><?=$tracker_lang ['signup_female'];?><div id='areas_gender'></div>
    202.         </td>
    203.     </tr>
    204. <?
    205. $year .= "<select name=year onblur='create_date();'><option value=\"0000\">" . $tracker_lang ['my_year'] . "</option>\n";
    206. $i = date ( 'Y', time () ) - 80; // 80-летние старики тоже сидят на трекерах :-D
    207. while ( $i <= (date ( 'Y', time () ) - 13) ) {
    208.     $year .= "<option value=" . $i . ">" . $i . "</option>\n";
    209.     $i ++;
    210. }
    211. $year .= "</select>\n";
    212. $birthmonths = array ("01" => $tracker_lang ['my_months_january'], "02" => $tracker_lang ['my_months_february'], "03" => $tracker_lang ['my_months_march'], "04" => $tracker_lang ['my_months_april'], "05" => $tracker_lang ['my_months_may'], "06" => $tracker_lang ['my_months_june'], "07" => $tracker_lang ['my_months_jule'], "08" => $tracker_lang ['my_months_august'], "09" => $tracker_lang ['my_months_september'], "10" => $tracker_lang ['my_months_october'], "11" => $tracker_lang ['my_months_november'], "12" => $tracker_lang ['my_months_december'] );
    213. $month = "<select name=\"month\" onblur='create_date();'><option value=\"00\">" . $tracker_lang ['my_month'] . "</option>\n";
    214. foreach ( $birthmonths as $month_no => $show_month ) {
    215.     $month .= "<option value=$month_no>$show_month</option>\n";
    216. }
    217. $month .= "</select>\n";
    218. $day .= "<select name=day onblur='create_date();'><option value=\"00\">" . $tracker_lang ['my_day'] . "</option>\n";
    219. $i = 1;
    220. while ( $i <= 31 ) {
    221.     if ($i < 10) {
    222.         $day .= "<option value=0" . $i . ">0" . $i . "</option>\n";
    223.     } else {
    224.         $day .= "<option value=" . $i . ">" . $i . "</option>\n";
    225.     }
    226.     $i ++;
    227. }
    228. $day .= "</select>\n";
    229. tr ( $tracker_lang ['my_birthdate'], $year . $month . $day . "<div id='areas_date'></div>", 1 );
    230. tr ( $tracker_lang ['my_country'], "<select name=country onblur=\"check_areas('country', name, value)\">\n$countries\n</select><div id='areas_country'></div>", 1 );
    231. tr ( $tracker_lang ['signup_contact'], "<table cellSpacing=\"3\" cellPadding=\"0\" width=\"100%\" border=\"0\">
    232.      <tr>
    233.        <td style=\"font-size: 11px; font-style: normal; border: none; font-variant: normal; font-weight: normal; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif\">
    234.        " . $tracker_lang ['my_contact_icq'] . "<br />
    235.        <img alt src=pic/contact/icq.gif width=\"17\" height=\"17\">
    236.        <input maxLength=\"30\" size=\"25\" name=\"icq\" onblur=\"check_areas('icq', name, value)\">&nbsp;&nbsp;<div id='areas_icq'></div></td>
    237.        <td style=\"font-size: 11px; font-style: normal; border: none; font-variant: normal; font-weight: normal; font-family: verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif\">
    238.        " . $tracker_lang ['my_contact_skype'] . "<br />
    239.        <img alt src=pic/contact/skype.gif width=\"17\" height=\"17\">
    240.        <input maxLength=\"32\" size=\"25\" name=\"skype\" onblur=\"check_areas('skype', name, value)\"><div id='areas_skype'></div></td></tr></table>", 1 );
    241. if ($use_captcha && ! $type_captcha) {
    242.     print ( "<tr><td style='border: 0px;'><b>Код подтверждения</b></td><td><input type=\"text\" name=\"imagestring\" size=\"20\" value=\"\" onblur=\"check_areas('captcha', name, value, 'imagehash', document.signup.imagehash.value)\" /><p>Пожалуйста, введите текст изображенный на картинке внизу.<br />Этот процесс предотвращает автоматическую регистрацию.</p><a ondblclick='update_captcha();'><div id='up_captcha'>" );
    243.     include_once ("./include/captcha.php");
    244.     $hash = create_captcha ();
    245.     print ( "<img src=\"captcha.php?imagehash=$hash\" alt=\"Captcha\" /><input type=\"hidden\" name=\"imagehash\" value=\"$hash\" />" );
    246.     print ( "</div></a>*Кликните два раза по картинке, чтобы её обновить<br /><font color=\"red\">Код чувствителен к регистру</font><div id='areas_captcha'></div></td></tr>" );
    247. } elseif ($use_captcha && $type_captcha) {
    248.     include './include/recaptcha/recapthca_lib.php';
    249.     $rl = new recapthca_lib ( );
    250.     $rl->public_key = $public_key;
    251.     $rl->private_key = $private_key;
    252.     if ($rl->first_run ()) {
    253.         tr ( 'Код подтверждения', '<script type="text/javascript" src="' . $rl->server . '"></script>', 1 );
    254.     } else
    255.         tr ( 'Код подтвержения', 'Невозможно запустить reCaptcha! Проверьте настройки $public_key и $private_key! Невозможно открыть сокеты!' );
    256. }
    257. if ($allow_invite_signup) {
    258.     tr ( "Код приглашения", "<p>Если у вас есть код приглашения от пригласившего то введите его ниже.</p><input type=\"text\" name=\"invite\" maxlength=\"32\" size=\"32\" />", 1 );
    259. }
    260.  
    261. ?>
    262. <tr>
    263.         <td align="right" class="heading"></td>
    264.         <td align="left"><input type="checkbox" name="rulesverify" value="yes"> <?=$tracker_lang ['signup_i_have_read_rules'];?><br />
    265.         <input type="checkbox" name="faqverify" value="yes"> <?=$tracker_lang ['signup_i_will_read_faq'];?><br />
    266.         <input type="hidden" name="date"> <input type="checkbox"
    267.             name="ageverify" value="yes"> <?=$tracker_lang ['signup_i_am_13_years_old_or_more'];?></td>
    268.     </tr>
    269.     <tr>
    270.         <td colspan="2" align="center" style='border: 0px;'><input
    271.             type="submit" value="<?=$tracker_lang ['signup_signup'];?>"
    272.             style='height: 25px'></td>
    273.     </tr>
    274. </table>
    275. </form>
    276. <?
    277. end_frame ();
    278. stdfoot ();
    279.  
    280. ?>
    takesignup.php

    PHP:
    1.  
    2. <?
    3.  
    4. require_once ("include/bittorrent.php");
    5. dbconn ();
    6.  
    7. if ($deny_signup && ! $allow_invite_signup)
    8.     stderr ( $tracker_lang ['error'], "Извините, но регистрация отключена администрацией." );
    9.  
    10. if ($CURUSER)
    11.     stderr ( $tracker_lang ['error'], sprintf ( $tracker_lang ['signup_already_registered'], $SITENAME ) );
    12.  
    13. $users = get_row_count ( "users" );
    14. if ($users >= $maxusers)
    15.     stderr ( $tracker_lang ['error'], sprintf ( $tracker_lang ['signup_users_limit'], number_format ( $maxusers ) ) );
    16.  
    17. if (! mkglobal ( "wantusername:wantpassword:passagain:email" ))
    18.     stderr ( $tracker_lang ['error'], "Прямой доступ к этому файлу не разрешен." );
    19.  
    20. if ($allow_invite_signup) {
    21.     if (empty ( $_POST ["invite"] ) && $deny_signup)
    22.         stderr ( "Ошибка", "Для регистрации вам нужно ввести код приглашения!" );
    23.     elseif ($deny_signup) {
    24.         if (strlen ( $_POST ["invite"] ) != 32)
    25.             stderr ( "Ошибка", "Вы ввели не правильный код приглашения." );
    26.         list ( $inviter ) = mysql_fetch_row ( sql_query ( "SELECT inviter FROM invites WHERE invite = " . sqlesc ( $_POST ["invite"] ) ) );
    27.         if (! $inviter)
    28.             stderr ( "Ошибка", "Код приглашения введенный вами не рабочий." );
    29.         if ($deny_signup && ! $inviter)
    30.             stderr ( "Ошибка", "Для регистрации вам нужно ввести код приглашения!" );
    31.         list ( $invitedroot ) = mysql_fetch_row ( sql_query ( "SELECT invitedroot FROM users WHERE id = $inviter" ) );
    32.     }
    33. }
    34.  
    35. function bark($msg) {
    36.     global $tracker_lang;
    37.     stdhead ();
    38.     stdmsg ( $tracker_lang ['error'], $msg, 'error' );
    39.     stdfoot ();
    40.     exit ();
    41. }
    42.  
    43. function validusername($username) {
    44.     if ($username == "")
    45.         return false;
    46.        
    47.     // The following characters are allowed in user names
    48.     $allowedchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_" . "абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
    49.    
    50.     for($i = 0; $i < strlen ( $username ); ++ $i)
    51.         if (strpos ( $allowedchars, $username [$i] ) === false)
    52.             return false;
    53.    
    54.     return true;
    55. }
    56. global $SITEEMAIL;
    57. $gender = $_POST ["gender"];
    58. $website = $_POST ["website"];
    59. $country = $_POST ["country"];
    60. $year = $_POST ["year"];
    61. $month = $_POST ["month"];
    62. $day = $_POST ["day"];
    63. setcookie ( "uid", "", 0x7fffffff, "/" );
    64. setcookie ( "pass", "", 0x7fffffff, "/" );
    65. $icq = unesc ( $_POST ["icq"] );
    66. if (strlen ( $icq ) > 10)
    67.     bark ( "Жаль, Номер icq слишком длинный  (Макс - 10)" );
    68.  
    69. $skype = unesc ( $_POST ["skype"] );
    70. if (strlen ( $skype ) > 20)
    71.     bark ( "Жаль, Ваш skype слишком длинный  (Макс - 20)" );
    72.  
    73. if (empty ( $wantusername ) || empty ( $wantpassword ) || empty ( $email ) || empty ( $gender ) || empty ( $country ))
    74.     bark ( "Все поля обязательны для заполнения." );
    75.  
    76. if (strlen ( $wantusername ) < 4)
    77.     bark ( "Извините, имя пользователя слишком короткое (минимум 4 символа)" );
    78.  
    79. if (strlen ( $wantusername ) > 12)
    80.     bark ( "Извините, имя пользователя слишком длинное (максимум 12 символов)" );
    81.  
    82. if ($wantpassword != $passagain)
    83.     bark ( "Пароли не совпадают! Похоже вы ошиблись. Попробуйте еще." );
    84.  
    85. if (strlen ( $wantpassword ) < 6)
    86.     bark ( "Извините, пароль слишком коротки (минимум 6 символов)" );
    87.  
    88. if (strlen ( $wantpassword ) > 40)
    89.     bark ( "Извините, пароль слишком длинный (максимум 40 символов)" );
    90.  
    91. if ($wantpassword == $wantusername)
    92.     bark ( "Извините, пароль не может быть такой-же как имя пользователя." );
    93.  
    94. if (! validemail ( $email ))
    95.     bark ( "Это не похоже на реальный email адрес." );
    96.  
    97. if (! validusername ( $wantusername ))
    98.     bark ( "Неверное имя пользователя." );
    99. if (! check_email ( $email ))
    100.     bark ( "Этот E-Mail адрес заблокирован на сайте." );
    101. if ($year == '0000' || $month == '00' || $day == '00')
    102.     stderr ( $tracker_lang ['error'], "Похоже вы указали неверную дату рождения" );
    103. $birthday = date ( "$year.$month.$day" );
    104.  
    105. // make sure user agrees to everything...
    106. if ($_POST ["rulesverify"] != "yes" || $_POST ["faqverify"] != "yes" || $_POST ["ageverify"] != "yes")
    107.     stderr ( $tracker_lang ['error'], "Извините, вы не подходите для того что-бы стать членом этого сайта.Так как вы не согласились с нашими правилами!
    108. <b><BR>Я прочитал(а) правила.<BR>
    109. Я буду читать ЧаВо прежде чем задавать вопросы.<BR>
    110. Мне 13 лет или больше.</b>" );
    111.    
    112. // check if email addy is already in use
    113. $a = (@mysql_fetch_row ( @sql_query ( "SELECT COUNT(*) FROM users WHERE email=" . sqlesc ( $email ) ) )) or sqlerr ( __FILE__, __LINE__ );
    114. if ($a [0] != 0)
    115.     bark ( "E-mail адрес $email уже зарегистрирован в системе." );
    116.  
    117. if ($use_captcha && ! $type_captcha) {
    118.     $b = get_row_count ( "captcha", "WHERE imagehash = " . sqlesc ( $_POST ["imagehash"] ) . " AND imagestring = " . sqlesc ( $_POST ["imagestring"] ) );
    119.     sql_query ( "DELETE FROM captcha WHERE imagehash = " . sqlesc ( $_POST ["imagehash"] ) ) or sqlerr ( __FILE__, __LINE__ );
    120.     if ($b == 0)
    121.         bark ( "Вы ввели неправильный код подтверждения." );
    122. } elseif ($use_captcha && $type_captcha) {
    123.     include './include/recaptcha/recapthca_lib.php';
    124.     $rl = new recapthca_lib ( );
    125.     $rl->public_key = $public_key;
    126.     $rl->private_key = $private_key;
    127.     if (! $rl->check_answer ())
    128.         bark ( "Вы ввели неправильный код подтверждения." );
    129. }
    130. $ip = getip ();
    131. global $no_proxy, $no_double_ip;
    132. $scanproxy = $_SERVER ['HTTP_X_FORWARDED_FOR'] . $_SERVER ['HTTP_VIA'];
    133. if (! empty ( $scanproxy ) && $no_proxy)
    134.     bark ( "Регистраация с прокси запрещена." );
    135. if ($no_double_ip) {
    136.     $ips = sql_query ( "SELECT COUNT(*) FROM users WHERE ip=" . sqlesc ( $ip ) . " LIMIT 1" ) or sqlerr ( __FILE__, __LINE__ );
    137.     $ipsr = mysql_fetch_array ( $ips );
    138.     if ($ipsr [0])
    139.         bark ( "Пользователь с таким IP уже зарегистрирован!" );
    140. }
    141. if (isset ( $_COOKIE ["uid"] ) && is_numeric ( $_COOKIE ["uid"] ) && $users) {
    142.     $cid = intval ( $_COOKIE ["uid"] );
    143.     $c = sql_query ( "SELECT enabled FROM users WHERE id = $cid ORDER BY id DESC LIMIT 1" ) or sqlerr ( __FILE__, __LINE__ );
    144.     $co = @mysql_fetch_row ( $c );
    145.     if ($co [0] == 'no') {
    146.         sql_query ( "UPDATE users SET ip = " . sqlesc ( $ip ) . ", last_access = NOW() WHERE id = $cid" ) or sqlerr ( __FILE__, __LINE__ );
    147.         bark ( "Ваш IP забанен на этом трекере. Регистрация невозможна." );
    148.     } else
    149.         bark ( "Регистрация невозможна!" );
    150. } else {
    151.     $b = @mysql_fetch_row ( @sql_query ( "SELECT enabled, id FROM users WHERE ip LIKE " . sqlesc ( $ip ) . " ORDER BY last_access DESC LIMIT 1" ) );
    152.     if ($b [0] == 'no') {
    153.         $banned_id = $b [1];
    154.         setcookie ( "uid", $banned_id, "0x7fffffff", "/" );
    155.         bark ( "Ваш IP забанен на этом трекере. Регистрация невозможна." );
    156.     }
    157. }
    158.  
    159. $secret = mksecret ();
    160. $wantpasshash = md5 ( $secret . $wantpassword . $secret );
    161. $editsecret = (! $users ? "" : mksecret ());
    162.  
    163. if ((! $users) || (! $use_email_act == true))
    164.     $status = 'confirmed';
    165. else
    166.     $status = 'pending';
    167. global $startup;
    168. if (! $inviter)
    169.     $inviter = 0;
    170. if (! $invitedroot)
    171.     $invitedroot = 0;
    172. global $ALLGROUPS;
    173. foreach ( $ALLGROUPS as $id => $group )
    174.     if ($group ['default'] && $users) {
    175.         $default = $id;
    176.         break;
    177.     } elseif ($group ['system'] && ! $users) {
    178.         $default = $id;
    179.         break;
    180.     }
    181.     // FORUM INTEGRATION MOD //
    182. if ($forum_integrated) {
    183.     $res = sql_query ( 'SELECT name FROM countries WHERE id=' . sqlesc ( $country ) ) or sqlerr ( __FILE__, __LINE__ );
    184.     $row = mysql_fetch_array ( $res );
    185.     $country_name = $row ['name'];
    186.     FORUM_createuser ( $wantusername, $wantpassword, $email, $birthday, $icq, $country_name );
    187. }
    188. $stylesheet = sql_query ( "SELECT id FROM stylesheets WHERE uri=" . sqlesc ( $default_theme ) ) or sqlerr ( __FILE__ . __LINE__ );
    189. $stylesheet = mysql_fetch_array ( $stylesheet );
    190. $stylesheet = $stylesheet ['id'];
    191. // FORUM INTEGRATION MOD //
    192. $ret = sql_query ( "INSERT INTO users (username, passhash, secret, editsecret, gender, country, icq, skype, email, uploaded, status, stylesheet, `group`, added, birthday, invitedby, invitedroot) VALUES (" . implode ( ",", array_map ( "sqlesc", array (
    193.     $wantusername,
    194.     $wantpasshash,
    195.     $secret,
    196.     $editsecret,
    197.     $gender,
    198.     $country,
    199.     $icq,
    200.     $skype,
    201.     $email,
    202.     $startup,
    203.     $status,
    204.     $stylesheet ) ) ) . ", '" . $default . "', " . "'" . get_date_time () . "', " . sqlesc ( $birthday ) . ", " . sqlesc ( $inviter ) . ", " . sqlesc ( $invitedroot ) . ")" ) or (mysql_errno () != 1062 ? sqlerr ( __FILE__, __LINE__, 1 ) : "");
    205. if (! $ret) {
    206.     if (mysql_errno () == 1062)
    207.         bark ( "Пользователь $wantusername уже зарегистрирован!" );
    208. }
    209.  
    210. $id = mysql_insert_id ();
    211.  
    212. sql_query ( "DELETE FROM invites WHERE invite = " . sqlesc ( $_POST ["invite"] ) ) or sqlerr ( __FILE__, __LINE__ );
    213.  
    214. write_log ( "Зарегистрирован новый пользователь $wantusername", "FFFFFF", "tracker" );
    215.  
    216. $psecret = md5 ( $editsecret );
    217.  
    218. $body = <<<EOD
    219. Вы зарегистрировались на $SITENAME и указали этот адрес как обрытный ($email).
    220.  
    221. Если это были не вы, пожалуста проигнорируйте это письмо. Персона которая ввела ваш E-Mail адресс имеет IP адрес {$_SERVER["REMOTE_ADDR"]}. Пожалуста, не отвечайте.
    222.  
    223. Для подтверждения вашей регистрации, вам нужно пройти по следующей ссылке:
    224.  
    225. $DEFAULTBASEURL/confirm.php?id=$id&secret=$psecret
    226.  
    227. После того как вы это сделаете, вы сможете использовать ваш аккаунт. Если вы этого не сделаете,
    228.  ваш новый аккаунт будет удален через пару дней. Мы рекомендуем вам прочитать правила
    229. и ЧаВо прежде чем вы начнете использовать $SITENAME.
    230. EOD;
    231.  
    232. if ($use_email_act && $users) {
    233.     if (! @sent_mail ( $email, $SITENAME, $SITEEMAIL, "Подтверждение регистрации на $SITENAME", $body, false )) {
    234.         stderr ( $tracker_lang ['error'], "Невозможно отправить E-Mail. Попробуйте позже" );
    235.     }
    236. } else {
    237.     // FORUM INTEGRATION MOD //
    238.     FORUM_loginuser ( $username );
    239.     // FORUM INTEGRATION MOD //
    240.     logincookie ( $id, $wantpasshash );
    241. }
    242. location ( "ok.php?type=" . (! $users ? "sysop" : ("signup&email=" . urlencode ( $email ))) );
    243.  
    244. ?>
    245.  
    signup_aj.php

    PHP:
    1.  
    2. <?php
    3.  
    4. require "../include/bittorrent.php";
    5. dbconn ( false, true, true );
    6. @header ( "Content-Type: text/html; charset=Windows-1251" );
    7. global $tracker_lang, $pic_base_url;
    8. $users = get_row_count ( "users" );
    9. $type = $_POST ['type'];
    10. $_POST [$_POST ['rname']] = $_POST ['name'];
    11. $_POST [$_POST ['rname2']] = $_POST ['name2'];
    12. function bark($msg) {
    13.     global $pic_base_url;
    14.     ?><table class='signup_err_ajax'>
    15.     <tr>
    16.         <td style='border: 0px;'>&nbsp;<img src='<?=$pic_base_url?>err.png'>&nbsp;</td>
    17.         <td style='border: 0px;'><font color='white'>Ошибка:&nbsp;&nbsp;<?=$msg?></font></td>
    18.     </tr>
    19. </table><?
    20.     die ();
    21. }
    22. function success() {
    23.     global $pic_base_url;
    24.     ?><table class='signup_succ_ajax'>
    25.     <tr>
    26.         <td style='border: 0px;'>&nbsp;<img src='<?=$pic_base_url?>succ.png'>&nbsp;</td>
    27.         <td style='border: 0px;'><font color='black'>Успешно,&nbsp;&nbsp;можно
    28.         заполнять следующее поле</font></td>
    29.     </tr>
    30. </table><?
    31.     die ();
    32. }
    33. function succ_to_check($strenght) {
    34.     global $pic_base_url;
    35.     print ( "&nbsp;" );
    36.     for($i = 0; $i <= $strenght; $i ++)
    37.         print ( "<img src='" . $pic_base_url . "ps.gif'>" );
    38.     print ( "<br /><br />" );
    39.     //die ();
    40. }
    41. function validusername($username) {
    42.     if ($username == "")
    43.         return false;
    44.        
    45.     // The following characters are allowed in user names
    46.     $allowedchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_" . "абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
    47.    
    48.     for($i = 0; $i < strlen ( $username ); ++ $i)
    49.         if (strpos ( $allowedchars, $username [$i] ) === false)
    50.             return false;
    51.    
    52.     return true;
    53. }
    54. $email = $_POST ["email"];
    55. $wantusername = ajax_text_convert ( ($_POST ["wantusername"]) );
    56. $wantpassword = ajax_text_convert ( ($_POST ["wantpassword"]) );
    57. $passagain = ajax_text_convert ( ($_POST ["passagain"]) );
    58. $gender = $_POST ["gender"];
    59. $website = $_POST ["website"];
    60. $country = $_POST ["country"];
    61. $date = $_POST ["date"];
    62. $hash = $_POST ["imagehash"];
    63. $string = $_POST ["imagestring"];
    64. $date = explode ( '.', $date );
    65. if (($date [0] == '0000' || $date [1] == '00' || $date [2] == '00' || ! is_numeric ( $date [0] ) || ! is_numeric ( $date [1] ) || ! is_numeric ( $date [2] ) || ! $date || count ( $date ) != 3) && $type == 'date')
    66.     bark ( "Похоже вы указали неверную дату рождения" );
    67. $icq = unesc ( $_POST ["icq"] );
    68. if (strlen ( $icq ) > 10 && $type == 'icq')
    69.     bark ( "Номер icq слишком длинный  (Макс - 10)" );
    70. if (! is_numeric ( $icq ) && $icq && $type == 'icq')
    71.     bark ( "Номер icq должен записываться только числами" );
    72. $skype = ajax_text_convert ( (unesc ( $_POST ["skype"] )) );
    73. if (strlen ( $skype ) > 20 && $type == 'skype')
    74.     bark ( "Ваш skype слишком длинный  (Макс - 20)" );
    75.  
    76. if ((empty ( $wantusername ) && $type == 'uname') || (empty ( $wantpassword ) && $type == 'pass') || (empty ( $passagain ) && $type == 'passag') || (empty ( $email ) && $type == 'email') || (empty ( $gender ) && $type == 'gender') || (empty ( $country ) && $type == 'country'))
    77.     bark ( "Поле не может быть пустым." );
    78.  
    79. if (strlen ( $wantusername ) < 4 && $type == 'uname')
    80.     bark ( "Извините, имя пользователя слишком короткое (минимум 4 символа)" );
    81.  
    82. if (strlen ( $wantusername ) > 12 && $type == 'uname')
    83.     bark ( "Извините, имя пользователя слишком длинное (максимум 12 символов)" );
    84.  
    85. if ($wantpassword != $passagain && $type == 'passag')
    86.     bark ( "Пароли не совпадают! Похоже вы ошиблись. Попробуйте еще." );
    87. if (strlen ( $wantpassword ) < 6 && $type == 'pass')
    88.     bark ( "Извините, пароль слишком коротки (минимум 6 символов)" );
    89.  
    90. if (strlen ( $wantpassword ) > 40 && $type == 'pass')
    91.     bark ( "Извините, пароль слишком длинный (максимум 40 символов)" );
    92.  
    93. if ($wantpassword == $wantusername && $type == 'pass')
    94.     bark ( "Извините, пароль не может быть такой-же как имя пользователя." );
    95.  
    96. if (! validemail ( $email ) && $type == 'email')
    97.     bark ( "Это не похоже на реальный email адрес." );
    98.  
    99. if (! validusername ( $wantusername ) && $type == 'uname')
    100.     bark ( "Неверное имя пользователя." );
    101. if ($type == 'email') {
    102.     $a = (@mysql_fetch_row ( @sql_query ( "SELECT COUNT(*) FROM users WHERE email=" . sqlesc ( $email ) ) )) or sqlerr ( __FILE__, __LINE__ );
    103.     if ($a [0] != 0)
    104.         bark ( "E-mail адрес \"$email\" уже зарегистрирован в системе." );
    105.     if (! check_email ( $email ))
    106.         bark ( "Этот E-Mail адрес заблокирован на сайте." );
    107. }
    108. if ($type == 'uname') {
    109.     $a = (@mysql_fetch_row ( @sql_query ( "SELECT COUNT(*) FROM users WHERE username=" . sqlesc ( $wantusername ) ) )) or sqlerr ( __FILE__, __LINE__ );
    110.     if ($a [0] != 0)
    111.         bark ( "Имя пользователя \"$wantusername\" уже зарегистрировано в системе." );
    112. }
    113. if ($type == 'captcha' && ! $type_captcha) {
    114.     $query = sql_query ( "SELECT * FROM captcha WHERE imagehash=" . sqlesc ( $hash ) . " LIMIT 1" ) or sqlerr ( __FILE__, __LINE__ );
    115.     $regimage = mysql_fetch_array ( $query );
    116.     $imagestring = $regimage ['imagestring'];
    117.     if ($imagestring != $string)
    118.         bark ( "Неверная каптча." );
    119. }
    120. if ($type == 'pass')
    121.     succ_to_check ( check_password ( $wantpassword ) );
    122. success ();
    123. ?>
     
  14. Ric

    Ric Активный пользователь

    С нами с:
    9 фев 2011
    Сообщения:
    97
    Симпатии:
    2
    PHP:
    1.  $curpass = random_stirng ();
    проверь код на синтаксические ошибки
     
  15. KasperZzz

    KasperZzz Активный пользователь

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    С этой переменной все в порядке... Если меняю на random_string То при нажатии генерировать пароль выдает ошибку.
     
  16. KasperZzz

    KasperZzz Активный пользователь

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Еще заметил. Не работает быстрый поиск.(У меня на локальной машине работает.(Vertrigo))
    При вводе более 3ех символов в поиск сайт сразу показывает предварительные результаты....
    Вот как этот мод интегрировался. (Она работал до переезда на новый сервер)
    browse.php
    PHP:
    1. <form method="get" action="browse.php">
    2. <div align="center" style="position:relative;">
    3. <?=$tracker_lang['search'];?>:
    4. <script language="javascript" src="js/suggest.js" type="text/javascript"></script>
    5. <input id="suggestinput" name="search" type="text" size="60" />
    Ниже в этом же файле


    PHP:
    1. <input type="submit" value="Искать" /></center>
    2.             <div id="suggest"></div>
    Далее просто залить 2 файла из архива.
    Вот их код.
    suggest.js
    PHP:
    1. (function($){
    2.     keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    3.     encode64 = function(input) {
    4.     var output = "";
    5.     var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
    6.     var i = 0;
    7.     input = utf8_encode(input);
    8.     while (i < input.length) {
    9.         chr1 = input.charCodeAt(i++);
    10.         chr2 = input.charCodeAt(i++);
    11.         chr3 = input.charCodeAt(i++);
    12.         enc1 = chr1 >> 2;
    13.         enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
    14.         enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
    15.         enc4 = chr3 & 63;
    16.         if (isNaN(chr2))
    17.             enc3 = enc4 = 64;
    18.         else if (isNaN(chr3))
    19.             enc4 = 64;
    20.         output = output +
    21.         this.keyStr.charAt(enc1) + this.keyStr.charAt(enc2) +
    22.         this.keyStr.charAt(enc3) + this.keyStr.charAt(enc4);}
    23.     return output;
    24.     }
    25.  
    26.     utf8_encode = function (string) {
    27.         string = string.replace(/\r\n/g,"\n");
    28.         var utftext = "";
    29.         for (var n = 0; n < string.length; n++) {
    30.             var c = string.charCodeAt(n);
    31.             if (c < 128) utftext += String.fromCharCode(c);
    32.             else if((c > 127) && (c < 2048)) {
    33.                 utftext += String.fromCharCode((c >> 6) | 192);
    34.                 utftext += String.fromCharCode((c & 63) | 128);}
    35.             else {
    36.                 utftext += String.fromCharCode((c >> 12) | 224);
    37.                 utftext += String.fromCharCode(((c >> 6) & 63) | 128);
    38.                 utftext += String.fromCharCode((c & 63) | 128);}
    39.         }
    40.         return utftext;
    41.     }
    42. })(jQuery);
    43.  
    44. $(document).ready(function(){
    45.   $("#suggestinput").keyup(function(){
    46.     var q = encode64($(this).val());
    47.     $.get("suggest.php",{"q":q},function(data){
    48.         $("#suggest").html(data);
    49.     });
    50.   });
    51. });
    suggest.php

    PHP:
    1.  
    2. <?php
    3.  
    4. require_once("include/bittorrent.php");
    5. dbconn(false);
    6. header ("Content-Type: text/html; charset=" . $tracker_lang['language_charset']);
    7.  
    8. if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' && $_SERVER["REQUEST_METHOD"] == 'GET') {
    9.     $q = trim(strip_tags(iconv('utf-8', $tracker_lang['language_charset'], base64_decode($_GET["q"]))));
    10.     if (empty($q) || strlen($q) < 3) {
    11.       die();
    12.     }
    13.     $res = sql_query("SELECT t.id, t.name, t.added, t.free, t.category, c.name AS cat_name, c.image AS cat_pic FROM torrents t LEFT JOIN categories c ON t.category = c.id WHERE t.name LIKE " . sqlesc("%$q%") . " ORDER BY id DESC LIMIT 0,10;") or sqlerr(__FILE__, __LINE__);
    14.     print("<div style=\"position:absolute;width:100%;\">\n");
    15.     print("<table width=\"100%\">");
    16.     print("<tr><td class=\"colhead\" colspan=\"2\" style=\"padding:5px;\">Результаты быстрого поиска</td></tr>\n");
    17.     if(mysql_num_rows($res) < 1) {
    18.        print("<tr><td style=\"padding:5px;\">Поиск не дал результатов</td></tr>\n");
    19.        die();
    20.     }
    21.     else {
    22.         $i = 1;
    23.         while ($row = mysql_fetch_array($res)) {
    24.           if($row['free'] == 'yes')
    25.             $color = "#FFFFCC";
    26.           else
    27.             $color = "#FAFAFA";
    28.           print("<tr style=\"background-color:$color\"><td width=\"1%\"><a href=\"browse.php?cat=" . $row["category"] . "\"><img src=\"pic/cats/" . $row["cat_pic"] . "\" title=\"" . $row["cat_name"] . "\" style=\"height:40px;border:none;\" /></a></td><td style=\"padding:0 10px;\"><a href=\"details.php?id=".$row['id']."\">".str_ireplace($q, "<strong style=\"color:red;\">$q</strong>", $row['name'])."</a><br /><small>Добавлен: " . $row['added'] . "</small></td></tr>\n");
    29.           $i++;
    30.         }
    31.     }
    32.     print("</table>\n");
    33.     print("</div>\n");
    34.     die();
    35. }
    36. else
    37.     die("Прямой доступ закрыт.");
    38. ?>
    39.  
    Все перепроверил все интегрировано правильно.У меня повторюсь работает у них нет... Может тут станет ясно что не так с сервером?
     
  17. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    В проблеме не разбирался
    Права на папки расставлены ?
    .htaccess'ы валидные ?
     
  18. KasperZzz

    KasperZzz Активный пользователь

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Права на папки расставлены ? Да
    .htaccess'ы валидные ? Да
    Код (Text):
    1. # Доступ разрешить всем
    2. allow from all
    3. AddDefaultCharset windows-1251
    4. Directoryindex index.php
    5. <IfModule mod_rewrite.c>
    6. RewriteEngine on
    7. RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
    8. </IfModule>
     
  19. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    KasperZzz
    по идее нужно отлаживать код в файле signup_aj.php заменив строку номер 76 на

    bark ( "Type {$type} : Поле не может быть пустым." );

    и смотреть какие данные туда приходят, и приходят ли правильными.

    а вообще, говнокод ещё тот.

    чего стоит хотя бы проверка даты:

    Код (Text):
    1. $date = explode ( '.', $date );
    2. if (($date [0] == '0000' || $date [1] == '00' || $date [2] == '00' || ! is_numeric ( $date [0] ) || ! is_numeric ( $date [1] ) || ! is_numeric ( $date [2] ) || ! $date || count ( $date ) != 3) && $type == 'date')
    3.    bark ( "Похоже вы указали неверную дату рождения" );
    остальные проверки тоже ещё то Г.
     
  20. KasperZzz

    KasperZzz Активный пользователь

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Дописал...
    Код (Text):
    1. Ошибка:  Type uname :Поле не может быть пустым
    Только как мне проследить... Если срабатывает условие что поле пустое....
     
  21. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    KasperZzz
    вывести в тексте также и содержимое поля uname.

    ещё можно воспользоваться firebug-ом для отладки запросов - сразу видно что отправляется и что приходит.

    вполне возможно, что ошибка в js, а не в коде пхп, в любом случае только дебаг покажет.
     
  22. SelinaAnt

    SelinaAnt Активный пользователь

    С нами с:
    24 фев 2011
    Сообщения:
    1
    Симпатии:
    0
    Адрес:
    Украина VEGA
    Вот тут потише пожалуйста. Наш движек работает на отлично на всех хостингах. При условии соблюдения Тех.Требований. Если они не соблюдены, то конечно ошибки будут. А если еще у технарей руки из Задницы растут, то это уже проблема с плюсом Провайдера (хостинг ведь его).
    Если в коде не разбираетесь, не надо писать чушь..

    Кстати, он и на TBDeV скрипте будет ошибки шпарить.. Пускай товарищь проверит..
     
  23. KasperZzz

    KasperZzz Активный пользователь

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Вот скрин
    http://s008.radikal.ru/i303/1102/0a/453320e97393.jpg
    на тбдев... На верху на локальной машине в низу у них... и там и там стоит мод быстрого обзора
    Вот этот мод. http://bit-torrent.kiev.ua/ajax_vtomati ... index.html
    ЦМС Другая... А поиск так же не работает.
    Давайте хотя бы предположим что с кодом все нормально.
    И попробуем выяснить чего общего между всеми этими скриптами... И что из настроек сервера может не давать правильно работать...
     
  24. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    а я и не говорил, что движок не работает, я сказал (цитирую):
    приведённые отрывки скриптов прямо доказывают это.
    и где тут чушь?

    KasperZzz
    спроси что за тех требования у движка, и какие из них не работают на хостинге.

    а так сказать точно что не работает можно только через дебаг.
    а по кускам кода сказать сложно. я сужу по тому, что вижу.

    это тоже выясняется только через дебаг.
     
  25. KasperZzz

    KasperZzz Активный пользователь

    С нами с:
    3 янв 2010
    Сообщения:
    46
    Симпатии:
    4
    Я тут нашел... Что именно в этих полях которые не работают... Используется

    PHP:
    1. function ajax_text_convert($s) {
    2.     return iconv ( "utf-8", "WINDOWS-1251", $s );
    3. }
    Я на локалке поставил ("cp1251", "WINDOWS-1251", $s );
    То есть, как я понял неправильно. И у меня на локалке стало выдавать точно такие же ошибки...
    Вопрос может ли у хостера глючить кодировка каким либо образом... Что бы кодировка в этой функции не совпадала ни с windows-1251 ни с utf-8...?
    И если возможно опишите мне дураку, первая кодировка идет чего?
    я так понял что сервер отдает файлы в какой то кодировке ... а функция не совпадая с этой кодировкой не срабатывает...
    из за этого просто не срабатывает проверка...(Зарегистрироваться все ровно можно...)