DB conection down/* Functions are all Copyrigth(c) 2006/2007, Haugsdal Webtjenester. */ /* if ($_REQUEST["te"]) $_SESSION["de"]=1; if (!$_SESSION["de"]) $set_demo=1; // demo-mode */ function gatherStats() { global $stat_tbl,$set_url; $user = ""; $referer = ""; $url_ereg = "http://$set_url"; $page = $_SERVER["SCRIPT_NAME"]; if (isset($_SESSION["valid_user"])) $user = 1; if(isset($_SERVER['HTTP_REFERER'])) { if (!ereg("$url_ereg", $_SERVER['HTTP_REFERER'])) $referer = $_SERVER['HTTP_REFERER']; } $page=end(split("/", $page)); $page=strToDb($page); $user=strToDb($user); $referer=strToDb($referer); if ($user=="") $user=0; $sql = "insert into $stat_tbl (page,member,referer,visit) values('$page','$user','$referer',now())"; q($sql); } function htmlspecialchars_decode_PHP4($uSTR) { return strtr($uSTR, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES))); } function getParam($aVarName,$aVarAlt) { $lVarName=$_REQUEST[$aVarName]; if (!Empty($lVarName)) { if (is_array($lVarName)) { $lReturnArray = array(); foreach ($lVarName as $key => $value) { $value=cleanInput($value); $key=cleanInput($key); $lReturnArray[$key]=$value; } return $lReturnArray; } else return cleanInput($lVarName); // Clean input and return it } else return $aVarAlt; } function getParamHtml($aVarName,$aVarAlt) { global $set_htmltags_allowed,$set_htmlattribs_allowed; // tags array $lTagsAllowed = explode(',', $set_htmltags_allowed); for ($i = 0; $i < count($lTagsAllowed); $i++) $lTagsAllowed[$i] = trim($lTagsAllowed[$i]); // attr array $lAttrAllowed = explode(',',$set_htmlattribs_allowed); for ($i = 0; $i < count($lAttrAllowed); $i++) $lAttrAllowed[$i] = trim($lAttrAllowed[$i]); $lVarName=$_REQUEST[$aVarName]; if (!Empty($lVarName)) { if (is_array($lVarName)) { $lReturnArray = array(); foreach ($lVarName as $key => $value) { $value=cleanInputHtml($value,$lTagsAllowed,$lAttrAllowed); $key=cleanInputHtml($key,$lTagsAllowed,$lAttrAllowed); $lReturnArray[$key]=$value; } return $lReturnArray; } else return cleanInputHtml($lVarName,$lTagsAllowed,$lAttrAllowed); // Clean input and return it } else return $aVarAlt; } function getParamInt($aVarName,$aVarAlt) { $lNum=""; if ($_REQUEST["$aVarName"] !="") $lNum=$_REQUEST["$aVarName"]; elseif ($_REQUEST["$aVarName"]!="") $lNum=$_REQUEST["$aVarAlt"]; else $lNum = 0; $val = round($lNum); //return preg_replace('/[0-9]+/', '', $lNum); //return preg_replace('/^([^.][-0-9.]+[^.-])$/', '', $lNum); return $val; //return preg_replace('/\D+(\.)+/', '', $lNum); } function cleanInput($aValue) { $lMyFilter=new InputFilter("","",0,0,1); $lValue = $lMyFilter->process($aValue); $lValue=strip_tags($lValue); $lValue=stripslashes($lValue); return $lValue; } function cleanInputHtml($aValue,$aHtmlTagsAllowed,$aHtmlAttribsAllowed) { /* 1st (tags array): Optional 2nd (attr array): Optional 3rd (tags method): 0 = remove ALL BUT these tags (default) 1 = remove ONLY these tags 4th (attr method): 0 = remove ALL BUT these attributes (default) 1 = remove ONLY these attributes 5th (xss autostrip): 1 = remove all identified problem tags (default) 0 = turn this feature off */ $lMyFilter=new InputFilter($aHtmlTagsAllowed,$aHtmlAttribsAllowed,0,0,1); $lValue = $lMyFilter->process($aValue); return $lValue; } function strToDb($aStr) { /* Protects data and solves quoting issues */ $aStr=ereg_replace("\|","",$aStr); if (get_magic_quotes_gpc()) { $aStr = stripslashes($aStr); } if (!is_numeric($aStr) || $aStr == '0') { if (version_compare(phpversion(),"4.3.0", "<")) return mysql_escape_string($aStr); else return mysql_real_escape_string($aStr); } else return $aStr; } function strEnc($aStr) { /* Use everyplace where data is displayed in html forms */ $lLangSet="utf-8"; return htmlentities($aStr,ENT_QUOTES,$lLangSet); } function date_diff($tfirst, $tsecond) { $totalsec=$tsecond-$tfirst; $days=round(($totalsec/86400)); $totalsec=$totalsec % 86400; $hours=round(($totalsec/3600)); $totalsec=$totalsec % 3600; $minutes=round(($totalsec/60)); $seconds=$totalsec % 60; $ret["days"]=$days; $ret["hours"]=$hours; $ret["minutes"]=$minutes; $ret["secods"]=$seconds; return $ret; } function getAllParams($aIgnoreArray) { $aIgnoreArray[]="TrckCookie"; $aIgnoreArray[]="PHPSESSID"; $lUrl=""; foreach ($_GET as $key => $value) { if (!empty($value)) $value=eregi_replace("script","",strip_tags($value)); if (!empty($key)) $key=eregi_replace("script","",strip_tags($key)); if (!in_array($key,$aIgnoreArray)) $lUrl.="&$key=$value"; } foreach ($_POST as $key => $value) { if (!empty($value)) $value=eregi_replace("script","",strip_tags($value)); if (!empty($key)) $key=eregi_replace("script","",strip_tags($key)); if (!in_array($key,$aIgnoreArray)) $lUrl.="&$key=$value"; } return $lUrl; } function dotString($aText,$aSize) { if (function_exists('mb_strlen')) { if (mb_strlen($aText,"utf-8")>$aSize) $aText=mb_substr($aText,0,$aSize,"utf-8") . "..."; } else $aText=substr($aText,0,$aSize) . "..."; return $aText; } function getRemoteIp() { return getenv("REMOTE_ADDR"); } function addDaysToTimeStamp($aAddDays,$aTimestamp) { return mktime( date("H",$aTimestamp), date("i",$aTimestamp), date("s",$aTimestamp), date("m",$aTimestamp), date("d",$aTimestamp)+$aAddDays, date("Y",$aTimestamp)); } function subtractDaysFromTimeStamp($aAddDays,$aTimestamp) { return mktime( date("H",$aTimestamp), date("i",$aTimestamp), date("s",$aTimestamp), date("m",$aTimestamp), date("d",$aTimestamp)-$aAddDays, date("Y",$aTimestamp)); } function makeExpireDate($daysToAdd) { return mktime(date("H"), date("i"), date("s"), date("m"), date("d")+$daysToAdd,date("Y")); } function makeExpireDateFromTimeStamp($timestamp,$daysToAdd) { return mktime(date("H"), date("i"), date("s"), date("m"), date("d")+$daysToAdd,date("Y")); } function getDateAddMonths($aTimeStamp,$aMonths) { return mktime(date("H",$aTimeStamp), date("i",$aTimeStamp), date("s",$aTimeStamp), date("m",$aTimeStamp)+$aMonths, date("d",$aTimeStamp),date("Y",$aTimeStamp)); } function getDateAddDays($aTimeStamp,$aDays) { return mktime(date("H",$aTimeStamp), date("i",$aTimeStamp), date("s",$aTimeStamp), date("m",$aTimeStamp), date("d",$aTimeStamp)+$aDays,date("Y",$aTimeStamp)); } function getDateSubstMonths($aTimeStamp,$aMonths) { return mktime(date("H",$aTimeStamp), date("i",$aTimeStamp), date("s",$aTimeStamp), date("m",$aTimeStamp)-$aMonths, date("d",$aTimeStamp),date("Y",$aTimeStamp)); } function formatDate($aDate) { // aDate should have Ymd format global $date_format; $year=substr($aDate,0,4); $month=substr($aDate,4,2); $day=substr($aDate,6,2); // Date_format grabbed from settings... $date_added_1 = $date_format; $date_added_1 = ereg_replace("d", "$day", $date_added_1); $date_added_1 = ereg_replace("m", "$month", $date_added_1); $date_added_1 = ereg_replace("y", "$year", $date_added_1); $ad_date1 = $date_added_1; return $ad_date1; } function formatDateShort($aTimestamp) { global $set_date_format_short; if (!empty($aTimestamp)) return date($set_date_format_short,$aTimestamp); else return ""; } function formatDateLong($aTimestamp) { global $set_date_format_long; if (!empty($aTimestamp)) return date($set_date_format_long,$aTimestamp); else return ""; } function formatDateClock($aTimestamp) { global $set_date_format; if (!empty($aTimestamp)) return date("H:i",$aTimestamp); } function check_valid_user($msg) // see if somebody is logged in and notify them if not { global $set_outer_color, $set_inner_color; $tplLogin=new TplLoad; $tplLogin->assign("SET_OUTER_COLOR", $set_outer_color); $tplLogin->assign("SET_INNER_COLOR", $set_inner_color); $tplLogin->assign("USERNAME", getParam("username","")); $tplLogin->assign("PASSWORD", getParam("password","")); $tplLogin->assign("MSG", "$msg"); if (!ereg("member_login.php",$_SERVER['PHP_SELF'])) $tplLogin->assign("SENDTO", $_SERVER['PHP_SELF'] . "?l=1" . getAllParams(array("redirect_to","username","password","login","submit"))); if (!isset($_SESSION["valid_user"])) { $tplLogin->display("login_box.tpl"); include("footer_inc.php"); exit; } $fArray["TARGET"] = ""; // User variables $fArray["VALID_USER"] = $valid_user; $fArray["PASSWORD"] = $password; $fArray["USERNAME"] = $username; if ($rate_mem_page) $fArray["SENDTO"] = "rate_user.php?id=$id"; elseif ($rate_ad_page) $fArray["SENDTO"] = "rate.php?id=$id"; $fArray["MSG"] = $msg; CheckIfStillValidUser(); } function getHowManyDaysRemains($aFuture,$aToday) { $lDifference=$aFuture-$aToday; $lDifference = $lDifference/86400; return round($lDifference,0); } function getExpireDate ($aFromDate,$aAddDays) { // aFromDate on the format YYmd, like 20040212 $from_year=substr($aFromDate,0,4); $from_month=substr($aFromDate,4,2); $from_day=substr($aFromDate,6,2); $expire_date_conv = formatDate(date ("Ymd", mktime (date("H"),date("i"),date("s"),$from_month,$from_day+$aAddDays,$from_year))); return $expire_date_conv; } function delete_user($user_id) { global $usr_tbl,$ads_tbl,$not_tbl,$set_demo,$sel_tbl; $sql_links = "select ad_id from $ads_tbl where ad_owner = $user_id"; $sql_result = q ($sql_links); $ant = mysql_numrows($sql_result); $error = 0; if ($set_demo==1) { echo "
System in demo-mode. No delete
"; return false; } while ($row = mysql_fetch_array($sql_result)) { $ad_id = $row["ad_id"]; if (!delete_ad($ad_id)) $error = 1; } if (!$error) { $r = "delete from $not_tbl where notify_user_id=$user_id"; $sql_r = q($r); $r = "delete from $usr_tbl where user_id=$user_id"; $sql_r = q($r); q("delete from $sel_tbl where sel_option_user=$user_id"); return true; } addToHistory(10,$user_id,"",""); } function delete_ad($aAdNumber) { global $pic_tbl,$ads_tbl,$fav_tbl,$usr_tbl,$userside,$vid_tbl,$set_demo,$doc_tbl,$sel_tbl; $error = 0; $aAdNumber = safeIntNumber($aAdNumber); $query_pic = "select id from $pic_tbl where pic_ad_id=$aAdNumber"; $sql_result_pic = q($query_pic); if ($set_demo==1) { echo "System in demo-mode. No delete
"; return false; } while ($row_picture=mysql_fetch_array($sql_result_pic)) if (!deleteImage($row_picture["id"])) $error = 1; if (!$error) { $r = "delete from $fav_tbl where f_adid=$aAdNumber"; $sql_r = q($r); $query_ad = "select ad_owner,ad_cat_id from $ads_tbl where ad_id=$aAdNumber"; $sql_result = q($query_ad); $row = mysql_fetch_array($sql_result); $lAdOwnerId= $row["ad_owner"]; // What to do here... $lSql="select pay_bold from $usr_tbl where user_id=" . $row["ad_owner"] . " limit 1"; $lRes=q($lSql); $lRowFetch=mysql_fetch_array($lRes); $lNumPayBold=$lRowFetch["pay_bold"]; $sql = "update $usr_tbl set user_num_ads = user_num_ads - 1"; if ($lNumPayBold>0) $sql.=",pay_bold=pay_bold+1 "; $sql.=" where user_id ='" . $row["ad_owner"] . "' AND user_num_ads > 0"; $sql_r = q($sql); categoryCounter($row["ad_cat_id"],2); userAdsCounter($row["ad_owner"],2); // Every single ad_has_picture was deleted, remove ad entry $r = "delete from $ads_tbl where ad_id=$aAdNumber"; $sql_r = q($r); $res_video=q("select * from $vid_tbl where video_adid=$aAdNumber"); while ($row_video=mysql_fetch_array($res_video)) { deleteVideo($row_video["video_id"]); } $res_video=q("select * from $doc_tbl where f_adid=$aAdNumber"); while ($row_video=mysql_fetch_array($res_video)) { deleteDoc($row_video["f_id"]); } q("delete from $sel_tbl where sel_option_ad=$aAdNumber"); addToHistory(10,"",$aAdNumber,""); return true; } return false; } function setImageSize($aImage,$aMax,$aLayoutImages) { global $set_path; if (!$aLayoutImages) list($w, $h) = getimagesize($set_path . "/images/$aImage"); else list($w, $h) = getimagesize($set_path . "/layout_images/pay_vendors/$aImage"); $size=$aMax; if (!$aMax) { $size = 100; } if($w > $size || $h > $size) { if($w > $h) { $i = $w - $size; $imgSizeArray[0] = round($size); $imgSizeArray[1] = round($h - ($h * ($i / $w))); } else { $i = $h - $size; $imgSizeArray[0] = round($w - ($w * ($i / $h))); $imgSizeArray[1] = round($size); } } else { $imgSizeArray[0] = round($w); $imgSizeArray[1] = round($h); } return $imgSizeArray; } function getManualSize($aSize) { global $set_image_size_large,$set_image_size_small,$set_image_size_thumb; if ($aSize=="thumb") { $lSizeArr=split("x",$set_image_size_thumb); return $lSizeArr[0]; } elseif ($aSize=="small") { $lSizeArr=split("x",$set_image_size_small); return $lSizeArr[0]; } elseif ($aSize=="large") { $lSizeArr=split("x",$set_image_size_large); return $lSizeArr[0]; } } function safeString($aString) { $aString = htmlspecialchars($aString); return $aString; } function writeLinkedTitle($aCatid,$aAdID=null) { global $cat_tbl,$ads_tbl,$set_sitename,$lCatArray; $lCatId = $aCatid; if (!$aCatid && $aAdID) { $lSql="select ad_cat_id from $ads_tbl where ad_id='$aAdID'"; $lRes=q($lSql); $lRowFetch=mysql_fetch_array($lRes); $lCatId=$lRowFetch["ad_cat_id"]; } if (!isset($home)) { $home = ""; } $lStr.="
$home";
$lStr.="$set_sitename ";
if ($lCatId>0)
{
$next_id=$lCatId;
while ($next_id<>-1)
{
$next_id=getParent($next_id);
$counter++;
}
$lCat=array_reverse($lCatArray);
foreach ($lCat as $cat) {
$lStr.=$cat;
}
}
return $lStr;
}
function categoryCounter($aCat,$aDirection)
{
global $cat_tbl;
$next_id=$aCat;
while ($next_id<>-1)
{
if ($aDirection==1)
q("update $cat_tbl set cat_total=cat_total+1 where cat_id=$next_id");
if ($aDirection==2)
q("update $cat_tbl set cat_total=cat_total-1 where cat_id=$next_id AND cat_total>0");
$next_id=getParent($next_id);
$counter++;
}
}
function userAdsCounter($aUserID,$aDirection)
{
global $usr_tbl;
if ($aDirection==1)
q("update $usr_tbl set user_num_ads=user_num_ads+1 where user_id=$aUserID");
if ($aDirection==2)
q("update $usr_tbl set user_num_ads=user_num_ads-1 where user_id=$aUserID AND user_num_ads>0");
}
function addToHistory($aWhat,$aUser,$aAd,$aHistMsg)
{
global $hist_tbl,$set_log_history,$set_log_history_size;
// aWhat 1=Login,2=Contact Person,3=Reset Password,4=Tell a friend,5=Register,6=New ad,7=Update ad,8=Rate Ad,9=Rate User,10=Delete ad
// 11=Member Notify,12=Member Update Personal,13=Failed Login,14=Resend Password,15=Change Password,16=Footer generation,17=Rss
$aWhat=strToDb($aWhat);
$aUser=strToDb($aUser);
$aAd=strToDb($aAd);
$aHistMsg=strToDb($aHistMsg);
if ($set_log_history)
{
$sql_count="select hist_id from $hist_tbl order by hist_id desc limit $set_log_history_size";
$r=q($sql_count);
$i=0;
$lLowest=0;
while ($row=mysql_fetch_array($r))
{
if ($i==0)
$lLowest=$row["hist_id"];
else
if ($row["hist_id"]<$lLowest)
$lLowest=$row["hist_id"];
$i++;
}
q("delete from $hist_tbl where hist_id < $lLowest");
if (!$aUser)
$aUser=0;
if (!$aAd)
$aAd=0;
$sql="insert into $hist_tbl";
$sql.="(hist_when,hist_what,hist_user,hist_ad,hist_ip,hist_msg) values ";
$sql.=" (";
$sql.=time() . ",";
$sql.=$aWhat . ",";
$sql.=$aUser . ",";
$sql.=$aAd . ",";
$sql.="'" . strToDb(getRemoteIp()) . "',";
$sql.="'" . $aHistMsg . "'";
$sql.=")";
$res=q($sql);
}
return true;
}
function getParent($aId)
{
global $cat_tbl;
global $lCatArray;
global $set_rewrite;
global $set_multilang_cat,$language;
$lCatId=$aId;
$sql="select cat_fatherid,cat_name";
if ($set_multilang_cat)
{
$lLangSupportedArray=split(",",$set_multilang_cat);
foreach ($lLangSupportedArray as $lItem)
$sql.=",lang_" . $lItem;
}
$sql.=" from $cat_tbl where cat_id=$aId";
$res=q($sql);
$row=mysql_fetch_array($res);
$lCatFatherId=$row["cat_fatherid"];
$lCatName="";
// Check if user selected category exists
if (!empty($_SESSION["la"]) AND $set_multilang_cat)
{
$lang_cat = "lang_" . $_SESSION["la"];
if (!empty($row["$lang_cat"]))
$lCatName = strEnc($row["$lang_cat"]);
}
// User has not set any prefered language..
if (!$lCatName)
{
$lang_cat="lang_" . $language;
if (!empty($row["$lang_cat"]))
$lCatName = strEnc($row["$lang_cat"]); // Get default language, admin choise
else
$lCatName = strEnc($row["cat_name"]); // Last resort, use original name..
}
if ($set_rewrite)
$lCatArray[]=" / $lCatName";
else
$lCatArray[]=" / $lCatName";
if ($lCatFatherId==0)
return -1;
return $lCatFatherId;
}
function getCategoryId($ad_id)
{
global $ads_tbl;
$ad_id = safeIntNumber($ad_id);
$sql_cat = "select ad_cat_id from $ads_tbl where ad_id = $ad_id limit 1";
$result = mysql_query ($sql_cat);
$row = mysql_fetch_array($result);
$category_id = $row["ad_cat_id"];
return $category_id;
}
function failMsg($aTitle,$aContent)
{
global $set_webmaster_address,$set_path;
echo "Error occurred
We are sorry, but an unexpected error occurred and the system could not continue serving you. Please contact the webmaster at this site
$set_webmaster_address and report the problem, along with the error message
printed below. Please include any other information which may be useful to the webmaster.
For webmaster: This error with far more details has been logged in PHP Classifieds's error log
"; if (ereg("admin",$_SERVER["SCRIPT_NAME"])) $lLogFile="config/logs/error.log"; else $lLogFile="admin/config/logs/error.log"; $aTitle=strtoupper($aTitle); $fp = fopen("$lLogFile","a+"); if (!$fp) echo "In addition, the following error occured
Logfile is not writeable! No errors will be logged.
"; echo "Mailer Error: " . $mail->ErrorInfo; exit; } } else { if(!$mail->Send()) { echo "Message could not be sent.
";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
}
return true;
}
}
function checkReferers($aArray)
{
// array for allowed domains (lower case please)
//$referers = array('php.net', 'www.php.net', 'us2.php.net');
// add upper case referrers
$size = sizeof($referers);
for($i = 0; $i < $size; $i++)
{
$referers[] = strtoupper($referers[$i]);
}
// check referers
for($i = 0; $i < sizeof($referers); $i++){
if(substr($HTTP_SERVER_VARS['HTTP_REFERER'], 7, strlen($referers[$i])) == $referers[$i]){
$bad_referer = FALSE;
break;
}
else
{
$bad_referer = TRUE;
}
}
if($bad_referer)
{
header('Location: http://php.net/badreferer.php');
exit;
}
}
function getOneImage($aAdnumber,$aImagenumber,$aFilename,$aLargest)
{
// Function returns small image to have on the frontpage
global $pic_tbl;
if ($aImagenumber<>"")
$sql_ad_has_picture = "select filename from $pic_tbl where id=$aImagenumber";
elseif ($aAdnumber)
$sql_ad_has_picture = "select filename from $pic_tbl where pic_ad_id=$aAdnumber AND main=1 order by id desc limit 1";
elseif ($aFilename)
$sql_ad_has_picture = "select filename from $pic_tbl where filename=$aAdnumber order by id desc limit 1";
$res = q($sql_ad_has_picture);
$row = mysql_fetch_array($res);
$filename = $row["filename"];
if ($aLargest)
$filename=eregi_replace("_tmb1","",$filename);
return $filename;
}
function formatString($aString,$aValues)
{
// Example: formatString("Tallet ditt er %1%, tallet mitt er %2%", array("321","3928"));
for ($i=0;$i