За последние 24 часа нас посетили 22685 программистов и 1165 роботов. Сейчас ищут 822 программиста ...

Ломаю голову с авторизацией Qbox

Тема в разделе "PHP для новичков", создана пользователем WiNNeR, 14 июл 2019.

  1. WiNNeR

    WiNNeR Новичок

    С нами с:
    11 июл 2019
    Сообщения:
    13
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Ребят второй день уже ломаю голову с окном авторизации, жаль что нельзя матерится на форуме...

    Вообщем цель такова и проста как и везде:

    В верхнем меню [header-e] располагается кнопка входа при её нажатии должно появляться всплывающее окно с формой авторизации/регистрации, после авторизации кнопка "Войти" должна пропасть а на её место встать аватар того пользователя который авторизовался.

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

    Браузер выдает следующую ошибку в консоли

    PHP:
    1. Uncaught TypeError: $(...).Qbox is not a function at vxod_panel ((index):112) at HTMLAnchorElement.onclick (VM17932 :39) vxod_panel @ (index):112 onclick @ VM17932 :39
    Скрипт всплывающего окна:

    Код (Text):
    1.         <script type="text/javascript">
    2.         function reg_panel() {
    3.             $('body').Qbox({
    4.                 'title': '‘орма регистрации',
    5.                 'width': 410,
    6.                 'minHeight': 45,
    7.                 'fadespeed': 300,
    8.                 'url': '/modules/register.php',
    9.                 'param': ''
    10.             });
    11.             return false;
    12.         }
    13.        
    14.         function vxod_panel() {
    15.             $('body').Qbox({
    16.                 'title': '‘орма авторизации',
    17.                 'width': 410,
    18.                 'minHeight': 45,
    19.                 'fadespeed': 300,
    20.                 'url': '/modules/login.php',
    21.                 'param': ''
    22.             });
    23.             return false;
    24.         }
    25.     </script>
    Содержимое файла /modules/login.php

    Код (Text):
    1. <?
    2.  
    3. session_start();
    4.  
    5. header( 'Content-type: text/html; charset=utf8' );
    6.  
    7. define( 'ROOT', 'http://'.$_SERVER['HTTP_HOST'] );
    8. define( 'ROOT_DIR', $_SERVER['DOCUMENT_ROOT'] );
    9.  
    10. if ( $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest' ) exit();
    11.  
    12. if ( isset( $_SESSION['iduser'] ) ) exit();
    13.  
    14. include_once ROOT_DIR . '/engine/config.php';
    15. include_once ROOT_DIR . '/engine/capcha.php';
    16.  
    17. if ( $_COOKIE['email'] != '' ) {
    18.     $ch = ' checked="checked"';
    19. } else {
    20.     $ch = '';
    21. }
    22.  
    23. ?>
    24.  
    25.  
    26. <script type="text/javascript">
    27. $(document).ready(function() {
    28.     $('.js_titleRemove').remove();
    29. });
    30.  
    31. $('.box_val').tipTip({defaultPosition:'right'});
    32.  
    33. function vxod() {
    34.     $('.preloader').css({display:'block'});
    35.     var temp_click = $('#vxod').attr('onclick');
    36.     $('#vxod').attr('onclick', '');
    37.     $.post('ajax.php?func=login', {
    38.         email: $('#email').val(),
    39.         pass: $('#pass').val(),
    40.         capcha: $('#capcha').val(),
    41.         savelp: $('#sp:checked').val()
    42.     }, function(data) {
    43.         if (data == 1) {
    44.             box_close();
    45.             window.location.href = '/info';
    46.         } else {
    47.             $('.preloader').css({display:'none'});
    48.             $('body').Qnotify({text:data, sound:'error'});
    49.             $('#vxod').attr('onclick', temp_click);
    50.         }
    51.     });
    52.     return false;
    53. }
    54.  
    55. function restore_pass() {
    56.     $('body').Qbox({
    57.         'title': 'Восстановления доступа к аккаунту',
    58.         'width': 410,
    59.         'minHeight': 45,
    60.         'fadespeed': 300,
    61.         'url': 'modules/restore_pass.php',
    62.         'param': ''
    63.     });
    64.     return false;
    65. }
    66. </script>
    67. <div style="padding: 10px">
    68.     <table width="250" border="0" cellpadding="4" cellspacing="0" align="center">
    69.         <tr>
    70.             <td><div style="position: relative"><input type="text" id="email" value="<?=$_COOKIE['email']?>" title="Введите email указанный при регистрации" class="box_val" style="width: 300px" /><div class="valtext">email</div></div></td>
    71.         </tr>
    72.         <tr>
    73.             <td><div style="position: relative"><input type="password" id="pass" value="<?=$_COOKIE['pass']?>" title="Введите пароль указанный при регистрации" class="box_val" style="width: 300px" /><div class="valtext">пароль</div></div></td>
    74.         </tr>
    75.         <tr>
    76.             <td><div style="position: relative"><input type="text" id="capcha" title="Введите проверочный код" class="box_val" style="width: 300px; text-transform: uppercase;" /><div class="valtext"><?=$letter?></div></div></td>
    77.         </tr>
    78.     </table>
    79.     <center><input type="checkbox" id="sp" <?=$ch?> style="position: relative; top: 1px;" /> <label style="color:#000000"><b>Запомнить логин и пароль</b></label><br /><span style="font-size: 10px; color: #888888;">Внимание! Запоминание данных сделает ваш аккаунт более уязвимым.<br />
    80. Не применяйте этот параметр, если ваш компьютер доступен посторонним.</span></center>
    81. </div>
    82. <div id="bot_panel"><div class="preloader"></div><a href="https://login.wmtransfer.com/GateKeeper.aspx?RID=<?=$config_site['wmlogin']?>&lang=ru-RU" id="wmlogin" class="wmlogin" onmouseover="titlehtml.title('', 'Авторизация через login.webmoney', 'wmlogin', 7)"></a><a href="#" onclick="restore_pass();return false;" id="recovery_pass" class="recovery_pass" onmouseover="titlehtml.title('', 'Восстановить пароль', 'recovery_pass', 7)"></a><a href="#" onclick="vxod(); return false;" class="btn_box" id="vxod">Войти</a></div>
    Содержимое файла qbox.js

    Код (Javascript):
    1. (function(a){a.fn.Qbox=function(d){var b=a.extend({title:"",fadespeed:1E3,width:300,height:0,url:"",param:"",minTop:0,minWidth:"",minHeight:"",data:""},d);a("#q_content").remove();a(this).append('<div id="overlay"></div><div id="q_content"><div id="title_box"></div><div id="close_box"></div><div id="q_box"></div></div>');a("#q_content").css({"border":"1px solid #556F42",position:"fixed",display:"none","z-index":"5","box-shadow":"0 0 5px rgba(0,0,0,0.3)"});a("#q_box").css({overflow:"auto",height:"auto",width:"auto",background:"#ffffff",color:"#3e3e3e"});a("#title_box").css({"border-bottom":"1px solid #556F42","border-top":"1px solid #556F42",color:"#e9e9e9","font-size":"11px","font-weight":"bold",padding:"12px",background:"#556F42","text-shadow":"0 1px 0 rgba(72,93,119,0.7)"});a("#overlay").css({display:"none",position:"fixed",top:"0",left:"0",width:"100%",height:"100%","z-index":"4",background:"#000000",opacity:"0.5",overflow:"hidden"});a("#close_box").css({position:"absolute",right:"15px",top:"15px",width:"11px",height:"11px",cursor:"pointer","text-shadow":"none",backgroundImage:"url(../../theme/images/box_del.gif)","-khtml-opacity":"0.7",opacity:"0.7"});a("#close_box").hover(function(){a(this).css({"-khtml-opacity":"0.9",opacity:"0.9"})},function(){a(this).css({"-khtml-opacity":"0.7",opacity:"0.7"})});""!=b.url&&a.ajax({type:"POST",url:b.url,data:b.param,success:function(b){a("#q_box").html(b)}}); ""!=b.data&&a("#q_box").html(b.data);a("#title_box").html(b.title);d=a(window);var e=document.documentElement;d.scrollTop();var c=a("#q_content");0==b.height?a("#q_box").css("height",c.height()+"px"):a("#q_box").css("height",b.height+"px");a("#q_box").css("width",b.width+"px");""!==b.minHeight&&a("#q_box").css("min-height",b.minHeight+"px").css("height","auto");a("#overlay").css("display","block");a("#overlay").css({height:e.clientHeight});a("#overlay").css({width:d.width()});a("#overlay").css("top", 0);a("#close_box").click(function(){c.fadeOut(b.fadespeed,function(){a("#q_content").remove();a("#q_box").remove();a("#title_box").remove();a("#close_box").remove();a("#box_bg").remove();a("#overlay").remove()});return!1});c.css({left:(a(window).width()-c.outerWidth())/2-8}).css({top:100+'px'});c.fadeIn(b.fadespeed,function(){c.show()})}})(jQuery); function box_close(){$("#q_box").remove();$("#title_box").remove();$("#close_box").remove();$("#box_bg").remove();$("#q_content").remove();$("#overlay").remove()};
    Ну и кнопка входа

    Код (Text):
    1. <div class="loginbutton" a href="#" onclick="vxod_panel(); return false;">Вход</a></div>
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.751
    Симпатии:
    1.322
    Адрес:
    Лень
    Сам скрипт подключен в шапке ? Так как

    --- Добавлено ---
    попробуй убери
     
    WiNNeR нравится это.
  3. WiNNeR

    WiNNeR Новичок

    С нами с:
    11 июл 2019
    Сообщения:
    13
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Убрал

    Код (Text):
    1. <script type="text/javascript">
    2.         function reg_panel() {
    3.             $('body').Qbox({
    4.                 'title': '‘орма регистрации',
    5.                 'width': 410,
    6.                 'minHeight': 45,
    7.                 'fadespeed': 300,
    8.                 'url': '/modules/register.php',
    9.                 'param': ''
    10.             });
    11.             return false;
    12.         }
    13.        
    14.         function vxod_panel() {
    15.             $('body').Qbox({
    16.                 'title': '‘орма авторизации',
    17.                 'width': 410,
    18.                 'minHeight': 45,
    19.                 'fadespeed': 300,
    20.                 'url': '/modules/login.php',
    21.                 'param': ''
    22.             });
    23.             return false;
    24.         }
    25.     </script>
    Теперь консоль браузера выдает следующее:

    HTML:
    1. Uncaught ReferenceError: vxod_panel is not defined
    2.     at HTMLAnchorElement.onclick ((index):40)
    3. onclick @ (index):40
    4.  
    Нажимаю кнопку все также никакой реакции
    --- Добавлено ---
    Помог, оказывается у меня не был подключен jquery
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.751
    Симпатии:
    1.322
    Адрес:
    Лень
    Вот... одна голова - хорошо, две лучше
     
  5. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Одна голова хорошо, а две - это уже кунсткамера...
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.751
    Симпатии:
    1.322
    Адрес:
    Лень
    Третий - лишний