php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.04.2009, 19:56  
Erfahrener Benutzer
 
Benutzerbild von Felk
 
Registriert seit: 23.02.2009
Beiträge: 235
PHP-Kenntnisse:
Fortgeschritten
Felk befindet sich auf einem aufstrebenden Ast
Felk eine Nachricht über MSN schicken Felk eine Nachricht über Skype™ schicken
Standard POST und GET Request senden und Quellcode entgegennehmen

Hallo liebe PHPler.
Ich habe ein Problem, denn ich möchte gerne folgendes realisieren:
Ich habe eine Datei, die soll alle GET und POST Variablen, die sie bekommt direkt an eine andere Datei (irgendeine Internetseite) weiterleiten und dann auch noch den Quellcode als Rückgabewert liefern, jetzt habe ich bereits folgendes gefunden:
PHP-Code:
function PostToHost($host$path$referer$data_to_send) {
  
$fp fsockopen($host80);
  
printf("Open!\n");
  
fputs($fp"POST $path HTTP/1.1\r\n");
  
fputs($fp"Host: $host\r\n");
  
fputs($fp"Referer: $referer\r\n");
  
fputs($fp"Content-type: application/x-www-form-urlencoded\r\n");
  
fputs($fp"Content-length: "strlen($data_to_send) ."\r\n");
  
fputs($fp"Connection: close\r\n\r\n");
  
fputs($fp$data_to_send);
  
printf("Sent!\n");
  while(!
feof($fp)) {
      
$res .= fgets($fp128);
  }
  
printf("Done!\n");
  
fclose($fp);
 
  return 
$res;
}
 
$data "pid=14&poll_vote_number=2";
 
printf("Go!\n");
$x PostToHost(
              
"www.linux.com",
              
"/polls/index.phtml",
              
"http://www.linux.com/polls/index.phtml?pid=14",
              
$data
); 
Nun ist in $x dort der Quellcode, das ist also schonmal erfüllt. Und das in $data sieht aus wie GET-Variablen, sollen aber anscheinend die zu übergebenden POST-variablen sein.
Doch ich will nun auch alle GET-Variablen an den Server übermitteln. der übergebene Wert $referer scheint allerdings auch die GET-variable pid zu enthalten...

nun meine Frage:
Kann ich die POST-variablen einfach in $data, angereiht wie GET-variablen, speichern und die GET-variablen dann an die Url ($referer) anhängen?
Wenn ich somit dann alle GET und POST variablen direkt an die zu lesende Dazei übermittle und dann auch noch den fertigen Quellcode erhalte, wäre das super!
__________________
www.Speedcube.de, werde Speedcubing Meister! (Rubik's Cube lösen)
Felk ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.04.2009, 19:59  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Ich weiß nicht genau, was du meinst.
POST-Variablen werden immer im Body übergeben, GET im URL, wobei bei GET der Body immer ler ist. Bei einem POST-Request können also auch GET-Variablen übertragen werden, aber bei einem GET-Request keine POST-Variablen.
Was genau ist dein Problem? Was willst du erreichen?
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 06.04.2009, 20:04  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

So wie ich das verstanden habe, möchte er alle Get und Post Variablen zusammenfassen und die dann via Post oder ähnliches an einen anderen Server übertragen.

Dazu kann er alle Post und Get Daten ins Jsoin Format (oder mit serialize) zu einem String zusammenfassen und diesen via Post an den externen Server senden. Wenn ich was falsch verstanden habe, sagt mir bescheid.
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline  
Alt 06.04.2009, 20:17  
Erfahrener Benutzer
 
Benutzerbild von Felk
 
Registriert seit: 23.02.2009
Beiträge: 235
PHP-Kenntnisse:
Fortgeschritten
Felk befindet sich auf einem aufstrebenden Ast
Felk eine Nachricht über MSN schicken Felk eine Nachricht über Skype™ schicken
Standard

Eigentlich möchte ich nur alle GET und POST-variablen an die andere Datei schicken und dann den Quellcode bekommen...
Kann ich das denn so machen, wie ich das oben beschrieben habe?

@ Manko10: dass man da die GET-variablen übergeben kann, klingt schonmal gut... nur wie mache ih das jetzt?
Muss ich statt...
fputs($fp, "POST $path HTTP/1.1\r\n");
einfach das verwenden...?
fputs($fp, "POST $path$get_vars HTTP/1.1\r\n");
__________________
www.Speedcube.de, werde Speedcubing Meister! (Rubik's Cube lösen)

Geändert von Felk (06.04.2009 um 20:20 Uhr).
Felk ist offline  
Alt 06.04.2009, 20:41  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Du sendest einen POST-Request und die POST-Parameter im Body. Die GET-Parameter übergibst du wie gewohnt im URL.
Du kannst dir ja auch mal mit LiveHTTPHeaders ansehen, wie so ein POST-Request aufgebaut ist oder unser Wiki konsultieren: Request - PHP.de Wiki
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 06.04.2009, 20:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Was denn für'n Qellocde ?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 06.04.2009, 20:57  
Erfahrener Benutzer
 
Benutzerbild von Felk
 
Registriert seit: 23.02.2009
Beiträge: 235
PHP-Kenntnisse:
Fortgeschritten
Felk befindet sich auf einem aufstrebenden Ast
Felk eine Nachricht über MSN schicken Felk eine Nachricht über Skype™ schicken
Standard

Hmm... also wenn ich an eine Datei http://www.example.com/index.php die GET-variablen get1 mit dem Wert "abc" und get2 mit dem wert "xyz" senden will, und dazu noch die POST-Variablen post1, post2, und post3 mit den werten "a", "g" und "u", müsste ich folgendes machen...?
PHP-Code:
$post_vars 'post1=a&post2=g&post3=u';
$get_vars 'get1=abc&get2=xyz':

$fp fsockopen("www.example.com"80); 
fputs($fp"POST /index.php?$get_vars HTTP/1.1\r\n"); 
fputs($fp"Host: www.example.com\r\n"); 
fputs($fp"Referer: http://www.example.com/index.php\r\n"); 
fputs($fp"Content-type: application/x-www-form-urlencoded\r\n"); 
fputs($fp"Content-length: "strlen($post_vars) ."\r\n"); 
fputs($fp"Connection: close\r\n\r\n"); 
fputs($fp$post_vars); 

while(!
feof($fp)) { 
    
$res .= fgets($fp128); 


fclose($fp); 

// $res ist nun der fertige HTML-Code von http://www.example.com/index.php 
__________________
www.Speedcube.de, werde Speedcubing Meister! (Rubik's Cube lösen)
Felk ist offline  
Alt 06.04.2009, 20:59  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Im Grunde genommen: Ja.
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline  
Alt 06.04.2009, 21:02  
Erfahrener Benutzer
 
Benutzerbild von Felk
 
Registriert seit: 23.02.2009
Beiträge: 235
PHP-Kenntnisse:
Fortgeschritten
Felk befindet sich auf einem aufstrebenden Ast
Felk eine Nachricht über MSN schicken Felk eine Nachricht über Skype™ schicken
Standard

Okay, ich werds gleich mal ausprobieren
__________________
www.Speedcube.de, werde Speedcubing Meister! (Rubik's Cube lösen)
Felk ist offline  
Alt 06.04.2009, 21:19  
Erfahrener Benutzer
 
Benutzerbild von Felk
 
Registriert seit: 23.02.2009
Beiträge: 235
PHP-Kenntnisse:
Fortgeschritten
Felk befindet sich auf einem aufstrebenden Ast
Felk eine Nachricht über MSN schicken Felk eine Nachricht über Skype™ schicken
Standard

Fehler...
Code:
HTTP/1.1 405 Method Not Allowed Date: Mon, 06 Apr 2009 19:15:06 GMT Content-Type: text/html; charset=UTF-8 Server: gws Content-Length: 1391 Connection: close

The request method POST is inappropriate for the URL /.
Bei mir sieht das nun so aus:
PHP-Code:
function PostToHost($referer$data_to_send$get_vars) { 
    
$host explode('/',$referer);
    
$host $host[2];
    
$path explode($host,$referer);
    
$path $path[1];
    
$fp fsockopen($host80); 
    
fputs($fp"POST $path?$get_vars HTTP/1.1\r\n"); 
    
fputs($fp"Host: $host\r\n"); 
    
fputs($fp"Referer: $referer\r\n"); 
    
fputs($fp"Content-type: application/x-www-form-urlencoded\r\n"); 
    
fputs($fp"Content-length: "strlen($data_to_send) ."\r\n"); 
    
fputs($fp"Connection: close\r\n\r\n"); 
    
fputs($fp$data_to_send); 
    while(!
feof($fp)) { 
        
$res .= fgets($fp); 
        }
    
fclose($fp); 
    return 
$res
}

$magic_quotes get_magic_quotes_gpc();
foreach (
$_GET as $key => $value) {
    if (
$magic_quotes == 1) {
        
$key stripslashes($key);
        
$value stripslashes($value);
    }
    if (
$key == 'w') continue;
    
$get .= "&$key=$value";
}
if (isset(
$get)) $get substr_replace($get,'',0,1);
foreach (
$_POST as $key => $value) {
    if (
$magic_quotes == 1) {
        
$key stripslashes($key);
        
$value stripslashes($value);
    }
    
$post .= "&$key=$value";
}
if (isset(
$post)) $post substr_replace($post,'',0,1);
    
$html PostToHost($w,$post,$get); 
fputs($fp, "POST $path?$get_vars HTTP/1.1\r\n"); scheint nicht zu gehen... deswegen hier nochmal, wie ich $w ermittle:
PHP-Code:
$w $_GET['w'];

if (empty(
$w)) echo 'Sie m&uuml;ssen die Datei folgenderma&szlig;en aufrufen:<br />DATEI.php?w=URL';
else {
    if (
substr($w,0,7) != 'http://') {
        
$w 'http://'.$w;
    }
    if (
substr($w,-1) == '/') {
        
    }
    elseif (
count(explode('/',$w))==3) {
        
$w $w.'/';
    }
    elseif (
substr($w,-6,-5) == '.' || substr($w,-5,-4) == '.' || substr($w,-4,-3) == '.' || substr($w,-3,-2) == '.') {
        
$str explode('/',$w);
        
$w='';
        for (
$i=0;$i<(count($str)-1);$i++) {
            
$w .= $str[$i].'/';
        }
    }
    else {
        
$w $w.'/';
    }

__________________
www.Speedcube.de, werde Speedcubing Meister! (Rubik's Cube lösen)
Felk ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
GET Request in Datei speichern noreux PHP Tipps 2008 5 11.11.2008 20:09
[Erledigt] ssl POST Request + Proxy(?) Brayenzone PHP Tipps 2008 5 14.10.2008 17:26
Daten senden über POST oder GET snatch-ic PHP Tipps 2008 6 12.03.2008 20:46
POST Daten senden ohne Formular tinchen PHP Tipps 2007 6 07.03.2007 11:54
XML via Post senden PHP Tipps 2006 23 22.03.2006 10:05
post request über php PHP-Fortgeschrittene 11 08.03.2006 14:22
[Erledigt] HTTP POST Senden und Antwort Abfangen PHP Tipps 2005-2 7 10.09.2005 16:05
JS: Daten per Post senden. Bronks HTML, Usability und Barrierefreiheit 10 09.09.2005 18:09
Variablen über Post senden FireFIghter PHP Tipps 2005-2 2 06.09.2005 20:37
per post senden funktioniert nicht CrashonNet PHP Tipps 2005-2 7 26.07.2005 19:13
POST varialbe "manuell" senden PHP Tipps 2005-2 10 16.07.2005 23:14
[Erledigt] Post daten ohne Formular senden PHP Tipps 2005 18 29.05.2005 19:53
HTTP POST Anfrage senden DerDesian PHP Tipps 2005 6 03.03.2005 16:43
POST oder REQUEST? Creativ PHP Tipps 2004-2 5 11.12.2004 20:03
HTTP Post mit PHP (Stream Funktionen) PHP-Fortgeschrittene 12 04.06.2004 11:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php post request senden, php request senden, php request body, php post senden, post request senden, php get request, php get senden, php post get request, mit php post senden, php get request senden, php post entgegennehmen, php post request, http://www.php.de/php-einsteiger/53857-post-und-get-request-senden-und-quellcode-entgegennehmen.html, php get post request, php get anfrage senden url, php if get abfrage, php http request senden, the request method post is inappropriate for the url, php post anfrage senden, php get quelltext

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum