Subversion-Projekte lars-tiefland.em_wm

Revision

Revision 39 | Revision 54 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
3 lars 1
<?
44 lars 2
 
3
	$a;
4
	$username=(isset($_POST["username"]))?$_POST["username"]:"";
5
	function login($username, $password)
6
	{
7
		global $smarty, $username;
8
		$smarty->assign("meld", ($username)?"Ein Fehler ist aufgtreten!":"");
9
		$smarty->assign("db_meld", ($username)?"Username und / oder Paßwort stimmen nicht!":"");
10
		$smarty->assign("error", ($username)?true: false);
11
		$smarty->assign("title", "Login");
12
		$smarty->assign("user", $username);
13
		$smarty->display("login.tpl");
14
	}
15
 
16
	function User_Login($show=true)
17
	{
18
		global $smarty, $db, $a, $config;
19
		$params = array(
20
			"dsn" => $db,
21
			"table" => "auth_user",
22
			"usernamecol" => "u_name",
23
			"passwordcol" => "u_password"
24
		);
25
 
26
		$a = new Auth("DB", $params, "login",$show);
27
		$a->setSessionName($config->cookie_name);
28
		$a->setIdle($config->session_length,false);
29
		$a->setExpire(2*$config->session_length,false);
30
		$a->start();
31
		if ($a->getAuth())
32
		{
33
			$u=new User("","");
34
			$u->UserData($a->getUserName());
35
			$smarty->assign("u_name", $u->u_name);
36
			$smarty->assign("u_type", $u->u_type);
37
			$disabled=($u->u_type==0)?"disabled=disabled":"";
38
			$smarty->assign("disabled", $disabled);
39
		}
40
		return $a;
41
	}
42
 
43
	function User_logout()
44
	{
45
		global $a;
46
		$a->logout();
47
	}
39 lars 48
	// {{{ validate_email()
49
 
50
	/**
51
	 * Check to see if email address is valid or
52
	 * already present in the DB
53
	*/
3 lars 54
	function validate_email($email)
55
	{
56
		global $smarty;
57
		$meld="";
58
		$error=false;
59
		if ($email != '')
60
		{
61
			if (preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is', $email)&& $email!="your@address.com")
62
			{
63
					$error=false;
64
					$meld="";
65
					$db_meld="";
66
			}
67
			else
68
			{
69
				$error=true;
70
				$meld = "Email ungültig!";
71
				$db_meld="";
72
				$smarty->assign("email",$email);
73
			}
74
		}
75
		else
76
		{
77
			$error = true;
78
			$meld = "Email ungültig!";
79
			$db_meld="";
80
			$smarty->assign("email",$email);
81
		}
82
		if($error)
83
		{
84
			$smarty->assign("title","Ungültige E-Mail Adresse");
85
			$smarty->assign("error",$error);
86
			$smarty->assign("meld",$meld);
87
			$smarty->assign("db_meld",$db_meld);
88
		}
89
		else
90
		{
91
			$smarty->assign("meld","");
92
			$smarty->assign("db_meld","");
93
		}
94
		return !$error;
95
	}
39 lars 96
	// }}}
97
	// {{{ log_split()
3 lars 98
	function log_split($s)
99
	{
100
		global $k, $time0, $count_t;
101
		$r = Array();
102
		$p = 0;
103
		$l = strlen($s);
104
		while ($p < $l)
105
		{
106
			check_Time();
107
			while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false))
108
			{
109
				$p++;
110
			}
111
			if ($s[$p] == '"')
112
			{
113
				$p++;
114
				$q = $p;
115
				while (($p < $l) && ($s[$p] != '"'))
116
				{
117
					if ($s[$p] == '\\')
118
					{
119
						$p+=2;
120
						continue;
121
					}
122
					$p++;
123
				}
124
				$r[] = stripslashes(substr($s, $q, $p-$q));
125
				$p++;
126
				while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false))
127
				{
128
					$p++;
129
				}
130
				$p++;
131
			}
132
			else
133
			{
134
				if ($s[$p] == "'")
135
				{
136
					$p++;
137
					$q = $p;
138
					while (($p < $l) && ($s[$p] != "'"))
139
					{
140
						if ($s[$p] == '\\')
141
						{
142
							$p+=2;
143
								continue;
144
						}
145
					$p++;
146
					}
147
					$r[] = stripslashes(substr($s, $q, $p-$q));
148
					$p++;
149
					while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false))
150
					{
151
						$p++;
152
					}
153
						$p++;
154
				}
155
				else
156
				{
157
					$q = $p;
158
					while (($p < $l) && (strpos(";",$s[$p]) === false))
159
					{
160
						$p++;
161
					}
162
					$r[] = stripslashes(trim(substr($s, $q, $p-$q)))
163
;
164
					while (($p < $l) && (strpos(" \r\t\n",$s[$p]) !== false))
165
					{
166
						$p++;
167
					}
168
					$p++;
169
				}
170
			}
171
		}
172
		$r2 = array(array());
173
		$i=0;
174
		$j=0;
175
		$ind=0;
176
		$anz=count($r);
177
		while ($i < $anz)
178
		{
179
			$wert=$r[$i];
180
			$l=strlen($wert)-1;
181
			$char=substr($wert,$l,1);
182
			if($char=='"' || $char=='"')
183
			{
184
				$wert=substr($wert,0,$l);
185
			}
186
			$r2[$j][$ind]=$wert;
187
			if ($ind == 2)
188
			{
189
				$ind=0;
190
				$j++;
191
			}
192
			else
193
			{
194
				$ind++;
195
			}
196
			$i++;
197
		}
198
		return $r2;
199
	}
39 lars 200
	// }}}
201
	// {{{ check_Time()
3 lars 202
	function check_Time()
203
	{
204
		global $time0;
205
		$count_t=0;
206
		$time1=time();
207
		if ($time1-$time0 >= 25)
208
		{
209
			$time0=$time1;
210
			$count_t++;
211
			set_time_limit(30);
212
		}
213
	}
39 lars 214
	// }}}
215
	// {{{ PMA_readFile()
216
 
3 lars 217
	//This function reads the file uploaded according to compression method
218
	function PMA_readFile($fname, $comp)
219
	{
220
		if (isset($fname))
221
		{
222
			check_Time();
223
			switch ($comp)
224
			{
225
				case 'self':
226
				$file = @fopen("$fname", 'rb');
227
				if (!$file)
228
				{
229
					return FALSE;
230
				}
231
				$test = fread($file, 3);
232
				fclose($file);
233
				if ($test[0] == chr(31) && $test[1] == chr(139))
234
				{
235
					return PMA_readFile($fname,"gzip");
236
				}
237
				else
238
				{
239
					if ($test == 'BZh')
240
					{
241
						return PMA_readFile($fname, 'bzip2');
242
					}
243
					else
244
					{
245
						return PMA_readFile($fname,'plain');
246
					}
247
				}
248
				break;
249
				case 'plain':
250
					$file = @fopen($fname, 'rb');
251
					if (!$file)
252
					{
253
						return FALSE;
254
					}
255
					$content = fread($file, filesize($fname));
256
					fclose($file);
257
				break;
258
				case 'gzip':
259
					if (@function_exists('gzopen'))
260
					{
261
						$file = @gzopen($path, 'rb');
262
						if (!$file)
263
						{
264
							return FALSE;
265
						}
266
						$content = '';
267
						while (!gzeof($file))
268
						{
269
							$content .= gzgetc($file);
270
						}
271
						gzclose($file);
272
					}
273
					else
274
					{
275
						return FALSE;
276
					}
277
					break;
278
				case 'bzip2':
279
					if (@function_exists('bzdecompress'))
280
					{
281
						$file = @fopen($fname, 'rb');
282
						if (!$file)
283
						{
284
							return FALSE;
285
						}
286
						$content = fread($file, filesize($fname));
287
						fclose($file);
288
						$content = bzdecompress($content);
289
					}
290
					else
291
					{
292
						return FALSE;
293
					}
294
					break;
295
				default:
296
					return FALSE;
297
			}
298
			check_Time();
299
			return $content;
300
		}
301
/*		else
302
		{
303
			require("import.php");
304
		}*/
305
	}
306
 
307
	function p_log($message)
308
	{
309
		global $u_id, $u_name, $pending, $email;
310
		$t_stamp=time();
311
		$sql="INSERT INTO log (user_id, datum, message) VALUES ($u_id, $t_stamp, '$message')";
312
		$res=mysql_query($sql);
313
		if($pending)
314
		{
315
			$body="User $u_name hat ".date('\u\m H:i:s \U\h\r')." folgende Akton durchgeführt: $message";
316
			$p="From: $email\r\nReply-To: $email\r\n";
317
			$p.="X-Mailer: PHP/" . phpversion();
318
			$res_m=@mail("info@gartencreart.de","Pflanzendatenank",$body,$p);
319
		}
320
		return $res;
321
	}
322
 
323
	function get_log_entries()
324
	{
325
		$sql="SELECT * FROM log";
326
		if($res=mysql_query($sql))
327
		{
328
			$anz=mysql_num_rows($res);
329
		}
330
		else
331
		{
332
			if (file_exists("../log/log.txt"))
333
			{
334
				$content=PMA_readFile("../log/log.txt","plain");
335
				$r=log_split($content);
336
				$anz=count($r[0]);
337
			}
338
		}
339
		return $anz;
340
	}
341
	function read_log($start)
342
	{
343
		$content="";
344
		global $max_anz;
345
		$sql="SELECT * FROM log LIMIT $start, $max_anz";
346
		if(mysql_num_rows($res=mysql_query($sql)))
347
		{
348
			while ($row_d=mysql_fetch_array($res))
349
			{
350
				$content.="'".$row_d["user_id"]."';'".$row_d["datum"]."';'".$row_d["message"]."'\r\n";
351
			}
352
			$row=log_split($content);
353
		}
354
		else
355
		{
356
			if (file_exists("../log/log.txt"))
357
			{
358
				$content=PMA_readFile("../log/log.txt","plain");
359
				$row=log_split($content);
360
				$row=array_splice($row,$start,$max_anz);
361
			}
362
			else
363
			{
364
				$row="";
365
			}
366
		}
367
		return $row;
368
	}
369
 
370
	//
371
	// Pagination routine, generates
372
	// page number sequence
373
	// taken from phpBB
374
 
375
	function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE)
376
	{
377
		if (!$num_items)
378
		{
379
			return "";
380
		}
381
 
382
		$total_pages = ceil($num_items/$per_page);
383
 
384
		if ( $total_pages == 1 )
385
		{
386
			return '';
387
		}
388
 
389
		$on_page = floor($start_item / $per_page) + 1;
390
 
391
		$page_string = '';
392
		if ( $total_pages > 25 )
393
		{
394
			$init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;
395
 
396
			for($i = 1; $i < $init_page_max + 1; $i++)
397
			{
398
				$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "?start=" . ( ( $i - 1 ) * $per_page ) . '">' . $i . '</a>';
399
				if ( $i <  $init_page_max )
400
				{
401
					$page_string .= ", ";
402
				}
403
			}
404
 
405
			if ( $total_pages > 3 )
406
			{
407
				if ( $on_page > 1  && $on_page < $total_pages )
408
				{
409
					$page_string .= ( $on_page > 5 ) ? ' ... ' : ', ';
410
 
411
					$init_page_min = ( $on_page > 4 ) ? $on_page : 5;
412
					$init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;
413
 
414
					for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++)
415
					{
416
						$page_string .= ($i == $on_page) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "?start=" . ( ( $i - 1 ) * $per_page ) . '">' . $i . '</a>';
417
						if ( $i <  $init_page_max + 1 )
418
						{
419
							$page_string .= ', ';
420
						}
421
					}
422
 
423
					$page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', ';
424
				}
425
				else
426
				{
427
					$page_string .= ' ... ';
428
				}
429
 
430
				for($i = $total_pages - 2; $i < $total_pages + 1; $i++)
431
				{
432
					$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>'  : '<a href="' . $base_url . "?start=" . ( ( $i - 1 ) * $per_page ) . '">' . $i . '</a>';
433
					if( $i <  $total_pages )
434
					{
435
						$page_string .= ", ";
436
					}
437
				}
438
			}
439
		}
440
		else
441
		{
442
			for($i = 1; $i < $total_pages + 1; $i++)
443
			{
444
				$page_string .= ( $i == $on_page ) ? '<b>' . $i . '</b>' : '<a href="' . $base_url . "?start=" . ( ( $i - 1 ) * $per_page ) . '">' . $i . '</a>';
445
				if ( $i <  $total_pages )
446
				{
447
					$page_string .= ', ';
448
				}
449
			}
450
		}
451
 
452
		if ( $add_prevnext_text )
453
		{
454
			if ( $on_page > 1 )
455
			{
456
				$page_string = ' <a href="' . $base_url . "?start=" . ( ( $on_page - 2 ) * $per_page ) . '">Zurück</a>&nbsp;&nbsp;' . $page_string;
457
			}
458
			else
459
			{
460
				$page_string = 'Zurück&nbsp;&nbsp;' . $page_string;
461
			}
462
			if ( $on_page < $total_pages )
463
			{
464
				$page_string .= '&nbsp;&nbsp;<a href="' . $base_url . "?start=" . ( $on_page * $per_page ) . '">Weiter</a>';
465
			}
466
			else
467
			{
468
				$page_string .= '&nbsp;&nbsp;Weiter';
469
			}
470
 
471
		}
472
 
473
		$page_string = 'Gehe zu Seite ' . $page_string;
474
 
475
		return $page_string;
476
	}
477
 
478
	function checkDir($dir)
479
	{
480
		if (empty($dir))
481
		{
482
			$dir="upload";
483
		}
484
		if (file_exists("$dir") )
485
		{
486
			$ftype=filetype("$dir");
487
			if ($ftype=="dir" || $ftype=="link")
488
			{
489
				if($ftype=="link")
490
				{
491
				$fname_l=readlink("$dir");
492
				$ftype_l=filetype($fname_l);
493
				if ($ftype_l == "dir")
494
				{
495
					$ret=is_writeable($fname_l);
496
				}
497
				else
498
				{
499
						if(unlink("$dir"))
500
						{
501
							$ret=mkdir("$dir");
502
						}
503
						else
504
						{
505
							$ret=FALSE;
506
						}
507
					}
508
				}
509
				else
510
				{
511
					$ret=TRUE;
512
				}
513
			}
514
			else
515
			{
516
				if(unlink("$dir"))
517
				{
518
					$ret=mkdir("$dir");
519
				}
520
				else
521
				{
522
					$ret=FALSE;
523
				}
524
			}
525
		}
526
		else
527
		{
528
			$ret=mkdir ("$dir");
529
		}
530
		return $ret;
531
	}
532
 
533
	function upload_pic($pic, &$meld, &$dst)
534
	{
535
		$fname="../images/$pic";
536
		$tmp=$_FILES['pic']['tmp_name'];
537
//		echo $_FILES["pic"]["type"];
538
		$img_info=getimagesize($tmp);
539
		$typ=$img_info[2];
540
		switch($typ)
541
		{
542
			case 1:		//GIF
543
			case 2:		//JPEG
544
			case 3:		//PNG
545
				if (checkDir("../images"))
546
				{
547
					if(!move_uploaded_file($tmp,$fname))
548
					{
549
						$meld="Konnte Datei nicht verschieben!";
550
						unlink($tmp);
551
						$ret=false;
552
					}
553
					else
554
					{
555
						if(!checkDir("../images/thumbs"))
556
						{
557
							$meld="Konnte Thumbnail nicht erstellen!";
558
							unlink($fname);
559
							$ret=false;
560
						}
561
						else
562
						{
563
							if (function_exists("gd_info"))
564
							{
565
								//GD Bibliothek steht zur Verfügung
566
								$gd_info=gd_info();
567
								$width=60;
568
								$height=round($img_info[1]/($img_info[0]/$width),0);
569
								$im_d=imagecreate($width, $height);
570
								switch($typ)
571
								{
572
									case 1:
573
										$im_s=imagecreatefromgif($fname);
574
										break;
575
									case 2:
576
										$im_s=imagecreatefromjpeg($fname);
577
										break;
578
									case 3:
579
										$im_s=imagecreatefrompng($fname);
580
										break;
581
								}
582
								imagepalettecopy($im_d,$im_s);
583
								imagecopyresized($im_d,$im_s,0,0,0,0,$width,$height,$img_info[0],$img_info[1]);
584
								$dst=$pic;
585
								if($gd_info["PNG Support"])
586
								{
587
									$dst=substr($dst,0,strlen($dst)-3);
588
									$dst.="png";
589
									if($typ!=3)
590
									{
591
										imagePNG($im_s,"../images/$dst");
592
									}
593
									$ret= imagePNG($im_d,"../images/thumbs/$dst");
594
								}
595
								else
596
								{
597
									if($gd_info("JPEG Support"))
598
									{
599
										$ret= imageJPEG($im_d,"../images/thumbs/$dst");
600
									}
601
									else
602
									{
603
										$ret= false;
604
									}
605
								}
606
								imagedestroy($im_s);
607
								imagedestroy($im_d);
608
								if(!$ret)
609
								{
610
									$meld="Konnte Thumbnail nicht erstellen!";
611
								}
612
							}
613
							else
614
							{
615
								//GD-Bibliothek steht NICHT zur Verfügung!
616
								$ret= copy($fname,$fname2);
617
								$dst=$fname2;
618
								if(!$ret)
619
								{
620
									$meld="Konnte Thumbnail nicht erstellen!";
621
								}
622
							}
623
						}
624
					}
625
				}
626
				else
627
				{
628
					$meld="Konnte Datei nicht verschieben!";
629
					$ret=false;
630
				}
631
				break;
632
			default:
633
				$meld="Das ist kein gültiges Bild!";
634
				$ret=false;
635
				break;
636
		}
637
		return $ret;
638
	}
639
	function generate_pagination2($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE)
640
	{
641
		global $mode;
642
		if (!$num_items)
643
		{
644
			return "";
645
		}
646
 
647
		$total_pages = ceil($num_items/$per_page);
648
 
649
		if ( $total_pages == 1 )
650
		{
651
			return '<table align="center" class="navig"><tr><th>Seite 1 von 1</th></tr></table><br><br>';
652
		}
653
 
654
		$on_page = floor($start_item / $per_page) + 1;
655
 
656
		$page_string = '<table align="center" class="navig"><tr><th colspan="5">Seite '.$on_page.' von '.$total_pages.'</th></tr><tr>';
657
 
658
		if ( $add_prevnext_text )
659
		{
660
			if ( $on_page > 1 )
661
			{
12 lars 662
				$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>";
3 lars 663
				$prev_v=($on_page - 2 ) * $per_page;
12 lars 664
				$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>";
3 lars 665
			}
666
			else
667
			{
12 lars 668
				$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>";
669
				$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>";
3 lars 670
			}
671
		}
672
		if($total_pages >1)
673
		{
674
			for ($i=0;$i<$total_pages;$i++)
675
			{
676
				$selected="";
677
				$j=$i+1;
678
				if($j==$on_page)
679
				{
680
					$selected="selected=\"selected\"";
681
				}
682
				$start=($i*$per_page);
683
				$page_opts.="<option value=$start $selected>$j</option>";
684
			}
12 lars 685
			$page_string.="<td width=\"100\"><form name=\"nav\" action=$base_url method=\"post\"><select name=\"start\">$page_opts</select>&nbsp;&nbsp;<input type=\"submit\" value=\"go\" class=\"liteoption\"><input type=\"hidden\" name=\"mode\" value=\"$mode\"><input type=\"hidden\" name=\"email\" value=\"{$email}\"></form></td>";
3 lars 686
		}
687
 
688
		if ( $add_prevnext_text )
689
		{
690
			if ( $on_page < $total_pages )
691
			{
692
				$next_v=($on_page * $per_page);
12 lars 693
				$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>";
3 lars 694
				$max_v=($total_pages -1)*$per_page;
12 lars 695
				$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>";
3 lars 696
			}
697
			else
698
			{
12 lars 699
				$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>";
700
				$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>";
3 lars 701
			}
702
 
703
		}
704
		$page_string.="</tr></table><br><br>";
705
 
706
		return $page_string;
707
	}
708
?>