Problem mit POST: aus "+" wird leerzeichen

F

flo_fuxi

Hallo miteinander,
ich muss für ein Projekt für die Schule eine Tabelle von einer .aspx Website automatisch holen und in auf meiner eigenen Homepage ausgeben. Das Problem dabei ist nur, dass ich um die Tabelle (bzw. den Quelltext) auslesen zu können POST Daten an den Server senden muss.
Zuerst ersellte ich testweise ein einfaches Formular, indem ich die POST Daten eingab und übergab es an den entsprechenden Server. Das funktionierte auch ohne Probleme und ich bekam die Tabelle auch ausgegeben.
<form name="Form1" method="post" action="www.url.de/seite.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwxNjY4OTk5Mzc7dDw7bDxpPDE+Oz47....." /> //extrem langer String
<input type="submit" name="btnSonstigesWaehlen" value="Wählen" id="btnSonstigesWaehlen"/>
<input type="hidden" name="_ddAuslosungen" value="U 16 OPO"/>
<input type="hidden" name="ddSonstigesPrint" value="Tabelle"/>
</form>


Doch nun hatte ich das Problem, die Daten nicht auslesen zu können, da ich durch das Formular ja nur auf die Originalseite weitergeleitet wurde.

Nach einigen herumprobieren bin ich auf dieses Tutorial "httpconnection.class.php" gestoßen.
Nach einigem Herumprobieren bin ich nun draufgekommen, dass bei der POST übertragung die "+" in der Variable Viewstate durch ein Leerzeichen ersetzt werden und ich deshalb immer auf eine Fehlerseite umgeleitet werde, da mit der Variable Viewstate dadurch ein falscher Wert übergeben wird.
Mein Source:
...
$viewstate = "dDwxNjY4OTk5Mzc7dDw7bDxpPDE+Oz47bDx0PDtsPGk8MT47aTwyPjtpPDQ+O....";
$ddAuslosungen = "U 16 OPO";
$ddSonstigesPrint = "Tabelle";

$parameters = "__VIEWSTATE=$viewstate&_ddAuslosungen=$ddAuslosungen&ddSonstigesPrint=$ddSonstigesPrint";
$contentlength=strlen($parameters);
fwrite($connection,'POST '.$uri." HTTP/1.1\r\nHost: ".$host."\r\nUser-Agent: ".$useragent."\r\n".$cookiestring.$authstring."Connection: close\r\n");
fwrite($connection,"Content-Type: application/x-www-form-urlencoded\r\nContent-Length: ".$contentlength."\r\n\r\n".$parameters);
...



Lustigerweise kann POST alle Sonderzeichen problemlos übertragen nur bei den "+" hat es ein Problem. Beim der Formular-Variante hat es aber funktioniert.

Meine eigentliche Frage: wie kann ich Verhindern, dass das "+" in der POST-Übertragung durch ein Leerzeichen ersetzt wird?
Dabei ist zu erwähnen das ich an der Seite wo der POST übernommen wird absolut keinen Einfluss habe.

Ich arbeite nun schon ewig lange an diesem Problem, und finde einfach keine Lösung. Ich hoffe ihr könnt mir weiterhelfen. Ich bin übrigens auch für andere Lösungswege offen um an den Quelltext der Seite zu kommen.
 
Zurück