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;
}
vBulletin® v3.8.3, Copyright ©2000-2024, Jelsoft Enterprises Ltd.