PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   SeSSION gibt Fehler im HTML-Validator (http://www.selfphp.de/forum/showthread.php?t=17803)

theresa 09.10.2007 08:48:39

SeSSION gibt Fehler im HTML-Validator
 
Hi

Wenn ich die Seite, eine Abfrage einer DB ohne <?php session_start();?> mache ist der hTML-Validator im grünen Bereich. Sobald ich die SESSION hinschreibe kommen 13 Fehler!

Mein ganzer Code

PHP-Code:

<?php  session_start(); 
unset(
$_SESSION);?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Quartierfest </title>
    <link href="../includes/admin.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <?php 
    $link 
mysql_pconnect("localhost","db1","pw");
    
mysql_select_db("tb2",$link);
    
?>
    <table  border="0" cellpadding="0" cellspacing="0">
        <tr>
            <td colspan='2'><hr width="100%" size="1" noshade="noshade" />    </td>
        </tr>
        <tr valign="top">
            <td  class="nav2">
                <!--START NAVIGATION -->
                    <table width="250"  border="0" cellspacing="0" cellpadding="0">
                        <?
                        $query = "SELECT * FROM navigation WHERE upperlevel=0 ORDER BY orderkey ASC";
                        $result = mysql_query($query,$link);
                        while($row = mysql_fetch_array($result))
                        {
                        $navigationid1=$row["navigationid"];
                        $navtext1=$row["navtext"];
                        ?>
                        <tr >
                            <td height='12'>&nbsp;<a class='nav1' href='details.php?id=<? echo"$navigationid1";?>'><? echo"$navtext1";?></a></td>
                        </tr>
                        <tr>
                            <td >&nbsp;</td>
                        </tr>
                        <? } 
                        ?>
                    </table>            
                <!--ENDE NAVIGATION -->        
            </td>
            <td>
                <!-- CONTENT BEREICH -->
                <table width="100%" border="0"  cellpadding="0" cellspacing="0">
                    <tr >
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                    <tr>    
                        <td width="10">&nbsp;</td>
                        <td class="pagetitle">    Inhalt folgt    </td>
                    </tr>
                </table>
                <!-- ENDE CONTENT BEREICH -->        
            </td>
        </tr>
    </table>
</body>
</html>

Im Browser ist alles richtig angezeigt, doch eben der Validator will nicht. Es ist die erste Seite die ich aufgerufen wird, trotzdem habe ich unset($_SESSION); gemacht, damit nichts altes mehr drin ist.

Sobald ich session_start() setze bringt mir der Validator 13 Fehler! Alle mit Hinweis aus die Session. Klar steht was da, aber ich schnall es nicht!

Der Validator schlägt mir vor
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
einzusetzen statt
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Doch dann kann er gar nicht mehr validieren.

Was mache ich falsch? Wo steckt der Wurm?

Hier noch ein Auszug, der Anfang der beiden Validatorentexte

PHP-Code:

Total 13 Fehler und Warnungen

Warning  Line 32
Column 69cannot generate system identifier for general entity "PHPSESSID".
Error  Line 32Column 69general entity "PHPSESSID" not defined and no default entity.
Warning  Line 32Column 78reference not terminated by REFC delimiter

PHP-Code:

 SorryI am unable to validate this document because on line 37  it contained one or more bytes that I cannot interpret as utf-8  (in other wordsthe bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication.

The error wasutf8 "\xD6" does not map to Unicode 

Bisher habe ich miene Seite nicht so genau getestet, aber da sie in Vista nicht lief, suche ich den Grund und fand diese Fehler im Validator

Danke
Theresa

rambi 09.10.2007 10:17:02

AW: SeSSION gibt Fehler im HTML-Validator
 
1. Short Tags sollte man heutzutage nicht mehr unbedingt verwenden..
2. Warum pconnect? Das macht oft mehr Sorgen, als es vermeidet.
3. SELECT * From .... ist sehr unglücklich...
4. Schalte session.trans_sid ab oder (und) arg_separator.output auf &amp; stellen
5. unset($_SESSION); <<<--- verboten

*alles ohne gewähr*

theresa 09.10.2007 11:12:43

AW: SeSSION gibt Fehler im HTML-Validator
 
Danke aber habe noch mehr Fragen


1. Short Tags sollte man heutzutage nicht mehr unbedingt verwenden..
=> OK, aber was ist damit gemeint?

2. Warum pconnect? Das macht oft mehr Sorgen, als es vermeidet.
=> bisher, das heisst die letzten 6 Jahre habe ich immer so die Verbindung zum Server gemacht. Im Buch (PHP 5 von Jörg Krause ist dieser Befehl drin) Was soll ich stattdessen nehmen? Ich möchte ja gerne einen aktuellen Code schreiben


3. SELECT * From .... ist sehr unglücklich...
=>Meinst du den Stern? Die Tabelle habe nur drei Spalten, der Einfachheit habe ich es so geschrieben, werde es ändern und die einzelnen benötigten Spalten schreiben

4. Schalte session.trans_sid ab oder (und) arg_separator.output auf &amp; stellen
=> namdem ich ini_set("arg_separator.output","&amp;"); gerade nach session_start(); war der HTML-Validator zufrieden, danke

5. unset($_SESSION); <<<--- verboten
=> Danke, mache das nur weil ich meinte ich müsste, so in der Verzweiflung und der Fehlermeldungen

rambi 09.10.2007 11:22:20

AW: SeSSION gibt Fehler im HTML-Validator
 
1.
<? bla()?> // unglücklich, weil unportabel
<?php bla()?> // tuts auf jedem Server


Zu2:
Hat nix mit aktuell zu tun..
Natürlich darfst du *_pconnect verwenden, wenn du GENAU weißt was du tust.
http://de3.php.net/manual/de/feature...onnections.php


------
Der Rest hat sich wohl erledigt...

theresa 09.10.2007 11:50:17

AW: SeSSION gibt Fehler im HTML-Validator
 
OK, habe es (teilweise) verstanden

Was meinst du dazu?

PHP-Code:

<?php
$dblink
;

function 
DBOpenConnection($server$username$password)
{      
    global 
$dblink;
    
$dblink mysql_connect($server$username$password) or die("<br>Keine Verbindung zum Datenbank-Server möglich. Fehlermeldung: " mysql_error());
}

function 
DBSetDatabase($DBName)
{
    
mysql_select_db($DBName) or die("<br>Verbindung zum Server gut, jedoch keine Daten gefunden. Fehlermeldung:  " mysql_error());
}

function 
DBQuery($SQLStat)
{
    
$result mysql_query($SQLStat) or die("<br>Verbindung zum Server gut, jedoch keine Tabelle gefunden. Fehlermeldung: " mysql_error());
    return 
$result;
}
DBOpenConnection("localhost","db1","pw");
DBSetDatabase("db2");
?>


PHP-Code:

<?php $result DBQuery("Select navigationid,navtext  from navigation where upperlevel=0  order by orderkey");

while(
$row mysql_fetch_array($resultMYSQL_ASSOC))
{
$navigationid1=$row["navigationid"];
$navtext1=$row["navtext"];
?>
<tr ><td height='12'>&nbsp;<a class='nav1' href='details.php?id=<?php echo"$navigationid1";?>'><?php echo"$navtext1";?></a></td></tr>
<?php 
?>

Wäre das eine bessere Lösung?


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:58:00 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.