Ankündigung

Einklappen
Keine Ankündigung bisher.

unerklärbarer Fehler

Einklappen

Neue Werbung 2019

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

  • unerklärbarer Fehler

    Hallo,

    kann sich eventuell von euch wer erklären, wieso die Variable $test im zweiten Script nicht HalloIsteinWort ausgibt?

    Code 1
    PHP-Code:
      <?php  
    /* Settings */  /* Datenbank Information*/
    $test "hallo";  
    /* Register Settings*/  
    $use_unique_email_adress true;

    function 
    checkNicknameAvailability($nickname) {  
    return 
    true;  
    }    

    function 
    checkEmailAvailability($email) {  
    return 
    true;  
    }    
    function 
    CheckUidForUniqueness($uid) {

    }    

    function 
    registrieren() {  
    $test "HalloisteinWort.";  
    return 
    false;  
    ?>

    Code 2
    PHP-Code:
      <?php  require_once("../../../assets/auth/auth_function.php");    

    if(isset(
    $_POST['submiteReg'])) {  if(registrieren("test""max@muster.de""musterpw") == true) {  echo "Erfolgreich";  } else {  echo "Fehler: " $test;  }  }
    ?>
    <form action="register.php" method="POST">  
    Benutzername <input type="text" name="username" placeholder="MusterNick">  
    EMail Addrese <input type="email" name="email" placeholder="muster.mann@muster.mann">  
    Password <input type="password" name="password1">  Password Confirm <input type="password" name="password2">    
    <input type="submit" name="submiteReg" value="Registrieren">    </form>

  • #2
    Bitte formatiere deinen Code mit entsprechenden Einrückungen, Kein Mensch hat Lust auf solche Beiträge.

    Kommentar


    • #3
      Zitat von protestix Beitrag anzeigen
      Bitte formatiere deinen Code mit entsprechenden Einrückungen, Kein Mensch hat Lust auf solche Beiträge.
      Das lustige ist, dass der Text bei mir in der Vorschau Formatiert ist, hier aber nicht mehr,


      Edit: Ich bekomme gleich ne Krise, wenn man es neulädt ist es(wie auf dem Bild) wieder verschoben

      Kommentar


      • #4
        So jetzt sollte es funktionieren.

        Kommentar


        • #5
          In 99.9% der Fälle ist der Editor die Ursache.
          Verwende einen anderen Editor, ich hatte solche Probleme noch nie oder formatiere es im Nachhinein per Hand oder verwende http://phpbeautifier.com/ mit der Einstellung Size 4 spaces.

          Kommentar


          • #6
            Ok, hast du eventuell einen Tipp was in meinem Code schief gelaufen ist?

            Kommentar


            • #7

              PHP-Code:
              function registrieren() {  
              $test "HalloisteinWort.";  
              return 
              false
              Was macht diese Funktion?
              Wie sieht der Rückgabewert dieser Funktion aus?
              Warum ist das eine Funktion, die niemals etwas ausgibt?

              Da die Funktion keine Argumente(Parameter) hat und weil sie immer false zurück gibt kann dieser Aufruf und der Vergleich nicht erfolgen.
              PHP-Code:
               if(registrieren("test""max@muster.de""musterpw") == true)... 
              Deine Überschrift ist irreführend, der Fehler ist erklärbar.

              N.B:
              Es gibt auch noch das Element Label in HTML um Beschriftungen zu Kennzeichnen.

              Kommentar


              • #8
                Zitat von protestix Beitrag anzeigen
                PHP-Code:
                function registrieren() {
                $test "HalloisteinWort.";
                return 
                false
                Was macht diese Funktion?
                Wie sieht der Rückgabewert dieser Funktion aus?
                Warum ist das eine Funktion, die niemals etwas ausgibt?

                Da die Funktion keine Argumente(Parameter) hat und weil sie immer false zurück gibt kann dieser Aufruf und der Vergleich nicht erfolgen.
                PHP-Code:
                 if(registrieren("test""max@muster.de""musterpw") == true)... 
                Deine Überschrift ist irreführend, der Fehler ist erklärbar.

                N.B:
                Es gibt auch noch das Element Label in HTML um Beschriftungen zu Kennzeichnen.
                Die funktion soll, wenn sie fertig ist, ein Benutzer in dei DB schreiben.
                Die Funktion prüft zuerst, ob der Nutzername und/oder die E-Mail Adresse bereits eingetragen sind.

                Mein Problem ist das die function aufgerufen wird (dies mache ich daran fest, dass wenn an denn return Wert auf 'true' stellt ich auch 'Erfolgreich' Angezeigt bekomme), aber die Variable $test nicht auf 'HalloisteinWort' gesetzt wird sondern weiterhin auf 'Hallo' bleibt.

                Kommentar


                • #9
                  Du bist schon viel zu weit.
                  Beantworte dir erst mal folgenden Fragen

                  Was macht diese Funktion?
                  Wie sieht der Rückgabewert dieser Funktion aus?
                  Warum ist das eine Funktion, die niemals etwas ausgibt?

                  Wenn du das nicht beantworten kannst, lies noch mal im Handbuch nach wie man Funktionen schreibt, wie man sie aufruft und was man als Rückgabe erwarten darf?

                  Meine Meinung zu Funktionen ist, das sie unnötig sind, wenn man Daten in die DB eintragen will.
                  Warum meinst du das in eine Funktion auslagern zu müssen?

                  Kommentar


                  • #10
                    Zitat von protestix Beitrag anzeigen
                    Was macht diese Funktion?
                    Wie gesagt sie trägt einen Benutzer in die Datenbank ein und prüft vorher ob der Username und die Email Adresse noch Verfügbar sind.


                    Zitat von protestix Beitrag anzeigen
                    Wie sieht der Rückgabewert dieser Funktion aus?
                    War die Registrierung erfolgreich, dann ist der Rückgabewert true.
                    Ist die Registrierung fehlgeschlagen, so ist der Rückgabewert false und das Registrierungsseite(Code2) gibt den fehler aus.

                    Zitat von protestix Beitrag anzeigen
                    Warum ist das eine Funktion, die niemals etwas ausgibt?
                    Da ich alles nochmal entfernt hatte, weil der Fehler aufgetretten ist.

                    Zitat von protestix Beitrag anzeigen
                    Meine Meinung zu Funktionen ist, das sie unnötig sind, wenn man Daten in die DB eintragen will.
                    Warum meinst du das in eine Funktion auslagern zu müssen?
                    Da man mir schon öfter sagete ich soll solche dinge Auslagern.
                    Zweitens muss ich die Registrierung von mehreren Seiten aufrufen können.




                    Kommentar


                    • #11
                      http://php.net/manual/de/language.variables.scope.php

                      Die Variable gibs außerhalb der Funktion nunmal nicht.

                      War die Registrierung erfolgreich, dann ist der Rückgabewert true.
                      Ist die Registrierung fehlgeschlagen, so ist der Rückgabewert false und das Registrierungsseite(Code2) gibt den fehler aus.
                      Nein, deine gezeigte Funktion tut nichts von dem. Du kannst uns nicht A zeigen und dann von B erzählen, keiner hier weiß wie es bei dir vorher schonmal augesehen hat.

                      Aktuell scheitert es an einer Reihe von Dingen, vor allem vermutlich die Sichtbarkeit (siehe Link oben) darüber hinaus vermutlich auch noch, dass du eine Funktion ohne Parameter mit 3 Paremetern aufrufst.

                      Kommentar


                      • #12
                        Zitat von LudwigBr Beitrag anzeigen
                        http://php.net/manual/de/language.variables.scope.php

                        Die Variable gibs außerhalb der Funktion nunmal nicht.


                        Nein, deine gezeigte Funktion tut nichts von dem. Du kannst uns nicht A zeigen und dann von B erzählen, keiner hier weiß wie es bei dir vorher schonmal augesehen hat.

                        Aktuell scheitert es an einer Reihe von Dingen, vor allem vermutlich die Sichtbarkeit (siehe Link oben) darüber hinaus vermutlich auch noch, dass du eine Funktion ohne Parameter mit 3 Paremetern aufrufst.
                        Also villeicht bin auch ich zublöd, aber wenn ich eine Funktion aufrufe in der steht das die Variable $test = "HalloisteinWort"; sein soll, dann wird dies auch ausgefürt, wenn kein weiterer Code drüber steht. Oder?

                        Kommentar


                        • #13
                          Zitat von WebInsel Beitrag anzeigen
                          Also villeicht bin auch ich zublöd, aber wenn ich eine Funktion aufrufe in der steht das die Variable $test = "HalloisteinWort"; sein soll, dann wird dies auch ausgefürt, wenn kein weiterer Code drüber steht. Oder?
                          Was außerhalb der Funktion steht, ist der Funktion egal. Und umgekehrt genauso, alles außerhalb einer Funktion interessiert sich nicht dafür, was in einer Funktion steht.

                          Eine Funktion hat Eingabewerte (Funktionsparameter) und einen Rückgabewert. Die Kommunikation mit dieser Funktion erfolgt also darüber und nicht über irgendwelche Variablen.

                          Kommentar

                          Lädt...
                          X