PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : fsockopen() + Cookies


wwwalter
10.09.2002, 09:13:24
Hallo,

ich möchte gerne folgendes realisieren:

Eine Seite über eine PHP -Script aufrufen und der Seite Cookies mit
übergeben, bzw. wenn sie welche setzen will, diese im Script
weiterverarbeiten.

Man hat mir schonmal den Tipp gegeben mit fsockopen anstatt fopen
zu arbeiten, aber ich habe einfach zu wenig Informationen, wie ich den
Header zu cookie-Übergabe gestalten muß.

Oder wie ich von der Seite zu setzende cookies 'empfangen' kann...

vielleicht kann mir ja jemand weiterhelfen, oder ein paar Tipps geben..

Danke,

Walter

Ben20
10.09.2002, 17:50:54
Ich habe nicht ganz verstanden was Du machen willst. Wenn Du ein Cookie setzen willst, dann nimm setCookie();

Wenn Du den Wert in einer anderen Seite bestimmen willst (Formular, Link) dann machs doch so:

//#### Link ----

<a href="cookiesetzen.php4?cookiewert=blablabla">Klick mich</a>


//#### Formular -----

<form action="cookiesetzen.php4" method="post">
<input type="text" name="cookiewert">
<input type="submit">
</form>


Und in cookiesetzen.php4

setCookie("CookieName", $_POST["cookiewert"], time() + 3600);
(falls Du das Formular benutzt)


setCookie("CookieName", $_GET["cookiewert"], time() + 3600);
(falls Du den Link benutzt)


Über time() + 3600 bestimmst Du, dass das Cookie 1 Stunde lang lebt. Auf den Wert des Cookies kannst Du über $_COOKIE["CookieName"] zugreifen.

wwwalter
11.09.2002, 08:38:12
Tach,

naaa...

Ich würde gerne eine andere Seite mit meinem PHP-Script aufrufen...

Nach dem Motto fopen("http://www.ard.de"),"r");
Dieser Seite kann ich dann noch Parameter mit übergeben...

Die Seite verlangt aber desweiteren das cookies gesetzt werden dürfen, bzw.
will welche auslesen. Da es eine externe Seite ist, kann ich das nicht beeinflussen.

Meine Frage ist nun, wie ich der Seite Cookies mit übermitteln kann, bzw.
wenn sie welche setzen will die in meinem PHP-Script weiterverarbeiten kann...

Ich hoffe ich habe mich verständlich ausgedrückt...

bis dann,

Walter

Progman
11.09.2002, 16:57:36
viel spaß beim durcharbeiten der entsprechenden HTTP 1.0 und HTTP 1.1 RFC *g*

lass es lieber, ich glaube nicht das es das wert ist.

wwwalter
13.09.2002, 09:50:15
Hallo,

danke für die Antworten...

Schade, aber ich werde es dann sein lassen...

Falls es dennoch irgendwelche fertigen Codeschnipsel oder so
gibt wäre ich immer noch für einen Tipp dankbar.

bis dann,

Walter

flobee
16.10.2002, 04:52:50
der befehl ist ach in keine doku hier enthalten!
kann mir jemand eine genaue beschreibung geben was es das alles gibt!?
z.B.:
$fp = fsockopen($a_url['host'], "80", &$errno, &$errstr, 60);

wwwalter
16.10.2002, 08:40:56
Tach,

beschrieben ist er schon:
http://www.php.net/manual/de/function.fsockopen.php

bis dann,

Walter

flobee
16.10.2002, 16:02:14
Yo! schon gesehen! und dennoch bekomme ich fehlermeldungen die ich nicht ganz verstehe und ich nicht weiss wie ich sie weg bekomme:
den code hat mir ein profi mal zusammen gestellt und kommt aus den open source ...geht dann da auch wieder hin wenn jemand eine lösung für mich hat :-)
ein spider!
finden tut der was und dann sagt er einfach: ach lieben doch nicht.. siehe kommentar 9 Zeile

function readurl($url) {
if($url AND $url != "http://") {
$a_url = parse_url("$url");
if (empty($a_url['path'])) $a_url['path'] = '/';
$fp = fsockopen($a_url['host'], "80", &$errno, &$errstr, 30);
if ($fp) {
fputs($fp, "GET " . $a_url['path'] . " HTTP/1.1rnHost: " . $a_url['host'] . "rnrn");
while(!feof($fp)) {
$temp[] = fgets($fp, 255); // HIER BEKOMME ICH BEI MANCHEN URLs EIN TIMEOUT FEHLER und eine hässliche ansicht
}
fclose($fp);
}
return $temp;
}
}

// DIESE FUNKTON VERARBEITET $temp

function spiderurl($url) {
/* init results */
//* MISSING IF URL IS EMPTY OR JUST HTTP:// *//
$result['url'] = $url;

/* read from url */
$temp = readurl($url);
if (is_array($temp)) {
// now parse data
// first line contains the return code //
if (!eregi("HTTP/[0-9]{1}.[0-9]{1} ([0-9]{3}) (.*)", $temp[0], $regs))
// no spider possible
return 0;
$result['code'] = (int) $regs[1];
$result['body'] = '';
for ($i = 1; $i < count($temp); $i++) {
// empty line is end of header //
if (trim($temp[$i]) == '') $inbody = true;

// get commands
eregi("(.*): (.*)", $temp[$i], $regs);
// catch results
$result[ strtolower($regs[1]) ] = trim($regs[2]);

// take the rest
if ($inbody) {
if (eregi("<title>(.*)</title>", $temp[$i], $regs)) $result['title'] = $regs[1];
if (eregi("<meta (http-equiv|name)="description" content="(.*)">", $temp[$i], $regs)) $result['description'] = $regs[2];
}
}
}
return $result;
}