URL aufrufen



  • Ich weiß jetzt nicht genau, ob das hier ger gehört ich mach das hier mal einfach rein....wenn nicht, dann kann es ja immer noch verschoben werden

    ein Button von einer Website ruft eine neue URL auf und ich wollte dies in einem externen Programm gern automatisieren. Als ich den Link dann mal seperat mit Firefox geöffnet hab wurde nur was geladen. Erst war die Seite dann weiß und dann kam ich wieder auf die Ursprungsseite.

    wäre schön, wenn ihr mir helfen könntet. Also im Prinzip will ich den Klick auf den Button automatisieren.

    Vielen Dank
    SpiGAndromeda



  • Um welche Seite handelt es sich denn? Je nachdem kann es z.B. sein, dass die Seite, auf die referenziert wird, per Javascript, PHP oder aehnlichem die Browser-Historie / die Referrer-Seite ueberprueft, ob du auch wirklich von der gewuenschten Ursprungsseite kommst. Das machen einige Webseitenbereiber so, weil sie z.B. genau solche Aktionen vermeiden wollen.

    Das kann man im Uebrigen auch nicht umgehen, indem man Javascript abschaltet (sofern das ueberhaupt per JS realisiert wird), weil sie dann einfach immer auf die Ursprungsseite zurueckfuehren wuerden.

    Was aber zunaechst vllt. geklaert sein sollte: Handelt es sich um einen einfachen Verweis (<a href="...">...</a>) oder um ein Formular (<form ...><input ...></form>)?



  • definitiv ein einfacher Verweis



  • Dann definitiv:

    heini schrieb:

    Je nachdem kann es z.B. sein, dass die Seite, auf die referenziert wird, per Javascript, PHP oder aehnlichem die Browser-Historie / die Referrer-Seite ueberprueft, ob du auch wirklich von der gewuenschten Ursprungsseite kommst. Das machen einige Webseitenbereiber so, weil sie z.B. genau solche Aktionen vermeiden wollen.

    Und es gibt fuer dich keine Moeglichkeit, das zu umgehen, es sei denn du kannst deinen Browser dazu ueberreden, eine nicht besuchte Seite als Referrer anzugeben. Ansonsten muesstest du einen eigenen Browser schreiben, der das uebernimmt. Waere natuerlich eine coole Sache. 😃



  • Hol dir "Live HTTP Headers" (Addon für Firefox) und sieh dir damit an, was bei dem Druck auf den Button an den Server geschickt wird.
    Exakt diese Anfrage musst du eben mit deinem Programm absenden. Nichts anderes macht ein Browser

    Dabei ist es egal, ob das ein Textlink oder ein komplexes Formular war. Auch einen Referer kannst du mitsenden



  • Mir faellt aber noch etwas anderes ein... Du koenntest das mit einem dynamischen Frameset loesen:

    frameset.php:

    <html><head><title>Frameset</title></head>
    <frameset rows="0,*">
    <frame src="js.php?site=<?php echo $_GET['site']; ?>" name="js">
    <frame src="<?php echo $_GET['ref']; ?>" name="main">
    </frameset>
    </html>
    

    js.php:

    <html><head><script language="javascript">
    <!--
    parent.frames[1].location.href="<?php echo $_GET['site']; ?>";
    //-->
    </script></head></html>
    

    Hauptseite ist die frameset.php. Uebergeben muessen die Parameter site und ref. Prinzip: Es wird zuerst die gewuenschte Ursprungsseite aufgerufen und gleich danach per Javascript die neue Seite im selben Frame, was den Browser hierbei austricksen duerfte... Wichtig: PHP muss vorhanden und ausfuehrbar sein - z.B. per lokalen Webserver.



  • filgendes bekomme ich von Live HTTP Header:

    http://www.zgtintern.de/ta/fasching2/voting.php?pollId=1&optionId=1114&article_id=1101&detail=1114&row=

    GET /ta/fasching2/voting.php?pollId=1&optionId=1114&article_id=1101&detail=1114&row= HTTP/1.1
    Host: www.zgtintern.de
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://www.zgtintern.de/ta/fasching2/index.php?article_id=1101&vote_ok=1&detail=1114
    Cookie: PHPSESSID=kp5575pf9dtigsbfokdhhs5n91

    HTTP/1.x 302 Found
    Date: Thu, 14 Jan 2010 11:03:21 GMT
    Server: Apache/2.2
    X-Powered-By: PHP/5.2.11
    Location: index.php?article_id=1101&vote_ok=1&detail=1114#row-
    Content-Length: 0
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Content-Type: text/html
    ----------------------------------------------------------
    http://www.zgtintern.de/ta/fasching2/index.php?article_id=1101&vote_ok=1&detail=1114#row-

    GET /ta/fasching2/index.php?article_id=1101&vote_ok=1&detail=1114 HTTP/1.1
    Host: www.zgtintern.de
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://www.zgtintern.de/ta/fasching2/index.php?article_id=1101&vote_ok=1&detail=1114
    Cookie: PHPSESSID=kp5575pf9dtigsbfokdhhs5n91

    HTTP/1.x 200 OK
    Date: Thu, 14 Jan 2010 11:03:21 GMT
    Server: Apache/2.2
    X-Powered-By: PHP/5.2.11
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Keep-Alive: timeout=5, max=99
    Connection: Keep-Alive
    Transfer-Encoding: chunked
    Content-Type: text/html
    ----------------------------------------------------------
    http://www.zgtintern.de/ta/fasching2/js/functions.js

    GET /ta/fasching2/js/functions.js HTTP/1.1
    Host: www.zgtintern.de
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
    Accept: /
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://www.zgtintern.de/ta/fasching2/index.php?article_id=1101&vote_ok=1&detail=1114
    Cookie: PHPSESSID=kp5575pf9dtigsbfokdhhs5n91

    HTTP/1.x 404 Not Found
    Date: Thu, 14 Jan 2010 11:03:22 GMT
    Server: Apache/2.2
    Vary: accept-language,accept-charset
    Accept-Ranges: bytes
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Transfer-Encoding: chunked
    Content-Type: text/html; charset=iso-8859-1
    Content-Language: de
    ----------------------------------------------------------
    http://www.zgtintern.de/ta/fasching2/files/a64_vk.css

    GET /ta/fasching2/files/a64_vk.css HTTP/1.1
    Host: www.zgtintern.de
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
    Accept: text/css,/;q=0.1
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://www.zgtintern.de/ta/fasching2/index.php?article_id=1101&vote_ok=1&detail=1114
    Cookie: PHPSESSID=kp5575pf9dtigsbfokdhhs5n91

    HTTP/1.x 404 Not Found
    Date: Thu, 14 Jan 2010 11:03:22 GMT
    Server: Apache/2.2
    Vary: accept-language,accept-charset
    Accept-Ranges: bytes
    Keep-Alive: timeout=5, max=100
    Connection: Keep-Alive
    Transfer-Encoding: chunked
    Content-Type: text/html; charset=iso-8859-1
    Content-Language: de
    ----------------------------------------------------------

    ich denke es dürfte das erste sein, da die Adresse die Link-Adresse ist, die unter dem Button liegt

    leider habe ich absolut keinen blassen Schimmer, was das jetzt bedeutet. Wäre coll, wenn mir das einer erklären könnte und mir möglichst auch noch sagen könnte, wie ich das dann in ein Programm schreibe.

    P.S. ich benutze ganz gern wxWidgets, weiß aber nicht, ob das damit umsetzbar ist.

    Vielen Dank
    SpiGAndromeda



  • Es handelt sich dabei um mehrere Header, da mehrere Anfragen gestellt werden. Einen zur Erlaeuterung:

    Header, der gesendet wird:

    Angeforderte Datei:        GET /ta/fasching2/voting.php?pollId=1&optionId=1114&article_id=1101&detail=1114&row= HTTP/1.1
    Selbsterklaerend:          Host: www.zgtintern.de
    Dein Browser:              User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
    Akzeptierte Dokumenttypen: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Akzeptierte Sprachen:      Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Akzeptierte Komprimierung: Accept-Encoding: gzip,deflate
    Akzeptierte Zeichensaetze: Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Am-Leben-erhalten (Sek.):  Keep-Alive: 300
    Verbindungstyp:            Connection: keep-alive
    Vorherige besuchte Seite:  Referer: http://www.zgtintern.de/ta/fasching2/index.php?article_id=1101&vote_ok=1&detail=1114
    Selbsterklaerend:          Cookie: PHPSESSID=kp5575pf9dtigsbfokdhhs5n91
    

    Header, den dein Browser vom Server erhaelt:

    HTTP-Meld.Nr. m. HTTP-Vers.: HTTP/1.x 302 Found
    Datum/Zeit:                  Date: Thu, 14 Jan 2010 11:03:21 GMT
    Serversoftware:              Server: Apache/2.2
    Zusaetzliche Info:           X-Powered-By: PHP/5.2.11
    Verz./Datei auf Server:      Location: index.php?article_id=1101&vote_ok=1&detail=1114#row-
    Laenge der Datei:            Content-Length: 0
    Am-Leben-erhalten (Sek.):    Keep-Alive: timeout=5, max=100
    Verbindungstyp:              Connection: Keep-Alive
    Dokumententyp:               Content-Type: text/html
    

    Und um diese Zeile ging es mir:

    Referer: http://www.zgtintern.de/ta/fasching2/index.php?article_id=1101&vote_ok=1&detail=1114
    


  • http://de.wikipedia.org/wiki/HTTP-Request

    wie du das in wxw umsetzt, muss dir jemand sagen, der sich damit auskennt. Die Doku sollte aber weiterhelfen



  • heißt das ich muss im prinzip nur die GET Anweisung ausführen, oder was muss ich dann umsetzen



  • SpiGAndromeda schrieb:

    heißt das ich muss im prinzip nur die GET Anweisung ausführen, oder was muss ich dann umsetzen

    im Prinzip ist es eine simple GET-Anweisung, ja

    Allerdings musst du die Antwort auswerten können (wie in diesem Fall. Du bekommst als Antwort einen 302, keinen 200, also musst du unter "Location" nachsehen, welche Adresse du aufrufen musst; kann aber sein, dass dein Framework das für dich übernimmt)

    Darüber hinaus musst du aber evtl weitere Felder mitschicken. "Referer" wär da in deinem Fall einer der wichtigeren.

    Wie du das genau machst, erfährst du in der Doku deines Frameworks



  • Du brauchst eigtl. nichtmal ein eigenes Programm. Das kannst du auch per Telnet realisieren. Hier ein Beispiel unter Windows XP, Konsole:

    telnet www.c-plusplus.net 80
    

    Dann eingeben (muss kopiert und dann eingefuegt werden, da Return sofort absendet):

    GET /index.php HTTP/1.1
    Host: www.c-plusplus.net
    User-Agent: Telnet
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: none
    Accept-Charset: utf-8
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://localhost/
    

    Und man bekommt zurueck:

    HTTP/1.1 302 Found
    Date: Fri, 15 Jan 2010 16:03:22 GMT
    Server: Apache/2.2.3 (Debian) PHP/4.4.4-8+etch6
    X-Powered-By: PHP/4.4.4-8+etch6
    Location: http://www.c-plusplus.net/cms/index.php
    Vary: Accept-Encoding
    Content-Length: 0
    Keep-Alive: timeout=10, max=100
    Connection: Keep-Alive
    Content-Type: text/html
    

Anmelden zum Antworten