Suchform XHTML valide machen

  • Hallo,
    wie kann ich folgenden code XHTML Strict 1.0 valide machen?

    PHP
    <form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
    <p><input type="text" size="26" class="searchfield" value="search + press enter" name="s" onblur="if (this.value=='') {this.value='search + press enter';}" onfocus="if (this.value=='search + press enter') {this.value='';}" /></p></form>

    Bei der Validierung bekomme ich gesagt, dass "input" nicht erlaubt sei und das "p" oder "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag fehlen würde. Habe daher den paragraph um das input herumgelegt, aber der Fehler bleibt bestehen....:confused:

    Weiß jemand Rat?

    • 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

  • In den Strict-Varianten müssen alle input-Elemente von Block-Elementen wie p oder div umschlossen sein.

    Das Problem ist aber nicht das von Dir gezeigte, sondern das

    Code
    <input type="hidden" name="PHPSESSID" value="xxxxxxxxxxxxxxxxxxxxxxxxxxx" />

    Steht ja im Übrigen auch in der Fehlermeldung, dass es Zeile 108 ist.

    Einmal editiert, zuletzt von mastermind (28. März 2007 um 00:04)

  • Ja, das weiß ich wohl.
    Ich weiß aber nicht, wo ich die p oder div's hinsetzen muss. Habe schon alle möglichen Varianten durchprobiert und der Fehler bleibt. Bin halt im Programmieren auch kein Profi.

  • Wenn mich jetzt nicht alles täuscht dann wird dieses Session-Input von deinem Server erzeugt. Somit, keine Chance dies von WP-Seite her zu händeln.

    Frag bei deinem Hoster ob er es deaktiviert.

  • Hi Olaf,
    ich hatte den code für meine javascript search mal hier aus dem Forum bekommen, da ich damals das mit der wegklickbaren Schrift in der input Box haben wollte.
    Ich könnte mir nicht vorstellen, dass mein Hoster was mit meinem Suchfeld Code zu tun haben sollte.
    Mir wäre eine "normale" Suche mit Box und Button daneben auch recht, wenn der Code dann wenigstens keine Fehler mehr produziert und falls keine ein Idee hat, wie und wo ich die p oder div tags anbringen muss.

  • Aha, wir glauben nicht, gut dann bleibts ;)

    Eigentlich brauch ich dich nicht bekehren, aber es gibt eine PHP-Einstellung die in jedes Fromular diese Session schreibt. Und das immer nach <form> damit hast null Chance dies ohne Admin-Eingriff zu ändern. Aber wie gesagt, glaub was du willst :)

  • mastermind: möchtest Du dass ich meine sidebar.php hier komplett reinschreibe? reicht das nicht, wenn du in den source code schaust? meine sidebar.php ist nämlich ziemlich lang ;-)

    Olafb: hab ich gemacht, und nun?

  • mastermind: möchtest Du dass ich meine sidebar.php hier komplett reinschreibe? reicht das nicht, wenn du in den source code schaust? meine sidebar.php ist nämlich ziemlich lang ;-)

    Das ist nicht schlimm, hau sie ruhig hier rein. Vielleicht reicht es auch, wenn Du den relevanten Ausschnitt postest.

    Was Olafs Vorschlag angeht, hast Du das mal gemacht und dann durch den Validator gejagt bzw. in den Quellcode geschaut? Wenn ja, ist da was eingefügt worden? Ich wusste bisher von einer solchen Funktion in PHP nicht, aber es hört sich durchaus plausibel an.

  • Hm, da packt's keine session rein, ich hätt drauf gewettet ;)

    Es war mal wo anders da hatte jemand genau dies Problem, da hatten wir ewig gesucht, wenn ich wüsste wie das hieß, ich weiß auch nur das es sowas gibt.

  • Ehm Jungs, ich bin etwas lost, was diese bla.php Datei angeht. Wenn ihr auf den Link von Olaf klickt, seht ihr ja was bei raus kommt. Da fehlt die DOC type Angabe, aber sonst....keine Ahnung.

    mastermind: den relevanten Ausschnitt hatte ich ja schon im ersten posting genannt, aber hier gerne nochmal:

    PHP
    <div id="sidebar">
    <div id="witty">
      <?php witty(); ?>
    </div> 
    <ul><li><a href="<?php bloginfo('rss2_url'); ?>" title="<?php _e('subscribe to my blog posts/abonniere meine blog posts'); ?>"><img src="/wp-content/themes/lucynoosa/images/icons/feed-icon.png" alt="feed logo" /> rss Posts</a> <a href="<?php bloginfo('comments_rss2_url'); ?>" title="<?php _e('subscribe to my blog comments/abboniere meine blog kommentare'); ?>"><img src="/wp-content/themes/lucynoosa/images/icons/feed-icon.png" alt="feed logo" /> rss Comments</a></li></ul>
    <form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
    <p><input type="text" size="26" class="searchfield" value="search + press enter" name="s" onblur="if (this.value=='') {this.value='search + press enter';}" onfocus="if (this.value=='search + press enter') {this.value='';}" /></p>
    </form>
    der rest der sidebar....</div>
  • So, ich habs, url_rewriter.tags ist das Zauberwort ;)
    Problem mit PHP Session-ID und "&"

    Wenn ich's richtig deute sollte dir dies helfen:

    PHP
    <form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
    <fieldset><input type="text" size="26" class="searchfield" value="search + press enter" name="s" onblur="if (this.value=='') {this.value='search + press enter';}" onfocus="if (this.value=='search + press enter') {this.value='';}" /></fieldset>
    </form>

    EDIT ach nee, du musst mit ini_set überschreiben. Füge in deine header.php ganz oben ein

    PHP
    <?php
    ini_set( 'url_rewriter.tags' , 'a=href,area=href,frame=src,input=src,form=' );
    ?>


    Wie gesagt, man muss nur dran glauben dann versteht man's irgendwann :)

    Viele Grüße Olaf, Ego / Blog? / Heimat

    Einmal editiert, zuletzt von Olafb (28. März 2007 um 13:53)

  • Meinst Du mit ganz oben in der header.php direkt nach (wohl kaum vor, oder?) dem Doctype, also noch vor dem

    Code
    <head>

    ??

    Das mit fieldset hatte ich auch schon mal probiert. Hat mir nix als ne hässliche Umrahmung des input Feldes gebracht. ;-)

    Einmal editiert, zuletzt von schugga (28. März 2007 um 14:01)

  • Ok, erledigt! Sieht am Anfang der header.php also nun so aus:

    PHP
    <?php
    ini_set( 'url_rewriter.tags' , 'a=href,area=href,frame=src,input=src,form=' );
    ?> 
    <!DOCTYPE html 
         PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head> etc.

    Nun habe ich nen blöden zweiten Rahmen um mein Search field, durch das fieldset tag, das ich so eingesetzt habe, wie Du sagtest.
    Der Fehler bei der Validierung bleibt leider auch. Grrr....
    Ist ja echt zum Verzweifeln...:confused:

  • Vielleicht erlaubt es dein hoster nicht zu überschreiben!? Ich würd sagen mein Teil ist gemacht, du weist was es ist, WP ist in dem Sinne nicht die Ursache. Wende dich an den Hoster, der soll dir das richtig einstellen. Du siehst ja auch wie wenige davon betroffen sind, sonst wäre das wöchentlich hier Thema, es liegt am falsch konf. Server.

Jetzt mitmachen!

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