HTML-Fehler im Plug-In Contact Form 7 beseitigen? Wie?

  • Hallo zusammen!

    Ich habe eine Frage zur Beseitigung eines HTML-Fehlers im WP-Plugin Contact Form 7, welches ich auf meiner Webseite http://www.mediatextur.de anwende.


    Nach der Code-Validierung anhand des W3C-Valididators (http://validator.w3.org/) von z.B. meiner Seite "leistungen/texte-werbetexte" wird in folgender Code-Zeile ein HTML-Fehler angezeigt:

    HTML
    <div class="wpcf7-response-output wpcf7-display-none"></div></form></div></p>

    Dazu die Bemerkung:
    "Line 155, Column 77: No p element in scope but a p end tag seen."

    Ich denke, da ist das schließende <p>-Tag am Ende falsch. Nur: Wo finde ich diese Code-Zeile im WP-Backend?? :roll:

    Habe schon alle Dateien des Plugins durchgeforstet. Nix dergleichen gefunden. Wie und wo komme ich denn an diese Codezeile ran, um sie ausbessern zu können?

    Weiß dazu jemand Rat?

    Dankeschön schon mal!

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hi Jacen,

    das Plugin ist valide. Deinen Fehler mit dem schließenden p Tag erzeugst Du selbst. Und zwar nach dem javascript mit dem Du Deine Email verschlüsselst. Danach beginnt ein p vor der <div mit der wpcf7 id. und da gehört keines hin. Es ist mir übrigens unklar, warum Du ein Javascript einbindest, obwohl WordPress diese Verschlüsselung schon mitbringt. Die antispambot musst Du nur in den functions einbinden.

    PHP
    function email_encode_function( $atts, $content ){
        return '<a href="'.antispambot("mailto:".$content).'">'.antispambot($content).'</a>';    
    }
    add_shortcode( 'email', 'email_encode_function' );

    Deine Email trägst Du dann wie folgt ein:
    [noparse]name@meine-domain.de[/noparse]


    und schwupps ist sie verschlüsselt...bei jedem Aufruf neu!

    Einmal editiert, zuletzt von RolandStumpp (4. Juli 2012 um 22:20)

  • Hi Roland,

    vielen Dank für deine Antwort! Wow..äh..also so halb kann ich dir folgen. ;) Also hört sich gut an!

    Ja, du hast Recht, die Seite verwendet eine Verschlüsselung der E-Mail. Wo die liegt, weiß ich allerdings nicht, da ich die Webseite nicht selber programmiert habe.

    Also du meinst, ich muss den PHP-Code nur in die functions reinlegen und dann funktioniert's?

    Und wo muss ich dann die E-Mail so eintragen? Kannst du mir da noch eine konkrete Vorgehensweise schildern?

    Wär super!

  • hi Jacen,
    das Javascript verursacht aber den p Fehler. Vermutlich weil es im Quelltext mit einem Umbruch eingetragen wurde. Öffne doch einmal die seite Kontakt im Backend. Dann müsstest Du diese Eintragung sehen:

    HTML
    <p><strong>Telefon: </strong><br>
    0821/ 449 155 48</p>
    <p><strong>Mobil.:</strong><br>
    0163/ 630 32 46</p>
    <p><strong>Mail:</strong><br>
    <script type="text/javascript">
                Dein Javascript Text
                </script></p>


    Und danach steht der Shortcode für dein Formular zum Beispiel: [noparse][contact-form-7 id="590" title="Kontaktformular 1"][/noparse]
    Mach eine Zeile Abstand zum Ende des Javascriptes und dein p Fehler müsste weg sein. WordPress erzeugt das p nach dem Javascript wenn Du einen Umbruch gemacht hast auf die nächste Zeile und dort dann der Shortcode steht.

  • Hallo Roland,

    oh Mann, ja, klingt logisch, nur ist bei mir steht da im Backend keine Codezeile von Java Script. Der Code für die Kontaktseite ist da einfach nur

    Code
    <strong>Telefon</strong>
    Telefonnummer
    (Leerzeile)
    <strong>Mobil</strong>
    Mobilnummer
    (Leerzeile)
    <strong>Mail</strong>
    Mailadresse
    (Leerzeile)
    Code von contact-form in eckiger Klammer

    verzwickt, verzwickt..
    Bei den anderen Seiten mit Kontaktformular ist das genauso. Kein JavaScript in der HTML-Ansicht der Seite im Backend drin, aber überall eben der <p>-Fehler...

  • Das ist Dein html auf der Seite Kontakt!!

    Einmal editiert, zuletzt von RolandStumpp (8. Juli 2012 um 22:52)

  • ...leider nicht, das ist es ja eben. Wie komme ich denn an diesen ausführlicheren Code im WP-Backend ran? Bei mir im Backend für die Seite "Kontakt" sieht der Code unter "HTML-Ansicht" so aus wie auf dem Bild. Da ist eben nicht mehr viel, was ich verändern/ korrigieren könnte.. :neutral:

  • Also...ich vermute, dass das Javascript Sricpt, mit dem Deine über dem Kontaktformular stehende Emailadresse verschlüsselt wird, über ein Plugin eingesteuert wird? Es kann auch in der functions.php stehen.
    Es steht aber auch auf jeder Seite im rechten unteren Widget. Vielleicht ist es im Widget untergebracht. Wie ist die Email Adresse im Widget eingetragen?

  • Ich hab da gerade noch einmal den Quelltext angeschaut und Dein Beitrag Nummer 8 zeigt den Fehler. Im Bild ist zu sehen, dass Du beim schreiben im Content für einen Umbruch einfach die Entertaste drückst und für einen Anfang einer neuen Zeile eine Leerzeile ebenfalls durch die Entertaste. Somit ist es völlig logisch, dass die Lehrzeile nach der Email Adresse und der darauf folgende Shortcode ebenfalls mit einem neuen öffnenden <p> Tag beginnt.

    Setze das einmal so rein:

    HTML
    <p><strong>Telefon: </strong><br />0821/ xxx xxx xx<br /><strong>Mobil:</strong><br />0163/ xxx xx xx</p><p><strong>Mail:</strong><br />info@deine-domain.de</p>
    
    
    [contact-form-7 id="881" title="allgemeines Kontaktformular"]


    Vorher halt Deine Daten da eintragen.

    Einmal editiert, zuletzt von RolandStumpp (20. Juli 2012 um 13:19)

  • Hallo Roland,

    danke für deine Antworten! Ja, das Plugin, mit dem die E-Mail verschlüsselt wird heißt "CryptX". In der functions.php hab ich die Codezeile nicht finden können. Habe in den php's im Editor eigentlich schon alles abgegrast.

    Mit dem Widget rechts unten hat das nichts zu tun, da das Widget überall angezeigt wird, der Fehler aber nur auf Seiten auftaucht, auf denen ein Kontaktformular eingefügt ist.

    Den Code habe ich mal so wie du meintest eingefügt, aber gleiches Ergebnis. Immernoch die gleiche Fehlermeldung. Ich versteh halt nicht, wie ein <p>-Tag einen Fehler verursachen kann, wenn im Backend überhaupt kein <p>-Tag vorkommt :confused:

    bgeissler: Wie meinst du das? Meine Kontaktinfos in die Seite über dem Form? Also etwas auf die Seite stellen, die der "Kontakt"-Seite übergeordnet ist? Da ist keine Seite darüber. Meinst du mit "Form" die Kontaktformular-Codezeile?

  • Hi,

    wenn Du den Quellcode wie vorgegeben eingibst, solltest Du das im html Modus machen.
    Ein p Tag kommt immer dann vor, wenn man sich im viseullen Modus befindet und einen doppelten Umbruch macht. 2 mal die Entertaste. Und schalt doch einfach mal das Plugin aus!

  • Hallo Roland,

    sorry, dass ich erst jetzt schreibe, war im Urlaub. Danke für deinen Einsatz! ;-)

    Ja, dass ich den Quellcode so nur im html-Modus machen kann weiß ich. Wenn ich das Plugin ausschalte, ist der Fehler weg. Aber das Plugin geht halt dann auch nicht mehr ;-)

    Der Punkt ist aber: Wo verzwickt noch eins finde ich den ausführlicheren Code, in dem auch das <p>-Tag zu sehen ist, bzw. wieso wird mir ein <p>-Tag als Fehler angemerkt, wenn überhaupt kein <p>-Tag da ist...

    Mit dem CryptX hat das auch nichts zu tun. Ich habe CryptX eingeschaltet und das Contactform7 ausgeschaltet gehabt und der Fehler war weg.. also irgendwie liegts doch am Contactform 7..

    Hat keiner ein ähnliches Problem mit dem PlugIn?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!