Ankündigung

Einklappen
Keine Ankündigung bisher.

checkdate Fehler

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema checkdate Fehler.

    checkdate Fehler

    Hi,

    checkdate gibt
    Code:
    Warning:  checkdate() expects parameter 2 to be long, string given in /home/.../create_account.php on line 80
    aus, wenn man sich vertippt und z.B. 2e.12.2008 eingibt.

    Kann mir das mal jemand erklären?


    Viele Grüße

    Andreas

  • Gast-Avatar
    Ein Gast antwortete
    Und hast dann meinen Vorschlag kritisiert und als schlechten Stil dargestellt.
    An sich kein Problem. Nur leider kommt keine echte Begründung für diesen Fall. Da wird es dann für mich irgendwie ...doof. Das will ich dann auch nicht so stehen lassen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Hm, ich glaube "fur" versteht das Ganze jetzt besser, als wenn er einfach ein @ vornrangesetzt hätte.
    Und ich habe ja nachgedacht, wie man das Problem lösen könnte.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Gut, ich wähle dann in solchen Fällen das Nachdenken und Verstehen und spreche mich gegen künstlich aufgeblähten Code und grundlose Prinzipienreiterei (besonders die mit Ausrufezeichen) aus.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    ... Jedem das seine ...

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Mein Prinzip und auch das Prinzip vieler anderer Leute ist, keine Fehler oder Warnung zu ignorieren und so zu programmieren, dass gar keine Fehler oder Warnungen entstehen können.
    Mit @ können keine Warnungen auftreten bzw. sichtbar werden. Aufgrund des Verhaltens von checkdate entsteht auch kein Fehlverhalten des Programms. 2e ist nicht Bestandteil einer gültigen Datumsangabe. Das soll abgetestet werden; wird es auch, ganz den Erwartungen entsprechend. Ein Beweis, dass es Eingaben gibt, wo ein anderes Verhalten auftritt, steht aus - ich bin mir sicher, dass er nicht kommen wird.
    Nicht jede Warnung muss sinnvoll sein, nicht jede Eigenbehandlung gut.
    Sinnvolle Warnungen zu unterdrücken, Startbedingungen nicht abzuprüfen und auftretende Fehler nicht zu behandeln - das ist schlecht.
    Aber die Warnung von checkdate an dieser Stelle könnte kaum egaler sein.
    Bitzili mitdenken darf man noch beim Programmieren - wir sind noch keine Maschinen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Mein Prinzip und auch das Prinzip vieler anderer Leute ist, keine Fehler oder Warnung zu ignorieren und so zu programmieren, dass gar keine Fehler oder Warnungen entstehen können.
    Das ist manchmal vielleicht ein bisschen umständlicher, als einfach nur ignorieren. Aber wie du gesehen hast, hat "fur" wieder etwas dazugelernt ...

    A propos hinkender Vergleich:
    "Leben ist tödlich"
    Naja, das hat ja wohl auch nichts mit dem Ganzen hier zu tun. Und das mit der Klippe war nur die Antwort auf deinen komischen Vergleich.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Nein, tue ich nicht. Aber hinkender Vergleich. Die ach so schreckliche Gefahr bei @checkdate musst Du mir erst zeigen. Ich sehe sie nicht; nichtmal ein kleines Gefährchen.
    Bekomme ich noch Antworten auf meine Fragen oder war Deine Bemerkung nur "aber ich weiss es noch viel besser, Frau Lehrerin"?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Übrigens: Wenn du im Leben ein Schild siehst "Klippe! Todesgefahr!" unterdrückst du dann auch alle Warnungen und spazierst geradeaus über die Klippe?

    So genug diskutiert. Gute Nacht.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Natürlich ist durch das Unterdrücken in diesem speziellen Fall das Problem behoben. Welches andere, ungelöste Problem siehst Du bei genau diesem Vorgehen? Welcher Fall ist nicht abgedeckt? Welche Seiteneffekte können entstehen?
    So verallgemeinert kann man auch sagen "Leben ist tödlich"

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von Bruchpilot
    Einfach Warnung unterdrücken.
    Bruchpilot: Warnungen unterdrücken ist nicht gerade ein sauberer Programmierstil!
    Wenn auf deiner Seite ein Fehler kommt, unterdrückst du dann auch einfach die Fehler?
    Durch das Unterdrücken ist das Problem nicht behoben!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von karl-150
    wo läge das problem einfach eine typkonvertierung durchzuführen also einfach (int) $m zu schreiben, dann wird aus 2e eben bestenfalls 2
    da checkdate() nachkommastellen ignoriert wäre auch is_numeric() in ordnung
    falls doch stimhofs vorschlag nehmen, dann vielleicht preg_match('#\d{1,2}\.\d{1,2}\.\d{4}#', $date)
    Zitat von Bruchpilot
    checkdate gibt bei '2e' als Parameter eh false zurück. Einfach Warnung unterdrücken.
    PHP-Code:
    <?php
    $eingabe 
    '2e.12.2008';

    $tmp explode('.'$eingabe);
    if (
    count($tmp)!=|| !@checkdate($tmp[0], $tmp[1], $tmp[2]))
        echo 
    $eingabe' ist kein gültiges Datum';
    ?>
    Was ich jetzt einsetze weis ich noch nicht.
    Ich hab aber auf jeden Fall wieder einiges gelernt ...
    Vielen Dank an alle!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    checkdate gibt bei '2e' als Parameter eh false zurück. Einfach Warnung unterdrücken.
    PHP-Code:
    <?php
    $eingabe 
    '2e.12.2008';

    $tmp explode('.'$eingabe);
    if (
    count($tmp)!=|| !@checkdate($tmp[0], $tmp[1], $tmp[2]))
        echo 
    $eingabe' ist kein gültiges Datum';
    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    wo läge das problem einfach eine typkonvertierung durchzuführen also einfach (int) $m zu schreiben, dann wird aus 2e eben bestenfalls 2
    da checkdate() nachkommastellen ignoriert wäre auch is_numeric() in ordnung
    falls doch stimhofs vorschlag nehmen, dann vielleicht preg_match('#\d{1,2}\.\d{1,2}\.\d{4}#', $date)

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    ohje, Zeit, ... eigentlich nie und immer viel zu Wenig :wink:
    Ich dank Dir auf jeden Fall vielmals.
    ... werd mich dann morgen mal an´s lesen machen...

    Viele Grüße

    Andreas

    Einen Kommentar schreiben:

Lädt...
X