Revision 61 | Revision 66 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed
<?$a;$u;$username=(isset($_POST["username"]))?$_POST["username"]:"";function send_email($art=0){global $u, $mail, $password, $register;$to="$u->u_name <$u->u_email>";$from_addr="webmaster@lars-tiefland.de";$from_name="Lars Tiefland";$from="$from_name <$from_addr>";$dir=dirname($_SERVER["PHP_SELF"]);$host="http://".$_SERVER["SERVER_NAME"];$url=$host.$dir;$art=intval($art);switch ($art){case 0:$email_tpl="email/$u->u_lang/register.tpl";$subject=$register["reg_subject"]." - Welcome to $url";break;case 1:$email_tpl="email/$u->u_lang/changed.tpl";$subject=$register["changed_subject"];break;case 2:$email_tpl="email/$u->u_lang/change.tpl";$subject=$register["change_subject"];default:return false;break;}if (file_exists($email_tpl)){$email=file_get_contents("$email_tpl");$email=sprintf($email, $u->u_name, $url, $u->u_name, $password);$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;$smarty->assign("meld", ($username||$meld)?$comon["an_error_occured"]:$meld);$smarty->assign("db_meld", ($username)?"Username und / oder Paßwort stimmen nicht!":$db_meld);$smarty->assign("error", ($username||$meld)?true: false);$smarty->assign("title", $common["login"]);$smarty->assign("user", $username);$smarty->display("login.tpl");}function User_Login($show=true){global $smarty, $db, $a, $config, $u;$params = array("dsn" => $db,"table" => "auth_user","usernamecol" => "u_name","passwordcol" => "u_password");$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->UserData($a->getUserName());$smarty->assign("title",$common["login"]);$smarty->assign("u_name", $u->u_name);$smarty->assign("u_type", $u->u_type);$disabled=($u->u_type==0)?"disabled=disabled":"";$smarty->assign("disabled", $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;$t_stamp=time();$sql="INSERT INTO log (user_id, datum, message) VALUES ($u_id, $t_stamp, '$message')";$res=mysql_query($sql);if($pending){$body="User $u_name hat ".date('\u\m H:i:s \U\h\r')." folgende Akton durchgeführt: $message";$p="From: $email\r\nReply-To: $email\r\n";$p.="X-Mailer: PHP/" . phpversion();$res_m=@mail("info@gartencreart.de","Pflanzendatenank",$body,$p);}return $res;}function get_log_entries(){$sql="SELECT * FROM log";if($res=mysql_query($sql)){$anz=mysql_num_rows($res);}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;$sql="SELECT * FROM log LIMIT $start, $max_anz";if(mysql_num_rows($res=mysql_query($sql))){while ($row_d=mysql_fetch_array($res)){$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=\"an den Anfang\" class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"0\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"><input type=\"hidden\" name=\"email\" value=\"{$email}\"></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=\"eine Seite zurück\" class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"$prev_v\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"><input type=\"hidden\" name=\"email\" value=\"{$email}\"></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\"><input type=\"hidden\" name=\"email\" value=\"{$email}\"></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=\"$prev_v\"><input type=\"hidden\" name=\"email\" value=\"{$email}\"></form></td>";}}if($total_pages >1){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\"><input type=\"hidden\" name=\"email\" value=\"{$email}\"></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=\"eine Seite vor\" class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"$next_v\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"><input type=\"hidden\" name=\"email\" value=\"{$email}\"></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=\"ans Ende\" class=\"liteoption\"><input type=\"hidden\" name=\"start\" value=\"$max_v\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"><input type=\"hidden\" name=\"email\" value=\"{$email}\"></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=\"$next_v\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"><input type=\"hidden\" name=\"email\" value=\"{$email}\"></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=\"\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"><input type=\"hidden\" name=\"email\" value=\"{$email}\"></form></td>";}}$page_string.="</tr></table><br><br>";return $page_string;}?>