Subversion-Projekte lars-tiefland.em_wm

Revision

Revision 12 | Revision 44 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

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