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.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    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
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          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?
            ToolsTool - Online (SEO-)Tools im Browser gleichzeitig starten ...

            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!
                Competence-Center -> Enjoy the Informatrix
                PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                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...
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    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
                      "My software never has bugs, it just develops random features."
                      "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                      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.
                          Competence-Center -> Enjoy the Informatrix
                          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                          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...
                              Competence-Center -> Enjoy the Informatrix
                              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                              Kommentar

                              Lädt...
                              X