PHP/Magento Session-ID in hidden input bei Form – Elementen verhindern Valid XHTML 1.0 Strict

Gepostet am April 1, 2014

Das war ein Fehler nach dem ich ewig gesucht habe. Der Validate Check hat immer folgende Meldung ergeben, wobei sich die Session-Id natürlich verändert:

1
2
<form action=""><input type="hidden" name="PHPSESSID" value="01e7f24b02ddc4739d…   <-- Test Script
<form action=""><input type="hidden" name="frontend" value="01e7f24b02ddc4739d…  <-- Magento

Um den Fehler zu finden habe ich folgendes Test-Script erstellt:

1
2
3
4
5
<?php
session_start();
?>
<form action="">
</form>

Ausgabe beim ersten Aufruf oder nach dem löschen der Cookies:
Dieses Input-Feld wird wirklich nur einmal nach dem ersten Aufruf gesetzt, daher sieht man das Input-Feld im Browser nicht immer:

1
2
<form action=""><input type="hidden" name="PHPSESSID" value="01e7f24b02ddc4739d8jashsua" />xx
</form>

Lösung:

Es gibt zwei Lösungen dieses Input-Feld zu beseitigen.

Lösung 1: die PHP.ini Option „use_trans_sid“ muss auf 0 gesetzt werden.
dies geht bei einigen Servern auch über PHP „ini_set(session.use_trans_sid,1);“

Lösung 2: das Script muss leicht verändert werden
Schreiben Sie das Script wie folgt, wird das Input-Feld zwar noch gesetzt, aber in ein „fieldset“ – Element, was valid ist.

1
2
3
4
5
6
7
8
<?php
ini_set('url_rewriter.tags',"a=href,area=href,frame=src,fieldset=");
session_start();
?>
<form action="">
<fieldset>
</fieldset>
</form>

Tags:

Leave a Reply

 

Posts of Current Category



Facebook: