kostenloser Webspace werbefrei: lima-city


Externen Seiteninhalt anzeigen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    g******r

    Hallo,

    Ich habe ein etwas spezielles Sproblem:

    Ich besitze ein Formular das auf meinedomain.tld/hallo.php liegt (dieses Forumular sendet die eingegebenen Daten per "POST") die auswertung erfolgt aber auf meinedomain2.tld/echo.php.

    Gibt es eine möglichkeit die ausgabe von meinedomain2.tld/echo.php auf meinedomain.tld/hallo.php (oder auch meinedomain.tld/etwasandes.php) zu übertragen?

    Ich bedanke mich schon jetzt für Eure hilfe.


    LG


    Beitrag zuletzt geändert: 3.5.2012 18:26:59 von gatterer
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Natürlich gibt es diese Möglichkeit, das nennt sich dann "Proxy". Solange sich das auf deine eigene Domain beschränkt passt das, komm aber ja nicht auf die Idee das zu missbrauchen, da das dann gegen die AGB verstößt.

    Brauchst du auch einen PHP-Code als Beispiel?
  4. Autor dieses Themas

    g******r

    hackyourlife schrieb:
    Natürlich gibt es diese Möglichkeit, das nennt sich dann "Proxy". Solange sich das auf deine eigene Domain beschränkt passt das, komm aber ja nicht auf die Idee das zu missbrauchen, da das dann gegen die AGB verstößt.

    Brauchst du auch einen PHP-Code als Beispiel?


    Ja bitte, das währe sehr nett.

    Ist eigendlich nicht meine Art nach Coden betteln :slant:.

    Danke! :cookie:

    PS: Die ausgabe ist je nach gesendeten inhalt anders. Auch eine Captcha ist im "POST" enthalten.
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    gatterer schrieb:
    Ja bitte, das währe sehr nett.

    Ist eigendlich nicht meine Art nach Coden betteln :slant:.
    Also mal ein Beispielcode:
    <?php
    	$url = 'http://www.hackyourlife.tk/parameters.php';
    
    	// GET-Parameter übernehmen
    	if(strlen($_SERVER['QUERY_STRING']) != 0)
    		$url .= '?' . $_SERVER['QUERY_STRING'];
    
    	$curl = curl_init($url);
    	curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    	curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
    	curl_setopt($curl, CURLOPT_RETURNTRANSFER , true);
    	curl_setopt($curl, CURLOPT_REFERER, $url);
    	curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1');
    	if(count($_POST) != 0) {
    		// POST-Parameter übernehmen
    		curl_setopt($curl, CURLOPT_POST, true);
    		curl_setopt($curl, CURLOPT_POSTFIELDS, $_POST);
    	}
    	$data = curl_exec($curl);
    	$type = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
    	curl_close($curl);
    
    	header('Content-Type: '.$type);
    	echo($data);
    ?>
    Um auch POST zu testen kannst du mit dem Tool hier POST-Anfragen an das Script senden...

    Cookies usw kannst du so nicht setzen...
  6. Autor dieses Themas

    g******r

    hackyourlife schrieb:
    Cookies usw kannst du so nicht setzen...


    Hallo,

    Erstmahls Danke,

    Leider hate ich noch probleme beim übertragen der Captcha. Leider ist diese immer falsch.

    Gibt es dort überhaupt eine Lösungsmöglichkeit?

    :wave:
  7. sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    Ich nutz immer session dafür ...

    dok1.php bekommt eine session-anfrage reingeworfen und verwendet die Session-Variablen, wenn vorhanden.

    dok2.php als Ziel des Formulares schiebt die (gebrauchten) Ergebnisse in die jeweiligen Session-Variablen, dann stehen sie später auch im dok1 zur Verfügung.


    edit
    Jupp, das geht ja doch nciht bei domain1 zu domain2 ... sorry.

    Beitrag zuletzt geändert: 4.5.2012 18:57:39 von sonok
  8. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    sonok schrieb:
    Ich nutz immer session dafür ...
    Hast du auch den Anfang durchgelesen? Es geht darum eine Seite auf eine andere zu proxien, sodass eine Seite unter einem anderen Namen und auf einer anderen Domain verfügbar wird.

    gatterer schrieb:
    Leider hate ich noch probleme beim übertragen der Captcha. Leider ist diese immer falsch.

    Gibt es dort überhaupt eine Lösungsmöglichkeit?
    Natürlich...
    Probier einfach folgenden Code aus:
    <?php
    	$url = 'http://www.hackyourlife.tk/parameters.php';
    
    	if(strlen($_SERVER['QUERY_STRING']) != 0)
    		$url .= '?' . $_SERVER['QUERY_STRING'];
    
    	// build request headers
    	$requestheaders = apache_request_headers();
    	$curlheaders = array();
    	foreach($requestheaders as $name => $value) {
    		// filter headers
    		switch(strtolower($name)) {
    			case 'accept-encoding':
    			case 'connection':
    			case 'content-length':
    			case 'content-encoding':
    			case 'content-type':
    			case 'host':
    			case 'keep-alive':
    			case 'server':
    			case 'user-agent':
    				break;
    			default:
    				$curlheaders[] = "$name: $value";
    		}
    	}
    
    	$curl = curl_init($url);
    	curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    	curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
    	curl_setopt($curl, CURLOPT_RETURNTRANSFER , true);
    	curl_setopt($curl, CURLOPT_REFERER, $url);
    	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_HTTPHEADER, $curlheaders);
    	curl_setopt($curl, CURLOPT_HEADER, true);
    	if(count($_POST) != 0) {
    		curl_setopt($curl, CURLOPT_POST, true);
    		curl_setopt($curl, CURLOPT_POSTFIELDS, $_POST);
    	}
    	$data = curl_exec($curl);
    	$type = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
    	curl_close($curl);
    
    	// split header and contents
    	$endofheader = strpos($data, "\r\n\r\n");
    	$size = 4;
    	if($endofheader === false) {
    		$endofheader = strpos($data, "\n\n");
    		$size = 2;
    	}
    	$header = substr($data, 0, $endofheader);
    	$data = substr($data, $endofheader + $size);
    
    	header('Content-Type: ' . $type);
    
    	// set response headers
    	$headerfields = explode("\n", $header);
    	header(trim($headerfields[0]));
    	for($i = 1; $i < count($headerfields); $i++) {
    		$pos = strpos($headerfields[$i], ':');
    		$name = trim(substr($headerfields[$i], 0, $pos));
    		$value = trim(substr($headerfields[$i], $pos + 1));
    		// filter headers
    		switch(strtolower($name)) {
    			case 'connection':
    			case 'content-length':
    			case 'content-encoding':
    			case 'content-type':
    			case 'keep-alive':
    			case 'server':
    				break;
    			default:
    				header("$name: $value");
    		}
    	}
    
    	echo($data);
    ?>
  9. Autor dieses Themas

    g******r

    hackyourlife schrieb:
    gatterer schrieb:
    Leider hate ich noch probleme beim übertragen der Captcha. Leider ist diese immer falsch.

    Gibt es dort überhaupt eine Lösungsmöglichkeit?

    Natürlich...
    Probier einfach folgenden Code aus:


    Nun läd die Seite und bricht nach etwas warten ab.
    Resultat: weisse Seite PHP-Error Reporting giebt nichts aus.
    Kann es eventwell daran liegen dass einen PHP-Session beim zurückgeben des Formulare generiert wird.
    Der andere Server weist auf jeden fall die Anfrage nicht zurück.

    Ich hoffe du weisst dazu was, sonst muss ich das ganze aufgeben oder nach einer altenative suchen.

    :-(
  10. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    gatterer schrieb:
    Nun läd die Seite und bricht nach etwas warten ab.
    Resultat: weisse Seite PHP-Error Reporting giebt nichts aus.
    Kann es eventwell daran liegen dass einen PHP-Session beim zurückgeben des Formulare generiert wird.
    Der andere Server weist auf jeden fall die Anfrage nicht zurück.
    Der Grund: das Proxy-Script gibt einen Header weiter, der nicht weitergegeben werden darf. Dabei handelt es sich um
    Transfer-Encoding
    . Deshalb braucht es auch einige Sekunden bis die Seite abbricht zu laden...

    gatterer schrieb:
    Ich hoffe du weisst dazu was, sonst muss ich das ganze aufgeben oder nach einer altenative suchen.
    Aufgeben musst du noch lange nicht... es gibt ja noch viele Möglichkeiten :biggrin:

    Also der ausgebesserte Code:
    <?php
    	$url = 'http://example.org/register.php';
    
    	if(strlen($_SERVER['QUERY_STRING']) != 0)
    		$url .= '?' . $_SERVER['QUERY_STRING'];
    
    	// build request headers
    	$requestheaders = apache_request_headers();
    	$curlheaders = array();
    	foreach($requestheaders as $name => $value) {
    		// filter headers
    		switch(strtolower($name)) {
    			case 'accept-encoding':
    			case 'connection':
    			case 'content-length':
    			case 'content-encoding':
    			case 'content-type':
    			case 'host':
    			case 'keep-alive':
    			case 'server':
    			case 'user-agent':
    				break;
    			default:
    				$curlheaders[] = "$name: $value";
    		}
    	}
    
    	$curl = curl_init($url);
    	curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    	curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
    	curl_setopt($curl, CURLOPT_RETURNTRANSFER , true);
    	curl_setopt($curl, CURLOPT_REFERER, $url);
    	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_HTTPHEADER, $curlheaders);
    	curl_setopt($curl, CURLOPT_HEADER, true);
    	if(count($_POST) != 0) {
    		curl_setopt($curl, CURLOPT_POST, true);
    		curl_setopt($curl, CURLOPT_POSTFIELDS, $_POST);
    	}
    	$data = curl_exec($curl);
    	$type = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
    	curl_close($curl);
    
    	// split header and contents
    	$endofheader = strpos($data, "\r\n\r\n");
    	$size = 4;
    	if($endofheader === false) {
    		$endofheader = strpos($data, "\n\n");
    		$size = 2;
    	}
    	$header = substr($data, 0, $endofheader);
    	$data = substr($data, $endofheader + $size);
    
    	header('Content-Type: ' . $type);
    
    	// set response headers
    	$headerfields = explode("\n", $header);
    	header(trim($headerfields[0]));
    	for($i = 1; $i < count($headerfields); $i++) {
    		$pos = strpos($headerfields[$i], ':');
    		$name = trim(substr($headerfields[$i], 0, $pos));
    		$value = trim(substr($headerfields[$i], $pos + 1));
    		// filter headers
    		switch(strtolower($name)) {
    			case 'connection':
    			case 'content-length':
    			case 'content-encoding':
    			case 'content-type':
    			case 'keep-alive':
    			case 'transfer-encoding':
    			case 'server':
    				break;
    			default:
    				header("$name: $value");
    		}
    	}
    
    	echo($data);
    ?>
    So sollte es endlich funktionieren...

    Ob die Session für dein Captcha auch richtig erstellt wird weiß ich nicht, du könntest aber im Zweifelsfall das Captcha ebenfalls proxien, dann stimmt die Session auch sicher zusammen.

    Edit (by thoba): URL anonymisiert.

    Beitrag zuletzt geändert: 4.5.2012 19:57:56 von thoba
  11. 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!