![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Fabian St., 31. 12. 2004, 00:11
Hi!
Eine Funktion sollte ja bekanntlich eigentlich immer etwas zurückliefern - sei es auch nur um das Debuggen zu erleichtern.
Nun bin ich bei einer Funktion zur Überprüfung von User-Eingaben auf die Frage gestoßen, wie man am geschicktesten eventuelle Fehler aber auch die Rückmeldung über die Richtigkeit der Eingaben zurückzuliefern kann.
Beispiel:
---------------------------------------------------------------------------
<?php
function check($ressource) # unsinnige Funktion zum Testen eines Stringes
{ # auf eine vorgeschriebene Länge von 10 Zeichen
$string = '';
$flag = TRUE;
if(strlen($ressource) < 10)
{
$string .= "<h1>Eingabe zu kurz</h1>\n";
$flag = FALSE;
}
if($flag) return 1; # Rückgabe: 1 (int) ==> alles OK!
else return $string; # Rückgabe: $string mit Fehlermeldung
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<input type="text" size="20" name="text" />
<input type="submit" name="senden" value="Senden" />
</form>
<?php
if(isset($_POST['senden']))
{
if(is_int(check($_POST['text']))) echo "<br />TRUE\n";
else echo "<br />FALSE\n";
}
?>
---------------------------------------------------------------------------
Mir scheint dieser Weg über is_int() [zur Überprüfung auf den Rückgabewert 1 => alles OK]) etwas umständlich. Daher würde mich interessieren, wie ihr solche Unterscheidungen handhabt, wenn eine Funktionen entweder einen String oder einen Integer zurückgeben kann.
Grüße,
Fabian St.
--
Meine Website: http://fabis-site.net
--> XHTML, CSS, PHP-Formmailer, Linux
---------------------
fabi@erde ~# whatis spam
spam: nothing appropriate
---------------------
Selfcode: ie:% fl:| br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
Die folgende Nachricht zum Thema stammt von: XaraX, 31. 12. 2004, 01:05
Moin Fabian,
persönlich würde ich so vorgehen:
»» ---------------------------------------------------------------------------
»» <?php
»» function check($ressource) # unsinnige Funktion zum Testen eines Stringes
»» { # auf eine vorgeschriebene Länge von 10 Zeichen
$string = false;
»» if(strlen($ressource) < 10)
$string = "<h1>Eingabe zu kurz</h1>\n";
return $string; # Rückgabe: $string mit Fehlermeldung
»» }
if($s=check($_POST['text'])
{
echo $string;
abbruch(); # vielleicht auch die() oder exit()
}
Gruß aus Berlin!
eddi
Die folgende Nachricht zum Thema stammt von: XaraX, 31. 12. 2004, 01:06
In Berichtigung:
»» if($s=check($_POST['text'])
»» {
echo $s;
»» abbruch();
»» }
Die folgende Nachricht zum Thema stammt von: Fabian St., 31. 12. 2004, 09:03
Hi XaraX!
»» persönlich würde ich so vorgehen:
»» »» ---------------------------------------------------------------------------
»» »» <?php
»» »» function check($ressource) # unsinnige Funktion zum Testen eines Stringes
»» »» { # auf eine vorgeschriebene Länge von 10 Zeichen
»» $string = false;
»» »» if(strlen($ressource) < 10){
»» $string = "<h1>Eingabe zu kurz</h1>\n";
»»
»» return $string; # Rückgabe: $string mit Fehlermeldung
»» »» }
»» if($s=check($_POST['text'])
»» {
echo $s;
»» abbruch(); # vielleicht auch die() oder exit()
»» }
Vielen Dank für deine Verbesserungen! Auf diese Weise spare ich mir die Überprüfung auf Integer/String und außerdem brauche ich eine Variable weniger :-)
Grüße,
Fabian St.
--
Meine Website: http://fabis-site.net
--> XHTML, CSS, PHP-Formmailer, Linux
---------------------
fabi@erde ~# whatis spam
spam: nothing appropriate
---------------------
Selfcode: ie:% fl:| br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
© 1998-2008
Impressum, Software: Classic Forum