php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.05.2006, 20:51  
Neuer Benutzer
 
Registriert seit: 20.08.2003
Beiträge: 19
bexxta
Standard https request funzt nicht

Hallo,

ich möchte einen https-request mit fsockopen senden, der folgendermaßen aussieht:

fsockopen('ssl://www.afterbuy.de/afterbuy/ShopInterface.asp', 443);

dann kommt folgende Fehlermeldung:

Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Der angegebene Host ist unbekannt. in H:\pro\Apache2\htdocs\test.php on line 2

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://www.afterbuy.de/afterbuy/ShopInterface.asp:443 (Unknown error) in H:\pro\Apache2\htdocs\test.php on line 2

die Adresse stimmt auf jeden Fall und mehr kann man doch dabei gar nicht falsch machen oder?

als anmerkung in der dokumentation von afterbuy steht:
"Bitte achten Sie darauf, das die Parameter URL-Encodet übergeben werden."

Für mich ist das leider alles Neuland und ich bin dringend auf eure Hilfe angewiesen.

Vielen Dank im Voraus!

MfG,

Marcel
__________________
Chuck Norris kennt die letzte Ziffer von Pi
bexxta ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 04.05.2006, 21:02  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Du hast in deinem Aufruf der Funktion fsockopen() als Zieladresse den kompletten URL angegeben. Hier wird jedoch lediglich der Hostname bzw. die IP-Adresse erwartet.
Richtig wäre also:
PHP-Code:
<?php
    $fp 
fsockopen('ssl://www.afterbuy.de'443);
?>
xabbuh ist offline  
Alt 05.05.2006, 09:46  
Neuer Benutzer
 
Registriert seit: 20.08.2003
Beiträge: 19
bexxta
Standard

alles klar, vielen dank!
damit komm ich auf jeden fall schon weiter.

mein Script sieht nun folgendermaßen aus:

Code:
$fp = fsockopen("ssl://www.afterbuy.de", 443, $errno, $errstr, 30);

fputs($fp, "POST /xml/anfrage.php HTTP/1.1\r\n");
fputs($fp, "Host: afterbuy.de/afterbuy/ShopInterface.asp\r\n");    
fputs($fp, "Content-length: ". strlen($file) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $file);

while (!feof($fp))
{
    $data.= fgets($fp);
}

fclose($fp);

echo $data;
nun erhalte ich folgende Fehlermeldung:

Warning: fgets() [function.fgets]: SSL: fatal protocol error in H:\pro\Apache2\htdocs\xml\test.php on line 28

HTTP/1.1 400 Bad Request Content-Type: text/html Date: Fri, 05 May 2006 07:51:08 GMT Connection: close Content-Length: 39
Bad Request (Invalid Hostname)

(Zeile 28 ist die mit $data.= fgets($fp)

Warum funzt das so nicht?

MfG,

Marcel
__________________
Chuck Norris kennt die letzte Ziffer von Pi
bexxta ist offline  
Alt 05.05.2006, 12:25  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Zitat:
fputs($fp, "POST /xml/anfrage.php HTTP/1.1\r\n");
fputs($fp, "Host: afterbuy.de/afterbuy/ShopInterface.asp\r\n");
Weil diese zwei Header gelinde ausgedrückt völliger Unfug sind. Wo hast du das abgeschrieben?
mepeisen ist offline  
Alt 05.05.2006, 13:08  
Neuer Benutzer
 
Registriert seit: 20.08.2003
Beiträge: 19
bexxta
Standard

hab über die suche in diesem forum widerum einen eintrag in einem anderen gefunden, indem das so als funktionierend aufgeführt war...

hab wie gesagt bisher wenig plan von der materie, daher glaub ich sowas halt erstmal.
wie geht es denn richtig?

mfg,

marcel
__________________
Chuck Norris kennt die letzte Ziffer von Pi
bexxta ist offline  
Alt 05.05.2006, 13:14  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von bexxta
wie geht es denn richtig?
http://de.wikipedia.org/wiki/HTTP
 
Alt 05.05.2006, 15:31  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Host: besagt bereits, dass dort der Host folgt, also der Server-Name (auch als Domain bezeichnet). Da hat der Name des Scriptes nix verloren.

Der Header für POST oder GET beinhaltet hingegen den Namen des angesprochenen Scriptes. Das /xml/anfrage.php ist sicher nicht der Name deines Scriptes, das ist doch wohl eher "/afterbuy/ShopInterface.asp"
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 05.05.2006, 19:30  
Neuer Benutzer
 
Registriert seit: 20.08.2003
Beiträge: 19
bexxta
Standard

da ich wahrscheinlich zu blöd bin und auch in mehreren threads gelesen hab, dass es unproblematischer ist, mit curl zu arbeiten, habe ich das jetzt mal versucht, leider bislang auch ohne erfolg...

ich muss prinzipiell nur eine xml datei mit sll verschlüsselung an einen server schicken und die als antwort kommende xml einfangen (afterbuy setzt als einzige voraussetzung, das die parameter URL-encodet übergeben werd und das ist meines wissens nach bei curl standardmäßig schon so)
leider weiß ich nach wie vor nicht, wie ich das richtig anstelle und mit folgendem code kommt nur eine leere answer.xml zurück

Code:
error_reporting(E_ALL); 

$file = "";
$fp1=fopen("anfrage.xml", "r");
WHILE (!feof($fp1))
{
    $file1 = fgets($fp1, 100);
    $file = $file.$file1;
}

$ch = curl_init("https://www.afterbuy.de/afterbuy/ShopInterface.asp");
$fp = fopen("answer.xml", "w");

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $file);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);

curl_close($ch);
fclose($fp);
ich brauche wirklich dringend hilfe, weil ich das allein nicht hinbekomme.

vielen dank im voraus!

mfg,

marcel
__________________
Chuck Norris kennt die letzte Ziffer von Pi
bexxta ist offline  
Alt 05.05.2006, 19:41  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von bexxta
PHP-Code:
$file "";
$fp1=fopen("anfrage.xml""r");
WHILE (!
feof($fp1))
{
    
$file1 fgets($fp1100);
    
$file $file.$file1;

Das kannst du auch wesentlich einfacher mit file_get_contents() erreichen:
PHP-Code:
<?php
    $file 
file_get_contents('anfrage.xml');
?>
Was sagt curl_error()?
xabbuh ist offline  
Alt 05.05.2006, 19:50  
Neuer Benutzer
 
Registriert seit: 20.08.2003
Beiträge: 19
bexxta
Standard

die funktion hatte ich übersehen, ich trottel...

fehlermeldung: SSL certificate problem, verify that the CA cert is OK

was bedeutet das?
__________________
Chuck Norris kennt die letzte Ziffer von Pi
bexxta 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
https angehender Freak PHP Tipps 2008 18 09.06.2008 21:20
Was ist mit GET http request gemeint? cyberholic PHP Tipps 2008 6 03.05.2008 12:09
nach request behalten der getvariable nieselfriem PHP Tipps 2008 3 04.03.2008 19:45
request klappt nicht DarkManX HTML, Usability und Barrierefreiheit 5 05.02.2007 14:00
Request Wert auf Int überprüfen? becks123 PHP Tipps 2006 2 26.07.2006 14:00
Bad Request hier im Forum DerDesian Off-Topic Diskussionen 2 11.05.2006 14:30
Session funzt im Firefox, IE nich O.o Chrisber PHP Tipps 2007 1 17.12.2005 18:56
suse 9.1 - apache2 virtualhost funzt und funzt nicht Server, Hosting und Workstations 0 01.12.2005 11:23
Verbindungsaufbau via https und übermittlung via post reques MortakArtos PHP Tipps 2005-2 1 04.10.2005 08:03
[Erledigt] HTTP Request absetzen und Antwort auswerten PHP-Fortgeschrittene 1 02.07.2005 13:16
Zugriff mit https auf verschlüsselte Seiten Klaus Server, Hosting und Workstations 5 19.06.2005 18:33
[Erledigt] 400 - Bad Request / RewriteEngine Server, Hosting und Workstations 4 16.06.2005 14:44
button (submit) ->action auf https PHP Tipps 2005 7 18.04.2005 18:32
HTTP request failed! HTTP/1.1 500 Internal Server Error Datenbanken 6 28.01.2005 14:54
umschalten des http / https protokolls mit php ohne redirect PHP Tipps 2005 2 12.01.2005 15:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php https request, https request php, bad request (invalid header name), http error 400. the request has an invalid header name., bad request invalid header name, fsockopen bad request, warning: fgets() [function.fgets]: ssl: fatal protocol error in, bad request - invalid header, http error 400. the request has an invalid header name, https request, php http request ssl, bad request invalid header, bad request fsockopen, php http request https, bad request afterbuy, bad request invalid header name firefox, fgets() [function.fgets]: ssl: fatal protocol error, php request https, php \https\ request, warning: fgets() [function.fgets]: ssl: fatal protocol error

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:57 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.