Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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? :)

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ß

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

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

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

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

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

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

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!

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

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]

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

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

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*

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.