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

icqall

Создатель
Регистрация
13 Дек 2012
Сообщения
29
Реакции
21
Всем привет, подскажите пожалуйста что нужно поправить в скрипте, что бы пропали ошибки в консоли?
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 мой не работает...
 
Мало входных данных. Возможно он зугржается не в том порядке или инициализацию его нужно перенести.
Трудно стричь по фотографи.
 
Судя по тексту ошибки, где то потерло какую то переменную.

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

Сразу будет намного понятнее...
 
Привет всем! Друзья может кто подсказать что в скрипте мешает загрузке файлов кроме фотографий? Спасибо



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'));
}
}




 
Если в 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" "Для просмотра ссылки Войди или Зарегистрируйся">
<html xmlns="Для просмотра ссылки Войди или Зарегистрируйся">
<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>
 
Спотыкается вот на этой строчке:
Код:
makethumb($_FILES['pic']['tmp_name'],$dir.$pn,$pw,$ph);
надо смотреть что там внутри делается.
скорее всего там ресайзится и конвертируется в jpg картинка
т.к. ему дают не картинку, а левый файл, то возникает исключение и отдается стандартная заглушка, или вообще ничего не отдается

переименование роли не играет, до него еще дело не доходит
 
если скину весь двиг не могли бы Вы посмотреть где именно затор (d2dduilder)
 
Похоже что дело в одном из них, но разобраться пока не могу! Если у Вас получится дайте знать!
 

Вложения

  • includes.rar
    9,2 KB · Просмотры: 3
Как то так. Если не удалось создать картинку, то тупо копируем загруженный файл.
Код:
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
 
Последнее редактирование:
Выдает 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;
}

 
Назад
Сверху