Hallo ChrisB!
Danke für Deine Antwort! Dass innerhalb von php bei einer Kommazahl das Komma ein Punkt und kein Beistrich ist, war mir bewußt, ich habe nur im Zuge meiner Problemformulierung den im realen Leben gewohnten Beistrich gesetzt.
var_dump(intval('57foo6bar'));
Danke für den Denkanstoß! Natürlich ... das liefert ein 57 und kein 0, wie von mir angenommen. Ich habe das nach Deinem Input jetzt auch im Manual gelesen und verstanden.
Andernfalls bekommst du den Wert von PHP_INT_MAX
Ich nehme mal an, diese Konstante definiert die vom System höchst zulässige ganze Zahl, oder?
Und dir noch über die Behandlung von Sonderfällen bzw. Fehleingaben durch den Nutzer Gedanken machen.
Selbstverständlich. Ich habe meinen Versuch nun folgendermaßen gelöst: Gegeben sei ein Formular, in dem der User aufgefordert wird, eine ganze Zahl von 1 bis 1000 einzugeben. Bei der Prüfung der Eingabe gehe ich nun so vor, dass ich zunächst überprüfe, ob die Eingabe auch wirklich nur aus Ziffern besteht, also eine Kommazahl oder Eingabe mit Buchstaben oder Sonderzeichen schon mal auf jeden Fall falsch wäre. Und zusätzlich wird überprüft, ob, nachdem der String in eine Zahl umgewandelt worden ist, diese Zahl auch wirklich eine Zahl von 1 bis 1000 ist. Hier mein Code dazu:
<?php
if((ctype_digit($_POST['eingabe']))AND(intval($_POST['eingabe'])>0)AND(intval($_POST['eingabe'])<1001))
{
// Verarbeitung ...
}
else
{
echo"<p>Sorry, aber ".htmlspecialchars($_POST['eingabe'])." ist <strong>keine</strong> gültige Zahl von 1 bis 1000!</p>\n";
}
?>
Ich hoffe, so kann man es nun lassen.
MfG
Hugo Egon Balder