expertenaustausch > comp.lang.* > comp.lang.php.misc

Steven Wüthrich (15.11.2004, 22:04)
N'abend dclpm Gemeinde,

ich arbeite derzeit an einem Projekt, für welches ich Verbindungen auf HTTPS
Adressen herstellen muss, bzw. für welches ich Variablen via POST an die
Server schicken muss.

Im Internet habe ich schon einige interessante Informationen gefunden,
welche aber leider nicht funktioniert haben.

Hier die Funktion, welche ich direkt von php.net übernehmen konnte, um via
POST mit dem Server zu interagieren (funktioniert ohne SSL einwandfrei)

function PostCurlPage ($pageSpec, $data) {
$agent = "up.b";
$header[] = "Accept: text/vnd.wap.wml,*.*";
$ch = curl_init($pageSpec);
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 0); // debug
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cook.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cook.txt");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$tmp = curl_exec ($ch);
echo curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close ($ch);
return $tmp;
}

die Option "CURLOPT_SSL_VERIFYPEER" soll, wenn auf FALSE gesetzt anscheinend
Probleme wie zB dass keine Antwort vom SSL Server kommt lösen können - in
meinem Fall leider nicht.

Ich bin mir nicht ganz im Klaren woran das liegt und wo ich den Fehler zu
suchen habe, da cURL für mich sehr neu ist, deshalb würd' ich mich über
Antworten freuen damit ich weitere benötigte Infos geben kann.

Danke im Voraus und Gruss,
steven
Frank Schenk (16.11.2004, 12:13)
Steven Wüthrich wrote:

> N'abend dclpm Gemeinde,
> ich arbeite derzeit an einem Projekt, für welches ich Verbindungen auf HTTPS
> Adressen herstellen muss, bzw. für welches ich Variablen via POST an die
> Server schicken muss.


Welche PHP-Version, Curl-Version, Open-SSL? Apache-Version könnte
hilfreich sein, muss aber nicht. Sind die überhaupt alle installiert?
Was sagt phpinfo()?

> die Option "CURLOPT_SSL_VERIFYPEER" soll, wenn auf FALSE gesetzt anscheinend
> Probleme wie zB dass keine Antwort vom SSL Server kommt lösen können - in
> meinem Fall leider nicht.


Wenn der Server keine Antwort sendet kann das ausser einem
"RandomAntwortenErfinder" keiner lösen...

> Ich bin mir nicht ganz im Klaren woran das liegt und wo ich den Fehler zu
> suchen habe, da cURL für mich sehr neu ist, deshalb würd' ich mich über
> Antworten freuen damit ich weitere benötigte Infos geben kann.


Irgendwelche Fehlermeldungen? Debugging?

Ich bin noch dabei, meinen "ImNebelRumstochern"-Skill hochzubringen aber
ein paar Hinweise wären schon nett...

Wie schaut es aus, wenn du Curl per Kommandozeile startest? Oder per exec()?

Gruss, Frank

....input, need more input...pieps...
Nico Haberzettl (16.11.2004, 17:00)
Frank Schenk schrieb:
> Steven Wüthrich wrote:
> Welche PHP-Version, Curl-Version, Open-SSL? Apache-Version könnte
> hilfreich sein, muss aber nicht. Sind die überhaupt alle installiert?
> Was sagt phpinfo()?


[schnipp]

> Wie schaut es aus, wenn du Curl per Kommandozeile startest? Oder per
> exec()?


ehm. Also ich will ja jetzt nich' klugscheissen oder so,
aber wenn ich Steven richtig verstehe will der was über
cURL wissen, und du gehst jetzt grade von Curl ()
aus, und er von ...

Ich bin mir nicht sicher, weil ich mich mit beidem noch nicht
so recht beschäftigt hab, aber cURL != Curl oder?

cURL == Client URL Library Functions == libcurl
Curl == Irgendeine Webscripting Plattform die Java "platt formen"
will oder irgendsowas in der Richtung?

Request for correction...

mfg
Nico
Frank Schenk (16.11.2004, 17:11)
Nico Haberzettl wrote:

> ehm. Also ich will ja jetzt nich' klugscheissen oder so,
> aber wenn ich Steven richtig verstehe will der was über
> cURL wissen, und du gehst jetzt grade von Curl ()
> aus, und er von ...
> Ich bin mir nicht sicher, weil ich mich mit beidem noch nicht
> so recht beschäftigt hab, aber cURL != Curl oder?
> cURL == Client URL Library Functions == libcurl
> Curl == Irgendeine Webscripting Plattform die Java "platt formen"
> will oder irgendsowas in der Richtung?


Ich meinte ( auch und selbstverständlich ) cURL (
). Ich weiss auch, worum es geht, habe IMHO die richtigen Fragen
gestellt, da der OP mit Informationen recht sparsam war. Und ich arbeite
seit Jahren mit kleinZehgrossurl. Nicht überall, wo Curl draufsteht, ist
auch cUrL drin oder so. Man könnte auch unken, ich würde von einem
beliebten Sport reden, zu dem man einen Curl oder curl braucht -
curling...Möglichkeiten zu Missverständnissen gibt es derer zahlreiche,
wärst du mit der Materie vertraut, hättest du mir das grossZehkleinurl
auch evtl. verziehen. *gg*

Gruss, Frank
Nico Haberzettl (16.11.2004, 17:23)
Frank Schenk schrieb:
> Nico Haberzettl wrote:
>> cURL == Client URL Library Functions == libcurl
>> Curl == Irgendeine Webscripting Plattform die Java "platt formen"
>> will oder irgendsowas in der Richtung?

> Ich meinte ( auch und selbstverständlich ) cURL ( ups... sorry.


> ). Ich weiss auch, worum es geht, habe IMHO die richtigen Fragen
> gestellt, da der OP mit Informationen recht sparsam war. Und ich arbeite ACK


> seit Jahren mit kleinZehgrossurl. Nicht überall, wo Curl draufsteht, ist
> auch cUrL drin oder so. Man könnte auch unken, ich würde von einem
> beliebten Sport reden, zu dem man einen Curl oder curl braucht -
> curling...Möglichkeiten zu Missverständnissen gibt es derer zahlreiche,
> wärst du mit der Materie vertraut, hättest du mir das grossZehkleinurl
> auch evtl. verziehen. *gg*

Info zum merken: ich verzeihe immer und alles und schon vorher ;)
Letztenendes war's auch nicht die Schreibweise, die mich stutzig
gemacht hat (ich schreib auch nicht eBay sondern Ebay *g*)...

Dann hab ich dich wohl schlicht miß(t)verstanden. Mir war nur
bislang nicht klar, daß man cURL von der Kommandozeile starten
kann; ich hab das Päcken eher für eine buildt-in function gehalten.
Thema: "gefährliches Halb-Wissen". Man lernt nie aus. Vor allem ich
nich' o_O
BTW: danke für den Link. Jetzt bin ich dann wohl und hoffenlich
bald ein wenig schlauer, was das Thema angeht.

lg
Nico
Steven Wüthrich (17.11.2004, 13:22)
"Frank Schenk" <frank> schrieb im Newsbeitrag
news:2d9e

> Welche PHP-Version, Curl-Version, Open-SSL? Apache-Version könnte


> hilfreich sein, muss aber nicht. Sind die überhaupt alle installiert?


> Was sagt phpinfo()?


Hi Frank und thx für die Antwort.

Allerdings, all die Dinge sind installiert. Wie bereits angedeutet
funktioniert cURL auch ganz ordnungsgemäss, nur leider nicht wenn ich auf
HTTPS Server zugreifen möchte.

Hier kopiere ich dir mal das ganze Geschmeus der phpinfo Ausgabe:

Linux Server

PHP Version 4.3.9

cURL: libcurl/7.12.0 OpenSSL/0.9.7a zlib/1.2.0.7 Als Webserver ist
Apache/1.3.33 installiert

> > Ich bin mir nicht ganz im Klaren woran das liegt und wo ich den


> > Fehler zu suchen habe, da cURL für mich sehr neu ist, deshalb würd'


> > ich mich über Antworten freuen damit ich weitere benötigte Infos geben
> > kann.


> Irgendwelche Fehlermeldungen? Debugging?


Hier musst du mir kurz helfen um eventuelle Fehler ausgeben zu lassen - wie
man mit PHP curl dazu veranlasst allfällige Fehler auszugeben hab' ich noch
nicht gerafft.

Hättest du ein snippet parat welches ich nach meinem HTTPS command testen
könnte?

> Ich bin noch dabei, meinen "ImNebelRumstochern"-Skill hochzubringen


> aber ein paar Hinweise wären schon nett...


> Wie schaut es aus, wenn du Curl per Kommandozeile startest? Oder per
> exec()?


Machst dich aber schon ganz gut als solcher ^^

Per Kommandozentrale kann ich das ganze nicht ausführen.

Danke dir auf jeden Fall bereits für die Hilfe und schicke mal nen nebeligen
Gruss aus der Schweiz,

Steve
Frank Schenk (17.11.2004, 14:57)
Steven Wüthrich wrote:

> Hier kopiere ich dir mal das ganze Geschmeus der phpinfo Ausgabe:
> Linux Server
> PHP Version 4.3.9
> cURL: libcurl/7.12.0 OpenSSL/0.9.7a zlib/1.2.0.7 Als Webserver ist
> Apache/1.3.33 installiert


Hallo Steven,

saug dir von curl für die Kommandozeile falls
möglich, damit kann man solche Sachen hervorragend debuggen. Dann geht
einfach:

curl
bzw.
curl (kA, obs das gibt)

Weitere Details siehe Doku, Aufruf ohne Parameter oder man curl

Weiters hatte ich mit openSSL älter als 0.9.6 Probleme, hier empfehle
ich auf jeden Fall ein Downgrade. Haben uns deswegen mal eine halbe
Nacht um die Ohren gehauen. Bei uns läuft curl+SSL mit openSSL 0.9.6c.

Alternativ ein Upgrade auf PHP 5.02, wenn mich nicht alles täuscht
spricht fopen() dann SSL.

Gruss, Frank

P.S.: Bitte nicht in NG posten UND per Mail schreiben, entweder oder.
Exklusiv Oder quasi. ;)
Ähnliche Themen