Что нужно поправить?

Тема в разделе "JavaScript", создана пользователем icqall, 19 фев 2015.

Модераторы: ZiX
  1. icqall

    icqall Создатель

    Регистр.:
    13 дек 2012
    Сообщения:
    24
    Симпатии:
    12
    Всем привет, подскажите пожалуйста что нужно поправить в скрипте, что бы пропали ошибки в консоли?
    Uncaught TypeError: undefined is not a function
    ubermenu.min.js:45 UberMenu initialized via window.load
    ubermenu.min.js:9 Uncaught TypeError: undefined is not a function
    На сайте ubermenu конфликтует с простеньким js скриптом, и в итоге меню толком не работает и js мой не работает...
     
  2. cyber_punker

    cyber_punker Создатель

    Регистр.:
    12 ноя 2014
    Сообщения:
    6
    Симпатии:
    10
    Мало входных данных. Возможно он зугржается не в том порядке или инициализацию его нужно перенести.
    Трудно стричь по фотографи.
     
  3. KolyaRS

    KolyaRS Создатель

    Регистр.:
    17 июн 2011
    Сообщения:
    16
    Симпатии:
    13
    Судя по тексту ошибки, где то потерло какую то переменную.

    В консоли должно показать где конкретно в коде ошибка.

    Сразу будет намного понятнее...
     
  4. Рамзесс

    Рамзесс Создатель

    Регистр.:
    13 июл 2014
    Сообщения:
    11
    Симпатии:
    1
    Привет всем! Друзья может кто подсказать что в скрипте мешает загрузке файлов кроме фотографий? Спасибо



    my_lightbox.js

    function getScrollTop()
    {
    var scrollTop=0;
    if(document.documentElement&&document.documentElement.scrollTop)
    return document.documentElement.scrollTop;
    else if(document.body)
    return document.body.scrollTop;
    }
    function preview(obj)
    {
    title='Предпросмотр'
    msg='';
    w=400;
    h=300;
    src=weburl+'/upload.php?pv=true&obj='+obj;
    alertWin(title, msg, w, h,src);
    }
    function uploadfile(title,obj,pw,ph)
    {
    msg='';
    w=250;
    h=138;
    src=weburl+'/upload.php?pw='+pw+'&ph='+ph+'&obj='+obj;
    alertWin(title, msg, w, h,src);
    }
    function alertWin(title, msg, w, h,src)
    {
    var s=document.getElementsByTagName("select");
    for(var j=0;j<s.length;j++){s[j].style.display="none";}

    var titleheight = "20px";
    var border_color = "#666699";
    var titlecolor = "#FFFFFF";
    var titlebgcolor = "#1d5798";
    var bgcolor = "#FFFFFF";

    var iWidth = document.documentElement.clientWidth;
    var tHeight = document.documentElement.clientHeight;
    var iHeight = Math.max(document.body.scrollHeight,document.documentElement.scrollHeight);
    var bgObj = document.createElement("div");
    bgObj.style.cssText = "position:absolute;left:0px;top:0px;width:"+iWidth+"px;height:"+Math.max(document.body.clientHeight, iHeight)+"px;filter:Alpha(Opacity=10);opacity:0.1;background-color:#000000;z-index:1000;";
    bgObj.id='bgObj';
    document.body.appendChild(bgObj);

    var msgObj=document.createElement("div");
    msgObj.style.cssText = "position:absolute;top:"+((tHeight-h)/2+getScrollTop())+"px;left:"+(iWidth-w) /2+"px;width:"+w+"px;height:"+h+"px;border:1px solid "+border_color+";background-color:"+bgcolor+";padding:1px;z-index:1003;";
    msgObj.id='msgObj';
    document.body.appendChild(msgObj);


    var table = document.createElement("table");
    msgObj.appendChild(table);
    table.style.cssText = "margin:0px;border:0px;padding:0px;";
    table.cellSpacing = 0;

    var tr = table.insertRow(-1);
    var titleBar = tr.insertCell(-1);
    titleBar.style.cssText = "width:*;height:"+titleheight+"px;text-align:left;padding:3px;margin:0px;font:bold 13px;color:"+titlecolor+";border:0px solid " + border_color + ";cursor:move;background-color:" + titlebgcolor;
    titleBar.style.paddingLeft = "10px";
    titleBar.innerHTML = title;

    var moveX = 0;
    var moveY = 0;
    var moveTop = 0;
    var moveLeft = 0;
    var moveable = false;
    var docMouseMoveEvent = document.onmousemove;
    var docMouseUpEvent = document.onmouseup;
    titleBar.onmousedown = function()
    {
    var evt = getEvent();
    moveable = true;
    moveX = evt.clientX;
    moveY = evt.clientY;
    moveTop = parseInt(msgObj.style.top);
    moveLeft = parseInt(msgObj.style.left);
    document.onmousemove = function()
    {
    if (moveable)
    {
    var evt = getEvent();
    var x = moveLeft + evt.clientX - moveX;
    var y = moveTop + evt.clientY - moveY;
    if ( x > 0 &&( x + w < iWidth) && y > 0 && (y + h < iHeight) )
    {
    msgObj.style.left = x + "px";
    msgObj.style.top = y + "px";
    }
    }
    };
    document.onmouseup = function ()
    {
    if (moveable)
    {
    document.onmousemove = docMouseMoveEvent;
    document.onmouseup = docMouseUpEvent;
    moveable = false;
    moveX = 0;
    moveY = 0;
    moveTop = 0;
    moveLeft = 0;
    }
    };
    }
    var closeBtn = tr.insertCell(-1);
    closeBtn.style.cssText = "cursor:pointer;padding:2px;text-align:right;background-color:" + titlebgcolor;
    if(typeof(weburl)!='undefined')
    closeBtn.innerHTML = "<img src='"+weburl+"/image/default/dialogclose.gif' />";
    else if(typeof(closeimg)!='undefined')
    closeBtn.innerHTML = "<img src='"+closeimg+"' />";
    else
    closeBtn.innerHTML = "<img src='image/default/dialogclose.gif' />";

    closeBtn.onclick = function()
    {
    for(var j=0;j<s.length;j++){s[j].style.display="";}
    document.body.removeChild(bgObj);
    document.body.removeChild(msgObj);
    }

    var msgBox = table.insertRow(-1).insertCell(-1);
    msgBox.colSpan = 2;
    if(src==''&&msg=='')
    src='main.php?action=m&m=album&s=admin_album&nohead=true';
    if(src!='')
    msg='<iframe style="width:'+w+'px; height:'+(h-30)+'px;" src="'+src+'" frameborder="0" scrolling="no"></iframe>';
    msgBox.innerHTML = msg;

    function getEvent()
    {
    return window.event || arguments.callee.caller.arguments[0];
    }

    }

    function close_win()
    {
    var s=document.getElementsByTagName("select");
    for(var j=0;j<s.length;j++){s[j].style.display="";}
    if(document.getElementById('bgObj'))
    {
    document.body.removeChild(document.getElementById('bgObj'));
    }
    if(document.getElementById('msgObj'))
    {
    document.body.removeChild(document.getElementById('msgObj'));
    }
    }




     
  5. Рамзесс

    Рамзесс Создатель

    Регистр.:
    13 июл 2014
    Сообщения:
    11
    Симпатии:
    1
    Если в upload.php $pn=time().".jpg"; .jpg поменять на xlsx в базе прописывается путь к файлу в папке uploadfile, но сам файл в папку не закидывается.

    upload.php

    <?php
    include_once("includes/global.php");
    //==============================================
    if(is_uploaded_file($_FILES['pic']['tmp_name']))
    {
    $pn=time().".jpg";
    $pw=$_POST['pw'];
    $ph=$_POST['ph'];

    $dir=$config['webroot'].'/uploadfile/all/'.date('Y').'/'.date('m').'/'.date('d').'/';
    mkdirs($dir);
    makethumb($_FILES['pic']['tmp_name'],$dir.$pn,$pw,$ph);
    $pn=str_replace($config['webroot'],$config['weburl'],$dir).$pn;

    $str="window.parent.document.getElementById('$_GET[obj]').value='$pn';";
    echo "<script>$str;window.parent.close_win();</script>";
    die;
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Загрузка изображения</title>
    </head>
    <style>
    td{font-size:12px; padding:3px;}
    </style>
    <body>
    <?php if(empty($_GET['pv'])){ ?>
    <form action="" method="post" enctype="multipart/form-data">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td><input name="pic" type="file" id="pic" /></td>
    </tr>
    <tr>
    <td>
    Ширина <input name="pw" type="text" id="pw" value="<?php echo $_GET['pw'];?>" size="3" />
    px
    Высота <input name="ph" type="text" id="ph" value="<?php echo $_GET['ph'];?>" size="3" />
    px
    </td>
    </tr>
    <tr>
    <td>
    <input type="submit" name="Submit" value="Отправить" />
    <input type="reset" onclick="window.parent.close_win();" name="Submit2" value="Отменить" />
    </td>
    </tr>
    </table>
    </form>
    <?php
    }
    else
    {
    ?>
    <div id="preview" style="width:380px; height:300px; overflow:auto;"></div>
    <script>
    str=window.parent.document.getElementById('<?php echo $_GET['obj'];?>').value;
    if(str=='')
    str='<font face="arial,tahoma" size=2>Адрес изображения отсутствует, не удается выполнить предварительный просмотр!</font>';
    else
    str='<img src='+str+'>';
    document.getElementById('preview').innerHTML=str;
    </script>
    <?php } ?>
    </body>
    </html>
     
  6. zardoz

    zardoz Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    84
    Симпатии:
    59
    Спотыкается вот на этой строчке:
    Код:
    makethumb($_FILES['pic']['tmp_name'],$dir.$pn,$pw,$ph);
    надо смотреть что там внутри делается.
    скорее всего там ресайзится и конвертируется в jpg картинка
    т.к. ему дают не картинку, а левый файл, то возникает исключение и отдается стандартная заглушка, или вообще ничего не отдается

    переименование роли не играет, до него еще дело не доходит
     
  7. Рамзесс

    Рамзесс Создатель

    Регистр.:
    13 июл 2014
    Сообщения:
    11
    Симпатии:
    1
    если скину весь двиг не могли бы Вы посмотреть где именно затор (d2dduilder)
     
  8. Рамзесс

    Рамзесс Создатель

    Регистр.:
    13 июл 2014
    Сообщения:
    11
    Симпатии:
    1
    Похоже что дело в одном из них, но разобраться пока не могу! Если у Вас получится дайте знать!
     

    Вложения:

    • includes.rar
      Размер файла:
      9,2 КБ
      Просмотров:
      3
  9. zardoz

    zardoz Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    84
    Симпатии:
    59
    Как то так. Если не удалось создать картинку, то тупо копируем загруженный файл.
    Код:
    if(is_uploaded_file($_FILES['pic']['tmp_name']))
    {
    $pn=time().".jpg";
    $pw=$_POST['pw'];
    $ph=$_POST['ph'];
    
    $dir=$config['webroot'].'/uploadfile/all/'.date('Y').'/'.date('m').'/'.date('d').'/';
    mkdirs($dir);
    makethumb($_FILES['pic']['tmp_name'],$dir.$pn,$pw,$ph);
    if (file_exists($filename)) {
    $pn=str_replace($config['webroot'],$config['weburl'],$dir).$pn;
    } else {
    $pn='';
    $ext = pathinfo($_FILES['pic']['tmp_name'])['extension'];
    move_uploaded_file($_FILES['pic']['tmp_name'], $dir.time().".".$ext)
    }
    $str="window.parent.document.getElementById('$_GET[obj]').value='$pn';";
    echo "<script>$str;window.parent.close_win();</script>";
    die;
    }
    Но смотри, разрешив загрузку всего чего угодно на сервер, ты нажил много головной боли.
    Ведь загрузить могут не только картинку или эксель, а шелл-скрипт например.
    Поэтому в папке uploadfile и во всех вложенных надо запретить исполнение кода.
    Создать .htaccess с содержанием
    Код:
    php_value engine off
     
    Последнее редактирование: 18 май 2015
  10. Рамзесс

    Рамзесс Создатель

    Регистр.:
    13 июл 2014
    Сообщения:
    11
    Симпатии:
    1
    Выдает Parse error: syntax error, unexpected '[' inE:\home\tn.ru\www\upload.phpon line 17
    Если

    $ext = pathinfo($_FILES['pic']['tmp_name']['extension'])

    ;

    move_uploaded_file($_FILES['pic']['tmp_name'], $dir.time().".".$ext)
    }
    $str="window.parent.document.getElementById('$_GET[obj]').value='$pn';";
    echo "<script>$str;window.parent.close_win();</script>";
    die;
    }

    то ошибка
    Parse error: syntax error, unexpected '}' inE:\home\tn.ru\www\upload.phpon line 19

    $ext = pathinfo($_FILES['pic']['tmp_name']['extension'])
    ;

    move_uploaded_file($_FILES['pic']['tmp_name'], $dir.time().".".$ext)
    }
    $str="window.parent.document.getElementById('$_GET[obj]').value='$pn';";
    echo "<script>$str;window.parent.close_win();</script>";
    die;
    }