Hallo zusammen,
Also ich habe folgendes Problem:
Ich habe ein Script was sich in einen Chat einloggt. Nun möchte ich mit diesem Script auch eine Nachricht im Chat ausgeben können. Dafür brauche ich allerdings die Session-ID die bei jedem Login in den Chat von diesem generiert wird. Die Session-ID lautet beispielsweise wie folgt:
sessionid=5815739639767572197
Diese ID müsste mein Script also auslesen und in einer Variablen in meinem Script speichern damit ich eine Nachricht senden kann. Hierbei muss ich allerdings noch sagen das es sich um keine PHP-Session-ID handelt. Der Chat basiert nämlich auf JAVA.
Mein S
cript sieht wie folgt aus:
<?php
include("login.php");
function sent($URL,$data, $referer="", $agent="") {
$URL_Info=parse_url($URL);
if($referer=="")
$referer1=getenv("SCRIPT_URI");
foreach($data as $key=>$value)
$values[]="$key=$value";
$data_string=implode("&",$values);
if(!isset($URL_Info["port"]))
$URL_Info["port"]=10000;
$request.="POST ".$URL_Info["path"]." HTTP/1.1\n";
$request.="Host: ".$URL_Info["host"]."\n";
if($referer!="")
$request.="Referer: $referer\n";
if($agent!="")
$request.="User-Agent: $agent\n";
$request.="Content-type: application/x-www-form-urlencoded\n";
$request.="Content-length: ".strlen($data_string)."\n";
$request.="Connection: close\n";
$request.="\n";
$request.=$data_string."\n";
$fp = fsockopen($URL_Info["host"],$URL_Info["port"],&$error1,&$error2);
if(!$fp)
die("Error: $error1 => $error2");
fputs($fp, $request);
$key="HEAD";
while(!feof($fp)) {
$tmp=fgets($fp, 128);
if($key=="HEAD" && trim($tmp)=="")
$key="BODY";
$result[$key][] =$tmp;
unset($tmp);
}
fclose($fp);
return $result;
}
$URL="http://IP des Chats/MSG";
$data=array("nick"=>$nick,
"sessionid"=>"$sessionid", //Die problematische Stelle...
"input"=>$text);
$referer="http://IP des Chats/MSG";
$agent=$_SERVER["USER_AGENT"];
$buffer=Sent($URL,$data,$referer,$agent);
// Encoding ist bei dieser Seite auf chunked, also muss das ganze erst wieder zusammengebaut werden...
$buffer["BODY"]=implode("",array_slice($buffer["BODY"],2));
echo $buffer1["BODY"];
?>
Danke für eure Hilfe!
Beckx
Also ich habe folgendes Problem:
Ich habe ein Script was sich in einen Chat einloggt. Nun möchte ich mit diesem Script auch eine Nachricht im Chat ausgeben können. Dafür brauche ich allerdings die Session-ID die bei jedem Login in den Chat von diesem generiert wird. Die Session-ID lautet beispielsweise wie folgt:
sessionid=5815739639767572197
Diese ID müsste mein Script also auslesen und in einer Variablen in meinem Script speichern damit ich eine Nachricht senden kann. Hierbei muss ich allerdings noch sagen das es sich um keine PHP-Session-ID handelt. Der Chat basiert nämlich auf JAVA.
Mein S
cript sieht wie folgt aus:
<?php
include("login.php");
function sent($URL,$data, $referer="", $agent="") {
$URL_Info=parse_url($URL);
if($referer=="")
$referer1=getenv("SCRIPT_URI");
foreach($data as $key=>$value)
$values[]="$key=$value";
$data_string=implode("&",$values);
if(!isset($URL_Info["port"]))
$URL_Info["port"]=10000;
$request.="POST ".$URL_Info["path"]." HTTP/1.1\n";
$request.="Host: ".$URL_Info["host"]."\n";
if($referer!="")
$request.="Referer: $referer\n";
if($agent!="")
$request.="User-Agent: $agent\n";
$request.="Content-type: application/x-www-form-urlencoded\n";
$request.="Content-length: ".strlen($data_string)."\n";
$request.="Connection: close\n";
$request.="\n";
$request.=$data_string."\n";
$fp = fsockopen($URL_Info["host"],$URL_Info["port"],&$error1,&$error2);
if(!$fp)
die("Error: $error1 => $error2");
fputs($fp, $request);
$key="HEAD";
while(!feof($fp)) {
$tmp=fgets($fp, 128);
if($key=="HEAD" && trim($tmp)=="")
$key="BODY";
$result[$key][] =$tmp;
unset($tmp);
}
fclose($fp);
return $result;
}
$URL="http://IP des Chats/MSG";
$data=array("nick"=>$nick,
"sessionid"=>"$sessionid", //Die problematische Stelle...
"input"=>$text);
$referer="http://IP des Chats/MSG";
$agent=$_SERVER["USER_AGENT"];
$buffer=Sent($URL,$data,$referer,$agent);
// Encoding ist bei dieser Seite auf chunked, also muss das ganze erst wieder zusammengebaut werden...
$buffer["BODY"]=implode("",array_slice($buffer["BODY"],2));
echo $buffer1["BODY"];
?>
Danke für eure Hilfe!
Beckx
Kommentar