Eingabefelder und Buttons

Status
Nicht offen für weitere Antworten.
hmm...hab keine Ahnung was der Validator von mir will :confused: Wenn ich die Teile weg mache die er Rot gefärbt hat, dann gehts nicht mehr. Was soll ich machen?

Und wenn ich diese Zeile oben hinzufüge: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Dann wird alles verschoben
 
Zuletzt bearbeitet:
Ein Anfang wäre, die html-Struktur einzuhalten:

Code:
<!DOCTYPE ...>
<html>
<head>
<title></title>
<meta...>
<link..>
<style...>
Styleangaben
</style>
</head>
<body>
markup
nicht nochmal <body>!
</body>
</html>
Dann sollten die Meldungen des Validator klarer und verständlicher werden.
 
ich versteh das Ding nicht! Habe Deinen "HTML-Baum" eingehalten und trotzdem diese Fehler... warum zeigt er mir Fehler an es ist doch so wie es sein sollte.
 
Du hast z.B. in Zeile 168 noch einen <body> stehen.
<style> Steht auch noch ausserhalb des head im Quelltext.
//EDIT:Was hier stand war Blödsinn und kam wohl durch die Darstellung im Validator
Jedes Bild (<img>) benötigt ein alt-Attribut zwingend, auch wenn dieses leer ist (alt="").
Kaufmännisches und (&) muss auch in Links (<a href="?bla=a&amp;blub=b">) als &amp; ausgezeichnet werden. Ich bin mir auch nicht sicher, ob es richtig ist, im Link <a href="?&...">so zu verwenden, oder ob das & da nicht besser ganz weg muss.
Einige Fehler scheinen nur Tippfehler zu sein (z.B.:</br> oder color=/#00CC00/).

Gruß hpvw

Edit: valides Beispiel angehängt (.txt entfernen!)
Ich würde Dir noch empfehlen, das Design vollständig auf css umzustellen, das macht die Sache übersichtlicher.
HTML ist valide, css habe ich nicht geprüft.
Ein bisschen was ist beim Editieren vorlorengegangen. Ich habe es nicht wiedergefunden, aber das sollte sich noch wieder einfügen lassen.
 

Anhänge

  • valid.html.txt
    8,4 KB · Aufrufe: 54
Zuletzt bearbeitet:
Hey das finde ich total nett von Dir das du mir so hilfst Dickes Lob! Aber im Quelltext können ja die php Befehle nicht angezeigt werden weil die ja vom Server bearbeitet werden. Zum Beispiel ist das Newsscript includet und die Serverabfrage auch. Das Newsscript ist nicht von mir sondern ist ein fertiges und geladenes. Kann es sein dieser Validator mit den CSS Zeug aus dem Newsscript nicht klar kommt
Achja ich bin ab Montag beim Blockunterricht, heißt also das ich die woche nicht da sein werde. Bin aber immer an Wochenenden zuhause. Also nicht wundern wenn die Woche keine Antworten kommen... ist dann nicht weil ich Dich ignorieren will. Im Gegenteil! Wenn Du ICQ hast und nicht dagegen hast würde ich Dich adden.

mfg
Henkeyy
 
In der Tat, das ist ein dickes Problem, dass man im PHP die Zeilen nicht wiederfindet, die einem der Validator nennt.
Daher auch meine Erfahrung, woraus der Tipp resultiert, möglichst viel an Design, auf das css zu schieben.
Das HTML-Markup wird damit übersichtlicher.
Aber durch diese mühsame Suche musst (solltest) Du wohl durch, der nächste Browser wird die HTML-Fehler vielleicht nicht so verzeihen, wie FF oder der aktuelle IE.
Insbesondere, das mit <style> und <body> mitten im <body> solltest Du verhindern können!?
Poste mal den Teil vom Code, der vom News-Skript kommt. Hast Du darauf überhaupt keinen Einfluss, nicht mal, wenn Du Dich mühsam durch den Code kämpfst? Oder steht der Dir gar nicht zur Verfügung?

Sorry, ich habe kein ICQ oder ähnliches.

Gruß hpvw

PS: Wunder Dich nicht, wenn ich am nächsten Wochenende nichts schreibe, da bin ich nämlich nicht da.
 
Also das Newsscript besteht aus mehrehen Dateien! Welche jetzt auf die Startseite kommen weis ich nicht..... ich schau mla ob ich da was finde.

mfg
Henkeyy

+++++EDIT+++++

Also ich benutze Corenews2 und die Datein die auf der Startseite abgerufen wird beinhaltet folgenden Code:
PHP:
    $extension = explode(".", $PHP_SELF);
    $ext_count = count($extension);
    $extension = "." . $extension[$ext_count-1];
    
    require("config".$extension);
    require_once("coresql".$extension);

    if (!function_exists("showCSSHeader")) {
    function showCSSHeader()
    {
        global $styledata;
        $styledata[css_header] = str_replace("{header_size}", $styledata[header_size], $styledata[css_header]);
        $styledata[css_header] = str_replace("{header_color}", $styledata[header_color], $styledata[css_header]);
        $styledata[css_header] = str_replace("{news_size}", $styledata[news_size], $styledata[css_header]);
        $styledata[css_header] = str_replace("{news_color}", $styledata[news_color], $styledata[css_header]);
        $styledata[css_header] = str_replace("{smalltext_size}", $styledata[smalltext_size], $styledata[css_header]);
        $styledata[css_header] = str_replace("{smalltext_color}", $styledata[smalltext_color], $styledata[css_header]);
    
    print $styledata[css_header];
    print "\n";
    }
    }
    
    if (!function_exists("printNews")) {
    function printNews()
    {
        
        global $extension,
               $show,
               $styledata, 
               $options,
               $month,
               $year,
               $searchstring,
               $QUERY_STRING;
               
        require("config".$extension);
               
        $dbconn = new Coresql($db_server, $db_database, $db_account, $db_password);
        if ((isset($month)) && ($month != "") && (isset($year)) && ($year != "")) {
            switch ($month) {
                case "January":
                    $lastday = 31;
                    break;
                case "February":
                    if ($year % 4 == 0) {
                        $lastday = 29;
                    } else {
                        $lastday = 28;
                    }
                    break;
                case "March":
                    $lastday = 31;
                    break;
                case "April":
                    $lastday = 30;
                    break;
                case "May":
                    $lastday = 31;
                    break;
                case "June":
                    $lastday = 30;
                    break;
                case "July":
                    $lastday = 31;
                    break;
                case "August":
                    $lastday = 31;
                    break;
                case "September":
                    $lastday = 30;
                    break;
                case "October":
                    $lastday = 31;
                    break;
                case "November":
                    $lastday = 30;
                    break;
                case "December":
                    $lastday = 31;
                    break;
                default:
                    $lastday = 30;
            }
            $from = strtotime("1 $month $year 00:00:00");
            $to   = strtotime("$lastday $month $year 23:59:59");
            $query = "SELECT * FROM $newstable WHERE time > $from AND time < $to ORDER BY id DESC";
        } elseif ((isset($searchstring)) && ($searchstring != "")) {
            $query = "SELECT * FROM $newstable WHERE news_title LIKE '%$searchstring%' OR news_text LIKE '%$searchstring%' ORDER BY id DESC";
        } else {
            $query = "SELECT * FROM $newstable ORDER BY id DESC LIMIT 0,$options[news_nr]";
        }
        $newsdata  = $dbconn->fetchMultiple($query);
        
        if ($newsdata != "") {
            foreach ($newsdata as $result_detailed) {
                foreach ($result_detailed as $key=>$elem) {
                    
                    $userdata = $dbconn->fetchArray("SELECT * FROM $usertable WHERE id = $elem[author_id]");
                    
                    $elem[news_title] = str_replace("\\'", "'", $elem[news_title]);
                    $elem[news_text]  = str_replace("\\'", "'", $elem[news_text]);
                    
                    $news_template = addslashes($styledata[template]);
                    
                    $news_template = str_replace("{newstitel}", $elem[news_title], $news_template);
                    $news_template = str_replace("{news}", $elem[news_text], $news_template);
                    $news_template = str_replace("<a ", "<a class=\\\"cnnews\\\" ", $news_template);
                    if ($elem[show_email]) {
                        $userdata[username] = "<a href=\\\"mailto:$userdata[email]\\\" class=\\\"cnsmalltext\\\">$userdata[username]</a>";
                    }
                    if (($options[use_icons]) && ($elem[icon_id])) {
                        $icondata = $dbconn->fetchArray("SELECT * FROM $icontable WHERE id = $elem[icon_id]");
                        $icon = "<img src=\\\"corenews2/$options[icon_dir]$icondata[name]\\\" alt=\\\"$icondata[title]\\\">";
                    } else {
                        $icon = "";
                    }
                    $news_template = str_replace("{icon}", $icon, $news_template);
                    $news_template = str_replace("{user}", $userdata[username], $news_template);
                    $news_template = str_replace("{datum}", date($options[date_format], $elem[time]), $news_template);
                    if (($options[comments_allowed])) {
                        $countcomments = $dbconn->countRows("SELECT NULL FROM $commentstable WHERE news_id = $elem[id]");
                        $comments = "<a href=\\\"$PHP_SELF?$QUERY_STRING&news_id=$elem[id]\\\" class=\\\"cnsmalltext\\\">[ $countcomments Kommentar";
                        if ($countcomments != 1) {
                            $comments = $comments . "e";
                        } 
                        $comments = $comments . " ]</a>";
                    } else {
                        $comments = "";
                    }
                    $news_template = str_replace("{kommentare}", $comments, $news_template);
                    if (($elem[link] != "") && ($elem[link_text] != "")) {
                        if ($elem[link] == "") {
                            $link = $elem[link_text];
                        } else {
                            $link = "<a href=\\\"$elem[link]\\\" target=\\\"_blank\\\" class=\\\"cnsmalltext\\\">$elem[link_text]</a>";
                        }
                    } else {
                        $link = "";
                    }
                    $news_template = str_replace("{link}", $link, $news_template);
                    $news_template = str_replace("{ausrichtung}", $options[news_alignment], $news_template);
                    
                    $news_template = str_replace("?>", "?><?php print \"", $news_template);
                    $news_template = str_replace("<?php", "\"; ?><?php", $news_template);
                    $news_template = str_replace("?>\"; ?><?php print \"", "?><?php print \"", $news_template);
                    $news_template = "<?php print \"".$news_template."\"; ?>";
                    
                    eval ("?>".$news_template);  
                }
            } 
        }else {
            print "<div class=\"cnnews\">Keine News gefunden!</div>\n";
        }
        $close = $dbconn->close();
    }
    }
    
    if (!function_exists("printSingleNews")) {
    function printSingleNews()
    {
         
        global $extension,
               $newsdata, 
               $styledata, 
               $options,
               $news_id;
               
        require("config".$extension);
        
        $dbconn = new Coresql($db_server, $db_database, $db_account, $db_password);
        $result = $dbconn->fetchArray("SELECT * FROM $newstable WHERE id = $news_id");
                
        $userdata = $dbconn->fetchArray("SELECT * FROM $usertable WHERE id = $result[author_id]");
                
        $result[news_title] = str_replace("\\'", "'", $result[news_title]);
        $result[news_text]  = str_replace("\\'", "'", $result[news_text]);
                
        $news_template = addslashes($styledata[template]);
                
        $news_template = str_replace("{newstitel}", $result[news_title], $news_template);
        $news_template = str_replace("{news}", $result[news_text], $news_template);
        $news_template = str_replace("<a ", "<a class=\\\"cnnews\\\" ", $news_template);
        if ($result[show_email]) {
            $userdata[username] = "<a href=\\\"mailto:$userdata[email]\\\" class=\\\"cnsmalltext\\\">$userdata[username]</a>";
        }
        if (($options[use_icons]) && ($result[icon_id])) {
            $icondata = $dbconn->fetchArray("SELECT * FROM $icontable WHERE id = $result[icon_id]");
            $icon = "<img src=\\\"corenews2/$options[icon_dir]$icondata[name]\\\" alt=\\\"$icondata[title]\\\">";
        } else {
            $icon = "";
        }
        $news_template = str_replace("{icon}", $icon, $news_template);
        $news_template = str_replace("{user}", $userdata[username], $news_template);
        $news_template = str_replace("{datum}", date($options[date_format], $result[time]), $news_template);
        $comments = "";
        $news_template = str_replace("{kommentare}", $comments, $news_template);
        
        if (($result[link] != "") && ($result[link_text] != "")) {
            $link = "<a href=\\\"$result[link]\\\" target=\\\"_blank\\\" class=\\\"cnsmalltext\\\">$result[link_text]</a>";
        } else {
            $link = "";
        }
        $news_template = str_replace("{link}", $link, $news_template);
        
        $news_template = str_replace("?>", "?><?php print \"", $news_template);
        $news_template = str_replace("<?php", "\"; ?><?php", $news_template);
        $news_template = str_replace("?>\"; ?><?php print \"", "?><?php print \"", $news_template);
        $news_template = "<?php print \"".$news_template."\"; ?>";
                
        eval("?>".$news_template);  
        $close = $dbconn->close();    
    }
    }
 
Zuletzt bearbeitet:
Fortsetzung:
PHP:
if (!function_exists("showComments")) {
    function showComments()
    {
        
        global $extension,
               $news_id,
               $author,
               $email,
               $title,
               $comment,
               $QUERY_STRING,
               $REMOTE_ADDR;
               
        require("config".$extension);
        
        print "<a name=\"comments\"></a><div class=\"cncomments\"><b>Kommentare:</b></div><br>\n";
               
        if (($author != "") && ($email != "") && ($title != "") && ($comment != "")) {
            $dbconn = new Coresql($db_server, $db_database, $db_account, $db_password);
            
            $author = addslashes($author);
            $email = addslashes($email);
            $title = addslashes($title);
            $comment = addslashes($comment);
            $time = time();
            
            $query = $dbconn->execQuery("INSERT INTO $commentstable (news_id, author, email, title, comment, time, ip) VALUES ($news_id, '$author', '$email', '$title', '$comment', '$time', '$REMOTE_ADDR')");
            $close = $dbconn->close();
            
            if ($query) {
                print "<div class=\"cncomments\"><b>Kommentar erfolgreich eingetragen!</b></div><br>\n";
            } else {
                print "<div class=\"cncomments\"><b>Fehler: Kommentar konnte nicht eingetragen werden!</b></div><br>\n";
            }    
        } elseif ((isset($author)) && ($author == "")) {
            print "<div class=\"cncomments\"><b>Fehler: Bitte gib deinen Namen ein!</b></div><br>\n";
        } elseif ((isset($email)) && ($email == "")) {
            print "<div class=\"cncomments\"><b>Fehler: Bitte gib deine E-Mail ein!</b></div><br>\n";
        } elseif ((isset($title)) && ($title == "")) {
            print "<div class=\"cncomments\"><b>Fehler: Bitte gib einen Titel für den Kommentar ein!</b></div><br>\n";
        } elseif ((isset($comment)) && ($comment == "")) {
            print "<div class=\"cncomments\"><b>Fehler: Bitte gib ein Kommentar ein!</b></div><br>\n";
        }
        
        $dbconn = new Coresql($db_server, $db_database, $db_account, $db_password);
        $commentdata = $dbconn->fetchMultiple("SELECT * FROM $commentstable WHERE news_id = $news_id ORDER BY id ASC");
        $close = $dbconn->close();
        
        if ($commentdata != "") {
            foreach ($commentdata as $result_detailed) {
                foreach ($result_detailed as $key=>$elem) {
                    print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"5\">\n";
                    print "<tr>\n";
                    print "<td><div class=\"cncomments\"><b>".htmlspecialchars(stripslashes($elem[title]))."</b></td>\n";
                    print "</tr>\n";
                    print "<tr>\n";
                    print "<td><div class=\"cncomments\">".str_replace("\n", "<br>", htmlspecialchars(stripslashes($elem[comment])))."</td>\n";
                    print "</tr>\n";
                    print "<tr>\n";
                    print "<td>\n";
                    print "<i><div class=\"cncomments\">von ".htmlspecialchars(stripslashes($elem[author])).", am ".date("j. n. Y", $elem[time])." um ".date("G:i", $elem[time])."</i></td>\n";
                    print "</tr>\n";
                    print "</table>\n";
                    print "<br>\n";
                }
            }
        } else {
            print "<div class=\"cncomments\">Noch keine Kommentare vorhanden!</div>\n";
        }
        
        print "<form action=\"$PHP_SELF?$QUERY_STRING#comments\" method=\"post\">\n";
        print "<a name=\"newcomment\"></a>\n";
        print "<div class=\"cncomments\"><b>Neuer Kommentar:</b></div>\n";
        print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"10\">\n";
        print "<tr>\n";
        print "    <td><div class=\"cncomments\">Dein Name:</div></td>\n";
        print "    <td><input type=\"text\" name=\"author\" maxlength=\"255\" value=\"$author\"></td>\n";
        print "</tr>\n";
        print "<tr>\n";
        print "    <td><div class=\"cncomments\">Deine E-Mail:</div></td>\n";
        print "    <td><input type=\"text\" name=\"email\" maxlength=\"255\" value=\"$email\"></td>\n";
        print "</tr>\n";
        print "<tr>\n";
        print "    <td><div class=\"cncomments\">Kommentartitel:</div></td>\n";
        print "    <td><input type=\"text\" name=\"title\" maxlength=\"255\" value=\"$title\"></td>\n";
        print "</tr>\n";
        print "<tr>\n";
        print "    <td valign=\"top\"><div class=\"cncomments\">Dein Kommentar:</div></td>\n";
        print "    <td><textarea name=\"comment\" cols=\"30\" rows=\"5\">$comment</textarea></td>\n";
        print "</tr>\n";
        print "</table>\n";
        print "<input type=\"submit\" value=\"Abschicken\">\n";
        print "</form>\n";
    }
    }
    
    if (!function_exists("showArchive")) {
    function showArchive()
    {
        print "<form action=\"$PHP_SELF?$QUERY_STRING\" method=\"post\">\n";
        print "<div class=\"cnnews\">Suchen nach: <input type=\"text\" name=\"searchstring\"> <input type=\"submit\" value=\"Suchen!\"></div>\n";
        print "</form>\n";
        print "<form action=\"$PHP_SELF?$QUERY_STRING\" method=\"post\">\n";
        print "<div class=\"cnnews\">Alle News vom\n";
        print "<select name=\"month\">\n";
        print "    <option value=\"January\">Januar</option>\n";
        print "    <option value=\"February\">Februar</option>\n";
        print "    <option value=\"March\">März</option>\n";
        print "    <option value=\"April\">April</option>\n";
        print "    <option value=\"May\">Mai</option>\n";
        print "    <option value=\"June\">Juni</option>\n";
        print "    <option value=\"July\">Juli</option>\n";
        print "    <option value=\"August\">August</option>\n";
        print "    <option value=\"September\">September</option>\n";
        print "    <option value=\"October\">Oktober</option>\n";
        print "    <option value=\"November\">November</option>\n";
        print "    <option value=\"December\">Dezember</option>\n";
        print "</select>\n";
        print "<select name=\"year\">\n";
        $thisyear = date("Y", time());
        for ($year = 2001; $year <= $thisyear; $year++) {
            print "<option>$year</option>\n";
        }
        print "</select>\n";
        print "<input type=\"submit\" value=\"Anzeigen!\">\n";
        print "<br><br><br>\n";
    }
    }

    $dbconn = new Coresql($db_server, $db_database, $db_account, $db_password);
    $options   = $dbconn->fetchArray("SELECT * FROM $optionstable");
    $styledata = $dbconn->fetchArray("SELECT * FROM $styletable WHERE id = $options[use_style_id]");
    $close = $dbconn->close();
    
    if ($show == "css") {
        showCSSHeader();
    } elseif ($show == "purenews") {
        if ((isset($news_id)) && ($news_id != "")) {
            printSingleNews();
            if ($options[comments_allowed]) {
                showComments();
            }
        } elseif ($mode == "archive") {
            showArchive();
        } else {
            printNews();
        }    
    } else {
        showCSSHeader();
        if ((isset($news_id)) && ($news_id != "")) {
            printSingleNews();
            if ($options[comments_allowed]) {
                showComments();
            }
        } elseif ($mode == "archive") {
            showArchive();
        } else {
            printNews();
        }  
    }
    if (($options[show_copyright]) && ($show != "css")) {
        print "<div align=\"center\" class=\"cnsmalltext\">\n";
        print "<a href=\"http://www.coreslawn.de\" target=\"_blank\" class=\"cnsmalltext\">powered by Corenews 2.0.1</a><br>\n";
        print "&copy; 2002 by <a href=\"mailto:core@coreslawn.de\" class=\"cnsmalltext\">Core</a>\n";
        print "</div>\n";
    }
    
?>

Bisschen viel =) Aber das steht in der Datei
 
Zuletzt bearbeitet:
Schreib das mal bitte in die passenden Code-Tags
[ php ]
Der php-code
[ / php]
Kannst Du ja noch mal editieren, und die Tags natürlich ohne Leerzeichen.
So ist das wirklich zu mühsam zu lesen.

Auf den ersten Blick sehe ich keine gravierenden html-Mängel, evtl. das cellpadding und - spacing in Deinem 2. Post, das ließe sich auch über css lösen.

Der Rest ist ja, soweit ich das sehe im wesentlichen über CSS-Klassen gelöst.

Gruß hpvw
 
Du meinst an Stelle von <? CODE ?> dies <php? CODE ?> oder?

++++edit+++

Also ich habe mir mal die Datei angeschaut und da steht schon php drin statt Fragezeichen. Oder habe ich Dich jetzt falsch verstanden? Ich kann Dir die *.php Datei auch schicken wenn Du willst.

++++edit 2++++

So hab glaub ich erraten was Du meintest =)

mfg
Henkeyy
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Zurück