PHP Alter in Tagen

Frauke

Herzlich willkommen!
Hallo,

Ich habe eine Frage bezüglich der PHP-Programmierung. Ich möchte, dass meine User ihr Alter eintippen, und sie bekommen anschließend angezeigt wieviel Tage sie bereits leben.

So weit bin ich mit HTML:

<html>
<head>
<title>Testseite</title>
<body bgcolor="black">
<table height="50%" width="50%" border="1" bordercolor="green">
<tr bgcolor="blue">
<td>



<form action="alter.php" method="post">
<text>"Tippe hier dein Alter in Jahren ein"</text>
<input type="text" name="Alter">
<input type="Submit" value="Absenden">
</form>



</td>
</tr>


</table>


</body>
</head>

</html>


Da siehts eigtl. in Ordnung aus, es scheitert aber an PHP wo ich soweit gekommen bin:

<?php

$alter= $_POST ["Alter"];
$jahre= 1;
$jahre++;

if (

?>


Ich verstehe einfach nicht wie ich dieses ++ genau anzuwenden habe, evtl. könnte mir es jemand zeigen und erläutern.

Danke im Voraus für die Hilfe.
 
$jahre++; ist das selbe wie $jahre+=1; was wiederrum das selbe ist wie $jahre = $jahre +1;

Außer in Schleifen, dort wird der Zähler bei ++ nach dem Durchlauf der Schleife hochgezählt, im gegensatz zu ++i, wo vor dem Durchlauf hochgezählt wird.

also
for(i=0,i<$jahre,i++){ mach was! z.B. zähle 365 Tage zu den schon vorhandenen hinzu, was aber Blödsinn ist, denn es gibt eine Differenzzeitberechnung, die das ohne Schleifen kann}
beginnt bei i=0, macht was und dann wird i um 1 erhöht.

Eventuell kannst Du auch einfach die Differenz zwischen 2 Daten benutzen:
PHP:
<?php
$alt = strtotime("1960-11-25") ;
$aktuell = strtotime("2010-10-25") ;

$differenz = $aktuell - $alt;
$differenz = $differenz / 86400;

echo "$differenz";

?>
Die 86400 sind die Sekunden, die ein Tag im Durchschnitt hat.
 
Hallo QuHno

berücksichtigt diese Berechnungsmethode denn auch Schaltjahre?

Und Sorry Frauke, aber was ist wenn du die Berechnung an einem 20.4. eines Jahres durchführst der Benutzer aber z.B. das Geburtsdatum 15.08.XX hat? Dann würde die Berechnung auch nicht stimmen. Du würdest ihn dadurch Älter machen.
 
Zuletzt bearbeitet:
Hier gibt es schon eine fertige und funktionierende Lösung von Astrominus.

https://www.supernature-forum.de/572533-post11.html

Und hier das dazugehörige Eingabeformular:

HTML:
<form action="alter.php" method="post">                  //Das Eingabeformular
Tag: <input type="text" name="tag" size="2">
Monat: <input type="text" name="monat" size="2">
Jahr: <input type="text" name="jahr" size="4">
<input type="submit" name="berechnen" value="Berechnen">
</form>
 
Astros Script hat aber keinen Bezug zu POST-Variablen, das Datum wird dort direkt in eine Variable gegeben. Das müsste noch entsprechend angepasst werden.
 
berücksichtigt diese Berechnungsmethode denn auch Schaltjahre?
Die Methode wandelt alles in Sekunden seit 1900 um und zieht die Daten voneinander ab und teilt durch die Anzahl der Sekunden pro Tag - sollte also korrekt sein, hab's aber noch nicht ausgetestet weil ich es für mich nie relevant war ...

... im Zweifelsfall einfach bei PHP.net nachlesen, ob, oder ob nicht und eventuell auch mal in PHP.net DateTime::diff hineinsehen, AFAIK ist es mit dem Objekt und der Methode (auch prozedural machbar) auf alle Fälle korrekt, es wird allerdings PHP >= 5.3 benötigt.

Wenn man mit Daten vor 1900 rechnen will, muss man evtl. vorher das Datum in das julianische Format umwandeln, ist aber IMHO für eine Altersberechnung nicht so wirklich wichtig, es gibt so wenig 110 Jährige :ROFLMAO:
 
Sorry evtl. hab ich mich nicht klar genug ausgedrückt:

man soll einfach sein ungefähres Alter eintippen, beispielsweise:

19


nichts genaues auf den Tag, Schaltjahre sind auch uninteressant.


Die andern Codes die gepostet wurden verstehe ich nichtmal, soweit sind wir in unserem Kurs noch nicht. Wäre nett wenn mir jemand das einfache erklären könnte.
 
Zuletzt bearbeitet:
PHP:
<?php
$alter= $_POST["Alter"];
if(is_numeric($alter)) {
echo "Du bist schon mindestens ". $alter*365 ." Tage auf der Welt.";
}
else {
echo "Bitte kehre zur <a href='blah blah'>vorherigen Seite zurück</a> und gib eine ZAHL ein";
}
?>
 
Das wird wohl an deinem Kurs behandelt worden sein, aber zum besseren
Verständnis erkläre ich mal den ganzen Vorgang in vereinfachter Form:

- der Benutzer hat deine Seite aufgerufen und füllt das Formularfeld aus

- er drückt den Button, daraufhin fordert sein Browser das alter.php an

- der Webserver lädt die alter.php, verarbeitet sie und schickt das Ergebnis
an den Browser

Also zuerst mal muss dein PHP Script ganz normal eine HTML Seite aufbauen.
Innerhalb von <?php> Tags programmierst du dort die Berechnungen.
Es scheint so, wie wenn du keinen Plan für die Berechnung hättest. Nur soviel:
Du benötigtst nur die Multiplikation - 1 Jahr hat 365 Tage für vereinfachte Berechnungen.

(Oh, Quhno war schneller....)

hth
 
ok dankeschön erstmal, kann mir jemand bitte noch sagen was is numeric ist? is das das gleiche wie ++ oder wie kann man das sehen?
 
is_numeric ist lediglich die Abfrage, ob der Benutzer auch tatsächlich eine Zahl und nichs anderes eingegeben hat. Wir wollen ja nicht, dass der Benutzer bösartigen Code einschleusen kann, oder?

Deswegen immer alle Abfragen darauf überprüfen, ob sie in genau dem Wertebereich liegen oder das Eingabeformat haben, welches sie haben sollen. Nennt sich "Code Sanitation" bzw "Webseiten vor bösartigen Eingaben schützen" und man kann damit garnicht früh genug anfangen.
 
Oben