Суть проблемы такова:
Есть определенная цмс (мкпортал), в ней есть приделанный сторонним автором скрипт для загрузки фоток в свой личный фотоальбом. Точнее там и аплоад, и редактирование, и удаление, и т.п. Но это не суть важно.
При загрузке есть несколько полей. Это название фотки, путь к ней на компе юзера, и поле описание, чтоб его (есть еще поле url, но его вообще собираюсь убрать).
Дело в том, что удобно грузить фотки без описания, а поле является обязательным для заполнения.
Вопрос таков: как сделать это поле необязательным?
Привожу код:
Цмску разрабатывали итальянцы, поэтому имя переменной на итальянском. Она называется descrizione.
Сам пытался решить проблему. Для начала сделал в БД поле описания необязательным (NULL). Не помогло. Покопался в коде, нашел следующую конструкцию:
Поидее это и есть проверка на существование, но убиранием из нее переменной дело не обошлось. Выводит свою внутреннюю ошибку (не ошибку php или мускула), которая генерится этой функцией:
error_page($message);
Вопрос выше (как сделать поле описания необязательным?)
Считаю, что проблема именно в этом скрипте, т.к есть аналогичный скрипт, который использует те же переменные. В нем все работает как надо после правки вышеупомянутого кода (хотя не исключаю, что работало и до правки).
Есть определенная цмс (мкпортал), в ней есть приделанный сторонним автором скрипт для загрузки фоток в свой личный фотоальбом. Точнее там и аплоад, и редактирование, и удаление, и т.п. Но это не суть важно.
При загрузке есть несколько полей. Это название фотки, путь к ней на компе юзера, и поле описание, чтоб его (есть еще поле url, но его вообще собираюсь убрать).
Дело в том, что удобно грузить фотки без описания, а поле является обязательным для заполнения.
Вопрос таков: как сделать это поле необязательным?
Привожу код:
Код:
<?
if (!defined("IN_MKP")) {
die ("Sorry !! You cannot access this file directly.");
}
$MK_PATH = "./";
$mklib->load_lang("lang_album.php");
if(!$mkportals->member['id']) {
$message = "{$mklib->lang['album_errcreate']}";
$mklib->error_page($message);
exit;
}
if ($mklib->config['mod_gallery']) {
$message = "<div style=color:#880000;><b><font size=\"4\">{$mklib->lang['album_disabled']}</font></b></div>";
$mklib->error_page($message);
exit;
}
switch($mkportals->input['tab']) {
case '':
page_cat();
break;
case 'cat':
page_cat();
break;
case 'foto':
page_foto();
break;
case 'upload':
page_upload();
break;
}
if(!$mkportals->member['id']) {
$message = "{$mklib->lang['mco_meseror']}";
$mklib->error_page($message);
exit;
}
$menu.= "<a href=index.php?ind=album&tab=cat>cat</a><a href=index.php?ind=album&tab=foto>foto</a><a href=index.php?ind=album&tab=upload>upload</a>";
$output .= $menu."index";
$output .="
<tr><td>
<div align=\"center\"><a href=\"http://www.mokro.us\" target=\"_blank\">Personal Album for MKPGallery</a> ©2007-2008 <a href=\"http://www.rusmkportal.ru\" target=\"_blank\">RUSmkportal.ru</a></div></td></tr>";
$blocks .= $Skin->view_block("{$mklib->lang['album_album']}", $output);
$mklib->printpage("1", "1", "{$mklib->lang['album_album']}", $blocks);
//******************************** CAT ***********************
function page_cat() {
global $mkportals, $DB, $Skin, $print, $mklib, $mklib_board;
if ($mkportals->member['id']) {
$uname = $mkportals->member['name'];
}
$output.= "<tr><td><table WIDTH=100% CELLSPACING=4 CELLPADDING=0><tr ALIGN=center>
<td>
<IMG SRC=/mkportal/modules/album/images/mini_edit.gif ALT=\"{$mklib->lang['album_options']}\">
<a STYLE=\"color: #E77A20\" href=index.php?ind=album&tab=cat><b>{$mklib->lang['album_options']}</b></a></td>
<td>
<IMG SRC=/mkportal/modules/album/images/mini_view.gif ALT=\"{$mklib->lang['album_loadingsphotos']}\">
<a href=index.php?ind=album&tab=foto><b>{$mklib->lang['album_loadingsphotos']}</b></a></td>
<td>
<IMG SRC=/mkportal/modules/album/images/mini_load.gif ALT=\"{$mklib->lang['album_loadphotos']}\">
<a href=index.php?ind=album&tab=upload><b>{$mklib->lang['album_loadphotos']}</b></a></td>
</tr>
<tr><td height=2 colspan=3 BGCOLOR=#4F6FaD></td></tr>
<tr><td height=3 colspan=3></td></tr>
</table>";
// ************************* CREATE CAT **********************
if ($mkportals->input['op']=='create'){
$DB->query( "SELECT * FROM mkp_gallery_events WHERE uname=\"".$uname."\"");
$row = $DB->fetch_row();
if ($row['id']){
$output .="<div style=color:#dd0000;><b>{$mklib->lang['album_create_err']}</b></div>";
} else {
$aname = $mkportals->input['aname'];
$father = 0;
if (!$aname) {
$message = "{$mklib->lang['ad_req_ncat']}";
$mklib->error_page($message);
exit;
}
$DB->query("INSERT INTO mkp_gallery_events (evento, father, uname) VALUES ('$aname', '$father', '$uname')");
$DB->close_db();
$output .="<div style=color:#006600;><b><font size=\"2\">{$mklib->lang['album_create_ok']}</font></b></div>";
}
}
// ************************* END CREATE CAT **********************
// ************************* EDIT CAT **********************
if ($mkportals->input['op']=='edit'){
$DB->query( "SELECT * FROM mkp_gallery_events WHERE uname=\"".$uname."\"");
$row = $DB->fetch_row();
$output .= $menu."<tr><td><form action=\"index.php?ind=album&tab=cat&op=editsave\" name=\"a_ev\" method=\"post\">
<table width=\"100%\" border=\"0\">
<tr>
<td>{$mklib->lang['album_title']}</td>
</tr>
<tr>
<td>
<input value=\"".$row['evento']."\" type=\"text\" name=\"aname\" size=\"50\" class=\"bgselect\" />
<input type=\"submit\" name=\"Inserisci\" value=\"{$mklib->lang['album_edit']}\" class=\"mkbutton\" />
</td>
</tr>
</table>
</form>";
}
if ($mkportals->input['op']=='editsave'){
$DB->query( "SELECT * FROM mkp_gallery_events WHERE uname=\"".$uname."\"");
$row = $DB->fetch_row();
$aname = $mkportals->input['aname'];
$father = 0;
if (!$aname) {
$message = "{$mklib->lang['ad_req_ncat']}";
$mklib->error_page($message);
exit;
}
$DB->query("UPDATE mkp_gallery_events SET evento=\"". $aname."\" WHERE id=".$row['id']);
$DB->close_db();
$output .="<div style=color:#006600;><b>{$mklib->lang['album_edit_ok']}</b></div>";
}
// ************************* END EDIT CAT **********************
// ************************* DELETE CAT **********************
if ($mkportals->input['op']=='del'){
$res=$DB->query( "SELECT id as idf, file FROM mkp_gallery where mkp_gallery.autore=\"".$uname."\"");
while ($row=mysql_fetch_array($res)) {
$filename = $row['file'];
$thumb = "t_".$filename;
@unlink("mkportal/modules/gallery/album/".$filename);
@unlink("mkportal/modules/gallery/album/".$thumb);
$DB->query("DELETE FROM mkp_gallery_comments WHERE identry = " .$row['idf']);
$DB->query("DELETE FROM mkp_ecards WHERE file=\"" .$filename."\"");
}
$DB->query("DELETE FROM mkp_gallery WHERE autore=\"" .$uname."\"");
$DB->query("DELETE FROM mkp_gallery_events WHERE uname=\"" .$uname."\"");
$output .="<div style=color:#880000;><b>{$mklib->lang['album_albumdel']}</b></div>";
$query = $DB->query( "SELECT id FROM mkp_gallery WHERE validate = '1'");
$count = $DB->get_num_rows($query);
$DB->query("UPDATE mkp_stat SET valore ='$count' WHERE chiave = 'tot_gallery'");
$DB->close_db();
}
// ************************* END DELETE CAT **********************
$DB->query( "SELECT * FROM mkp_gallery_events WHERE uname=\"".$uname."\"");
$row = $DB->fetch_row();
$DB->query("SELECT count(*) as fc FROM mkp_gallery WHERE evento =\"".$row['id']."\"");
$fotocount=$DB->fetch_row();
if ($row['id']){
$output .= "<script type=\"text/javascript\">
function makesure2() {
if (confirm('{$mklib->lang[album_surecatdel]}')) {
return true;
} else {
return false;
}
}
</script>
<table width=100% border=0 CELLSPACING=4 CELLPADDING=0>
<tr align=center><td>{$mklib->lang[album_title]}</td><td>{$mklib->lang[album_photos]}</td><td></td><td></td></tr>
<tr><td height=1 bgcolor=#aaaaaa colspan=4></td></tr>
<tr><td>
<a href=index.php?ind=gallery&op=section_view&idev=".$row['id']." title=\"{$mklib->lang[album_preview]}\"><IMG SRC=/mkportal/modules/album/images/preview.png ALT=\"{$mklib->lang['album_preview']}\"></a>
<b><a href=index.php?ind=gallery&op=section_view&idev=".$row['id']." title=\"{$mklib->lang[album_preview]}\">".$row['evento']."</a></b></td>
<td align=center>". $fotocount['fc'] ."</td>
<td width=100 align=center>
<a href=index.php?ind=album&tab=cat&op=edit><IMG SRC=/mkportal/modules/album/images/edit.gif WIDTH=15 HEIGHT=15 ALT=\"{$mklib->lang['album_edit2']}\"></a>
</td>
<td width=100 align=center>
<a href=index.php?ind=album&tab=cat&op=del onclick=\"return makesure2()\"><IMG SRC=/mkportal/modules/album/images/del.gif ALT=\"{$mklib->lang['album_delete']}\"WIDTH=15 HEIGHT=15></a>
</td>
<tr></table>";
} else {
$output .= "
<form action=\"index.php?ind=album&tab=cat&op=create\" name=\"a_ev\" method=\"post\">
<table width=\"100%\" border=\"0\">
<tr>
<td><IMG SRC=/mkportal/modules/album/images/no_image.gif align=\"left\"/><font size=\"2\">{$mklib->lang['album_fm_create']}</font></br></td></tr>
<td><b>{$mklib->lang['album_title']}</b></td>
</tr>
<tr>
<td>
<input type=\"text\" name=\"aname\" size=\"50\" class=\"bgselect\" />
<input type=\"submit\" name=\"Inserisci\" value=\"{$mklib->lang['album_create']}\" class=\"mkbutton\" />
</td>
</tr>
</table>
</form></td></tr>";
}
require $MK_PATH."mkportal/conf_mk.php";
$output.="</td></tr>";
$output .="
<tr><td><div align=\"center\"><a href=\"http://www.mokro.us\" target=\"_blank\">Personal Album for MKPGallery</a> ©2007-2008 <a href=\"http://www.rusmkportal.ru\" target=\"_blank\">RUSmkportal.ru</a></div></td></tr>";
$blocks .= $Skin->view_block("{$mklib->lang['album_album']}", $output);
$mklib->printpage("1", "1", "{$mklib->lang['album_album']}", $blocks);
}
//****************************** END CAT *********************
//******************************** FOTO ***********************
function page_foto() {
global $mkportals, $DB, $Skin, $print, $mklib, $mklib_board;
if ($mkportals->member['id']) {
$uname = $mkportals->member['name'];
}
$output.= "<tr><td><table WIDTH=100% CELLSPACING=4 CELLPADDING=0><tr ALIGN=center>
<td>
<IMG SRC=/mkportal/modules/album/images/mini_edit.gif ALT=\"{$mklib->lang['album_options']}\">
<a href=index.php?ind=album&tab=cat><b>{$mklib->lang['album_options']}</b></a></td>
<td>
<IMG SRC=/mkportal/modules/album/images/mini_view.gif ALT=\"{$mklib->lang['album_loadingsphotos']}\">
<a STYLE=\"color: #E77A20\" href=index.php?ind=album&tab=foto><b>{$mklib->lang['album_loadingsphotos']}</b></a></td>
<td>
<IMG SRC=/mkportal/modules/album/images/mini_load.gif ALT=\"{$mklib->lang['album_loadphotos']}\">
<a href=index.php?ind=album&tab=upload><b>{$mklib->lang['album_loadphotos']}</b></a></td>
</tr>
<tr><td height=2 colspan=3 BGCOLOR=#4F6FaD></td></tr>
<tr><td height=3 colspan=3></td></tr>
</table>";
//************************* DELETE FOTO **********************
if ($mkportals->input['op']=='del'){
$idf=$mkportals->input['idf'];
$DB->query( "SELECT * FROM mkp_gallery WHERE id=\"".$idf."\"");
$row = $DB->fetch_row();
$filename = $row['file'];
$thumb = "t_".$filename;
@unlink("mkportal/modules/gallery/album/".$filename);
@unlink("mkportal/modules/gallery/album/".$thumb);
$DB->query("DELETE FROM mkp_gallery_comments WHERE identry = " .$row['id']);
$DB->query("DELETE FROM mkp_ecards WHERE file=\"" .$filename."\"");
$DB->query("DELETE FROM mkp_gallery WHERE id=\"" .$idf."\"");
$output .="<div style=color:#880000;><b><font size=\"4\">{$mklib->lang['album_photo_del_ok1']} «".$row['titolo']."» {$mklib->lang['album_photo_del_ok2']}.</font></b>
</div>";
$query = $DB->query( "SELECT id FROM mkp_gallery WHERE validate = '1'");
$count = $DB->get_num_rows($query);
$DB->query("UPDATE mkp_stat SET valore ='$count' WHERE chiave = 'tot_gallery'");
$DB->close_db();
}
//*********************** END DELETE FOTO ********************
//************************* EDIT FOTO **********************
if ($mkportals->input['op']=='editsave'){
$idf=$mkportals->input['idf'];
$DB->query( "SELECT * FROM mkp_gallery WHERE id=\"".$idf."\"");
$row = $DB->fetch_row();
$cat = $mkportals->input['cat'];
$ftitle = $mkportals->input['ftitle'];
$fdesc = $mkportals->input['fdesc'];
$DB->query("UPDATE mkp_gallery SET evento=\"". $cat."\", titolo=\"". $ftitle."\", descrizione=\"". $fdesc."\" WHERE id=".$idf);
$DB->close_db();
$output .="<div style=color:#006600;><b>{$mklib->lang['album_edit_ok']}</b></div>";
}
if ($mkportals->input['op']=='edit'){
$idf=$mkportals->input['idf'];
$DB->query( "SELECT * FROM mkp_gallery WHERE id=\"".$idf."\"");
$row = $DB->fetch_row();
$res=$DB->query( "SELECT * FROM mkp_gallery_events WHERE uname=\"".$uname."\"");
$output.="<form action=\"index.php?ind=album&tab=foto&op=editsave&idf=".$idf."\" name=\"UPDATE\" method=\"post\">
<table align=center border=\"0\">
<tr>
<td>{$mklib->lang['album_section']}</td>
<td>
<select class=\"bgselect\" name=\"cat\" size=\"1\">";
while ($galrow=mysql_fetch_array($res)) {
$output.="<option value=".$galrow['id'].">".$galrow['evento']."</option>";
}
$imgdimension = @getimagesize("mkportal/modules/gallery/album/".$row['file']);
$imgfilesize = stat("mkportal/modules/gallery/album/".$row['file']);
$output.="</select>
</td><td width=30 rowspan=3> </td><td align=center rowspan=3>
<img style=\"cursor: url($mklib->template/images/mkajax/zoomin.cur), pointer;\" src=/mkportal/modules/gallery/album/t_".$row['file']." border=\"0\" alt=\"{$mklib->lang['album_zoom']}\" onclick=\"ajax_showPop('{$mklib->sitepath}index.php?ind=ajax&act=showgal&idp=".$idf."', 1);return false\" />
<nobr>{$mklib->lang['album_img_size']} ".round($imgfilesize[7]/1024,1)."kb</nobr>
<nobr>{$mklib->lang['album_img_def']} ".$imgdimension[0]."x".$imgdimension[1]."</nobr>
{$mklib->lang['album_img_prev']} ".$row['click']."
{$mklib->lang['album_img_rating']} ".$row['rate']."</td>
</tr>
<tr>
<td>{$mklib->lang['album_fototitle']}</td>
<td><input type=\"text\" name=\"ftitle\" value=\"".$row['titolo']."\" size=\"52\" class=\"bgselect\" /></td>
</tr>
<tr>
<td valign=\"top\">{$mklib->lang['album_desc']}</td>
<td><textarea cols=\"50\" rows=\"10\" name=\"fdesc\" class=\"bgselect\">".$row['descrizione']."</textarea></td>
</tr>
<tr>
<td colspan=4 align=center><input type=\"submit\" value=\"{$mklib->lang['album_save']}\" class=\"mkbutton\" /></td>
</tr>
</table>
</form></td></tr>";
} else {
//*********************** END EDIT FOTO ********************
$DB->query( "SELECT * FROM mkp_gallery_events WHERE uname=\"".$uname."\"");
$row = $DB->fetch_row();
$output .= "{$mklib->lang['album_alb']} «<b>".$row['evento'] . "»:</b>";
$output .= "<script type=\"text/javascript\">
function makesure2() {
if (confirm('{$mklib->lang[album_sureimgdel]}')) {
return true;
} else {
return false;
}
}
</script>
<table width=100% border=0 CELLSPACING=4 CELLPADDING=0>
<tr align=center><td>{$mklib->lang['album_image']}</td><td>{$mklib->lang['album_fototitle']}</td><td>{$mklib->lang['album_desc']}</td><td></td><td></td><td></td></tr>
<tr><td height=1 bgcolor=#aaaaaa colspan=6></td></tr>";
$res=$DB->query( "SELECT * FROM mkp_gallery where evento=\"".$row['id']."\"");
while ($frow=mysql_fetch_array($res)) {
$imgdimension = @getimagesize("mkportal/modules/gallery/album/".$frow['file']);
$imgfilesize = stat("mkportal/modules/gallery/album/".$frow['file']);
$output .= "<tr>
<td width=100 align=center>
<img style=\"cursor: url($mklib->template/images/mkajax/zoomin.cur), pointer;\" src=/mkportal/modules/gallery/album/t_".$frow['file']." border=\"0\" alt=\"{$mklib->lang['album_zoom']}\" onclick=\"ajax_showPop('{$mklib->sitepath}index.php?ind=ajax&act=showgal&idp=".$frow['id']."', 1);return false\" />
</td>
<td align=center>".$frow['titolo']."</td>
<td>".$frow['descrizione']."</td>
<td><a href=\"index.php?ind=gallery&op=foto_show&ida=".$frow['id']."\"><b>{$mklib->lang['album_go_gallery']}</b></a>
<a href=\"index.php?ind=gallery&op=submit_postcard&ide=".$frow['id']."\"><b>{$mklib->lang['album_ecard']}</b></a>
{$mklib->lang['album_img_size']} ".round($imgfilesize[7]/1024,1)."kb
{$mklib->lang['album_img_def']} ".$imgdimension[0]."x".$imgdimension[1]."
{$mklib->lang['album_img_prev']} ".$frow['click']."
{$mklib->lang['album_img_rating']} ".$frow['rate']."
</td>
<td width=35 align=center><a href=index.php?ind=album&tab=foto&op=edit&idf=".$frow['id']."><IMG SRC=/mkportal/modules/album/images/edit.gif WIDTH=15 HEIGHT=15 ALT=\"{$mklib->lang['album_edit']}\"></a></td>
<td width=35 align=center><a href=index.php?ind=album&tab=foto&op=del&idf=".$frow['id']." onclick=\"return makesure2()\"><IMG SRC=/mkportal/modules/album/images/del.gif ALT=\"{$mklib->lang['album_delete']}\"WIDTH=15 HEIGHT=15></a></td>
</tr>";
}
$output .= "</table>";
}
$output .="
<tr><td><div align=\"center\"><a href=\"http://www.mokro.us\" target=\"_blank\">Personal Album for MKPGallery</a> ©2007-2008 <a href=\"http://www.rusmkportal.ru\" target=\"_blank\">RUSmkportal.ru</a></div></td></tr>";
require $MK_PATH."mkportal/conf_mk.php";
$blocks .= $Skin->view_block("{$mklib->lang['album_album']}", $output);
$mklib->printpage("1", "1", "{$mklib->lang['album_album']}", $blocks);
}
//****************************** END FOTO *********************
//******************************** UPLOAD ***********************
function page_upload() {
global $mkportals, $DB, $Skin, $print, $mklib, $mklib_board;
if ($mkportals->member['id']) {
$uname = $mkportals->member['name'];
}
$output.= "<tr><td><table WIDTH=100% CELLSPACING=4 CELLPADDING=0><tr ALIGN=center>
<td>
<IMG SRC=/mkportal/modules/album/images/mini_edit.gif ALT=\"{$mklib->lang['album_options']}\">
<a href=index.php?ind=album&tab=cat><b>{$mklib->lang['album_options']}</b></a></td>
<td>
<IMG SRC=/mkportal/modules/album/images/mini_view.gif ALT=\"{$mklib->lang['album_loadingsphotos']}\">
<a href=index.php?ind=album&tab=foto><b>{$mklib->lang['album_loadingsphotos']}</b></a></td>
<td>
<IMG SRC=/mkportal/modules/album/images/mini_load.gif ALT=\"{$mklib->lang['album_loadphotos']}\">
<a STYLE=\"color: #E77A20\" href=index.php?ind=album&tab=upload><b>{$mklib->lang['album_loadphotos']}</b></a></td>
</tr>
<tr><td height=2 colspan=3 BGCOLOR=#4F6FaD></td></tr>
<tr><td height=3 colspan=3></td></tr>
</table>";
if ($mkportals->input['op']=='fsend')
{
// if(!$mkportals->member['g_access_cp'] && !$mklib->member['g_send_gallery']) {
// $message = "{$mklib->lang['ga_nouplimg']}";
// $mklib->error_page($message);
// exit;
// }
$FILE_UPLOAD = $mkportals->input['FILE_UPLOAD'];
$FILE_URL = $mkportals->input['FILE_URL'];
if (!$FILE_UPLOAD && $FILE_URL){
$file = $FILE_URL;
$file_name = preg_replace("`.*\/(([^\/]+)\.([^\/]+))`", "\\1", $FILE_URL);
$file_name = preg_replace("/[^a-zA-Z0-9\_\-\.]/", '' , $file_name);
$file_name = preg_replace('#\.{1,}#s', '.', $file_name);
$file_name = preg_replace('#\_{2,}#s', '_', $file_name);
if (!preg_match('#^http://#', $FILE_URL) || !$file_name) {
$message = "{$mklib->lang['ga_noURL']}
{$mklib->lang['ga_URL']}";
$mklib->error_page($message);
exit;
}
$fp = fopen($FILE_URL,"rb");
if (!$fp) {
$message = "{$mklib->lang['ga_fopen']}";
$mklib->error_page($message);
exit;
}
$header = stream_get_meta_data($fp);
for ($i=1; isset($header['wrapper_data'][$i]); $i++) {
if (strstr(strtolower($header['wrapper_data'][$i]), 'content-type')) {
if((eregi('^content-type: ([[:graph:]]+)', $header['wrapper_data'][$i], $MIME_extraction_array))) {
$file_type = $MIME_extraction_array[1];
}
}
if (strstr(strtolower($header['wrapper_data'][$i]), 'content-length')) {
if(eregi('^content-length: ([[:digit:]]+)', $header['wrapper_data'][$i], $length_extraction_array)) {
$peso = $length_extraction_array[1];
}
}
}
} else {
$file = $_FILES['FILE_UPLOAD']['tmp_name'];
$file_name = $_FILES['FILE_UPLOAD']['name'];
//$file_type = $_FILES['FILE_UPLOAD']['type'];
$peso = $_FILES['FILE_UPLOAD']['size'];
}
$evento = intval($mkportals->input['evento']);
$titolo = $mkportals->input['titolo'];
$descrizione = $mkportals->input['descrizione'];
$autore = $mkportals->member['name'];
$idauth = $mkportals->member['id'];
if (!$evento || !$titolo || !$descrizione || !$file) {
$message = "{$mklib->lang['ga_mustcompile']}";
$mklib->error_page($message);
exit;
}
if ($file_name) {
//Validate file extension
$file_ext = preg_replace("`.*\.(.*)`", "\\1", $file_name);
$file_ext = substr ($file_name, (strlen($file_name)-3), 3);
$file_ext = strtolower($file_ext);
switch($file_ext)
{
case 'gif':
$ext = 'gif';
break;
case 'jpg':
$ext = 'jpg';
break;
case 'png':
$ext = 'png';
break;
case 'tif':
$ext = 'tif';
break;
case 'bmp':
$ext = 'bmp';
break;
default:
$ext = 'not_supported';
break;
}
if ($ext == "not_supported") {
$message = "{$mklib->lang['ga_notsup']}";
$mklib->error_page($message);
exit;
}
//Validate file size
if ($mklib->config['upload_image_max'] > 0 && $peso > ($mklib->config['upload_image_max']*1024)) {
$message = "{$mklib->lang['ga_maxupl']}";
$mklib->error_page($message);
exit;
}
if (!$FILE_UPLOAD && $FILE_URL) {
//Copy file from remote server to gallery "tmp" directory
if (!copy("$file", "mkportal/modules/gallery/album/tmp/$file_name")) {
$message = "{$mklib->lang['ga_errorupl']}";
$mklib->error_page($message);
exit;
}
} else {
//Move file from local server tmp directory to gallery "tmp" directory
if (!move_uploaded_file("$file", "mkportal/modules/gallery/album/tmp/$file_name")) {
$message = "{$mklib->lang['ga_errorupl']}";
$mklib->error_page($message);
exit;
}
}
@chmod("mkportal/modules/gallery/album/tmp/$file_name", 0644);
//Validate by mime type
$tmpfilename = "mkportal/modules/gallery/album/tmp/$file_name";
$size = @getimagesize($tmpfilename);
//If getimagesize does not recognize file as an image delete file
if (!$size) {
@unlink($tmpfilename);
$message .= "{$mklib->lang['ga_notsup']}";
$mklib->error_page($message);
exit;
}
$file_type = $size['mime'];
if (!$mklib->check_attach($file_type, $file_ext)) {
//Delete invalid file and display error
@unlink($tmpfilename);
$message .= "{$mklib->lang['ga_notsup']}";
$mklib->error_page($message);
exit;
}
//Validate by file contents
$fcontents = file_get_contents ($tmpfilename);
$carray = array("html", "javascript", "vbscript", "alert", "onmouseover", "onclick", "onload", "onsubmit");
foreach ($carray as $fch) {
if (strstr($fcontents, $fch)) {
@unlink($tmpfilename);
$message .= "{$mklib->lang['ga_notsup']}";
$mklib->error_page($message);
exit;
}
}
if (preg_match("#script(.+?)/script#ies", $fcontents)) {
@unlink($tmpfilename);
$message .= "{$mklib->lang['ga_notsup']}";
$mklib->error_page($message);
exit;
}
$query = $DB->query("SELECT id FROM mkp_gallery ORDER BY id DESC LIMIT 1");
$row = $DB->fetch_row($query);
$totr = $row['id'];
++$totr;
$image = "a_"."$totr".".$ext";
//move file from "tmp" directory to "album" directory
@rename($tmpfilename, "mkportal/modules/gallery/album/$image");
}
if (!is_file ("mkportal/modules/gallery/album/$image")) {
$message = "{$mklib->lang['ga_errorupl']}";
$mklib->error_page($message);
exit;
}
$cdata = time();
$thumb = "t_$image";
$validat = "1";
$approval = $mklib->config['approval_gallery'];
if ($approval == "2" || $approval == "3") {
$validat = 0;
}
if($mkportals->member['g_access_cp']) {
$validat = "1";
}
// Meo Changed in C 0.1.b to extend thumb types
//if ($ext == "jpg") {
$mklib->CreateImage($mklib->config['thumb_max_dimen'],"mkportal/modules/gallery/album/$image", "mkportal/modules/gallery/album/$thumb");
//}
// End
//try to watermark image.
if ($mklib->config['watermark_enable']) {
$mklib->watermark("mkportal/modules/gallery/album/$image");
}
$query="INSERT INTO mkp_gallery(evento, titolo, descrizione, file, autore, idauth, peso, data, validate)VALUES('$evento', '$titolo', '$descrizione', '$image', '$autore', '$idauth', '$peso', '$cdata', '$validat')";
$DB->query($query);
if ($approval == "1") {
$mailsubj = $mklib->lang['01mail'].$mklib->lang['gallery'];
$mailmess = $mklib->lang['02mail'].$mklib->lang['module'].$mklib->lang['gallery']."\n".$mklib->lang['sender'].$autore."\n\n\n".$mklib->lang['from']." ".$mklib->sitename;
$mklib_board->admin_mail($mailsubj, $mailmess);
}
if ($approval == "2" && !$mkportals->member['g_access_cp']) {
$mailsubj = $mklib->lang['01mail'].$mklib->lang['gallery'];
$mailmess = $mklib->lang['03mail'].$mklib->lang['module'].$mklib->lang['gallery']."\n".$mklib->lang['sender'].$autore."\n\n\n".$mklib->lang['from']." ".$mklib->sitename;
$mklib_board->admin_mail($mailsubj, $mailmess);
$mklib->message_page ($mklib->lang['notify_adv']);
exit;
}
if ($approval == "3" && !$mkportals->member['g_access_cp']) {
$mklib->message_page ($mklib->lang['notify_adv']);
exit;
}
$query = $DB->query( "SELECT id FROM mkp_gallery WHERE validate = '1'");
$count = $DB->get_num_rows($query);
$DB->query("UPDATE mkp_stat SET valore ='$count' WHERE chiave = 'tot_gallery'");
$DB->close_db();
$output .="<div style=color:#006600;><b>{$mklib->lang['album_up_ok']}</b></div>";
}
$res=$DB->query( "SELECT * FROM mkp_gallery_events WHERE uname=\"".$uname."\"");
$output.="<form action=\"index.php?ind=album&tab=upload&op=fsend\" name=\"UPLOAD\" method=\"post\" enctype=\"multipart/form-data\">
<table align=center border=\"0\">
<tr>
<td>{$mklib->lang['album_section']}</td>
<td>
<select class=\"bgselect\" name=\"evento\" size=\"1\">";
while ($galrow=mysql_fetch_array($res)) {
$output.="<option value=".$galrow['id'].">".$galrow['evento']."</option>";
}
$imgdimension = @getimagesize("mkportal/modules/gallery/album/".$row['file']);
$imgfilesize = stat("mkportal/modules/gallery/album/".$row['file']);
$output.="</select>
</td>
</tr>
<tr>
<td>{$mklib->lang['album_fototitle']}</td>
<td><input type=\"text\" name=\"titolo\" size=\"52\" class=\"bgselect\" /></td>
</tr>
<tr>
<td valign=\"top\">{$mklib->lang['album_desc']}</td>
<td><textarea cols=\"50\" rows=\"10\" name=\"descrizione\" class=\"bgselect\"></textarea></td>
</tr>
<tr>
<td>{$mklib->lang['album_file']}</td>
<td><input type=\"file\" name=\"FILE_UPLOAD\" size=\"50\" class=\"bgselect\" /></td>
</tr>
<!-- Submit FILE URL -->
<tr>
<td>{$mklib->lang['album_file_URL']}</td>
<td><input type=\"text\" name=\"FILE_URL\" size=\"50\" class=\"bgselect\" />
{$mklib->lang['album_URL']} </td>
</tr>
<!-- Submit FILE URL -->
<tr>
<td align=center colspan=\"2\"><input type=\"submit\" value=\"{$mklib->lang['album_up']}\" class=\"mkbutton\" /></td>
</tr>
</table>
</form>";
$output .="
<tr><td>
<div align=\"center\"><a href=\"http://www.mokro.us\" target=\"_blank\">Personal Album for MKPGallery</a> ©2007-2008 <a href=\"http://www.rusmkportal.ru\" target=\"_blank\">RUSmkportal.ru</a></div></td></tr>";
require $MK_PATH."mkportal/conf_mk.php";
$blocks .= $Skin->view_block("{$mklib->lang['album_album']}", $output);
$mklib->printpage("1", "1", "{$mklib->lang['album_album']}", $blocks);
}
//****************************** END UPLOAD *********************
?>
Сам пытался решить проблему. Для начала сделал в БД поле описания необязательным (NULL). Не помогло. Покопался в коде, нашел следующую конструкцию:
Код:
if (!$evento || !$titolo || !$descrizione || !$file) {
$message = "{$mklib->lang['ga_mustcompile']}";
$mklib->error_page($message);
exit;
}
error_page($message);
Вопрос выше (как сделать поле описания необязательным?)
Считаю, что проблема именно в этом скрипте, т.к есть аналогичный скрипт, который использует те же переменные. В нем все работает как надо после правки вышеупомянутого кода (хотя не исключаю, что работало и до правки).