# 1 Fehlermeldung von W3C



## solala123 (8. Dezember 2013)

Hallo,
beim Erstellen einer neuen Homepage möchte ich W3C fehlerfrei bleiben, (mein Ziel)

ich habe in CSS 3 verschiedene Hintergründe hinterlegt, die ich mit einem Formular anwählen kann.
das funktioniert alles gut. 

Aber W3C ist nicht zufrieden mit mir, die "Umschaltung" gefällt nicht.

mal meinen Code:

```
session_start();  // steht ganz oben


$seite_1      = $_POST['seite_1'];
$version      = $_POST['version'];


if (isset($_POST["submit"]))
{ unset($_SESSION['name']);

if($seite_1== 1)
   {
   $version = "version1";
   }
else if($seite_1 == 2)
   {
   $version = "version2";
   }
else if($seite_1 == 3)
   {
   $version = "version3";
   }
else
   {
   echo "Du bist weder 1 noch 2 oder 3";
   }
}




if (!isset($_SESSION['name']))
   {
   $_SESSION['name'] = "$version";
   }


$name = $_SESSION['name'];

?>
```



```
<body  id = <?php echo "$name" ?> >   // diese Zeile wird angemeckert
```

hier ist die Fehlermeldung von W3C:
Error Line 36, Column 14: an attribute value specification must start with a literal or a name character

<body  id =  >


Wie kann ich W3C befriedigen? 
oder bin ich auch völlig auf den Holzweg so wie ich es gemacht habe?

Danke
Gruß
Rainer


----------



## ComFreek (8. Dezember 2013)

Hallo,

der PHP-Code bringt uns nicht so viel, zeige lieber den generierten HTML-Code, den der Browser auch sieht.


PS: Erinner mich gerade an deine PN... oh man, das habe ich total vergessen  Ich werde es mir diese Woche vornehmen.


----------



## solala123 (8. Dezember 2013)

Hallo,
wegen der PN brauchst Du dich wirklich nicht zu hetzen, bin die nächste Woche sowieso in Sambia.
Also ob ich es nächst oder übernächste Woche habe, ist mir völlig egal.

So zum html Code, dahinter ist nur noch eine leere Tabelle:

 da kann man es anschauen: http://tt.resbar.de/Einstellungen.php
das Umschalten ist nur zum Testen auf der Seite Einstellungen gemacht, Umstellen des Hintergrundes mit 1,2 oder 3


```
<body  id = <?php echo "$name" ?> >



<?php 
include "kopf.php";
?>


<!--========== KOPFEREICH ANFANG NICHTS SCHREIBEN ==========-->
<table  align="center" id="breite" cellspacing="0" cellpadding="0" border="0"  >
    <tr>
        <td align="center" width="100%" id="haupt" >
        

                <table align="center" id="main_top"  cellspacing="0" cellpadding="0" border="0" >
                    <tr>
                        <td align="center" ></td>
                    </tr>
                </table>


                            <table align="center" id="main_header"  cellspacing="0" cellpadding="0" border="0"   >
                                <tr>
                                    <td align="center"> <!-- zwischen Mittelteil und Kopf -->
                            
                            
        
                                                <table align="center" id="header"   cellspacing="0" cellpadding="0" border="0" >
                                                    <tr>
                                                        <td> <!-- Schattenzeile oben -->
                                                                <table width="100%"  align="center" cellspacing="0" cellpadding="0" border="0"  >
                                                                    <tr>
                                                                        <td >
                                                                        </td>
                                                                    </tr>
                                                                </table>
                
                
                                                            </td>
                                                        </tr>
                                                </table>
        
                                        </td>
                                    </tr>
                            </table>
        


                    <table align="center" id="main_inhalt"  cellspacing="0" cellpadding="0" border="0"   >
                        <tr>
                            <td align="center" >
<!--========== KOPFBEREICH Ende NICHTS SCHREIBEN  ==========-->
                           
                            
<!--========== ANFANG SCHREIBEN ==========-->
                                        <table align="center" id="inhalt"   cellspacing="0" cellpadding="0" border="0" >   
                                            <tr>
<!-- oben links in der Ecke ist der Anfang -->  <td valign="top">Hier könnt Ihr die Homepage selber gestallten. <br><br>



<form    action="Einstellungen.php" method="post" >

            <input type="text"  name="seite_1"  id="seite_1"><br>
            
            <input type="submit" name="submit" value="Abschicken" >
            <input type="reset"  name="reset" value="Löschen" onClick="return confirm('Wirklich Eingaben verwerfen?')" >
</form>






                                            
                                            
                                                </td>   
                                          </tr>                                         
                                        </table>
<!--========== ENDE SCHREIBEN ==========-->
```

und die wird durch css formatiert.

Mal nur so eine Idee:
das wird angemeckert, weil es nicht mit einen Buchstaben beginnt, 
<body  id = <?php echo "$name" ?> >
könnte man nach id = (hier ein Buchstabe) & <?php echo "$name" ?>> 

am Anfang ein Buchstabe verknüpfen mit Variable ?, und die css dementsprechend umbenennen?


oder gibt es eine Möglichkeit eine css Datei z.B. mit if aussuchen, meine in der css ?

Gruß
Rainer


----------



## ComFreek (8. Dezember 2013)

Gut, ich habe mir jetzt den HTML-Quelltext deiner Seite angeschaut.

Der Validator interessiert sich nicht für deinen PHP-Code, er interessiert sich nur für die Ausgabe, und die ist folgende:

```
<body  id =  >
```
Das ist ganz klar ungültig. 

Was wäre jetzt die Lösung? Wenn $name leer ist, einfach nichts ausgeben:

```
<body<?php if(!empty($name)) echo "id='$name'";?>>
```


----------



## solala123 (8. Dezember 2013)

Hallo,
W3C meckert zwar nicht mehr, aber die Umschaltung funktioniert auch nicht mehr


----------



## solala123 (8. Dezember 2013)

Hallo hab den kleinen Fehler gefunden,


```
<body <?php if(!empty($name)) echo "id='$name'";?>>
```

nach body muss ein Leerzeichen rein, so funktioniert es und W3C ist auch zufrieden.

Dankeschön und eine schöne Woche
Gruß
Rainer


----------

