Revision 45 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed
<?#require("include/functions_pdf.php");$dir=dirname($_SERVER["PHP_SELF"]);$host="http://".$_SERVER["SERVER_NAME"];$url=$host.$dir;$pear_logger=&create_pear_logger();$php_logger=&create_php_logger();set_error_handler('errorHandler_PHP');PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'errorHandler');$u=null;$a=null;$username=(isset($_POST["username"]))?$_POST["username"]:"";function errorHandler_PHP($code, $message, $file, $line){global $php_logger;/* Map the PHP error to a Log priority. */switch ($code) {case E_WARNING:case E_USER_WARNING:$priority = PEAR_LOG_WARNING;break;case E_NOTICE:case E_USER_NOTICE:$priority = PEAR_LOG_NOTICE;break;case E_ERROR:case E_USER_ERROR:$priority = PEAR_LOG_ERR;break;default:$priotity = PEAR_LOG_INFO;}$php_logger->log($message . ' in ' . $file . ' in Zeile ' . $line, $priority);}function errorHandler($error){global $pear_logger;$message = $error->getUserInfo();if (!empty($error->backtrace[1]['file'])){$message .= ' (' . $error->backtrace[1]['file'];if (!empty($error->backtrace[1]['line'])){$message .= ' in Zeile ' . $error->backtrace[1]['line'];}$message .= ')';}$res=$pear_logger->log($message, PEAR_LOG_ERR);}function create_logger(){global $db, $u;$params_log["db"]=$db;$params_log["u_id"]=$u->u_id;$logger=&Log::singleton("lt_sql","log","media",$params_log);return $logger;}function create_php_logger(){global $url;$file_params["mode"]="666";$file_params["lineFormat"] = '%1$s %2$s [%3$s] %4$s %5$s %6$s %7$s';$mail_params["from"]="Lars Tiefland <webmaster@lars-tiefland.de>";$mail_params["subject"]="PHP Fehler auf $url";$l1=&Log::singleton("file","logs/php_errors.log","media_php",$file_params);$l2=&Log::singleton("mail","ltiefland@gmail.com","media_php",$mail_params);$l3=&Log::singleton("composite");$c1=$l3->addChild($l1);$c2=$l3->addChild($l2);return $l3;}function create_pear_logger(){global $url;$file_params["mode"]="666";$file_params["lineFormat"] = '%1$s %2$s [%3$s] %4$s %5$s %6$s %7$s';$mail_params["from"]="Lars Tiefland <webmaster@lars-tiefland.de>";$mail_params["subject"]="PEAR Fehler auf $url";$l1=&Log::singleton("file","logs/pear_errors.log","media_pear",$file_params);$l2=&Log::singleton("mail","ltiefland@gmail.com","media_pear",$mail_params);$l3=&Log::singleton("composite");$c1=$l3->addChild($l1);$c2=$l3->addChild($l2);return $l3;}function send_email($art=0){global $u, $mail, $password, $common, $url, $u_key;$to="$u->u_name <$u->u_email>";$from_addr="webmaster@lars-tiefland.de";$from_name="Lars Tiefland";$from="$from_name <$from_addr>";$art=intval($art);switch ($art){case 0:$email_tpl="email/$u->u_lang/register.tpl";$subject=$common["reg_subject"]." - Welcome to $url";break;case 1:$email_tpl="email/$u->u_lang/changed.tpl";$subject=$common["changed_subject"];break;case 2:$email_tpl="email/$u->u_lang/change.tpl";$subject=$common["change_subject"];default:return false;break;}if (file_exists($email_tpl)){$email=file_get_contents("$email_tpl");$url_act=$url."activate.php";$email=sprintf($email, $u->u_name, $url, $u->u_name, $password, $url_act."?key=$u_key", $url_act, $u_key);$headers["From"]=$from;$headers["To"]=$to;$headers["Subject"]=$subject;$ret=$mail->send($to,$headers,$email);}else{$ret=false;}return $ret;}function login($username, $password){global $smarty, $username, $meld, $db_meld, $common,$a, $loc, $year, $type, $config;$smarty->assign("meld", ($username||$meld)?$common["an_error_occured"]:$meld);$smarty->assign("db_meld", ($username)?$common["userinfo_incorrect"]:$db_meld);$smarty->assign("error", ($username||$meld)?true: false);$smarty->assign("title", $common["login"]);$smarty->assign("user", $username);$date=$loc->formatDateTime(time());$smarty->assign("date",$date);$smarty->assign("year", $year);$smarty->display("login.tpl");}function User_Login($show=true){global $smarty, $db, $a, $config, $u, $common, $prefix;$params = array("dsn" => $db,"table" => $prefix."auth_user","usernamecol" => "u_name","passwordcol" => "u_password","db_fields" => "*",);$a = new Auth("DB", $params, "login",$show);$a->setSessionName($config->cookie_name);$a->setIdle($config->session_length,false);$a->setExpire(2*$config->session_length,false);$a->start();if ($a->getAuth()){$u=new User("","");$u=$u->UserData($a->getUserName());//$smarty->assign("title",$common["login"]);$smarty->assign("u_name", $u->u_name);$smarty->assign("u_type", $u->u_type);$smarty->assign("u_id", $u->u_id);$disabled=($u->u_type==0)?"disabled=disabled":"";$smarty->assign("disabled", $disabled);$smarty->assign("disabled", "");}return $a;}function User_logout(){global $a;$a->logout();}// {{{ validate_email()/*** Check to see if email address is valid or* already present in the DB*/function validate_email($email){global $smarty;$meld="";$error=false;if ($email != ''){if (preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is', $email)&& $email!="your@address.com"){$error=false;$meld="";$db_meld="";}else{$error=true;$meld = "Email ungültig!";$db_meld="";$smarty->assign("email",$email);}}else{$error = true;$meld = "Email ungültig!";$db_meld="";$smarty->assign("email",$email);}if($error){$smarty->assign("title","Ungültige E-Mail Adresse");$smarty->assign("error",$error);$smarty->assign("meld",$meld);$smarty->assign("db_meld",$db_meld);}else{$smarty->assign("meld","");$smarty->assign("db_meld","");}return !$error;}// }}}// {{{ log_split()function log_split($s){global $k, $time0, $count_t;$r = Array();$p = 0;$l = strlen($s);while ($p < $l){check_Time();while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false)){$p++;}if ($s[$p] == '"'){$p++;$q = $p;while (($p < $l) && ($s[$p] != '"')){if ($s[$p] == '\\'){$p+=2;continue;}$p++;}$r[] = stripslashes(substr($s, $q, $p-$q));$p++;while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false)){$p++;}$p++;}else{if ($s[$p] == "'"){$p++;$q = $p;while (($p < $l) && ($s[$p] != "'")){if ($s[$p] == '\\'){$p+=2;continue;}$p++;}$r[] = stripslashes(substr($s, $q, $p-$q));$p++;while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false)){$p++;}$p++;}else{$q = $p;while (($p < $l) && (strpos(";",$s[$p]) === false)){$p++;}$r[] = stripslashes(trim(substr($s, $q, $p-$q)));while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false)){$p++;}$p++;}}}$r2 = array(array());$i=0;$j=0;$ind=0;$anz=count($r);while ($i < $anz){$wert=$r[$i];$l=strlen($wert)-1;$char=substr($wert,$l,1);if($char=='"' || $char=='"'){$wert=substr($wert,0,$l);}$r2[$j][$ind]=$wert;if ($ind == 2){$ind=0;$j++;}else{$ind++;}$i++;}return $r2;}// }}}// {{{ check_Time()function check_Time(){global $time0;$count_t=0;$time1=time();if ($time1-$time0 >= 25){$time0=$time1;$count_t++;set_time_limit(30);}}// }}}// {{{ PMA_readFile()//This function reads the file uploaded according to compression methodfunction PMA_readFile($fname, $comp){if (isset($fname)){check_Time();switch ($comp){case 'self':$file = @fopen("$fname", 'rb');if (!$file){return FALSE;}$test = fread($file, 3);fclose($file);if ($test[0] == chr(31) && $test[1] == chr(139)){return PMA_readFile($fname,"gzip");}else{if ($test == 'BZh'){return PMA_readFile($fname, 'bzip2');}else{return PMA_readFile($fname,'plain');}}break;case 'plain':$file = @fopen($fname, 'rb');if (!$file){return FALSE;}$content = fread($file, filesize($fname));fclose($file);break;case 'gzip':if (@function_exists('gzopen')){$file = @gzopen($path, 'rb');if (!$file){return FALSE;}$content = '';while (!gzeof($file)){$content .= gzgetc($file);}gzclose($file);}else{return FALSE;}break;case 'bzip2':if (@function_exists('bzdecompress')){$file = @fopen($fname, 'rb');if (!$file){return FALSE;}$content = fread($file, filesize($fname));fclose($file);$content = bzdecompress($content);}else{return FALSE;}break;default:return FALSE;}check_Time();return $content;}/* else{require("import.php");}*/}function p_log($message){global $u_id, $u_name, $pending, $email, $db;$t_stamp=time();$sql="INSERT INTO log (user_id, datum, message) VALUES ($u_id, $t_stamp, '$message')";$r=$db->query($sql);$res=(!DB::isError($r));return $res;}function get_log_entries(){global $db;$sql="SELECT * FROM log";$res=$db->query($sql);if(!DB::isError($res)){$anz=$res->num_Rows();}else{if (file_exists("../log/log.txt")){$content=PMA_readFile("../log/log.txt","plain");$r=log_split($content);$anz=count($r[0]);}}return $anz;}function read_log($start){$content="";global $max_anz, $db;$sql="SELECT * FROM log LIMIT $start, $max_anz";$res=$db->query($sql);if($res->num_Rows()){while ($row_d=$res->fetch_Row()){$content.="'".$row_d["user_id"]."';'".$row_d["datum"]."';'".$row_d["message"]."'\r\n";}$row=log_split($content);}else{if (file_exists("../log/log.txt")){$content=PMA_readFile("../log/log.txt","plain");$row=log_split($content);$row=array_splice($row,$start,$max_anz);}else{$row="";}}return $row;}//// Pagination routine, generates// page number sequence// taken from phpBBfunction generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE){if (!$num_items){return "";}$total_pages = ceil($num_items/$per_page);if ( $total_pages == 1 ){return '';}$on_page = floor($start_item / $per_page) + 1;$page_string = '';if ( $total_pages > 25 ){$init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;for($i = 1; $i < $init_page_max + 1; $i++){$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "?start=" . ( ( $i - 1 ) * $per_page ) . '">' . $i . '</a>';if ( $i < $init_page_max ){$page_string .= ", ";}}if ( $total_pages > 3 ){if ( $on_page > 1 && $on_page < $total_pages ){$page_string .= ( $on_page > 5 ) ? ' ... ' : ', ';$init_page_min = ( $on_page > 4 ) ? $on_page : 5;$init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++){$page_string .= ($i == $on_page) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "?start=" . ( ( $i - 1 ) * $per_page ) . '">' . $i . '</a>';if ( $i < $init_page_max + 1 ){$page_string .= ', ';}}$page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', ';}else{$page_string .= ' ... ';}for($i = $total_pages - 2; $i < $total_pages + 1; $i++){$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "?start=" . ( ( $i - 1 ) * $per_page ) . '">' . $i . '</a>';if( $i < $total_pages ){$page_string .= ", ";}}}}else{for($i = 1; $i < $total_pages + 1; $i++){$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "?start=" . ( ( $i - 1 ) * $per_page ) . '">' . $i . '</a>';if ( $i < $total_pages ){$page_string .= ', ';}}}if ( $add_prevnext_text ){if ( $on_page > 1 ){$page_string = ' <a href="' . $base_url . "?start=" . ( ( $on_page - 2 ) * $per_page ) . '">Zurück</a> ' . $page_string;}else{$page_string = 'Zurück ' . $page_string;}if ( $on_page < $total_pages ){$page_string .= ' <a href="' . $base_url . "?start=" . ( $on_page * $per_page ) . '">Weiter</a>';}else{$page_string .= ' Weiter';}}$page_string = 'Gehe zu Seite ' . $page_string;return $page_string;}function checkDir($dir){if (empty($dir)){$dir="upload";}if (file_exists("$dir") ){$ftype=filetype("$dir");if ($ftype=="dir" || $ftype=="link"){if($ftype=="link"){$fname_l=readlink("$dir");$ftype_l=filetype($fname_l);if ($ftype_l == "dir"){$ret=is_writeable($fname_l);}else{if(unlink("$dir")){$ret=mkdir("$dir");}else{$ret=FALSE;}}}else{$ret=TRUE;}}else{if(unlink("$dir")){$ret=mkdir("$dir");}else{$ret=FALSE;}}}else{$ret=mkdir ("$dir");}return $ret;}function upload_pic($pic, &$meld, &$dst){$fname="../images/$pic";$tmp=$_FILES['pic']['tmp_name'];// echo $_FILES["pic"]["type"];$img_info=getimagesize($tmp);$typ=$img_info[2];switch($typ){case 1: //GIFcase 2: //JPEGcase 3: //PNGif (checkDir("../images")){if(!move_uploaded_file($tmp,$fname)){$meld="Konnte Datei nicht verschieben!";unlink($tmp);$ret=false;}else{if(!checkDir("../images/thumbs")){$meld="Konnte Thumbnail nicht erstellen!";unlink($fname);$ret=false;}else{if (function_exists("gd_info")){//GD Bibliothek steht zur Verfügung$gd_info=gd_info();$width=60;$height=round($img_info[1]/($img_info[0]/$width),0);$im_d=imagecreate($width, $height);switch($typ){case 1:$im_s=imagecreatefromgif($fname);break;case 2:$im_s=imagecreatefromjpeg($fname);break;case 3:$im_s=imagecreatefrompng($fname);break;}imagepalettecopy($im_d,$im_s);imagecopyresized($im_d,$im_s,0,0,0,0,$width,$height,$img_info[0],$img_info[1]);$dst=$pic;if($gd_info["PNG Support"]){$dst=substr($dst,0,strlen($dst)-3);$dst.="png";if($typ!=3){imagePNG($im_s,"../images/$dst");}$ret= imagePNG($im_d,"../images/thumbs/$dst");}else{if($gd_info("JPEG Support")){$ret= imageJPEG($im_d,"../images/thumbs/$dst");}else{$ret= false;}}imagedestroy($im_s);imagedestroy($im_d);if(!$ret){$meld="Konnte Thumbnail nicht erstellen!";}}else{//GD-Bibliothek steht NICHT zur Verfügung!$ret= copy($fname,$fname2);$dst=$fname2;if(!$ret){$meld="Konnte Thumbnail nicht erstellen!";}}}}}else{$meld="Konnte Datei nicht verschieben!";$ret=false;}break;default:$meld="Das ist kein gültiges Bild!";$ret=false;break;}return $ret;}function generate_pagination2($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE){global $mode, $common;if (!$num_items){return "";}$total_pages = ceil($num_items/$per_page);if ( $total_pages == 1 ){return '<table align="center" class="navig"><tr><th>'.$common["page"]." 1 ".$common["of"].' 1</th></tr></table><br><br>';}$on_page = floor($start_item / $per_page) + 1;$page_string = '<table align="center" class="navig"><tr><th colspan="5">'.$common["page"].' '.$on_page.' '.$common["of"].' '.$total_pages.'</th></tr><tr>';if ( $add_prevnext_text ){if ( $on_page > 1 ){$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\"|<<\" title=\"${common["first_page"]}\" class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"0\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";$prev_v=($on_page - 2 ) * $per_page;$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\"|<\" title=\"${common["previous_page"]}\" class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"$prev_v\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";}else{$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\"|<<\" disabled class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"0\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\"|<\" class=\"liteoption\" disabled><input type=\"hidden\" name=\"start\" value=\"0\"></form></td>";}}if($total_pages >1){$page_opts="";for ($i=0;$i<$total_pages;$i++){$selected="";$j=$i+1;if($j==$on_page){$selected="selected=\"selected\"";}$start=($i*$per_page);$page_opts.="<option value=$start $selected>$j</option>";}$page_string.="<td width=\"100\"><form name=\"nav\" action=$base_url method=\"post\"><select name=\"start\">$page_opts</select> <input type=\"submit\" value=\"${common["go"]}\" class=\"liteoption\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";}if ( $add_prevnext_text ){if ( $on_page < $total_pages ){$next_v=($on_page * $per_page);$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\">|\" title=\"${common["next_page"]}\" class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"$next_v\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";$max_v=($total_pages -1)*$per_page;$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\">>|\" title=\"${common["last_page"]}\" class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"$max_v\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";}else{$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\">|\" class=\"liteoption\" disabled><input type=\"hidden\" name=\"start\" value=\"0\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";$page_string .= "<td><form name=\"nav\" action=$base_url method=\"post\"><input type=\"submit\" value=\">>|\" disabled class=\"liteoption\" disabled><input type=\"hidden\" name=\"start\" value=\"0\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"></form></td>";}}$page_string.="</tr></table><br><br>";return $page_string;}function resize_pic($img, $width){$tmp_name=$_FILES["a_pic"]["tmp_name"];$size=getimagesize($tmp_name);$i_width=$size[0];$i_height=$size[1];if ($i_width > $width){$r=$i_width/$width;switch ($_FILES["a_pic"]["type"]){case "image/png":$source=imagecreatefrompng($tmp_name);break;case "image/jpeg":$source=imagecreatefromjpeg($tmp_name);break;case "image/gif":$source=imagecreatefromgif($tmp_name);break;}$height=$i_height/$r;$dest=imagecreatetruecolor($width, $height);imagecopyresampled($dest,$source,0,0,0,0,$width,$height,$i_width,$i_height);imagejpeg($dest,"$img",100);}else{move_uploaded_file($tmp_name,$img);}}?>