Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP Terminkalender mit Einträgen ohne Authentifizierung mit SQL als Datenablage

Frage Entwicklung PHP

Mitglied: zensbert

zensbert (Level 1) - Jetzt verbinden

25.06.2008, aktualisiert 27.06.2008, 5439 Aufrufe, 4 Kommentare

Hallo,
ich bastele gerade an einer Intranet-Seite,
auf der soll ein Terminkalender sein auf der jeder etwas eintragen können soll ohne sich vorab anzumelden.
Da ich kein PHP-Fachmann bin, bin ich natürlich ein Fan von vorgefertigten Scripts..
Habe auch so etwas gefunden,

http://dimk.de/Demos/kalenderv3/

Der funktioniert jedoch nur bedingt auf meiner HP, die Einträge werden in meinem MYSQL abgespeichert,
das klappt, jedoch kann ich nur den aktuellen Monat einsehen, wenn ich in der Monatsauswahl einen anderen
Monat auswähle tut sich nichts. Habe schon versucht den Autor zu kontaktieren, scheint jedoch keine Lust zu haben
auf meine dummen Fragen zu antworten. Betreibe hier Xampp in der aktuellsten Version.
Wenn jemand ne idee hat wie ich den Fehler wegbekomme oder schon ein passendes Skript hat, der würde mir sehr helfen.

Danke im voraus,


Thomas
Mitglied: herpes
25.06.2008 um 15:13 Uhr
hallo thomas
wie kann man dir denn jetzt helfen?
das beispiel
http://dimk.de/Demos/kalenderv3/
funktioniert ja
auch eintraege im monat juli kann man machen..


hast du bei der installation auch alle
einstellungen gemacht die der kalender benoetigt?

wenn bei deiner lokalen verison nach auswahl
eines anderen monats nichts passiert, sieht es so aus
das variablen nicht korrekt uebergeben/verarbeitet werden.

ist in dem skrit sb
error_reporting(0)
gesetzt?

was wird dir angezeigt wenn du ein

PHPINFO();


ausgibst?


gruss
steffi
Bitte warten ..
Mitglied: zensbert
26.06.2008 um 08:06 Uhr
ja ich kann ja auch eintragen, nur wenn man den 29. hat isses praktisch termine für den 1. nächsten monats machen zu können das is nunmal das problem, ich bekomme nur den aktuellen monat angezeigt..
dieses error_reporting hab ich nich im skript gefunden..
bei phpinfo kommt unter 1000 anderen Infos: PHP Version 5.2.5
wenn du andere daten benötigst sag mir was


dieses kalender skript besteht aus 3 phps.

eine config mit verbindungsdaten zum sql,
eine install die die tables im sql installiert, nur einmal auszuführen
und eine kalender.php mit dem ganzen quellcode für die Eintragsfunktionen usw..

irgendwie dehnt dieses skript auch die seite sehr aus, sehr zum layout-nachteil...
ich geb einfach mal den quelltext bei, vll. fällt euch / dir ja was auf..

01.
<?php 
02.
 
03.
 
04.
 
05.
class Kalender 
06.
07.
	  
08.
	var $time_aktuell = array(); 
09.
	var $aktuell
10.
	var $mktime
11.
	 
12.
	var $mysql = array(); 
13.
	var $values
14.
	 
15.
	 
16.
	function zeitmarke($values=FALSE) 
17.
18.
		@setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); 
19.
 
20.
		#'de_DE', 'de', 'ge' 
21.
		# Aktuelle Zeit wird in die Variable $this->aktuell als ein Array gespeichert. 
22.
		$actually = time(); 
23.
		$date1 = strftime("%A,%B,%c,%d,%H,%m,%M,%w,%Y,%x", $actually); 
24.
		$this->aktuell = explode(",",$date1); 
25.
		 
26.
		#print $date1
27.
		 
28.
		 
29.
		# Varibale values kommt von einem Formular. User bestimmt Jahr und Monat. 
30.
		# Wenn es also Values gibt, dann ersetzt es die aktuelle Zeit durch 
31.
		# benutzerdefinierte Zeit 
32.
		if(!empty($values)) 
33.
34.
			list($zeitf[5],$zeitf[8]) = $values
35.
36.
		else
37.
			$zeitf[5] = $this->aktuell[5]; 
38.
			$zeitf[8] = $this->aktuell[8]; 
39.
			#list($zeitf[5],$zeitf[8]) = arary($this->aktuell[5],$this->aktuell[8]); 
40.
41.
		 
42.
		# Zeitmarke um das kalender anzuzeigen. Es weis nun, welcher Monat  
43.
		# und Jahr angezeigt werden müssen.		 
44.
		 
45.
		$this->mktimee = mktime(0,0,0,$zeitf[5],1,$zeitf[8]); 
46.
		 
47.
		# benutzerdefinierte zeit wird in variable monat_mk gespeichert. 
48.
		# aktueller Monat wird in mktime_unveraendert gespeichert. 
49.
		$date2 = strftime("%A,%B,%c,%d,%H,%m,%M,%w,%Y",$this->mktimee); 
50.
		$this->monat_mk = explode(",",$date2); 
51.
		$this->mktime_unveraendert = $this->mktimee; 
52.
		 
53.
		$this->aktuell[9] = preg_replace("#^([0-9]+)/([0-9]+)/([0-9]+)$#","\\2.\\1.20\\3",$this->aktuell[9]); 
54.
		 
55.
		 
56.
57.
	 
58.
	function aktuell() 
59.
60.
		# Zeit für den Kaledner wird definiert, durch die schon definierte mktime
61.
		# Muss Außerhalb der zeitmarke() geschechen, weil Zeitmarke unverändert 
62.
		# bleiben muss. benutzerdefinierte zeit wird in time_aktuell gespeichert. 
63.
		  
64.
		$date = strftime("%A,%B,%c,%d,%H,%m,%M,%w,%Y,%x,%X",$this->mktimee); 
65.
		$this->time_aktuell = explode(",",$date); 
66.
		 
67.
		#$this->time_aktuell[9] = "08/15/03"
68.
		#$this->time_aktuell[9] = preg_replace("#^([0-9]+).([0-9]+).([0-9]+)$#","\\2/\\1/\\3",$this->time_aktuell[9]); 
69.
		$this->time_aktuell[9] = preg_replace("#^([0-9]+)/([0-9]+)/([0-9]+)$#","\\2.\\1.20\\3",$this->time_aktuell[9]); 
70.
		 
71.
	 
72.
73.
	 
74.
	function smal_kal() 
75.
76.
		 
77.
		# Kurzschreibweisen der Wochentage 
78.
		$wochentage =array
79.
		"M", "D"
80.
		"M","D"
81.
		"F", "S", "S"); 
82.
		 
83.
		print "<table border=1>"
84.
		foreach ($wochentage as $a){ 
85.
		echo "<td bgcolor=#92A5EF><font color=white>$a</font></td>"
86.
87.
		 
88.
		for($x=0; $x<6*7;$x++){ 
89.
			 
90.
			# Aktuelle Zeit wird bei jedem Schleifendurchlauf neu definiert 
91.
			$this->aktuell(); 
92.
					 
93.
			# Wandelt die amerikanische Zeitform in die europäische Form um		 
94.
			 
95.
			# Bei jedem siebten Tag wird eine neue Zeile erzeugt 
96.
			if(($x%7)==0) 
97.
			print "</tr><tr>"
98.
			 
99.
			# Es wird eine leere Zelle in der Zeile erezugt, 
100.
			# solange $x kleiner ist als der aktuelle Wochentag oder falls 
101.
			# der durchlaufende Monat nicht den aktuellen oder benutzerdefinierten dem Monat entspricht. 
102.
			if(($x+1) < $this->time_aktuell[7] || $this->time_aktuell[5] !== $this->monat_mk[5]) 
103.
			print "<td><br></td>"
104.
			else
105.
				 
106.
				# Aktueller Tag wird farbig gekennzeichnet  
107.
				$td = ($this->aktuell[9] == $this->time_aktuell[9]) ? 
108.
				"<td bgcolor='#A4D5F2'><font color=white>" :"<td></font>"
109.
				 
110.
				if(!$_POST['values']) 
111.
					$values = array($this->time_aktuell[5],$this->time_aktuell[8]); 
112.
				else
113.
				$values = $GLOBALS['values']; 
114.
115.
				 
116.
				 
117.
				 
118.
				 
119.
				print "$td 
120.
				  
121.
				 
122.
				  
123.
				  
124.
				  
125.
				 <a href='$PHP_SELF?aktion=ansicht&date=".$this->time_aktuell[9]."&values[]=".$values[0]."&values[]=".$values[1]."'
126.
				".$this->time_aktuell[3]."</td></a>"
127.
				 
128.
				# +1 Tag 
129.
				$this->mktimee	 += (60*60*24); 
130.
131.
132.
		print "</table>"
133.
		 
134.
		 
135.
136.
	 
137.
	function form_date() 
138.
139.
			 
140.
		$days = array("Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"); 
141.
		$monate_en = array(	"Januar", "Februar", "März"
142.
		"April", "Mai", "Juni", "Juli"
143.
		"August", "September", "Oktober"
144.
		"November", "Dezember"); 
145.
	 
146.
		print " 
147.
		<form action=$_SERVER[PHP_SELF] method='post'
148.
		<select name='values[]'
149.
		"; 
150.
		for($x=0; $x<=(count($monate_en)); $x++){ 
151.
		$sel = ($this->aktuell[5] == ($x+1)) ? "SELECTED" : " "
152.
		print "<option value='".($x+1)."' $sel >".$monate_en[$x]."</option>"
153.
154.
		print "</select><br>"
155.
 
156.
		print " 
157.
		<select name='values[]'
158.
		"; 
159.
		for($x=2008; $x<=2015; $x++){ 
160.
		 
161.
			$sel = ($this->aktuell[8] == ($x)) ? "SELECTED" : " "
162.
		print "<option value='".$x."' $sel >".$x."</option>"
163.
		 
164.
		 
165.
 
166.
		 
167.
		 
168.
		 
169.
		 
170.
		 
171.
172.
		print "</select>"
173.
		print "<input type=submit value='los!' name='sub'></form>"
174.
175.
	 
176.
	function ansicht(){ 
177.
		#setlocale ("LC_TIME", "de_DE");  
178.
		include("config.inc.php"); 
179.
		$sql = "SELECT * FROM dimk_termin order by timestamp"
180.
		$query = mysql_query($sql); 
181.
		$anzahl = mysql_num_rows($query); 
182.
		while($val = mysql_fetch_row($query)) 
183.
184.
			$timestamp = $val[1]; 
185.
			$tmj_stamp_c = strftime("%x", $timestamp); 
186.
			$tmj_stamp[] = preg_replace("#^([0-9]+)/([0-9]+)/([0-9]+)$#","\\2.\\1.20\\3",$tmj_stamp_c); 
187.
 
188.
			 
189.
			$uhrzeit_stamp[] = strftime("%X", $timestamp); 
190.
			$eintrag[] = $val[2]; 
191.
192.
		 
193.
		 
194.
		for($x=0;$x<count($eintrag);$x++) 
195.
196.
			 
197.
		 
198.
			#rint $tmj_stamp[$x]."=".$_GET['date']."=<br>"
199.
			print "<table>"
200.
			 
201.
			 
202.
			if ($tmj_stamp[$x] == $_GET['date']){ 
203.
			print "<tr><td><b>$uhrzeit_stamp[$x]:</b></td></tr><tr><td>$eintrag[$x]<br></td></tr><tr><td>&nbsp;</td></tr>"
204.
			$zahl += 1; 
205.
206.
			else
207.
				if(!isset($zahl)) 
208.
				$zahl=0; 
209.
210.
			print "</table>"
211.
212.
	if($zahl==0) 
213.
		print "<b>Zurzeit kein Termine am ".$_GET['date']."!</b><br>"
214.
	$url_query =  substr(strchr($_ENV["REDIRECT_QUERY_STRING"],"&"),1); 
215.
	print "<a href='$PHP_SELF?aktion=new_termin&date=".$_GET['date']."'>Termin eintragen</a>"
216.
217.
	 
218.
	 
219.
	function show_form(){ 
220.
	 
221.
 
222.
	print "<b>Neuen Termin ".$_GET['date']." eintragen</b>"
223.
	 
224.
	 
225.
	print "<form action='$PHP_SELF' method='post'>"
226.
	print "Tag: <select name='tag' size='1'>"
227.
		for($x=1;$x<=date("t",$this->mktimee);$x++){ 
228.
			$y = str_pad($x,2,0,STR_PAD_LEFT); 
229.
			 
230.
		 
231.
			if($y == substr($_GET[date],0,2)) 
232.
				$selected = "SELECTED"
233.
			else
234.
				$selected = " "
235.
236.
			 
237.
		 
238.
			 
239.
	print "<option $selected>$y</option>";}	 
240.
	print "</select>&nbsp;&nbsp;&nbsp;"
241.
	print "Uhr: <select name='stunde'>"
242.
	for($x=0;$x<=23;$x++){ 
243.
		 
244.
		if($x == date("G")) 
245.
				$selected = "SELECTED"
246.
			else
247.
				$selected = " "
248.
249.
			 
250.
		 
251.
	print "<option $selected>$x</option>";}	 
252.
	print "</select><b>:</b>"
253.
	print "<select name='minute'>"
254.
	for($x=0;$x<=59;$x++){ 
255.
		 
256.
	$s = (strlen($x) == 1) ? "0$x" : "$x"
257.
	 
258.
	if($x == date("i")) 
259.
				$selected = "SELECTED"
260.
			else
261.
				$selected = " "
262.
263.
	 
264.
	print "<option $selected
265.
	 
266.
	$s 
267.
	 
268.
	</option>";} 
269.
	print "</select>"
270.
	 
271.
	print "<br>Ihr Eintrag:<bR><textarea name='eintrag' cols='20' rows='5'></textarea><br> 
272.
	<input type='submit' value='Termin eintragen'></form>"; 
273.
	 
274.
275.
	 
276.
	function heutige_termine(){ 
277.
	print "Termine heute am ".$this->aktuell[9].":"."<br><br>"
278.
	$_GET['date'] = $this->aktuell[9]; 
279.
	 
280.
	 
281.
	$this->ansicht(); 
282.
	 
283.
	 
284.
	 
285.
286.
	 
287.
	 
288.
	function eingetragen(){ 
289.
	 
290.
	$timestamp = mktime($_POST['stunde'],$_POST['minute'],0,substr($_GET[date],3,2),substr($_GET[date],0,2),substr($_GET[date],6,4)); 
291.
	include("config.inc.php"); 
292.
	$sql = "INSERT INTO dimk_termin (timestamp, eintrag) VALUES ('$timestamp', '$_POST[eintrag]')"
293.
	 
294.
	if($query = mysql_query($sql)) 
295.
		print "Termin wurde erfolgreich eingetragen"
296.
	else
297.
	print "<b>ERROR!</b>"
298.
299.
	 
300.
	 
301.
	 
302.
303.
 
304.
	function ueberschrift(){ 
305.
	 
306.
		 
307.
		$ueberschrift = array("Neuer Termin", "Startseite", $_GET['date']); 
308.
		if($_GET['aktion'] == "ansicht"
309.
			$this->ueberschrift = $ueberschrift[2]; 
310.
		elseif($_GET['aktion'] == "new_termin"
311.
			$this->ueberschrift = $ueberschrift[0]; 
312.
		elseif(!isset($_GET['aktion'])) 
313.
			$this->ueberschrift = $ueberschrift[1]; 
314.
	 
315.
316.
	 
317.
	function AKTIONEN(){ 
318.
						 
319.
			if($_GET['aktion']=="ansicht"){ 
320.
				 
321.
			$this->ansicht(); 
322.
 
323.
 
324.
			 
325.
326.
			elseif ($_GET['aktion'] == "new_termin"){ 
327.
				 
328.
				if($_SERVER['REQUEST_METHOD'] != 'POST'
329.
					$this->show_form(); 
330.
				else
331.
					$this->eingetragen(); 
332.
333.
334.
			elseif(!isset($_GET['aktion'])) 
335.
336.
				 
337.
				$this->heutige_Termine(); 
338.
				 
339.
340.
341.
 
342.
343.
 
344.
$kal = new Kalender; 
345.
$kal->zeitmarke($values); 
346.
$kal->ueberschrift(); 
347.
 
348.
print "<pre><b>Aktuell:   ". $kal->aktuell[0].", ". $kal->aktuell[3] .". ".$kal->aktuell[1]." ".$kal->aktuell[8]." - ". $kal->aktuell[4].":".$kal->aktuell[6]."<br></pre></b>"
349.
		 
350.
print "<a>Monatsübersicht</a><br><table border=0>"
351.
 
352.
print "<tr><td valign=top>"
353.
 
354.
$kal->smal_kal(); 
355.
$kal->form_date(); 
356.
 
357.
 
358.
 
359.
 
360.
print " 
361.
 
362.
</td><td valign= top> 
363.
	<table width='300' border='0'
364.
  	<tr> <td bgcolor='B9C0F0' height='2'><div align='center'><b><font face='Arial, Helvetica, sans-serif' color='#FFFFFF'
365.
      	 
366.
      $kal->ueberschrift 
367.
      	 
368.
      	</font></b></div></td></tr><tr> <td height='342' valign='top'><p>"; 
369.
 
370.
		$kal->AKTIONEN(); 
371.
			 
372.
			 
373.
			 
374.
			 
375.
			print "  
376.
	</p> 
377.
      </td> 
378.
  </tr> 
379.
</table>"; 
380.
		 
381.
 
382.
 
383.
 
384.
 
385.
 
386.
 
387.
/* 
388.
print "<br><br><br>"
389.
$x=0; 
390.
foreach ($kal->time_aktuell as $t){ 
391.
	print "$x: $t<br>"
392.
	$x++; 
393.
394.
 
395.
*/ 
396.
?>

mir ist zudem aufgefallen, dass wenn ich die daten in der url ändere, dass ich dann termine von einem anderen monat sehen kann, jedoch verändert sich nicht das monatsschaubild mit der übersicht der
wochentage der eingabe entsprechend mit, sondern bleibt beim aktuellen monat.

eine beispiel-url:
http://localhost/00000198700766d09/kalender.php?aktion=ansicht&date ...[]=06&values[]=2008

irgendwie ist dieser los!-Button (Z.173) verhext, kommt mir so vor als ob der nur n reload macht,
statt die änderungen zu übernehmen...




nochmal vielen dank für die bemühungen..

thomas
Bitte warten ..
Mitglied: herpes
26.06.2008 um 16:45 Uhr
ojeh...der code is horror!
php und html zusammen geruehrt..!
nix fuer meine empfindliche nerven !

setzt mal bitte die
error_reportings(E_ALL)

und lass die fehler anzeigen,

bzw schau unter dispaly_errors()
in der PHPINFO nach ob diese auf ON
im master value gestetzt sind...

also es geht darum rauszubekommen
warum der die variablen nicht verarbeitet!.

fuer welche php version ist das skript denn gebaut worden?

wird zb verlang das die register_globals auf ON gesetzt sein muessen
wie es viele aeltere php scripte erwarten
Bitte warten ..
Mitglied: zensbert
27.06.2008 um 09:40 Uhr
hi, ich habe einen Kalender gefunden der funktioniert und auch stylisch besser passt..
sry steffi wenn ich nun deine zeit vertrödelt hab.. aber dann hol ich mir lieber einen den ich leichter
einsetzen kann..


für die dies interessiert..
http://braun.dyndns.tv/downloads.php?control_nr=2

das is der kalender, zwar mit auth., aber schöne funktionen..

Gruß

thomas
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
gelöst MS-SQL Server lokale Authentifizierung - Logging (5)

Frage von ThomasAnderson zum Thema Windows Server ...

PHP
gelöst PHP Dropdownmenü mit SQL-Abfrage (4)

Frage von tobmes zum Thema PHP ...

Windows Netzwerk
Ständige Authentifizierung bei Reports (SQL 2014) (3)

Frage von freenode zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...