Ankündigung

Einklappen
Keine Ankündigung bisher.

script stopt nach funktionsaufruf

Einklappen

Neue Werbung 2019

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

  • script stopt nach funktionsaufruf

    Hallo,

    ich bastel gerade an einem Online Formular für eine Anmeldung.

    Nach abschicken dieses Formulars überprüfe ich das Geburtsdatum des jeweiligen, ob das Alter über 18 Jahre alt ist.

    Jedoch stopt das Script nach dem aufruf der Funktion und die Seite bleibt weiß. Eine Fehlermeldung erscheint nicht.

    den aufruf realisiere ich so:

    PHP-Code:
    }elseif(!$_POST['gebdat'] || $_POST['gebdat'] != ""){
    alterberechnen();
    }elseif(!
    $_POST['gebdat'] || $_POST['gebdat'] == ""){
    echo 
    "<p align='left'>Dein Geburtsdatum brauchen wir schon. Bitte ausfüllen.</p>"
    Vorher wird noch überprüft ob die Notwendigen Pflichtfelder ausgefüllt sind.
    Die Funktion selber sieht so aus:

    PHP-Code:
    function alterberechnen() {
    $datumalter $_POST['gebdat']; // Geburtsdatum Tag-Monat-Jahr
    $mindestalter "18"// Mindestalter
    $var explode("."$datumalter); // Geburtsdatum zerlegen
    $check = @checkdate($var[1], $var[0], $var[2]); // angegebenes Geburtsdatum auf Gültigkeit prüfen
    if($check == true) { // wenn Geburtsdatum gültig ist
        
    $min strtotime("-".$mindestalter." years"); // aktueller Timestamp abzüglich 18 Jahre
        
    $geb mktime(000$var[1], $var[0], $var[2]); // Timestamp des angegebenen Geburtsdatums
        
    if($min $geb) { // ist der Timestamp abzüglich 18 Jahre grösser oder gleichgross als der Timestamp des Geburtsdatums
            
    echo "Du bist leider noch keine 18 Jahre alt. Bitte lade Dir unseren Mitgliedsantrag runter, da wir die Einverständniserklärung eines Erziehungsberechtigten benötigen.
           }
    }} 
    Leider habe ich im Netz nichts gefunden was mir bei der Lösung des Problems helfen könnte.

  • #2
    Schau Dir mal die letzten Zeilen des 2. Codepostings an. ALleine die Farbe sollte Dich bereits stutzig machen.

    Kommentar


    • #3
      Und stelle das error_reporting auf E_ALL und vor allem display_errors auf on.

      Dann „stoppen“ solche Scripte nämlich nicht nur einfach mit „weißer Seite“, sondern du bekommst aussagekräftige Fehlermeldungen präsentiert.

      Kommentar


      • #4
        Zitat von ChrisB Beitrag anzeigen
        Und stelle das error_reporting auf E_ALL und vor allem display_errors auf on.

        Dann „stoppen“ solche Scripte nämlich nicht nur einfach mit „weißer Seite“, sondern du bekommst aussagekräftige Fehlermeldungen präsentiert.
        Also error_reporting ist so eingestellt.

        display_errors steht auch auf On in der php.ini.

        Seite bleibt trotzdem weiß und es kommt keine Fehlermeldung warum das script stopt.

        Kommentar


        • #5
          http://www.php.de/wiki-php/index.php..._Parser_Fehler

          Kommentar


          • #6
            Zitat von nikosch
            ... die letzten Zeilen des 2. Codepostings ... die Farbe sollte Dich bereits stutzig machen.
            Wirf u. a. mal einen Blick auf das echo" ...

            ... ob das Alter über 18 Jahre alt ist.
            Nur der Neugierde halber, für welche Art von Content prüft ihr "so" das Alter?

            Kommentar


            • #7
              Dann lass dir im Browser den Quelltext anzeigen - unter ungünstigen (aber unwahrscheinlichen) Umständen kann es passieren, dass Fehlermeldungen von PHP vom HTML-Parser „verschluckt“ werden, bspw. wenn sie innerhalb eines Attributwertes stehen oder auf Grund spitzer Klammern als unbekanntes „Tag“ angesehen werden.


              Unabhängig davon sollte nikoschs erster Hinweis schon ausreichend sein, um den Fehler zu finden (bzw. direkt zu sehen, er ist ja offensichtlich) und zu beheben.

              Kommentar


              • #8
                [OT]
                Um dem TE ein klein wenig beizustehen: Auch ich habe ab und zu das Phänomen, daß keine Fehlermeldung kommt,
                obwohl error_report an ist und display_errors auf on (also true oder 1 per ini_set())!
                Der error_report steht bei mir immer auf E_ALL|E_STRICT oder -1
                Der Quelltext ist dabei immer komplett leer!
                Ursache sind grundsätzlich fehlende Semikola oder falsch gesetzte Klammern.
                Vielleicht hat ja jemand ne Idee warum der error_report da nicht hinhaut bei mir?
                [/OT]

                Zum Thema:
                In diesem Fall sollte in Blick in den Quelltext die Erleuchtung bringen!

                Kommentar


                • #9
                  Bei manchen Providern ist display_errors aus und man kann es nicht per PHP-Skript beeinflussen. Das vielleicht mal mit phpinfo() überprüfen.

                  Kommentar


                  • #10
                    Danke für den Tipp, aber wie oben beschrieben ist das auf on!
                    Trotzdem Danke für den Hinweis...

                    Kommentar


                    • #11
                      Selbst das Code-Highlighting dieses Forums zeigt dir genau wo der Fehler ist.
                      Du solltest dir vielleicht eine IDE zu legen, die dir Fehler anzeigt!
                      Zu empfehlen wären da:
                      Welcome to NetBeans
                      PHP Development Tools Project

                      Kommentar


                      • #12
                        Vielen Dank bisher für eure Mühen.

                        Der Tip mit dem hinweis auf das echo ist leider nicht das was den Fehler auslöst. Im Quelltext steht es jedenfalls richtig.

                        Also so:

                        PHP-Code:
                        echo "Du bist leider noch keine 18 Jahre alt. Bitte lade Dir unseren Mitgliedsantrag runter, da wir die Einverständniserklärung eines Erziehungsberechtigten benötigen.";

                        Das ist dann also nicht der Fehler. ich werde mir mal die hier geposteten Links bezüglich Debugging durchlesen.

                        Bei manchen Providern ist display_errors aus und man kann es nicht per PHP-Skript beeinflussen. Das vielleicht mal mit phpinfo() überprüfen.
                        Bei mir ist es definitiv an, da ich den Webserver auf dem das ganze erst mal zum testen läuft, hier bei mir zu hause stehen habe und diesen auch selber betreue.

                        Kommentar


                        • #13
                          Der Tip mit dem hinweis auf das echo ist leider nicht das was den Fehler auslöst.
                          Hast Du uns denn das richtige gepostet?
                          Denn wenn ich die korrigierte Fassung kopiere, verursacht der Scriptteil auf meinem Server keine Komplikationen.

                          Kommentar


                          • #14
                            Zitat von Arne Drews Beitrag anzeigen
                            Hast Du uns denn das richtige gepostet?
                            Denn wenn ich die korrigierte Fassung kopiere, verursacht der Scriptteil auf meinem Server keine Komplikationen.
                            Ja ich hab das ganze Script makiert und hier rein kopiert.

                            Mir kam auch schon die Idee das es eventuell an den elsif Anweisungen liegt, denn das Alter prüfe ich zwischen 2 elseif Anweisungen.

                            Werds mal testen ob es alleine lauffähig ist.

                            Edit: Ohne irgendwelche vorherigen Anweisungen läuft es auch bei mir! Dann such ich mal woanders nach dem Fehler.

                            Kommentar


                            • #15
                              Ja ich hab das ganze Script makiert und hier rein kopiert.
                              Schwer vorstellbar, wie dann das Anführungszeichen abhanden kommen konnte...

                              Kommentar

                              Lädt...
                              X