session_start() baut mir irgendwie ein hidden input Tag in die Seite

son gohan

Erfahrenes Mitglied
Hallo,

ich will gerade eine Seite validieren: http://validator.w3.org/check?uri=h...et=(detect+automatically)&doctype=Inline&ss=1

Aber ich bekomme Sie nicht valide, weil sobald ich folgenden PHP Code

PHP:
<?

session_start();

if (isset($_SESSION["sid"])) {
// echo "Session aktiv";
// echo "<br>SID : ".$_SESSION["sid"];
// echo "<br>SESSION : ".session_encode();
} else {
// echo "Session nicht aktiv";
$tmp = md5(microtime());
$_SESSION["sid"]= $tmp;
}

?>

in die Seite einbaue, wird aufeinmal ein input Tag in Zeile 192 vom Typ hidden mit PHPSESSID generiert und das auch noch ohne von einem Blockelment umgeben zu sein was so nicht valide ist.

Sowas habe ich ja noch nie gesehen, wieso wird da einfach so ein input Tag eingebaut obwohl ich im Quelltext dort keins eingebaut habe?

Ausserdem ist das nur im Quelltext des Validators zu sehen, wenn ich mir die Seite im Brwoser ansehe, dann steht da im Quelltext das input Tag nicht.
 
Zuletzt bearbeitet:
Hi,

ich hab mal einfach ini_set("session.use_trans_sid","0"); vor dem session_start() getan

PHP:
<? 
ini_set("session.use_trans_sid","0");
session_start(); 

if (isset($_SESSION["sid"])) { 
// echo "Session aktiv"; 
// echo "<br>SID : ".$_SESSION["sid"]; 
// echo "<br>SESSION : ".session_encode(); 
} else { 
// echo "Session nicht aktiv"; 
$tmp = md5(microtime()); 
$_SESSION["sid"]= $tmp; 
} 

?>

Aber kein Unterschied. Wie ich mit der url_rewriter.tags-Konfigurationsoption arbeiten kann geht mir leider nicht in die Birne.

Ausserdem, ausser das dort beim validieren der Seite im Quelltext des Validators dieses input Tag mit eingebaut wird, werden noch einigen Links einfach die PHPSESSID als Parameter hinzugefügt. Ich raf das nicht. Wenn ich mir die Seite im normalen Browser den Quelltext ansehe, dann stehen da auch keine PHPSESSID´s und auch kein input Tag wo ich selbst keins hin gemacht habe.

Immer wieder was neues, meine Güte.
 
Hallo,
schau dir mal diesen Thread an, dort hatten wir bereits das Problem, das automatisch ein hidden-Feld eingefügt. Wie Gumbo schon sagte kann man das durch das Ändern der url_rewriter.tags-Konfigurationseinstellung ändern:


url_rewriter.tags string url_rewriter.tags bestimmt, wenn Unterstützung für transparente SID aktiviert ist, welche HTML-Tags so umgeschrieben werden, dass sie die Session-ID beinhalten. Grundeinstellung a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=
Anmerkung: Wenn Sie XHTML-konform sein wollen, müssen Sie den form-Eintrag entfernen und Ihre Formularfelder zwischen <fieldset>-Tags setzen.​
 
Hallo und herzlichen Dank für deine Hilfe.

In dem Tread wird genau mein Problem behandelt, leider steht dort aber nicht wie er genau die ini_set() Funktion geschrieben hat um das Problem zu lösen.

Für jeden der sich da genau so unsicher ist wie ich hier die Lösung:

PHP:
ini_set("url_rewriter.tags","0");
 
Ach so, hey danke für den Hinweis, aber wie würdest du es denn sonst empfehlen zu schreiben, hab nicht viel Ahnung davon.
 
Du könntest die Sachen, die du noch brauchst, einfach als 2ten Parameter übergeben:
z.B.:
PHP:
ini_set("url_rewriter.tags","a=href, area=href, frame=src");
Damit schaltest du url_rewriter.tags für die Tags a, area und frame ein
 
Zurück