PHP Sternzeichen anzeigen

Mit diesem kleinen PHP-Script lässt sich das Sternzeichen anhand eines angegebenen Geburtsdatums ermitteln und anzeigen. Das PHP-Script ist nicht nur ein interessantes Tool, wenn sich Ihre Website mit den Themen Horoskope und Astrologie beschäftigt. Auch wenn Sie eine Community-Plattform betreiben und das Sternzeichen Ihrer Mitglieder anzeigen lassen möchten, können Sie diesen PHP-Code verwenden.

Durch Auswahl von Geburtstag und -monat sowie anschließendem Klick auf den Sternzeichen anzeigen-Button können Sie vom Script das Sternzeichen berechnen lassen.

Demo

Geburtsdatum: ..

Code

<?php
$tpl_geb_tag_auswahl = "";
for ($i = 1;$i < 32;$i++) {
    if ($i < 10) {
        $i2 = "0" . $i;
    } else {
        $i2 = $i;
    }
    if (isset($_POST['geb_tag']) && $_POST['geb_tag'] == $i) {
        $tpl_geb_tag_auswahl.= "<option value=\"$i\" selected=\"selected\">$i2</option>\n";
    } else {
        $tpl_geb_tag_auswahl.= "<option value=\"$i\">$i2</option>\n";
    }
}
$tpl_geb_mon_auswahl = "";
for ($i = 1;$i < 13;$i++) {
    if ($i < 10) {
        $i2 = "0" . $i;
    } else {
        $i2 = $i;
    }
    if (isset($_POST['geb_mon']) && $_POST['geb_mon'] == $i) {
        $tpl_geb_mon_auswahl.= "<option value=\"$i\" selected=\"selected\">$i2</option>\n";
    } else {
        $tpl_geb_mon_auswahl.= "<option value=\"$i\">$i2</option>\n";
    }
}
if (isset($_POST['geb_tag']) && $_POST['geb_tag'] != 0 && isset($_POST['geb_mon']) && $_POST['geb_mon'] != 0) {
    $tpl_sternzeichen = sternzeichen_generieren($_POST['geb_tag'], $_POST['geb_mon']);
} else {
    $tpl_sternzeichen = "";
}
function sternzeichen_generieren($geb_tag, $geb_mon) {
    $sternzeichen[1] = "Widder";
    $sternzeichen[2] = "Stier";
    $sternzeichen[3] = "Zwillinge";
    $sternzeichen[4] = "Krebs";
    $sternzeichen[5] = "Löwe";
    $sternzeichen[6] = "Jungfrau";
    $sternzeichen[7] = "Waage";
    $sternzeichen[8] = "Skorpion";
    $sternzeichen[9] = "Schütze";
    $sternzeichen[10] = "Steinbock";
    $sternzeichen[11] = "Wassermann";
    $sternzeichen[12] = "Fische";
    if (($geb_mon == 3 && $geb_tag >= 21) || ($geb_mon == 4 && $geb_tag <= 20)) {
        $sternz = 1;
    } elseif (($geb_mon == 4 && $geb_tag >= 21) || ($geb_mon == 5 && $geb_tag <= 20)) {
        $sternz = 2;
    } elseif (($geb_mon == 5 && $geb_tag >= 21) || ($geb_mon == 6 && $geb_tag <= 21)) {
        $sternz = 3;
    } elseif (($geb_mon == 6 && $geb_tag >= 22) || ($geb_mon == 7 && $geb_tag <= 22)) {
        $sternz = 4;
    } elseif (($geb_mon == 7 && $geb_tag >= 23) || ($geb_mon == 8 && $geb_tag <= 23)) {
        $sternz = 5;
    } elseif (($geb_mon == 8 && $geb_tag >= 24) || ($geb_mon == 9 && $geb_tag <= 23)) {
        $sternz = 6;
    } elseif (($geb_mon == 9 && $geb_tag >= 24) || ($geb_mon == 10 && $geb_tag <= 23)) {
        $sternz = 7;
    } elseif (($geb_mon == 10 && $geb_tag >= 24) || ($geb_mon == 11 && $geb_tag <= 22)) {
        $sternz = 8;
    } elseif (($geb_mon == 11 && $geb_tag >= 23) || ($geb_mon == 12 && $geb_tag <= 21)) {
        $sternz = 9;
    } elseif (($geb_mon == 12 && $geb_tag >= 22) || ($geb_mon == 1 && $geb_tag <= 21)) {
        $sternz = 10;
    } elseif (($geb_mon == 1 && $geb_tag >= 21) || ($geb_mon == 2 && $geb_tag <= 19)) {
        $sternz = 11;
    } elseif (($geb_mon == 2 && $geb_tag >= 20) || ($geb_mon == 3 && $geb_tag <= 20)) {
        $sternz = 12;
    }
    return $sternzeichen[$sternz];
}
?>
<html>
<head></head>
<body>
<form action="php-sternzeichen-anzeigen.php#demo" method="post">
Geburtsdatum: <select name="geb_tag">
<option value="0">Tag</option>
<?= $tpl_geb_tag_auswahl; ?>
</select>.
<select name="geb_mon">
<option value="0">Mon</option>
<?= $tpl_geb_mon_auswahl; ?>
</select>.
<input value="Sternzeichen anzeigen" type="submit" /> <?= $tpl_sternzeichen; ?>
</form>
</body>
</html> 

Erläuterung

<?
Der nachfolgende PHP-Code wird mit einem Short-Open-Tag eingeleitet.
$tpl_geb_tag_auswahl="";
Der Variablen $tpl_geb_tag_auswahl wird ein leerer String als Wert zugewiesen.
for (\$i=1;\$i<32;\$i++){
Beginn einer for()-Schleife mit 31 Durchläufen. i\$ wird der Zahlenwert 1 zugewiesen und so lange inkrementiert, solange sein Wert kleiner als 32 ist.
if (\$i<10){\$i2="0".\$i;}else{\$i2=\$i;}
Solange der Wert von \$i kleiner als 10 ist, wird \$i2 der String 0 gefolgt von \$i zugeordnet. Hat \$i einen zweistelligen Zahlenwert, wird \$i2 der Wert von \$i zugewiesen. Auf diese Weise wird der Tag des Monats in Zeile 8 immer zweistellig dargestellt.
if (isset(\$_POST['geb_tag']) && \$_POST['geb_tag']==\$i){
In der if-Anweisung mit zwei Bedingungen wird geprüft, ob das Formular zur Anzeige des Sternzeichens bereits abgeschickt wurde und wenn ja, ob der über das Formular übermittelte Tag des zu verarbeitenden Geburtsdatums mit dem innerhalb der for()-Schleife gerade anzuzeigenden Tag übereinstimmt.
$tpl_geb_tag_auswahl.="<option value="\$i" selected="selected">\$i2</option>n";
Werden beide Bedingungen der if-Anweisung erfüllt, wird der Variablen $tpl_geb_tag_auswahl ein String hinzugefügt, der als Option des in Zeile 59 angezeigten Select-Feldes zur Auswahl steht und mittels des selected-Attributs bereits ausgewählt ist.
}else{
Der in der else-Anweisung angegebene PHP-Code kommt zum Tragen, wenn mind. eine der beiden Bedingungen in der if-Anweisung nicht erfüllt ist; also wenn das Formular noch nicht abgeschickt wurde oder der Zahlenwert von \$i ungleich dem über das Formular übermittelten Tag des Geburtsdatums ist.
$tpl_geb_tag_auswahl.="<option value="\$i">\$i2</option>n";
Der Variablen $tpl_geb_tag_auswahl wird ebenfalls ein String mit einer Option hinzugefügt, die als Wert \$i enthält und im Select-Feld in Zeile 59 den Wert von \$i2 darstellt. Im Gegensatz zur in Zeile 6 hinzugefügten Option ist diese nicht mittels des selected-Attributs ausgewählt.
}
Ende von else, also des bei Nichterfüllung mindestens einer der beiden Bedingungen in der if-Anweisung auszuführenden Codes.
}
Ende der in Zeile 4 begonnenen for()-Schleife.
$tpl_geb_mon_auswahl="";
Der Variablen $tpl_geb_mon_auswahl wird als Wert ein leerer String zugewiesen. Somit ist die Variable definiert und wir vermeiden den Hinweis auf eine undefinierte Variable in Zeile 15 bzw. Zeile 17.
for (\$i=1;\$i<13;\$i++){
Beginn einer for()-Schleife für die Auswahl des Geburtsmonats.
if (\$i<10){\$i2="0".\$i;}else{\$i2=\$i;}
Damit die für den Monat des Geburtsdatums stehende Zahl auch für die Monate Januar bis September immer zweistellig angezeigt wird, bekommt \$i2 als Wert den String 0 gefolgt vom Zahlenwert von \$i, wenn \$i kleiner als 10 ist.
if (isset(\$_POST['geb_mon']) && \$_POST['geb_mon']==\$i){
Falls das Formular abgesandt wurde und der übermittelte Geburtsmonat gleich dem Wert von \$i ist,…
$tpl_geb_mon_auswahl.="<option value="\$i" selected="selected">\$i2</option>n";
…wird $tpl_geb_mon_auswahl ein String hinzugefügt, der ein via des selected-Attributs ausgewähltes Option-Feld enthält. Das Option-Feld hat den Wert von \$i und zeigt im Formular in Zeile 63 den Wert von \$i2 an.
}else{
Andernfalls, d.h., wenn das Formular noch nicht abgeschickt wurde oder der übermittelte Geburtsmonat nicht dem Wert von \$i entspricht,…
$tpl_geb_mon_auswahl.="<option value="\$i">\$i2</option>n";
…wird $tpl_geb_mon_auswahl ebenfalls ein für die Auswahl des Geburtsmonats zur Verfügung gestellten Option-Feld hinzugefügt, das im Gegensatz zum Option-Feld in Zeile 15 aufgrund des fehlenden selected-Attributs nicht ausgewählt ist.
}
Die in Zeile 16 geöffnete geschweifte Klammer der else-Anweisung wird geschlossen.
}
Ende der in Zeile 12 begonnenen for()-Schleife.
if (isset(\$_POST['geb_tag']) && \$_POST['geb_tag']!=0 && isset(\$_POST['geb_mon']) && \$_POST['geb_mon']!=0){
Falls ein Geburtstag über das Formular gesandt wurde, der Wert des Tages ungleich 0 ist und ein gegebenenfalls über das Formular übermittelter Geburtsmonat die gleichen Bedingungen erfüllt,…
$tpl_sternzeichen=sternzeichen_generieren(\$_POST['geb_tag'],\$_POST['geb_mon']);
…wird der in Zeile 65 ausgegebenen Variablen der Rückgabewert der in Zeile 25ff definierten Funktion sternzeichen_generieren() zugeordnet. Die beiden an die Funktion übergebenen Parameter sind die über das Formular gesandten Geburtstag und Geburtsmonat.
}else{
Ist mindestens eine der vier Bedingungen in Zeile 20 nicht erfüllt,…
$tpl_sternzeichen="";
…wird der Variablen $tpl_sternzeichen ein leerer String als Wert zugewiesen.
}
Ende der else-Anweisung in Zeile 22.
function sternzeichen_generieren(\$geb_tag,\$geb_mon){
Die in Zeile 21 angewandte Funktion sternzeichen_generieren wird definiert. An sie werden die beiden Parameter \$geb_tag und \$geb_mon übergeben. Aus den Werten dieser beiden Parameter wird das Sternzeichen generiert, das in Zeile 50 von der Funktion zurückgegeben wird.
\$sternzeichen[1]="Widder";
\$sternzeichen[2]="Stier";
\$sternzeichen[3]="Zwillinge";
\$sternzeichen[4]="Krebs";
\$sternzeichen[5]="Löwe";
\$sternzeichen[6]="Jungfrau";
\$sternzeichen[7]="Waage";
\$sternzeichen[8]="Skorpion";
\$sternzeichen[9]="Schütze";
\$sternzeichen[10]="Steinbock";
\$sternzeichen[11]="Wassermann";
\$sternzeichen[12]="Fische";
In den Zeilen 26 bis 37 werden die Namen der 12 Sternzeichen angegeben, indem ihre Namen dem Array \$sternzeichen[ mit den Schlüsseln 1 bis 12 zugewiesen werden.
if ((\$geb_mon==3 && \$geb_tag>=21) || (\$geb_mon==4 && \$geb_tag<=20)){\$sternz=1;}
Ist entweder der Wert von \$geb_mon 3 und der Wert von \$geb_tag mindestens 21 oder \$geb_mon gleich 4 und der Wert von \$geb_tag höchstens 20, wird der Variablen \$sternz der Wert 1 zugeordnet. Dem Array \$sternzeichen mit dem Schlüssel 1 wurde in Zeile 26 der Wert Widder zugewiesen.
elseif ((\$geb_mon==4 && \$geb_tag>=21) || (\$geb_mon==5 && \$geb_tag<=20)){\$sternz=2;}
Liegt das übermittelte Geburtsdatum zwischen dem 21. April und dem 20. Mai, beide Grenzwerte eingeschlossen, bekommt \$sternz den Wert 2. Das \$sternzeichen-Array mit dem Schlüssel 2 hat den Wert Stier.
elseif ((\$geb_mon==5 && \$geb_tag>=21) || (\$geb_mon==6 && \$geb_tag<=21)){\$sternz=3;}
Bei einem Geburtsdatum zwischen dem 21. Mai und dem 21. Juni wird in Zeile 50 \$sternzeichen[3], also Zwillinge zurückgeliefert.
elseif ((\$geb_mon==6 && \$geb_tag>=22) || (\$geb_mon==7 && \$geb_tag<=22)){\$sternz=4;}
Mit dem Array-Schlüssel 4 wird das Sternzeichen Krebs zugegriffen, wenn das Geburtsdatum zwischen dem 22. Juni und dem 22. Juli liegt.
elseif ((\$geb_mon==7 && \$geb_tag>=23) || (\$geb_mon==8 && \$geb_tag<=23)){\$sternz=5;}
Das gleiche gilt für den Array-Schlüssel 5 für das Sternzeichen Löwe bei einem Geburtsdatum zwischen dem 23. Juli und 23. August,…
elseif ((\$geb_mon==8 && \$geb_tag>=24) || (\$geb_mon==9 && \$geb_tag<=23)){\$sternz=6;}
…den Array-Schlüssel 6 für das Sternzeichen Jungfrau bei einem Geburtsdatum zwischen dem 24. August und 23. September,…
elseif ((\$geb_mon==9 && \$geb_tag>=24) || (\$geb_mon==10 && \$geb_tag<=23)){\$sternz=7;}
…den Array-Schlüssel 7 für das Sternzeichen Waage bei einem Geburtsdatum zwischen dem 24. September und 23. Oktober,…
elseif ((\$geb_mon==10 && \$geb_tag>=24) || (\$geb_mon==11 && \$geb_tag<=22)){\$sternz=8;}
…den Array-Schlüssel 8 für das Sternzeichen Skorpion bei einem Geburtsdatum zwischen dem 24. Oktober und 22. November,…
elseif ((\$geb_mon==11 && \$geb_tag>=23) || (\$geb_mon==12 && \$geb_tag<=21)){\$sternz=9;}
…den Array-Schlüssel 9 für das Sternzeichen Schütze bei einem Geburtsdatum zwischen dem 23. November und 21. Dezember,…
elseif ((\$geb_mon==12 && \$geb_tag>=22) || (\$geb_mon==1 && \$geb_tag<=21)){\$sternz=10;}
…den Array-Schlüssel 10 für das Sternzeichen Steinbock bei einem Geburtsdatum zwischen dem 22. Dezember und 21. Januar,…
elseif ((\$geb_mon==1 && \$geb_tag>=21) || (\$geb_mon==2 && \$geb_tag<=19)){\$sternz=11;}
…den Array-Schlüssel 11 für das Sternzeichen Wassermann bei einem Geburtsdatum zwischen dem 21. Januar und 19. Februar,…
elseif ((\$geb_mon==2 && \$geb_tag>=20) || (\$geb_mon==3 && \$geb_tag<=20)){\$sternz=12;}
… und zu guter Letzt den Array-Schlüssel 12 für das Sternzeichen Fische bei einem Geburtsdatum zwischen dem 20. Februar und 20. März.
return \$sternzeichen[\$sternz];
Nachdem anhand von Geburtstag und -datum in den Zeilen 38 bis 49 der Variablen \$sternz ein Zahlenwert zwischen 1 und 12 zugewiesen wurde, wird in Zeile 50 auf den Array-Wert mit dem Schlüssel \$sternz zugegriffen, Dieser wird mittels return zurückgegeben.
}
Die Funktion sternzeichen_generieren() ist fertig definiert, die geschweifte Klammer wird geschlossen.
?>
Ende des PHP-Codes.
<html>
HTML wird eingeleitet. Beginn des auf der Seite dargestellten HTML-Codes.
<head></head>
Der HEAD-Bereich wird geöffnet und geschlossen.
<body>
Der BODY wird eingeleitet.
<form action="php-sternzeichen-anzeigen.php#demo" method="post">
Eine <form> mit der Methode post wird eingeleitet. Als action-Attribut ist der Name der Datei angegeben, die den PHP-Code und das Formular zur Auswahl des Geburtsdatums enthält.
Geburtsdatum: <select name="geb_tag">
Das Wort Geburtsdatum wird auf der Seite angezeigt. Ihm folgt das Öffnen eines Select-Auswahlfeldes mit dem Namen geb_tag zur Auswahl des Geburtstags, für den das Sternzeichen angezeigt werden soll.
<option value="0">Tag</option>
Die erste zur Auswahl stehende Option hat den Wert 0 und den Inhalt Tag. Dem Anwender soll dadurch vermittelt werden, dass an dieser Stelle der Tags des zu verarbeitenden Geburtsdatums auszuwählen ist.
<?= $tpl_geb_tag_auswahl; ?>
Der in den Zeilen 2 bis 10 festgelegte Wert von $tpl_geb_tag_auswahl wird innerhalb des Select-Feldes geschrieben. Er enthält als Auswahlmöglichkeiten die Tage des Monats von 1 bis 31.
</select>.
Das Select-Feld zur Auswahl des Geburtstags wird geschlossen. Ihm folgt ein Punkt zur Trennung von Geburtstag und Geburtsmonat.
<select name="geb_mon">
Das Select-Feld zur Auswahl des Geburtsmonats wird geöffnet. Es hat den Namen geb_mon.
<option value="0">Mon</option>
Ähnlich der ersten Option bei der Auswahl des Geburtstages, enthält die erste Option für die Auswahl des Geburtsmonats den Wert 0 und den Inhalt Mon, um dem Besucher aufzuzeigen, dass in diesem Select-Feld der Geburtsmonat auszuwählen ist.
<?= $tpl_geb_mon_auswahl; ?>
Der in den Zeilen 11 bis 19 festgelegte Inhalt der $tpl_geb_mon_auswahl-Variablen wird ausgegeben. Die Variable enthält die zur Auswahl des Geburtsmonats verfügbaren Optionen.
</select>.
Nach Ausgabe der Optionen wird das Select-Feld geschlossen.
<input value="Sternzeichen anzeigen" type="submit" /> <?= $tpl_sternzeichen; ?>
Durch den mit Sternzeichen anzeigen betitelten Submit-Button kann das Formular abgeschickt werden. Auf den Submit-Button folgt die Ausgabe der in Zeile 21 bzw. Zeile 23 definierten $tpl_sternzeichen-Variablen. Diese enthält einen leeren String (Zeile 23), sollte das Formular noch nicht abgeschickt worden sein. Nach Absenden des Formulars mit entsprechender Auswahl von Geburtstag und Geburtsmonat enthält $tpl_sternzeichen den in Zeile 21 zugewiesenen Rückgabewert der Funktion sternzeichen_generieren(), also den Namen des generierten Sternzeichens.
</form>
Das in Zeile 56 geöffnete Formular zur Datenübermittlung wird geschlossen.
</body>
Schließen des Zeile 55 geöffneten BODYs.
</html>
Ende des HTML-Containers.

Download

DateiZuletzt geändertGröße
3,2 KB
PHP-Script zur Ermittlung des Sternzeichens anhand von Geburtstag und -monat

JavaScript-Pendant