Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi,

hab ein kleines problem. Ich möchte, dass eine meldung kommt, dass es kein eintrag eingegeben wurde. Wie mach ich das? :(

<?php

    function check_leapyear($jahr)

    {

        if( ($jahr % 400 == 0) || (($jahr % 4 == 0) && ($jahr % 100 != 0) ))

        {

            echo $jahr." ist ein Schaltjahr";

        }

        else

        {

            echo $jahr." ist kein Schaltjahr";


			if($jahr == "")

           	{

           	echo "Sie haben kein Jahr eingegeben!";

           	}

        }

    }



    echo check_leapyear ($jahr);

?>

Ich bin nun seit 2 wochen FI-AE-Azubi und übe grad PHP, kenne mich aber wahrscheinlich im gegensatz zu euch so gut wie gar nicht aus :/

könntet ihr mir bitte helfen? :)

Geschrieben
Hallo,

ich versteh die Frage nicht.

Ich würde allerdings die Abfrage ob überhaupt ein Jahr eingegeben wurde schon vor dem ersten if abhandeln und nicht erst im else Zweig.

Frank

Ich mache PHP-Grundübungen, da ich mich da gar nicht auskenne und es gerade erst lerne. Nun muss ich etwas simples schreiben: Schaltjahrprüfung

sprich ich hab ein kleines feld wo man das jahr reinschreibt und es kommt die meldung obs ein schaltjahr ist oder nicht.

Danke für deinen Tipp! Durch das Nach-Oben-Setzen funktioniert es, allerdings kommt dann hinter der meldung "ist ein schaltjahr" es soll aber nur die meldung "Sie haben kein Jahr eingegeben!" kommen wenn nichts im Feld drin steht.

Könntest du mir da evtl. auch helfen? :)

Gruß

Geschrieben

also ich hab das jetzt so und es funktioniert :) ist es aber richtig in der programmierwelt?

<?php


$jahr = $_POST['jahr'];




?>



<html>

<head> </head>

	<body>

	<table width="100%" height="100%">

	 <tr>

	 <td align="center">

<?php

    function check_leapyear($jahr)

    {

        if($jahr == "")

           	{

           	echo "Sie haben kein Jahr eingegeben!";


        }elseif( ($jahr % 400 == 0) || (($jahr % 4 == 0) && ($jahr % 100 != 0) ))

        {

            echo $jahr. " ist ein Schaltjahr";

        }

        else

        {

            echo $jahr. " ist kein Schaltjahr";


           	}

        }




    echo check_leapyear ($jahr);

?>

	</body>

</html> 

und eine letzte frage hab ich noch: wie definier ich es, dass buchstabe unzulässig sind? denn wenn ich nämlich buchstaben in das feld eingeben heißt es z. B. "asdf ist ein Schaltjahr"

Gruß, Raziel

Geschrieben

Nein so meinte ich das nicht.


function check_leapyear($jahr)
{
if($jahr == "" || is_numeric($jahr)==false)
{
echo "Sie haben kein Jahr eingegeben!";
}
else
{
if( ($jahr % 400 == 0) || (($jahr % 4 == 0) && ($jahr % 100 != 0) ))
{
echo $jahr. " ist ein Schaltjahr";
}
else
{
echo $jahr. " ist kein Schaltjahr";
}
}
}
[/php]

Es gibt die Funktion is_numeric um zu prüfen ob es Zahlen sind.

Was soll eigentlich das echo bei "echo check_leapyear ($jahr);"?

Frank

Geschrieben
Was soll eigentlich das echo bei "echo check_leapyear ($jahr);"?

Also ich bin kein fachmann, aber wenn ich das lösche, dann prüft er vielleicht, aber zeigt nichts an.

Sprich ich sehe nur einen weißen bildschirm ohne Meldung.

Danke für deine Hilfe und deinen Tipp! Es funktioniert!

eine frage hab ich aber noch: Die zeile

if($jahr == "" || is_numeric($jahr)==false)

also bis || ist ja klar aber wie definiert sich is_numeric($jahr)==false?

|| ist sowas wie "oder"?

is_numeric($jahr)==false Variable muss nummerisch sein, wenn nicht = falsche -> echo?

Gruß, Raziel

Geschrieben

Das verstehe ich ehrlich gesagt auch nicht :/

Ganz egal ob ich das Jahr / Text / Nichts eingebe, ich werde einfach auf eine leere seite weitergeleitet.

Wenn ich das echo aber drin lasse, funktioniert alles wie es soll.

Und ein großes DANKESCHÖN nochmal für deine Hilfe! :)

Gruß, Raziel

Geschrieben

Also bei folgendem Code kommt als Output "2008 ist ein Schaltjahr".


<html>
<body>
<?PHP

function check_leapyear($jahr)
{
if($jahr == "" || is_numeric($jahr)==false)
{
echo "Sie haben kein Jahr eingegeben!";
}
else
{
if( ($jahr % 400 == 0) || (($jahr % 4 == 0) && ($jahr % 100 != 0) ))
{
echo $jahr. " ist ein Schaltjahr";
}
else
{
echo $jahr. " ist kein Schaltjahr";
}
}
}

check_leapyear (2008);

?>
</body>
</html>
[/php]

Frank

Geschrieben

achso... habs falsch verstanden...

dachte es soll die ganze zeile raus.. aber dabei ist ja "check_leapyear ($jahr);" das entscheidende (was logisch ist) und benötigt kein echo...

ich dachte der befehl gehört mit "echo" zusammen *g*

naja übung macht den meister ;) auch wenn der weg lang ist *g*

danke nochmal!

Gruß, Raziel

Geschrieben

Es gibt unter PHP noch zwei Funktionen, die hier hilfreich sein könnten.

Kontrollieren ob eine Variable leer ist: empty PHP: empty - Manual

Kontrollieren ob eine Variable definiert ist: isset PHP: isset - Manual

isset($var) prüft, ob überhaupt ein Wert in dieser Variable steckt, oder ob sie noch gar nicht gesetzt, oder per unset() "geleert" wurde. Falls sie gesetzt ist, gibt sie TRUE zurück, ansonsten FALSE.

empty($var) prüft, ob die Variable den Wert NULL, "", 0 oder "0" hat und gibt in diesen Fällen TRUE aus.

Und dann gibts noch die Möglichkeit if($var)

Hier wird afaik geprüft, ob die Variable einen Wert hat und falls das der Fall ist, wird TRUE zurückgegeben.

Mittels ! ist auch die Negation möglich. Also aus TRUE wird FALSE und umgekehrt.

Beispiell:

if(!$var) { //mach etwas, wenn die Variable leer ist }

Zwischen PHP4 und PHP5 existieren hier jedoch Unterschiede!

Geschrieben

Moin,

mal ungeachtet der bisherigen Diskussion mit natürlich richtigen Hinweisen befremdet es mich, dass deine Funktion selbst Ausgaben macht.

Ich meine, es wäre besser, wenn deine Funktion true oder false zurück liefert und eventuelle Ausgaben vom aufrufenden Teil übernommen werden. Damit wäre die Funktion flexibler.

Also z.B. etwas wie


echo "Das Jahr " . $_POST['jahr'] . " hat "
. (365 + (check_leapyear($_POST['jahr'])?1:0))
. " Tage."
[/PHP]

Nur mal so nebenbei

Reinhold

Geschrieben
Auch mal so nebenbei, zusätzlich zu dem was Reinhold grad gesagt hat, würd ich die Funktion dann auch isLeapyear nennen ;)


...
if (isLeapyear($jahr))
...
[/php]

Und noch nebenbeier: Ich habe JesterDay soeben als Kandidat für die "goldene Axt" als "Haarspalter des Monats" vorgeschlagen. :mod::hells:

Reinhold

Geschrieben
Und noch nebenbeier: Ich habe JesterDay soeben als Kandidat für die "goldene Axt" als "Haarspalter des Monats" vorgeschlagen. :mod::hells:

Und nebenbei mal nebenbei gesagt: Ein passender Name für eine Funktion sagt auf den ersten Blick gleich, was die tut. check_leapyear kann alles mögliche tun, eine Funktion die isBlaBla (oder auch mit _ von mir aus) heißt, gibt im Normalfall einen Booleanwert zurück ;) Das macht ja schon der Name verständlich.

Außerdem sollte das eine Ergänzung zu deinem Code sein, keine Kritik daran :P

Geschrieben
Und nebenbei mal nebenbei gesagt: Ein passender Name für eine Funktion sagt auf den ersten Blick gleich, was die tut. check_leapyear kann alles mögliche tun, eine Funktion die isBlaBla (oder auch mit _ von mir aus) heißt, gibt im Normalfall einen Booleanwert zurück ;) Das macht ja schon der Name verständlich.

Außerdem sollte das eine Ergänzung zu deinem Code sein, keine Kritik daran :P

Ich wollte ja auch nur den deppen Spruch anbringen, aber bei einem Monnemer sollte man das vielleicht mit dazu schreiben *SCNR*

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...