Neunmalunklug: Problem mit "include"-Funktion, zeigt eine unerklärliche 1 an

0 41

Problem mit "include"-Funktion, zeigt eine unerklärliche 1 an

Neunmalunklug
  • includes
  • php
  1. 2
    MudGuard
    1. 0

      (Gelöst:) Problem mit "include"-Funktion, zeigt eine unerklärliche 1 an

      Regina Schaukrug
      1. 0
        Klawischnigg
        1. 1
          Regina Schaukrug
          • meinung
          • sonstiges
          1. 0
            Gunnar Bittersmann
  2. 1
    dedlfix
  3. 3
    Gunnar Bittersmann
    • html
    1. 0
      Tabellenkalk
      • html
      • idee
      • selfhtml
      1. 0
        Regina Schlauklug
        1. 1
          Christian Kruse
          1. 0
            Regina Schlauklug
          2. 0
            Regina Schaukrug
        2. 0
          Matthias Apsel
        3. 0
          Gunnar Bittersmann
          1. 1
            Tabellenkalk
            • musik
            1. 0
              Gunnar Bittersmann
              • zu diesem forum
              1. 0
                Tabellenkalk
                1. 0
                  Gunnar Bittersmann
                  1. 0
                    Martl
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        Martl
                        • rätsel
                        • zu diesem forum
                  2. 0
                    Tabellenkalk
        4. 0

          Dito.

          Regina Schaukrug
    2. 0
      j4nk3y
      1. 0
        Gunnar Bittersmann
        1. 0
          j4nk3y
          1. 0
            Matthias Apsel
            1. 0
              Gunnar Bittersmann
              1. 0
                Matthias Apsel
                1. 0
                  Gunnar Bittersmann
                  1. 0
                    TS
                    • html
                    • menschelei
                    • sonstiges
    3. 2
      Gunnar Bittersmann
    4. 2

      Kleine Stilverbesserungen

      Regina Schaukrug
      • sonstiges
      • zur info
      1. 0
        Gunnar Bittersmann
        1. 5
          Regina Schaukrug
          1. 0
            Gunnar Bittersmann
            1. 0
              Regina Schaukrug
              1. 0
                Gunnar Bittersmann
  4. 4
    Neunmalunklug
    1. 2
      Regina Schaukrug
      • menschelei
      • sonstiges

Erstmal ein herzliches Grüß Gott an alle,

Ich baue aktuell eine Webseite mit nem kleinen Shop um mir PHP & Co. etwas näher zu bringen. Habe bisher also eher wenig Erfahrung in dem ganzen, aber wer nicht irgendwann mal damit anfängt wird es nie lernen.

Aktuell stehe ich leider vor einem kleinen Problem. Ich möchte den Login im Headerbereich realisieren, wie das halt auf Webseiten meist üblich ist. Die entsprechenden Header lagere ich in zwei PHP-Dateien aus (loggedinheader.php & loggedoutheader.php) und binde diese über die include-Funktion ein.

Der Inhalt der jeweiligen Dateien wird je nach Situation (also ausgeloggt/eingeloggt) soweit richtig angezeigt. Jedoch wird dann im Browser an den Inhalt der jeweils eingebundenen PHP-Datei einfach eine "1" angehängt. Ich habe bereits sämtlichen Code durchforstet ob ich nicht irgendwo ausversehen ne 1 stehen habe, jedoch ohne Erfolg.

Meine Suche in Google ergab folgendes:

https://stackoverflow.com/questions/5086695/php-include-prints-1

Das sagt mir erstmal soviel das wohl der "return"-Wert der include-Funktion ausgegeben wird. Da ich aber leider auch kein Englisch-Abitur hab versteh ich von der restlichen Fachsimpelei dann doch nicht alles.

Lange Rede kurzer Sinn, ich poste jetzt einfach mal den jeweils betreffenden Code. 😉

Datei index.php (wo dann auch diese 1 ausgegeben wird):

<?php
include("global.php");
if($logged==1){
  $header=include ("loggedinheader.php");

}else{
  $header=include ("loggedoutheader.php");

}
<header>
        <?php print($header); ?>
</header>

Datei loggedoutheader.php & loggedinheader.php:

<?php
   include("global.php");





?>
<!DOCTYPE html>
<html>
    <head>
        <link href="style/style.css" type="text/css" rel="stylesheet">
    </head>
    <body>
        <img src="img/logo.png">
        <form id="login_data" action="login.php" method="post" enctype="multipart/form-data">
            <table>
                <tr><td>Email-Adresse:</td><td>Passwort</td></tr>
                <tr><td style="margin-right: 5%;"><input name="uname" type="text" ></td><td><input name="pass" type="password" ></td><td><button class="searchbutn">>></button></td><td><a href="forgot.php">Passwort vergessen</a></td><td><a href="register.php">Registrieren</a></td></tr>
            </table>
        </form>
    </body>

</html>
<?php
include("global.php");





?>
<!DOCTYPE html>
<html>
    <head><link href="style/style.css" type="text/css" rel="stylesheet"></head>
    <body>
        <img src="img/logo.png">
        <form>
                    <table>
                        <tr><td><a href="userarea.php">Mitgliederbereich</a></td><td><a href="logout.php">Ausloggen</a></td></tr>
                    </table>
    </form>

    </body>
</html>

Der Inhalt der loggedinheader.php ist natürlich noch nicht fertig.

Ich hoffe ihr könnt mir dabei helfen und danke euch schonmal im Voraus.

Mfg

akzeptierte Antworten

  1. Hi,

    Datei index.php (wo dann auch diese 1 ausgegeben wird):

    <?php
    include("global.php");
    if($logged==1){
      $header=include ("loggedinheader.php");
    
    }else{
      $header=include ("loggedoutheader.php");
    
    }
    

    Du holst den Rückgabewert (nämlich die 1) in die Variable $header. Und gibst diese dann per

    <header>
            <?php print($header); ?>
    </header>
    

    aus. Also kein Wunder, wenn die 1 erscheint.

    <header>
    <?php
    include("global.php");
    if ($logged == 1)
    {
      include ("loggedinheader.php");
    }
    else 
    {
      include ("loggedoutheader.php");
    }
    </header>
    

    ist das, was Du vermutlich machen willst …

    cu,
    Andreas a/k/a MudGuard

    1. Mudgard hat die Frage beantwortet. Ich versteh nicht ganz, warum das keiner "plusst".

      1. Hi there,

        Mudgard hat die Frage beantwortet. Ich versteh nicht ganz, warum das keiner "plusst".

        vielleicht weil nicht jeder kindisch genug für's "Plussen" ist...?

        1. vielleicht weil nicht jeder kindisch genug für's "Plussen" ist...?

          Das "Plussen" hilfreicher Antworten ist eigentlich nicht kindisch, weil es dem später zurückkehrendem TO oder einem Leser, der über eine Suchmaschine kommt, dabei hilft, die wahrscheinlich richtige Antwort schnell zu finden.

          Leider macht sich nicht jeder TO die Mühe, die ihm helfende Antwort zu "akzeptieren", mancher kann es auch nicht, weil das Cookie nicht verfügbar oder nicht mehr gültig ist.

          Schade ist auch, dass das einstige "fachlich hilfreich" erst zu einer Abstimmung über Meinungen und dann, das ist jedenfalls mein Eindruck, auch über Personen verkommen ist und eher den Charakter von, jetzt bin ich bezüglich des "kindisch" bei Dir, "Likes" hat.

          1. @@Regina Schaukrug

            Das "Plussen" hilfreicher Antworten ist eigentlich nicht kindisch, weil es dem später zurückkehrendem TO oder einem Leser, der über eine Suchmaschine kommt, dabei hilft, die wahrscheinlich richtige Antwort schnell zu finden.

            Leider macht sich nicht jeder TO die Mühe, die ihm helfende Antwort zu "akzeptieren"

            Wobei das, was fachlich hilfreich ist (und von kundigen Leuten geplusst wird) und das, was vom TO als vermeintlich helfend akzeptiert wird, auch stark voneinander abweichen kann.

            Schade ist auch, dass das einstige "fachlich hilfreich" erst zu einer Abstimmung über Meinungen und dann, das ist jedenfalls mein Eindruck, auch über Personen verkommen ist

            Das war es wohl schon immer. Die Beschriftung wurde dem angepasst.

            In dem Bedauern darüber bin ich völlig bei dir.

            LLAP 🖖

            --
            “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
  2. Tach!

    Das sagt mir erstmal soviel das wohl der "return"-Wert der include-Funktion ausgegeben wird. Da ich aber leider auch kein Englisch-Abitur hab versteh ich von der restlichen Fachsimpelei dann doch nicht alles.

    Die PHP-Handbuch-Seiten gibt es meistens mit deutscher Übersetzung, so auch für include. Da steht das Verhalten drin, das du beobachten kannst. "Umgang mit Rückgabewerten: include gibt im Fehlerfall FALSE zurück und und generiert eine Warnung. Erfolgreiches Einbinden, außer überschrieben durch die eingebundene Datei, gibt 1 zurück."

    include arbeitet in erster Linie direkt. Alles was in der zu inkludierenden Datei steht, wird so behandelt, als ob es direkt im Code steht. Insofern gibt include generell erstmal nichts zurück, das man ausgeben müsste. Der Rückgabewert ist der Erfolgsstatus der Operation, falls man den dennoch haben möchte. Alternativ kann man auch einen anderen Wert in der inkludierten Datei mit return übergeben, aber das ist ungewöhnlich.

    Lange Rede kurzer Sinn, ich poste jetzt einfach mal den jeweils betreffenden Code. 😉

    Entferne bei solchen Problemen sämtlichen Code, der mit dem Problem nichts zu tun hat. Versuch das Problem mit dem minimal möglichen Code nachzustellen. Entferne solange Code, bis das Problem nicht mehr auftritt. Oder andersrum füge von solangen zu einer leeren Datei Code hinzu, bis das Problem wieder sichtbar wird. Wenn du so vorgehst, wirst du bemerken, dass die 1 selbst dann kommt, wenn die zu inkludierenden Dateien völlig leer sind. Und wenn du dann auch noch das echo include ... entfernst, könntest du sehen, dass diese Zeile die 1 erzeugt. Oder um mit deinem Code zu sprechen

    $header=include ("irgendwas.php"); print($header);

    Es hat also nichts mit deinem (restlichen) Code zu tun, sondern der Aufruf in dieser Art und Weise erzeugt die 1. Zusammen mit der Erklärung des PHP-Handbuchs sollte dann auch klar sein, warum das so stattfindet.

    dedlfix.

  3. @@Neunmalunklug

    <!DOCTYPE html>
    <html>
        <head>
            <link href="style/style.css" type="text/css" rel="stylesheet">
        </head>
    

    Hier fehlt so einiges: Angabe der Sprache des Seiteninhalts, der Zeichencodierung, viewport und title. Zu ausführlicher Erklärung hier entlang.

            <img src="img/logo.png">
    

    Hier fehlt die notwendige Angabe des Alternativtextes:

    <img src="img/logo.png" alt="Logo">
    

    Statt „Logo“ sollte da evtl. auch der Name der Organisation stehen.

                <table>
                    <tr><td>Email-Adresse:</td><td>Passwort</td></tr>
                    <tr><td style="margin-right: 5%;"><input name="uname" type="text" ></td><td><input name="pass" type="password" ></td><td><button class="searchbutn">>></button></td><td><a href="forgot.php">Passwort vergessen</a></td><td><a href="register.php">Registrieren</a></td></tr>
                </table>
    

    Hier fehlen die notwendigen Beschriftungen der Eingabefelder.

    Und auch der Button hat keine Beschriftung: „>>“ ist keine, „Einloggen“ ist eine. Das sollte

    <button class="searchbutn">Einloggen</button>
    

    stehen; den Text kannst du mit CSS visuell verstecken und dafür die Pfeile anzeigen.

    Alternativ könnte man den Button auch mit ARIA beschriften:

    <button class="searchbutn" aria-label="Einloggen">>></button>
    

    Das ginge auch für die Eingabefelder. Aber: ARIA ist nicht dazu da, HTML zugänglich zu machen. ARIA ist dazu da, schlechtes HTML zugänglich zu machen.

    LLAP 🖖

    --
    “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
    1. Hallo,

      Hier fehlt ...

      Hier fehlt ...
      Statt ...

      Hier fehlen ...

      Und auch ...

      Alternativ ...

      @Vereinsvorstand: können wir bitte aus der Selfhtml-Charta folgenden Absatz streichen:

      Gerne wird es gesehen, wenn der Quellcode auf die für das Problem notwendigen Stellen reduziert wird, schließlich hat kaum jemand Lust, sich in hunderte Zeilen unnötigen Code einzuarbeiten.

      und durch
      „Bitte zeige einen hochprofessionellen, barrierefreien und fehlerfreien Codeausschnitt, da sonst Nachahmer deine Fehler übernehmen würden.“
      ersetzen?

      Gruß
      Kalk

      1. Ich finde die sarkastisch formulierte Kritik inhaltlich nachvollziehbar und wundere mich über die "Sperr-Abstimmung" und Negativ-Bewertung.

        Es bringt recht gut auf den Punkt, warum ich im SelfHTML-Forum nicht mehr aktiv bin.

        1. Hallo Regina,

          […] warum ich im SelfHTML-Forum nicht mehr aktiv bin.

          Schriebs im SELFHTML Forum. 🤔

          LG,
          CK

          1. Das wirkt verständlicherweise verwirrend.

            Ich war eine Zeit lang aktiv im Forum, und auch nachdem ich für mich beschlossen hatte dass mich das zu viele Nerven kostet schaue ich noch gelegentlich hier rein. Rein lesend, aus Gewohnheit.

            Tabellenkalks Post brachte mich zum schmunzeln, weshalb ich mich dazu verleitet sah, ihm etwas moralische Rückendeckung zu geben.

            Aber ich lass euch in eurer Runde lieber mal wieder alleine :-)

          2. Hallo Regina,

            […] warum ich im SelfHTML-Forum nicht mehr aktiv bin.

            Schriebs im SELFHTML Forum. 🤔

            Naja. Das erschließt sich über die Meta-Bedeutung von "ich" im Sinne als "für Dritte erkennbare Person" und dürfte auf die selben Gründe zurückzuführen, wegen denen ich hier "die Regina mache".

        2. Hallo Regina Schlauklug,

          Es bringt recht gut auf den Punkt, warum ich im SelfHTML-Forum nicht mehr aktiv bin.

          Was ich recht schade finde. Aber - wer hat denn diesen Beitrag geschrieben? 😉

          Bis demnächst
          Matthias

          --
          Rosen sind rot.
        3. @@Regina Schlauklug

          Ich finde die sarkastisch formulierte Kritik inhaltlich nachvollziehbar

          Ich nicht so ganz. Was genau sollte eigentlich kritisiert werden? Wie ich es wagen konnte, HTML-Fehler anzusprechen, wo der Theo doch nur nach PHP gefragt hat?

          und wundere mich über die "Sperr-Abstimmung" und Negativ-Bewertung.

          Die Negativ-Bewertung wundert mich nicht. Ich war’s.

          Ich bin aber überhaupt kein Freund davon, etwas unliebsame Postings zu sperren/löschen. Deshalb verweigere ich solchen Abstimmungen regelmäßig die letzte fehlende Stimme.

          Es bringt recht gut auf den Punkt, warum ich im SelfHTML-Forum nicht mehr aktiv bin.

          Dafür, dass du hier nicht mehr aktiv bist, bist du hier aber ziemlich aktiv.

          LLAP 🖖

          --
          “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
          1. Hallo,

            Was genau sollte eigentlich kritisiert werden? Wie ich es wagen konnte, HTML-Fehler anzusprechen, wo der Theo doch nur nach PHP gefragt hat?

            Du hättest wenigstens erwähnen können, dass die anderen ja bereits den PHP-Fehler gelöst haben, du aber noch auf einiges andere dringend hinweisen möchtest. Kennst du den Spruch, „der Ton macht die Musik“?

            Gruß
            Kalk

            1. @@Tabellenkalk

              Du hättest wenigstens erwähnen können, dass die anderen ja bereits den PHP-Fehler gelöst haben

              Warum sollte etwas, das aus dem Threadverlauf schon eindeutig hervorgeht, noch einer expliziten Erwähnung bedürfen?

              du aber noch auf einiges andere dringend hinweisen möchtest.

              Das hab ich durch das Tag „html“ kenntlichgemacht.

              LLAP 🖖

              --
              “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
              1. Hallo,

                Warum sollte etwas, das aus dem Threadverlauf schon eindeutig hervorgeht, noch einer expliziten Erwähnung bedürfen?

                Wenn es das tät, ok. Tut es aber nicht.

                Das hab ich durch das Tag „html“ kenntlichgemacht.

                Nein.

                Gruß
                Kalk

                1. @@Tabellenkalk

                  Warum sollte etwas, das aus dem Threadverlauf schon eindeutig hervorgeht, noch einer expliziten Erwähnung bedürfen?

                  Wenn es das tät, ok. Tut es aber nicht.

                  Das hab ich durch das Tag „html“ kenntlichgemacht.

                  Nein.

                  Ich nehme deine Meinung als YMMV zur Kenntnis, habe aber (noch) eine andere.

                  LLAP 🖖

                  --
                  “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                  1. Hallo Gunnar,

                    als YMMV

                    Du nimmst gelegentlich zur Kenntnis, was die zweite Zeile des Quelltextes dieser Seite enthält: <html lang="de">?

                    Grüße, Martl

                    1. @@Martl

                      als YMMV

                      Du nimmst gelegentlich zur Kenntnis, was die zweite Zeile des Quelltextes dieser Seite enthält: <html lang="de">?

                      Ich bitte meinen Fehler zu entschuldigen und korrigiere: YMMV 😜

                      LLAP 🖖

                      --
                      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                      1. Hallo Gunnar,

                        ...korrigiere: YMMV (<em lang="und">YMMV</em>)

                        gut, ich nehme das jetzt mal als Rätsel und möchte lösen.

                        Grüße, Martl

                  2. Hallo,

                    Ich nehme deine Meinung als YMMV zur Kenntnis, habe aber (noch) eine andere.

                    Was auch immer das mit Kilometerleistung zu tun haben mag.

                    Willst du eigentlich verstanden werden?

                    Gruß
                    Kalk

        4. Ich finde die sarkastisch formulierte Kritik inhaltlich nachvollziehbar und wundere mich über die "Sperr-Abstimmung" und Negativ-Bewertung.

          Dito.

          Sperr-Abstimmung (4/5)

          Diese und alle folgenden Nachrichten sollen ausgeblendet werden. Der angegebene Grund: Dieser Beitrag ist unkonstruktiv oder provokativ und trägt zu einer Verschlechterung der allgemeinen Stimmung im Forum bei.

          Dagegen!

          Dieser Beitrag ist durchaus konstruktiv, er zeugt von Humor und ist nicht unerlaubt provokativ. Er trägt gewiss nicht zu einer Verschlechterung der allgemeinen Stimmung im Forum bei.

    2. @@Neunmalunklug

                  <table>
                      <tr><td>Email-Adresse:</td><td>Passwort</td></tr>
                      <tr><td style="margin-right: 5%;"><input name="uname" type="text" ></td><td><input name="pass" type="password" ></td><td><button class="searchbutn">>></button></td><td><a href="forgot.php">Passwort vergessen</a></td><td><a href="register.php">Registrieren</a></td></tr>
                  </table>
      

      Hier fehlen die notwendigen Beschriftungen der Eingabefelder.

      Und auch der Button hat keine Beschriftung: „>>“ ist keine, „Einloggen“ ist eine. Das sollte

      <button class="searchbutn">Einloggen</button>
      

      Zusätzlich vielleicht noch der Hinweis, dass dies kein Inhalt einer <table> ist und das auch kein <button> sein sollte, sondern ein <input type="submit"> um die Bedienerfreundlichkeit zu gewährleisten.

      Gruß
      Jo

      1. @@j4nk3y

        @@Neunmalunklug

                    <table>
                        <tr><td>Email-Adresse:</td><td>Passwort</td></tr>
                        <tr><td style="margin-right: 5%;"><input name="uname" type="text" ></td><td><input name="pass" type="password" ></td><td><button class="searchbutn">>></button></td><td><a href="forgot.php">Passwort vergessen</a></td><td><a href="register.php">Registrieren</a></td></tr>
                    </table>
        

        Hier fehlen die notwendigen Beschriftungen der Eingabefelder.

        Und auch der Button hat keine Beschriftung: „>>“ ist keine, „Einloggen“ ist eine. Das sollte

        <button class="searchbutn">Einloggen</button>
        

        Zusätzlich vielleicht noch der Hinweis, dass dies kein Inhalt einer <table> ist

        Zumindest für den Teil

        Email-Adresse: | Passwort [Eingabefeld] | [Eingabefeld]

        könnte man eine Tabelle vielleicht gerade noch so durchgehen lassen. Hatte ich deshalb mal so stehenlassen; wäre vielleicht ein bisschen viel des Guten fürs erste für jemanden mit „wenig Erfahrung in dem ganzen“ gewesen.

        Ich würde allerdings in der Tat jeweils zusammengehörige label und input in einem Containerelement gruppieren (könnte p sein) und diese mit CSS nebeneinander platzieren.

        Wenn überhaupt. Für den Lesefluss des Nutzers dürfte es besser sein, die Eingabe-Elemente untereinander anzuordnen.

        und das auch kein <button> sein sollte, sondern ein <input type="submit"> um die Bedienerfreundlichkeit zu gewährleisten.

        Nein, da liegst du falsch. Für Buttons ist das button-Element da; das hat einige Vorteile gegenüber <input type="button"> bzw. <input type="submit">: Beschriftung des Buttons im Elementinhalt, nicht als Attributwert, um nur eins zu nennen.

        Zum Abschicken eines Formulars muss es natürlich ein Submit-Button sein (<button type="submit">. type="submit" ist aber Default für Buttons und muss nicht speziell angegeben werden. <button>Einloggen</button> geht völlig in Ordnung.

        LLAP 🖖

        --
        “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
        1. @@Gunnar Bittersmann

          Nein, da liegst du falsch. Für Buttons ist das button-Element da; das hat einige Vorteile gegenüber <input type="button"> bzw. <input type="submit">: Beschriftung des Buttons im Elementinhalt, nicht als Attributwert, um nur eins zu nennen.

          Ach Mensch, den <button type="submit"> kannte ich noch garnicht. Nagut, dann schreib ich bei mir mal wieder alle <input type="submit"> um zu <button type="submit">. Ich weiß nur, das ich das Problem hatte, dass der <button type="??"> nicht mit Enter ausgelöst wurde und ich deshalb alle zu <input type="submit"> geändert hatte.

          Gruß
          Jo

          1. Hallo j4nk3y,

            Nein, da liegst du falsch. Für Buttons ist das button-Element da; das hat einige Vorteile gegenüber <input type="button"> bzw. <input type="submit">: Beschriftung des Buttons im Elementinhalt, nicht als Attributwert, um nur eins zu nennen.

            Ach Mensch, den <button type="submit"> kannte ich noch garnicht. Nagut, dann schreib ich bei mir mal wieder alle <input type="submit"> um zu <button type="submit">.

            Du kannst <button> nehmen.

            Ich weiß nur, das ich das Problem hatte, dass der <button type="??"> nicht mit Enter ausgelöst wurde und ich deshalb alle zu <input type="submit"> geändert hatte.

            Bau mal ein Beispiel bitte.

            Bis demnächst
            Matthias

            --
            Rosen sind rot.
            1. @@Matthias Apsel

              Du kannst <button> nehmen.

              Ja.

              Aber wenn die explizite Angabe des Typs für einen Entwickler/ein Team sprechenderer Code ist, spricht auch nichts gegen <button type="submit">.

              LLAP 🖖

              --
              “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
              1. Hallo Gunnar Bittersmann,

                Du kannst <button> nehmen.

                Ja.

                Aber wenn die explizite Angabe des Typs für einen Entwickler/ein Team sprechenderer Code ist, spricht auch nichts gegen <button type="submit">.

                Sieht auch im CSS besser aus:
                button[type=submit] vs. button:not([type])

                Bis demnächst
                Matthias

                --
                Rosen sind rot.
                1. @@Matthias Apsel

                  Aber wenn die explizite Angabe des Typs für einen Entwickler/ein Team sprechenderer Code ist, spricht auch nichts gegen <button type="submit">.

                  Sieht auch im CSS besser aus:
                  button[type=submit] vs. button:not([type])

                  Ganz dünnes Eis. Um da nicht einzubrechen, würde ich das Stylesheet robust schreiben, also beide Selektoren verwenden.

                  Nachtrag: Und das unabhängig davon, ob man sich im Markup für eine Variante entscheidet und für welche.

                  Es könnte später immer noch jemand auf die Idee kommen, dass <button> ja ausreicht, und type="submit" löschen. Oder andersrum: dass <button type="submit"> ja sprechenderer Code ist, und type="submit" hinzufügen. Und dabei gar nicht mitbekommen, dass die Regel im Stylesheet gar nicht mehr greift …

                  LLAP 🖖

                  --
                  “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                  1. Hello,

                    Es könnte später immer noch jemand auf die Idee kommen [...]

                    ... das ganze Formular zu löschen und sich dann wundern, dass es nicht mehr da ist ;-P

                    Liebe Grüße
                    Tom S.

                    --
                    Es gibt nichts Gutes, außer man tut es
                    Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
    3. @@Gunnar Bittersmann

      Noch eine Keinigkeit was:

      <input name="uname" type="text" >

      Für E-mail-Adressen gibt es einen speziellen Eingabefeldtypen email.

      Hier sollte es also <input name="uname" type="email" > heißen.

      Bei Geräten mit virtueller Tastatur ist dann das @ direkt ohne Fingerverrenkungen erreichbar.

      LLAP 🖖

      --
      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
    4. Hallo @Gunnar Bittersmann!

      Um Gottes Willen komm jetzt nicht auf die Idee, dass ich (auch noch) auf Dir "rumhacken" will, denn ich empfinde Deine Hinweise als überwiegend "sehr wertvoll". Allerdings könntest Du vielleicht eine Kleinigkeit ändern um das "Nutzungserlebnis" der Leser Deiner Beiträge zu verbessern:

      Hier fehlt so einiges:

      Naja. Ich habe "neulich" gelernt, dass man jemanden, den oder dessen Werk man kritisiert, erst mal ein paar freundliche Worte sagen soll.

      Also etwa so:

      Das sieht, wenn Du die Korrekturen von Mudgard anwendest, so weit ganz gut aus und zeugt davon, dass Du Dir Mühe gibst und auf dem richtigen Weg bist. Ich erlaube mir folgende Anmerkungen, welche dazu dienen, Dein Ergebnis zu verbessern:

      1. @@Regina Schaukrug

        Das sieht, wenn Du die Korrekturen von Mudgard anwendest, so weit ganz gut aus und zeugt davon, dass Du Dir Mühe gibst und auf dem richtigen Weg bist. Ich erlaube mir folgende Anmerkungen, welche dazu dienen, Dein Ergebnis zu verbessern:

        Das hast du nett formuliert.

        Aber leider fachlich falsch. Das hört sich so an, als wären die Änderungen am PHP Pflicht, die Änderungen am HTML aber Kür.

        Das HTML hat aber unmittelbar Einfluss auf Nutzer – auf UX und Bedienenbarkeit der Seite. Solange die Fehler im HTML nicht berichtigt sind, würde ich noch nicht davon sprechen, jemand sei „auf dem richtigen Weg“.

        LLAP 🖖

        --
        “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
        1. Solange die Fehler im HTML nicht berichtigt sind, würde ich noch nicht davon sprechen, jemand sei „auf dem richtigen Weg“.

          Ich verstehe gut, dass Du das Maximum herausholen willst, die Sache stellt sich aber für mich anders und, ich hoffe: nachvollziehbar, dar.

          Auf dem "richtigen Weg" ist jemand, der sich "einem Ziel nähert". Unabhängig davon, wie weit er noch vom (von Dir definierten) Ziel weg ist. Und ein wenig positive Motivation braucht wohl jeder Lernende. Also sollte man diese Lernenden "hier loben und da ein wenig schubsen".

          1. @@Regina Schaukrug

            "hier loben und da ein wenig schubsen".

            Nun ja, ob man gleich loben sollte, wenn noch kein Grund dazu besteht …

            Aber nur schubsen bringt nichts, da hast du wohl recht. Immer ein Leckerli vor die Nase halten, damit der Lernende auf dem Weg™ bleibt. So in etwa. 😉

            LLAP 🖖

            --
            “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
            1. Nun ja, ob man gleich loben sollte, wenn noch kein Grund dazu besteht

              Aber ja doch! Du musst den Grund an den Wissensstand des Lernenden anpassenden, nicht an den Lehrenden (Dich). Und zur Motivation auch mal einen "(er-)finden".

              So in etwa. 😉

              Tatsächlich. So geht es uns allen. Man hört nie auf zu lernen, nur die Möhre wurde gegen was anderes getauscht.

              1. @@Regina Schaukrug

                Man hört nie auf zu lernen, nur die Möhre wurde gegen was anderes getauscht.

                LOL.

                Hach, wenn’s mal so wäre! Ist es bei Frontend-Entwicklung leider nicht. *seufz*

                LLAP 🖖

                --
                “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
  4. Hallo zusammen,

    Erstmal Danke für die vielen Antworten und Sorry das ich mich erst jetz melde, dachte ich bekomm ne Mail sobald ne Antwort gepostet wird aber hab da wohl irgendwo nen Häkchen vergessen und war die Tage etwas mit Umzug beschäftigt.

    @MudGuard Danke für die Lösung, ich habs zwar noch nicht getestet aber ich gehe mal davon aus das es mein Problem lösen könnte.

    @dedlfix Danke für den Tipp, ich wollt halt auch nicht zu wenig posten, da ich ja nicht direkt wusste wo der Fehler lag.

    @Gunnar Bittersmann und die die ihn kritisiert haben. Ich finds für mich völlig OK wenn konstruktive Kritik kommt, ich bin Anfänger, mache Fehler und nur so kann ich lernen wie ich es besser mache. Bei gewissen Dingen wie zB. dem spartanischen <head>-Bereich war das aber gewollt so, weils mir in erster Linie darum ging das ganze ans Laufen zu bekommen.

    @Regina Schaukrug

    Naja. Ich habe "neulich" gelernt, dass man jemanden, den oder dessen Werk man kritisiert, erst mal ein paar freundliche Worte sagen soll.

    Also etwa so:

    Das sieht, wenn Du die Korrekturen von Mudgard anwendest, so weit ganz gut aus und zeugt davon, dass Du Dir Mühe gibst und auf dem richtigen Weg bist. Ich erlaube mir folgende Anmerkungen, welche dazu dienen, Dein Ergebnis zu verbessern:

    Wenn sowas denn ernst gemeint ist freut mich das natürlich. Bringt mir persönlich aber nix wenn mein Code einfach scheiße is und ich aber was anderes denke.

    Mfg

    1. Danke für die Rückmeldung, das macht nicht jeder.

      Bringt mir persönlich aber nix wenn mein Code einfach scheiße is und ich aber was anderes denke.

      Ich sags mal so: "Ist ne Psycho-Kiste". Wenn der Empfänger der Nachricht erst einmal das Signal bekommt, dass der Kritisierende nicht "einfach nur rummotzt" (im konkreten Fall hat Gunnar sich immerhin nicht zur gestellten Frage geäußert), dann schafft das eingehende Lob einfach Akzeptanz und damit eine Grundlage für die positive Aufmerksamkeit des Kritisierten.

      Bei gewissen Dingen wie zB. dem spartanischen <head>-Bereich war das aber gewollt so, weils mir in erster Linie darum ging das ganze ans Laufen zu bekommen.

      Ja. Das hat Tabellenkalk wohl so ähnlich vorhergesehen. Auch ich bringe, wenn ich allein arbeite, das Backend (serverseitiger Krempel) erst mal zu Laufen und kümmere mich spät bis final um das Frontend (resultierendes HTML/CSS/JS). In dem Stadium ist auch mein Code nicht etwa "einfach scheiße" sondern (meist) "nur unvollständig".