Subversion-Projekte lars-tiefland.em_wm

Revision

Revision 12 | Zur aktuellen Revision | Details | Letzte Änderung | Log anzeigen | RSS feed

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