kostenloser Webspace werbefrei: lima-city


Mit PHP andere Seite ansprechen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Hallo,
    mal wieder eine Frage in die Runde. Ich würde gern an einen anderem Server eine Javascript Funktion starten. Allerdings scheint das so nicht zu klappen wie ich mir das vorstelle.
    Hier mal mein Ansatz dazu..

    Aktuell baue ich eine Verbindung über CURL auf und durchsuche den Quelltext, soweit alles super und es klappt.

    $get_fight = new curl();
    $get_fight->first_connect('http://' . ($city) . '.domain.de/login/check/','username=' . ($name) . '&password=' . ($passwort) . '&submitForm=Login');  
    $get_fight->store();
    $get_fight->execute('http://' . ($city) . '.domain.de/id/');
    // suche eingehnde ID //
    preg_match_all("|<td width=\"100px\"><a href=\"/profil/id:(.*)/|U",$get_fight,
    $ausgabe_id, PREG_PATTERN_ORDER);
    $id = $ausgabe_id[1][0];


    Nun möchte ich, wenn im Quelltext eine bestimmte ID gefunden wird eine Funktion ausführen. Mit Javascript wäre das kein Problem, zumindest auf dem eigenen Server. Wenn ich das richtig sehe, geht es aber auf einen anderen Server nicht, da es ja Browserseitig läuft.

    Wenn ich auf der Seite selber die Aktion ausführe wird es über einen Link mit JavaScript gestartet.
    <a href“ javascript:use_stuff(63);“ >ID</a>
    
        function use_stuff(id)
    	{
                document.getElementById('use_stuff_no_buff').plunder.value = plunder_id;
                document.getElementById('use_stuff_no_buff').submit()
    	}



    Das möchte ich nun gern „aus der Ferne“ anstoßen. Vielleicht hat ja jemand einen Tipp für mich wie ich das am besten angehe.

    LG Marco
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo,

    wie du schon erkannt hast ist JS eine Programmiersprache, bei der die Funktionen Client seitig im Browser ausgeführt werden. Und du möchtest jetzt mit PHP eine JS-Funktion anstoßen mit der so wie ich es sehe irgendwelche Formulardaten gesendet werden sollen?

    Da würde ich spontan mal sagen, dass es nicht geht.
    Was mir dazu aber als alternative einfällt wäre die andere Seite über ein iFrame aufzurufen und in der aufgerufenen Seite ein JS einzubauen welches beim Aufruf ausgeführt wird.

    Alternative 2: Mit JS kann man auch auf das iFrame direkt zugreifen solange es unter der gleichen Domain zu finden ist.
  4. Hallo,
    du kannst Ajax verwenden oder eine Datei mit z.B. einem Funktionsnamen ständig abrufen. Wenn du was neueres Ausprobieren möchtest kannst du dir mal Websocket anschauen.
    Aber es muss auf jeden fall ein spezieller Code in Javascript vorhanden sein.
    w3j
  5. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Hi,

    danke für Eure Antworten. Per Iframe würde ich es eigentlich ungern lösen, das wäre glaubeich eher die Notlösung.
    Da ich mit Websocket noch nie zu tun hatte würde ich das auch lieber umgehen. Einen Code der das macht was ich möchte habe ich schon mal für ein Greasmonkey Script geschrieben. (mit Lima Hilfe)

    Da es da ja in den Quelltext „einfließt“ geht es so auch.


    GM_xmlhttpRequest({
    	method: POST,
    	url: link+'/fight/',
    	onload: function(defensCheck) {
        var contentstring = defensCheck.responseText;
        var word_defensCheck = /einkommende/g;
        var defensFinale = word_defensCheck.test( contentstring );
    	window.location.href = "javascript:use_stuff(68);";
    	}});


    Außerdem habe ich es auch schon direkt über POST absende probiert, dabei ist der Code entstanden

    <!--
    var http = null;
    if (window.XMLHttpRequest) {
       http = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
       http = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (http != null) {
       http.open("POST", "domain.de/stock/newplunder/postuse/", true);
       http.onreadystatechange = ausgeben;
       http.setRequestHeader(
          "Content-Type",
          "application/x-www-form-urlencoded");
       http.send('plunder=63');
    }
    
    function ausgeben() {
       if (http.readyState == 4) {
          document.getElementById("Ausgabe").innerHTML =
             http.responseText;
       }
    }
    //-->

    Das würde so auch auf dem eigenen Server laufen.

    LG Marco
  6. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Um das mal zusammenzufassen: du willst ein Formular von PHP aus an einen anderen Server abschicken?
    Das kannst du mit cURL (was du ja sowieso schon nutzt) erledigen, du musst nur die zu sendenden Daten an der entsprechenden Stelle festlegen und cURL sagen, dass es eine POST-Anfrage ausführen soll. Wie kommst du an die POST-Daten? Am einfachsten indem du die gewünschte Aktion mit einem Browser ausführst und den Netzwerk-Verkehr überwachst (z.B. mit der Entwicklerkonsole des Browsers oder einem externen Programm wie Wireshark).
    Beispiel-Code, aus dem du eventuell erkennen kannst, wie der Code für cURL aussehen könnte gibt es hier. Laut deinem Beispiel wär das dann ca. sowas:
    function post_request($url, $data) {
    	$curl = curl_init($url);
    	curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
    	curl_setopt($curl, CURLOPT_RETURNTRANSFER , true);
    	curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1');
    	curl_setopt($curl, CURLOPT_HEADER, false);
    	curl_setopt($curl, CURLOPT_POST, true);
    	curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    
    	$data = curl_exec($curl);
    	curl_close($curl);
    	return($data);
    }
    
    $r = post_request('http://example.com/…/postuse/', array('plunder' => 63));


    Beitrag zuletzt geändert: 27.8.2014 12:51:15 von hackyourlife
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!