[C] webseitenaufruf mit system("start ...");

Bei system("start http://www.test.de\&guestbook.php");

ruft der IE auch nur http://www.test.de auf. Fehlermeldung bleibt die selbe (Der Befehl "guestbook.php" ist entweder falsch geschrieben oder konnte nicht gefunden werden)

Also ignoriert er den Backslash einfach nur... Der nachfolgende Adressoperator bleibt trotzdem aktiv.
 
Der Querypart einer URL wird durch ein Fragezeichen von dem Realteil der URL separiert, das Ampersand ist der Delimiter für im Querystring enthaltene Parameterteile. Ruft man in einem gängigen Browser lediglich http://test.tld/&foo auf, weist der Browser auf den Fehler hin, oder schneidet den ungültigen Teil lediglich ab. Korrekt ist die URL, wie das bereits in diesem Thema aufgeführt wurde, im Format von http://test.tld/?foo.

Nun zur eigentlichen Problembehebung: Um Zeichen mit besonderer Bedeutung auf der Windows-Konsole zu escapen, wird ^ vorangestellt. So öffnet start http://test.tld/?bla^&bar die angegebene URL ordnungsgemäß. :)
 
Also. wie es aussieht wird und in der Funktion System, als trennung weiterer Anweisungen für die Konsole genuzt.

Aber ist stiftungwaren-Test wirklich deine gesuchte Seite?
Poste mal bitte deinen Link den du öffnen willst, ich versuche mal den in korrekte Syntax zu packen;)

Also so hat mir alles fehlerfrei get:
PHP:
system("start http:////www.test.de/?guestbook.php");
 
Hallo,

eine andere Möglichkeit (als die von maeTimmae) wäre die Verwendung von ShellExecute:
C:
ShellExecute(NULL, L"open", L"http://test.tld/?bla&bar",
             NULL, NULL, SW_SHOWNORMAL);
Grüße, Matthias
 
So, habe es nun mit ^ geschafft. Vielen Dank euch allen für die schnelle hilfe, vor allem Timmae der letztendlich die lösung für mein Problem hatte.
Nochmals Danke!
 
Zurück