# Mein PHP Kalender



## H4ribO (8. November 2004)

Hi Leuts vielleicht könnt ihr mir ja helfen.
Ich brauche ein PHP Kalender für meine Homepage er sollte fast so sein wie der auf WWW.WEBMART.DE halt nur kostenlos
halt am liebsten mit administrationsbereich bez es reicht auch wenn ich ne seite hab wo ich bzw nen kumpel Termine eingeben kann.
Ich würde gern leute die bei mir registriert sind automatisch 1 oder 2 Tage vor dem event ne mail als erinnerung schicken.
und halt am liebsten auf der ersten seite von mir nen kleines fenster oder sagen wir eine zelle von einer tabelle haben oder so wo drinne steht was heute im kalender steht. habt ihr vielleicht soetwas mal gesehen oder könnt mir weiterhelfen? Ich finde einfach nix.
Wäre echt nett.
MFG Chris Windeler


----------



## Security (8. November 2004)

Jo und jetzt sollen wir dir das mal ebend Basteln, dabei bist du grade erst neu bei tutorials.de.
Aber ok ich habe soetwas schon mal gemacht und auf ein Board darüber eröffnet warte....


----------



## H4ribO (8. November 2004)

hmm ja ich würd es gern selber machen aber ich muss erstmal das alles lernen. würd ja ma gern ma nen kurs an einer vh oder so machen nur wo


----------



## Security (8. November 2004)

So mein Vorschlag:

1ie Index.php zum angucken das plans.

```
<?php
$j = date(j);
$n = date(n);
$Y = date(Y);
$w = date(w);
$L = date(L);
require "plan.php";
$c = "t_" . $Y . $n . $j;
$zeit = time();
$datum = getdate($zeit);
$g = $datum[yday];
for($x=1;$x<30;$s++){
 if($w == 0){$day="SO";$w++;}
 elseif($w == 1){$day="MO";$w++;}
 elseif($w == 2){$day="DI";$w++;}
 elseif($w == 3){$day="MI";$w++;}
 elseif($w == 4){$day="DO";$w++;}
 elseif($w == 5){$day="FR";$w++;}
 elseif($w == 6){$day="SA"; $w=0;};
 $c = "t_" . $Y . "_" . $n . "_" . $j;
 if(isset($$c)){
  if($color=="#333333"){$color = "#000000";}
  else{$color = "#333333";};
  echo "<table border=0 cellpadding=3 cellspacing=3 width=777>";
  echo " <tr>";
  echo "  <td class=$day align=center style=width:25px; >$day</td>";
  echo "  <td style=width:80px; ><div style=color:$color; >$j.$n.$Y</div></td>";
  echo "  <td align=left><p align=left style=color:$color; >" . $$c . "</p></td>";
  echo " </tr>";
  echo "</table>";
  $x++;
 };
 $g++;
 $j++;
 if($j==32){
  $j = 1;
  if($n==1){$m = 31;}
  elseif($n==2){if($L==1){$g = $g - 2; $w = $w - 2;}else{$g = $g - 3; $w = $w - 3;};}
  elseif($n==3){$m = 30;}
  elseif($n==4){$g = $g - 1; $w = $w - 1;}
  elseif($n==5){$m = 30;}
  elseif($n==6){$g = $g - 1; $w = $w - 1;}
  elseif($n==7){$m = 30;}
  elseif($n==8){$m = 30;}
  elseif($n==9){$g = $g - 1; $w = $w - 1;}
  elseif($n==10){$m = 30;}
  elseif($n==11){$g = $g - 1; $w = $w - 1;}
  elseif($n==12){$m = 30;};
  $n++;};
 if($L==0 && $g == 365){
  $Y++;
  $g = 0;
  $n = 1;
  $j = 1;
 }
 elseif($L==1 && $g == 366){
 $Y++;
 $g = 0;
 $n = 1;
 $j = 1;
 };
 if($s==100){$x=30;}
};
?>
```
So dann eine Updateformulardatei (new.php)

```
<?php
if($term==""){$term="Termin";};
if($time==""){$term="Zeit";};
?>
<form action="add.php" method="post">
<?php
if($d==""){ echo
?><select name="day" size="1" >
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
 <option value="13">13</option>
 <option value="14">14</option>
 <option value="15">15</option>
 <option value="16">16</option>
 <option value="17">17</option>
 <option value="18">18</option>
 <option value="19">19</option>
 <option value="20">20</option>
 <option value="21">21</option>
 <option value="22">22</option>
 <option value="23">23</option>
 <option value="24">24</option>
 <option value="25">25</option>
 <option value="26">26</option>
 <option value="27">27</option>
 <option value="28">28</option>
 <option value="29">29</option>
 <option value="30">30</option>
 <option value="31">31</option>
</select>
<select name="month">
<option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
</select>
<select name="year">
<option value="2004">2004</option>
 <option value="2005">2005</option>
 <option value="2006">2006</option>
</select>
<?php }
else{echo $d . "." . $m . "." . $y . ":";};
?>
 <input type="Text" name="time" value="<?php echo $time ?>" size="5" maxlength="5">
 <input type="Text" name="termin" value="<?php echo $term ?>" size="75" maxlength="300"><br>
 <input type="submit" value="Speichern">
 <input type="reset" value="Zurücksetzen">
</form>
```
Und zu guter Letzt add.php:

```
<?php
$fp = fopen("../data/plan.php","a");
$var = "\n<?php $" . "t_" . $year . "_" . $month . "_" . $day . " = " . "'" . $time . " - " . $termin .  "'; ?>";
fseek ($fp, 2,"SEEK_END");
fputs($fp, $var);
fclose($fp);
?>
<body><a href="plan.php">Falls sie nicht automatisch weitergeleitet werden sollten klien sie hier.</a></body>
```
So keine Bock das jetzt noch auf dich zuzuschneide nd  de noch n Paar Mailfuktionen bauchst dann sag bescheid mach ich dir.


----------



## Security (8. November 2004)

Ich versprech dir wenn du Lernen willst und nicht so enden willst wie ich (im Caos), dann lerns richtig. Tutorials.de bietet alle möglichkeiten. Dann besorg dir noch selfHTML und selfPHP, hohl dir das PHP-Handbuck und les es, oder Lerne gleich ASP ist eh geiler oder Flash das ist am Stylisten.


----------



## H4ribO (8. November 2004)

Jo danke ich geh mir das eben anschauen


----------



## Security (8. November 2004)

Ups ich hab den Stylesheet vergessen na dann hier:


```
.mo {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#FF0000; margin:3px; padding-bottom:3px;}
.mi {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#00FF00; margin:3px; padding-bottom:3px;}
.di {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#0000FF; margin:3px; padding-bottom:3px;}
.do {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#FFFF00; margin:3px; padding-bottom:3px;}
.fr {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#00FFFF; margin:3px; padding-bottom:3px;}
.sa {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#FF00FF; margin:3px; padding-bottom:3px;}
.so {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#FF6600; margin:3px; padding-bottom:3px;}
```


----------



## H4ribO (8. November 2004)

hab da ma ne frage zu in der index.php. Da haste requirer plan.php. die habsch aber ja garnet oder was ist die?


----------



## Security (8. November 2004)

Sag doch nich sowas 
Dann erstell einfach eine lehre und wenn de da was reinkriegen willst dann benutzt doch die new.php


----------



## H4ribO (8. November 2004)

http://www.oo-crew.de/NEU/Kalender/new.php da teste das mal bitte. hab die datei plan.php in den ordner data gepackt denke so hab ich es richti aus deinem script gelesen
und bei der add.php müsste ganz unten der link mit demm "falls sie nicht weiter geleitet werden..." glaube ich auch auf die '../data/plan.php' anstatt auf die plan.php oder?


----------



## Daensch (8. November 2004)

hehe..

Ich würd auch liebengern n paar Kurse mitmachen.. das Problem ist.. wo fängt man an?
Ich kann inzwischen schon einiges.. aber noch längst nich alles..  so würde Grundkurs flachfallen.. aber was is wenn die da Themen durchnehmen die ich noch nich kenne?
Und wenn ich den belege.. dann kommen Sachen drann die ich schon kenne =)
Ausserdem is das Schweineteuer an der VH finde ich !  100€ glaub ich war Schülerkurs.
naja..  
Selbstlesen denke ich auch is am besten.. dann kommt nur der Faktor Zeit hinzu..  eigentlich wünschte ich, ich wäre Arbeitslos.. dann könnte ich das auch mal richtig durchnehmen !
Ich selbst halte nichts von "geklauten" PHP-Scripten! Entweder ich versuche sie zu imitieren, oder per Zerstückeln und Lesen zu lernen.. und wenn was nicht klappt, hab ich halt Pech =)
So Schwer ist es aber nicht... und zur Not findet sich eigentlich fast immer eine Nette Person hier im Forum die deine Fragen beantworten !

PS: Hab da was eingetragen..   auf plan.php ist nichts zu sehen =)
Ausser das du die Rechtschreibfehler korrigieren solltest, Wäre eine kleine Erklärung zu den Ausfüllfächern ganz nützlich ! hab kein Plan gehabt was ich in die 2 letzten eintragen sollte !


greetz²all & mfg

Daensch


----------



## Security (8. November 2004)

So warte ich gebs dir als zip e ich weiß net wie ich das hier machen soll... naja ich probiers morgen ich bin zu müde.


----------



## H4ribO (8. November 2004)

joa okay danke schonma denn bis morgen


----------



## Security (8. November 2004)

Ach und du hast das noch nicht ganz richtig verstanden. die index-datei is klar dann mus new und add mussen in edit und plan muss in data verstanden ich geb dir das aber morgen.


----------



## twisted (9. November 2004)

Habe das au mal ausprobiert, und ich muss sagen bei mir funktioniert es auch nicht


----------



## Security (9. November 2004)

Wenn mir einer Verrät wie ich hier n zipfile anhänge zeig ich euch das es geht.


----------



## Security (9. November 2004)

Ah so geht's


----------



## Security (9. November 2004)

http://www.tutorials.de/forum/showthread.php?t=9076 Das hätte ich dann auch noch hier gefunden, aber nicht gelesen.


----------



## twisted (9. November 2004)

hehe ^^, danke für den anhang , wollte aber mal schauen wie deins funktioniert .

EDIT:
Aber irgendwie verstehe ich den kallender nicht, bzw. er funktioniert nicht ?

EDIT2:
Ah doch ^^ habs gerallt 

mfg.
Maxcube


----------



## H4ribO (9. November 2004)

ich hab es net gerallt net
hab die zip in www.oo-crew.de/NEU/Kalender entzipt und a siehe selbst


----------



## Security (9. November 2004)

Ja und was sehe ich das es geht  ich hab bloß vergessen euch den stylesheet mitzuliefern...

Aber den häng geb ich euch gleich. Ich mach hier gleich noch mal einen Richtigen Entwurf und erkläre ihn.


----------



## Security (9. November 2004)

So und dann wäre es auch schon so weit.

Erst einmal zum Gebrauch, dierer Kalender ist eher ein Terminplan, welcher von mir entwickelt wurde um Termine aufzulisten.
Eine schöne Eigenschaft ist, dass er die Wochentage von dem im Editor eingegebenen Data kennt und diese Farbig vorne angiebt. Es soll eine gute übersicht schaffen.
Was man jedoch beachten sollte ist, das er nur neue Termine oder Aktuelle z.B. und alles was nach jetzt kommt nich das was schon war.
Umstylen kann ihn jeder Selbst wie er will, da die Wochentagsberechnung eine gute Grundlage bietet um vielfälltiges zu erstellen.

Wichtig ist auch das dieser Termienplan nur Daten angibt an denen ein Termien eingetragen ist.

Was auch interessant sein könnte ist, dass dieser Kalender auch ohne eine mySQL Datenbank funktioniert.

Das Kalendersystem besteht derweil aus 5 Dateien:
1. index.php : Dies ist die Ausgabedatei
2. data.php : In dieser Datei werden die Termine Gespeichert
3. style.css : In ihr ist der Style für die Wochentage festgelegt
4. edit\index.php : Diese Datei ist ein Editor mit dem neue Einträge generiert werden können.
5. edit\add.php : Diese Datei fügt die Daten aus dem Editor in die Datei data.php ein.

______

1. index.php:

```
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
<link rel=stylesheet href="style.css" type="text/css">
</head>
<body>
<?php
// Aktuelles Datum wird ermittelt
$j = date(j);
$n = date(n);
$Y = date(Y);
$w = date(w);
$L = date(L);
$zeit = time();
$datum = getdate($zeit);
$g = $datum[yday];
// Termine werden geladen
require "data.php";
$u = 30 // $u legt fest wie viele Termine angezeit werden sollen.
// Schleife beginnt und der Kalender wird nach und nach erzeugt
for($x=1;$x<$u;$s++){
// Wochentag des berechneten Datums wird erzeugt
if($w == 0){$day="SO";$w++;}
elseif($w == 1){$day="MO";$w++;}
elseif($w == 2){$day="DI";$w++;}
elseif($w == 3){$day="MI";$w++;}
elseif($w == 4){$day="DO";$w++;}
elseif($w == 5){$day="FR";$w++;}
elseif($w == 6){$day="SA"; $w=0;
};
// Variable wird erzeugt
$c = "t_" . $Y . "_" . $n . "_" . $j;
// Wenn die Variable vorhanden ist wird der eintrag erzeugt
if(isset($$c)){
// Farbabwechslung wird erzeugt
if($color=="#333333"){$color = "#000000";}
else{$color = "#333333";};
// HTML-tag wird ausgegeben
echo "<table border=0 cellpadding=3 cellspacing=3 width=777>";
echo " <tr>";
echo " <td class=$day align=center style=width:25px; >$day</td>";
echo " <td style=width:80px; ><div style=color:$color; >$j.$n.$Y</div></td>";
echo " <td align=left><p align=left style=color:$color; >" . $$c . "</p></td>";
echo " </tr>";
echo "</table>";
$x++;
};
// Tage werden weiter gezählt
$g++;
$j++;
// Jewweilige Monatslänge wird berechnet und um einen Monat weiter geschaltet
if($j==32){
$j = 1;
if($n==1){$m = 31;}
elseif($n==2){if($L==1){$g = $g - 2; $w = $w - 2;}else{$g = $g - 3; $w = $w - 3;};}
elseif($n==3){$m = 30;}
elseif($n==4){$g = $g - 1; $w = $w - 1;}
elseif($n==5){$m = 30;}
elseif($n==6){$g = $g - 1; $w = $w - 1;}
elseif($n==7){$m = 30;}
elseif($n==8){$m = 30;}
elseif($n==9){$g = $g - 1; $w = $w - 1;}
elseif($n==10){$m = 30;}
elseif($n==11){$g = $g - 1; $w = $w - 1;}
elseif($n==12){$m = 30;
};
$n++;
};
// Die Jahres länge wird berechnet und weitergeschaltet
if($L==0 && $g == 365){
$Y++;
$g = 0;
$n = 1;
$j = 1;
}
elseif($L==1 && $g == 366){
$Y++;
$g = 0;
$n = 1;
$j = 1;
};
if($s==100){$x=$u;} // $s==100 fragt wie viele Durchläfe der Server machen soll
};
?>
</body>
</html>
```
2. data.php:
Diese Datei kann außer Acht gelassen werden. Sie wird vom Editor bestückt.

3. Style:

```
/* CSS Document */
.mo {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#FF0000; margin:3px; padding-bottom:3px;}
.mi {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#00FF00; margin:3px; padding-bottom:3px;}
.di {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#0000FF; margin:3px; padding-bottom:3px;}
.do {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#FFFF00; margin:3px; padding-bottom:3px;}
.fr {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#00FFFF; margin:3px; padding-bottom:3px;}
.sa {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#FF00FF; margin:3px; padding-bottom:3px;}
.so {font-size:12px; text-align:center; font-weight:bold; padding:2px; color:black; border:0 solid black; background-color:#FF6600; margin:3px; padding-bottom:3px;}
```
 
4. edit\index.php:

```
<form action="add.php" method="post">
<?php
echo "<select name=day >";
for($x=1;$x<32;$x++){
echo "<option value=" . $x . ">" . $x . "</option>";
};
echo "</select>";
echo "<select name=month >";
for($x=1;$x<13;$x++){
echo "<option value=" . $x . ">" . $x . "</option>";
};
echo "</select>";
$Y = date(Y);
echo "<select name=year>";
for($x=0;$x<3;$x++){
echo "<option value=" . $Y . ">" . $Y . "</option>";
$Y++;
};
echo "</select>";
?>
<input type="Text" name="time" value="Zeit" size="5" maxlength="5">
<input type="Text" name="termin" value="Termin" size="75" maxlength="300"><br>
<input type="submit" value="Speichern">
<input type="reset" value="Zurücksetzen">
</form>
```
 
5. edit\add.php:

```
<?php
$fp = fopen("../data.php","a");
$var = "\n<?php $" . "t_" . $year . "_" . $month . "_" . $day . " = " . "'" . $time . " - " . $termin . "'; ?>";
fseek ($fp, 2,"SEEK_END");
fputs($fp, $var);
fclose($fp);
?>
<body><a href="index.php">Die Daten wurden übernommen, bitte klicken sie hier...</a></body>
```
 

So das wars dann auch schon, enpackt einfach die angehängte ZIP-Datei und gebt in dem Editor einfach mal ein Paar zukünftige Termine ein.

Ich habe natürlich nur eine Grundlage gebaut man könnte hunderte Funktionen einbauen, aber das könnt ihr ja selber machen.

Ach und ich bin mir sicher, es funktioniert einwandfrei.


----------



## twisted (10. November 2004)

Hast du vieleicht auch noch einen Kalender gemacht wo ein Kalenderblat erscheint und wenn an dem Tag etwas ist ein Link auf das Tages Blatt, wie z.B. so wie hier : http://veerle.duoh.com/index.php

Denn ich blicke noch nicht so recht durch bei dem Datum bei php .


----------



## Security (10. November 2004)

Hab ich zwar nicht, aber ich weiß wer 
http://wordpress.org/
Guck da mal nach und staune.
Ach und wenn ich mich richtig erinnere, poste ich den Link hier nicht zum ersten mal...


----------



## twisted (10. November 2004)

Security hat gesagt.:
			
		

> Hab ich zwar nicht, aber ich weiß wer
> http://wordpress.org/
> Guck da mal nach und staune.
> Ach und wenn ich mich richtig erinnere, poste ich den Link hier nicht zum ersten mal...


ich glaube ^^ du hast das falsch verstanden  ^^, wollte nur nen kalender mit eintragen von daten in ein bestimmtes datum was dann angezeigt wird, ich glaube das kann ich nciht benutzen hat andere funktionen :/ als die die ich benötige oder weist du wo es ein gut verständliches tutorial gibt dafür ?


----------



## Security (10. November 2004)

Äh wenn du das Datum selber eingibtst, warum willst du dann einen kalender?
Das was ich gebastelt habe ist auch im Grunde nur eine Wochentagsberechnung für ein Bestimmtest Datum.


----------



## twisted (11. November 2004)

ich will halt ein kallender damit ich es übersichtlich sehe was es alles gibt, für den monat, damit kann ich dann zurückblätern die monate und sehe immer was los war ^^, auserdem finde ich sieht es schöner aus für das was ich damit vorhätte


----------



## Security (11. November 2004)

Ich will ja nix sagen aber dann stell dir doch 'n Kalender auf den Schreibtisch, dafür brauchst du kein PHP, sonder nur 2€.
Wenn du so einen Kalender wie auf http://veerle.duoh.com/index.php haben willst, dann geh auf http://wordpress.org/ da soll der nämlich herstammen.
Außerdem ist das ein Forum für PHP und du hast kein Problem mit PHP, sonder eins mit deiner Webseite. Geh ins Webmasterforum vielleicht hilft dir ja der wer weiter. Aber du kannst nicht erwarten das wir dir deine Seite schreiben.
Schnapp dir 'n ordentliches PHP-Buch und lerne.


----------



## twisted (11. November 2004)

ich habe nur gelich gefragt wo wir bei dem thema waren, wusste net das des von da kommt habe mir die page net genauer angeschaut aber auf der hersteller seite stand halt nix von etwas nur von dem einem script, und ja hab ein problem in php und zwar das ich das noch net so ganz ralle und das mit der zitat funktion. mit meiner website ist alles in ordnung , sie steht wird besucht und funktioniert


----------

