Salve,
sul mio sito sto creando una pagina in PHP che si colleghi ad un server IRC, per poter prelevare le liste degli utenti di un canale (CF / SOP / AOP / VOP) e le informazioni relative al canale stesso (/cs info #canale)...
Per fare ciò ho utilizzato le funzioni fsockopen(), fgets() e fput()...
mi dà un timeout quando tento di aprire la pagina...
ecco il codice:
[code:1:971be60d9c]
<html>
<head>
<title>Lista Membri</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#000000" text="#ffffff">
<?php
set_time_limit(120);
$socket = fsockopen("irc.azzurra.net", 6667, $errno, $errstr, 60);
if ($socket==TRUE){
$headers = "NICK PHPBot\r\nUSER phpbot phpbot localhost\r\nPRIVMSG NickServ IDENTIFY passwordmia\r\nJOIN #freestyle\r\n";
fputs($socket, $headers);
fputs($socket, "PRIVMSG ChanServ CF #freestyle LIST");
$cf = '';
while (!feof($socket)) {
$cf .= fgets($socket, 1024);
while (substr_count($cf,'\r\n') != 0) {
$offset = strpos($cf, '\r\n');
$data = substr($cf,0,$offset);
$cf = substr($cf,$offset+2);
if ( substr($data,0,4) == 'PING' ) {
fputs($socket,'PONG ' . substr($data,5) . '\r\n');
}
}
}
fputs($socket, "PRIVMSG ChanServ SOP #freestyle LIST");
$sop = '';
while (!feof($socket)) {
$sop .= fgets($socket, 1024);
while (substr_count($sop,'\r\n') != 0) {
$offset = strpos($sop, '\r\n');
$data = substr($sop,0,$offset);
$sop = substr($sop,$offset+2);
if ( substr($data,0,4) == 'PING' ) {
fputs($socket,'PONG ' . substr($data,5) . '\r\n');
}
}
}
fputs($socket, "PRIVMSG ChanServ AOP #freestyle LIST");
$aop = '';
while (!feof($socket)) {
$aop .= fgets($socket, 1024);
while (substr_count($aop,'\r\n') != 0) {
$offset = strpos($aop, '\r\n');
$data = substr($aop,0,$offset);
$aop = substr($aop,$offset+2);
if ( substr($data,0,4) == 'PING' ) {
fputs($socket,'PONG ' . substr($data,5) . '\r\n');
}
}
}
fputs($socket, "PRIVMSG ChanServ VOP #freestyle LIST");
$vop = '';
while (!feof($socket)) {
$vop .= fgets($socket, 1024);
while (substr_count($vop,'\r\n') != 0) {
$offset = strpos($vop, '\r\n');
$data = substr($vop,0,$offset);
$vop = substr($vop,$offset+2);
if ( substr($data,0,4) == 'PING' ) {
fputs($socket,'PONG ' . substr($data,5) . '\r\n');
}
}
}
fputs($socket, "PRIVMSG ChanServ INFO #freestyle");
$info = '';
while (!feof($socket)) {
$info .= fgets($socket, 1024);
while (substr_count($info,'\r\n') != 0) {
$offset = strpos($info, '\r\n');
$data = substr($info,0,$offset);
$info = substr($info,$offset+2);
if ( substr($data,0,4) == 'PING' ) {
fputs($socket,'PONG ' . substr($data,5) . '\r\n');
}
}
}
fclose($socket);
?>
<table width="75%" border="1">
<tr>
<td><b>GRADO</b></td>
<td><b>NICKS</b></td>
</tr>
<tr>
<td>Co-Founders</td>
<td><?php echo($cf);?></td>
</tr>
<tr>
<td>SOP</td>
<td><?php echo($sop);?></td>
</tr>
<tr>
<td>AOP</td>
<td><?php echo($aop);?></td>
</tr>
<tr>
<td>VOP</td>
<td><?php echo($vop);?></td>
</tr>
</table>
<BR>
Informazioni Generali sul Canale e sul Founder:
<br>
<?php
echo($info . "<br><br>");
} else {
echo "<div align='center'>";
echo "Connessione al Server IRC Fallita<BR>";
echo "<a href='javascript:history.go(-1);'>Torna Indietro</a>";
echo "</div>";
}
?>
</body>
</html>
[/code:1:971be60d9c]
...
cose c'è che non va?
grazie mille!
[edit]naturalmente ho modificato la password che mando al server... eheheh non si sa mai :P[/edit]
Non so rispondere al tuo problema, ma so che ci sono delle restrizioni nell'accesso a file esterni (che se non erro non possono essere aperti), forse può dipendere da qualcosa del genere.
su altervista è attivo il safemode, quindi alcune funzioni vengono disabilitate per motivi di sicurezza.
altro metodo x risolvere?
ci sarebbero anche le funzioni ircg_*(), ma con il safemode niente...
Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere ai messaggi
Non puoi inserire allegati.
Non puoi modificare i tuoi messaggi
Regole del forum