-
Notifications
You must be signed in to change notification settings - Fork 0
/
output.php
125 lines (120 loc) · 3.5 KB
/
output.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<html>
<head>
</head>
<body id=body>
<link rel="stylesheet" type="text/css" href="style.css" />
<?php
require('sql.php');
$server=array();
$sqlinfo=array();
// EDIT THESE LINES
$server['h']='192.168.1.101';
$server['p']=3000;
$user="webbot";
$pass="pass";
$sqlinfo['address']="localhost";
$sqlinfo['user']="sqluser";
$sqlinfo['password']="sqlpassword";
$sqlinfo['db']="gosbot";
$sqlinfo['table']="goschat";
// NO MORE EDITING
$name=$_GET['name'];
$connected=false;
$id=$_GET['uid'];
echo str_repeat(" ", 1024), "\n";//dumping spaces to open up the flush buffer.
function write($cmd,$server){fwrite($server['s'], $cmd."\n");}
function read($server){return fgets($server['s'],1024);}
function login($server){
$connected=true;
read($server,":!:user:!:");
write(":!:user:!:".$GLOBALS['user'],$server);
read($server,":!:pass:!:");
write(":!:pass:!:".$GLOBALS['pass'],$server);
read($server,":!:name:!:");
write($GLOBALS['name'],$server);
read($server,":!:connected:!:");
write("hello",$server);
$GLOBALS['connected']=true;
}
function disPlayers($line){
$a=explode(":",$line);
$sName=$a[0];
$players=$a[1];
echo "<br>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-<br>";
echo "<table><tr><td></td><td></td><td> ";
echo "<span id=who>".$sName.":</span></td></tr>";
$b=explode(",",$players);
$c=0;
echo "<tr>";
foreach ($b as $value){
echo "<td>".$value."</td>";
$c++;
if ($c>4){echo "</tr><tr>";$c=0;}
}
echo "</tr></table>";
}
function readon($server){
echo "<span id=connect>Connected.<br></span>";
while ($GLOBALS['connected']){
$line=read ($server);
$line=trim($line);
if ($line!=""){
if (strpos($line,":!:ping:!:")!== false){write(":!:pong:!:",$server);}
else if (strpos($line,":!:hangup:!:")!== false){$GLOBALS['connected']=false;}
else if (strpos($line,":!:players:!:")!== false){disPlayers(substr($line,13));}
else if (strpos($line,":!:info:!:")!== false){echo "<span id=info>".substr($line,10)."</span><br>";}
else{echo "<span id=gos>".$line."</span><br>";}
}
checkSql($server);
ob_flush();
flush();
echo " <script language=javascript>window.scroll(0,50000);</script>";
sleep(1);
}
}
function checkSql($server){
if ($GLOBALS['connected']){
$sqlinfo=$GLOBALS['sqlinfo'];
$info=array($sqlinfo['address'],$sqlinfo['user'],$sqlinfo['password'],$sqlinfo['db'],$sqlinfo['table']);
$rtn=sqlg($info,"where id=".$GLOBALS['id']);
$delete=0;
if (mysql_num_rows($rtn) != 0){
$a=0;
$rec=array();
//sorting the info from the sql
while(mysql_numrows($rtn)>$a){
$sid[$a]=mysql_result($rtn,$a,"id");
$suser[$a]=mysql_result($rtn,$a,"user");
$smsg[$a]=mysql_result($rtn,$a,"msg");
$strgt[$a]=mysql_result($rtn,$a,"trgt");
// if a public message send to gossip
if ($strgt[$a] == "public"&& $suser[$a]==$GLOBALS['name']){
$shmsg=substr($smsg[$a],0,4);
if ($shmsg=="gos "){$smsg[$a]=substr($smsg[$a],4);}
write($smsg[$a],$server);
echo "<span id=gos>You gossip: ".$smsg[$a]."</span><BR>";
array_push($rec, $sid[$a]);
$delete=1;
}
$a++;
}
$stype="multi";
if ($delete==1){sqld($stype,$rec,$info);}
}
}
}
//begin connection
echo "<span id=con>Connecting to server...</span><br>";
ob_flush();
flush();
$server['s'] = fsockopen($server['h'], $server['p'], $errno, $errstr, 2);
if($server['s']){
login($server);
stream_set_blocking($server['s'], 0);
if ($connected){readon($server);}
}
write(":!:hangup:!:",$server);
fclose($server['s']);
?>
</body>
</html>